@xxmachina/components 19.51.0 → 19.81.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.
- package/fesm2022/xxmachina-components-extras-flow.mjs +73 -140
- package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -1
- package/fesm2022/xxmachina-components-features-query.mjs +3 -29
- package/fesm2022/xxmachina-components-features-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-groups-query-form.mjs +0 -54
- package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +0 -1
- package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +1 -1
- package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs +96 -0
- package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs.map +1 -0
- package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -2
- package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs +123 -0
- package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs.map +1 -0
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -2
- package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-event-input-section.mjs +0 -1
- package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +2 -18
- package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs +0 -3
- package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +1 -1
- package/fesm2022/xxmachina-components-organisms-xterm.mjs +283 -261
- package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-command.mjs +3 -9
- package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-query-v2.mjs +0 -13
- package/fesm2022/xxmachina-components-pages-query-v2.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-query.mjs +3 -67
- package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-pages-thread.mjs +2 -18
- package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -1
- package/fesm2022/{xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs → xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs} +1 -2
- package/fesm2022/xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs.map +1 -0
- package/fesm2022/{xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs → xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs} +2 -2
- package/fesm2022/{xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs.map → xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs.map} +1 -1
- package/fesm2022/xxmachina-components-routes-commands.mjs +1 -2
- package/fesm2022/xxmachina-components-routes-commands.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-pages.mjs.map +1 -1
- package/fesm2022/xxmachina-components-routes-queries.mjs +0 -2
- package/fesm2022/xxmachina-components-routes-queries.mjs.map +1 -1
- package/fesm2022/{xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs → xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs} +1 -5
- package/fesm2022/xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-query.mjs +1 -1
- package/fesm2022/{xxmachina-components-routes-resources-pages.routes-CRXxavHb.mjs → xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs} +2 -2
- package/fesm2022/{xxmachina-components-routes-resources-pages.routes-CRXxavHb.mjs.map → xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs.map} +1 -1
- package/fesm2022/{xxmachina-components-routes-resources-resource.routes-CkkmqB2_.mjs → xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs} +1 -2
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs.map +1 -0
- package/fesm2022/xxmachina-components-routes-resources.mjs +1 -1
- package/fesm2022/xxmachina-components-routes-transformer.mjs +0 -1
- package/fesm2022/xxmachina-components-routes-transformer.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-forms-query.mjs +1 -1
- package/fesm2022/xxmachina-components-services-forms-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-graphql.mjs +0 -4
- package/fesm2022/xxmachina-components-services-graphql.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-json-schema.mjs +6 -12
- package/fesm2022/xxmachina-components-services-json-schema.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-query.mjs +0 -7
- package/fesm2022/xxmachina-components-services-query.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-recording.mjs +0 -13
- package/fesm2022/xxmachina-components-services-recording.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-thread.mjs +0 -2
- package/fesm2022/xxmachina-components-services-thread.mjs.map +1 -1
- package/fesm2022/xxmachina-components-services-version.mjs +171 -0
- package/fesm2022/xxmachina-components-services-version.mjs.map +1 -0
- package/fesm2022/xxmachina-components-services-workspace-switcher.mjs +9 -0
- package/fesm2022/xxmachina-components-services-workspace-switcher.mjs.map +1 -0
- package/fesm2022/xxmachina-components-templates-agent.mjs +98 -146
- package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-background.mjs +10 -30
- package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-env.mjs +295 -0
- package/fesm2022/xxmachina-components-templates-env.mjs.map +1 -0
- package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-flow.mjs +1 -1
- package/fesm2022/xxmachina-components-templates-flow.mjs.map +1 -1
- package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs +78 -0
- package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs.map +1 -0
- package/fesm2022/xxmachina-components.mjs +9 -10
- package/fesm2022/xxmachina-components.mjs.map +1 -1
- package/package.json +25 -1
- package/types/xxmachina-components-extras-flow.d.ts +8 -43
- package/types/xxmachina-components-extras-flow.d.ts.map +1 -1
- package/types/xxmachina-components-features-query.d.ts +3 -24
- package/types/xxmachina-components-features-query.d.ts.map +1 -1
- package/types/xxmachina-components-groups-query-form.d.ts +2 -2
- package/types/xxmachina-components-molecules-user-avatar-menu.d.ts +19 -0
- package/types/xxmachina-components-molecules-user-avatar-menu.d.ts.map +1 -0
- package/types/xxmachina-components-molecules-workspace-selector.d.ts +25 -0
- package/types/xxmachina-components-molecules-workspace-selector.d.ts.map +1 -0
- package/types/xxmachina-components-organisms-xterm.d.ts +130 -111
- package/types/xxmachina-components-organisms-xterm.d.ts.map +1 -1
- package/types/xxmachina-components-pages-query-v2.d.ts +0 -3
- package/types/xxmachina-components-pages-query-v2.d.ts.map +1 -1
- package/types/xxmachina-components-pages-query.d.ts +0 -19
- package/types/xxmachina-components-pages-query.d.ts.map +1 -1
- package/types/xxmachina-components-services-forms-query.d.ts +1 -1
- package/types/xxmachina-components-services-graphql.d.ts +0 -3
- package/types/xxmachina-components-services-graphql.d.ts.map +1 -1
- package/types/xxmachina-components-services-query.d.ts +0 -7
- package/types/xxmachina-components-services-query.d.ts.map +1 -1
- package/types/xxmachina-components-services-version.d.ts +32 -0
- package/types/xxmachina-components-services-version.d.ts.map +1 -0
- package/types/xxmachina-components-services-workspace-switcher.d.ts +17 -0
- package/types/xxmachina-components-services-workspace-switcher.d.ts.map +1 -0
- package/types/xxmachina-components-templates-agent.d.ts +2 -1
- package/types/xxmachina-components-templates-agent.d.ts.map +1 -1
- package/types/xxmachina-components-templates-env.d.ts +43 -0
- package/types/xxmachina-components-templates-env.d.ts.map +1 -0
- package/types/xxmachina-components-templates-flow-nodes-issue.d.ts +0 -2
- package/types/xxmachina-components-templates-flow-nodes-issue.d.ts.map +1 -1
- package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts +18 -0
- package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts.map +1 -0
- package/types/xxmachina-components.d.ts +2 -0
- package/types/xxmachina-components.d.ts.map +1 -1
- package/fesm2022/xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs.map +0 -1
- package/fesm2022/xxmachina-components-routes-resources-resource.routes-CkkmqB2_.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-extras-flow.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/memo-compare.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.store.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/node.component.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/node.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/group-node.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/template-node.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/index.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/flow-node.directive.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.component.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/xxmachina-components-extras-flow.ts"],"sourcesContent":["/**\n * Props comparison function for ReactFlowWrapper's React.memo.\n * Extracted to a separate file for testability.\n */\nexport interface MemoCompareProps {\n nodes?: unknown;\n edges?: unknown;\n panOnDrag?: boolean | number[];\n nodesDraggable?: boolean;\n elementsSelectable?: boolean;\n backgroundVariant?: unknown;\n backgroundGap?: unknown;\n backgroundColor?: unknown;\n showBackground?: unknown;\n showMiniMap?: unknown;\n showControls?: unknown;\n showCoordinateLabels?: unknown;\n coordinateLabelInterval?: unknown;\n}\n\nexport function arePropsEqual(\n prev: { props: MemoCompareProps },\n next: { props: MemoCompareProps },\n): boolean {\n return (\n prev.props.nodes === next.props.nodes &&\n prev.props.edges === next.props.edges &&\n prev.props.panOnDrag === next.props.panOnDrag &&\n prev.props.nodesDraggable === next.props.nodesDraggable &&\n prev.props.elementsSelectable === next.props.elementsSelectable &&\n prev.props.backgroundVariant === next.props.backgroundVariant &&\n prev.props.backgroundGap === next.props.backgroundGap &&\n prev.props.backgroundColor === next.props.backgroundColor &&\n prev.props.showBackground === next.props.showBackground &&\n prev.props.showMiniMap === next.props.showMiniMap &&\n prev.props.showControls === next.props.showControls &&\n prev.props.showCoordinateLabels === next.props.showCoordinateLabels &&\n prev.props.coordinateLabelInterval === next.props.coordinateLabelInterval\n );\n}\n","import * as React from 'react';\nimport { FunctionComponent, ReactEventHandler, useMemo } from 'react';\nimport { arePropsEqual } from './memo-compare';\nimport ReactFlow, {\n\tMiniMap,\n\tControls,\n\tBackground,\n\tBackgroundVariant,\n\tNode,\n\tEdge,\n\tConnectionLineComponent,\n\tConnectionLineType,\n\tConnectionMode,\n\tCoordinateExtent,\n\tDefaultEdgeOptions,\n\tEdgeMouseHandler,\n\tEdgeTypes,\n\tFitViewOptions,\n\tHandleType,\n\tKeyCode,\n\tNodeDragHandler,\n\tNodeMouseHandler,\n\tNodeOrigin,\n\tNodeTypes,\n\tOnConnect,\n\tOnConnectEnd,\n\tOnConnectStart,\n\tOnEdgesChange,\n\tOnEdgesDelete,\n\tOnEdgeUpdateFunc,\n\tOnError,\n\tOnInit,\n\tOnMove,\n\tOnNodesChange,\n\tOnNodesDelete,\n\tOnSelectionChangeFunc,\n\tPanelPosition,\n\tPanOnScrollMode,\n\tProOptions,\n\tSelectionDragHandler,\n\tSelectionMode,\n\tViewport,\n\tReactFlowProvider,\n\tuseViewport,\n} from 'reactflow';\n\n// CoordinateLabels component that renders grid coordinate labels\ninterface CoordinateLabelsProps {\n\tgap: number;\n\tinterval: number;\n}\n\nconst CoordinateLabels: FunctionComponent<CoordinateLabelsProps> = ({ gap, interval }) => {\n\tconst { x, y, zoom } = useViewport();\n\n\tconst labels = useMemo(() => {\n\t\tconst result: { key: string; label: string; left: number; top: number }[] = [];\n\t\t// Calculate visible range based on viewport (assume 2000x1500 visible area)\n\t\tconst viewWidth = 2000 / zoom;\n\t\tconst viewHeight = 1500 / zoom;\n\t\tconst startX = Math.floor(-x / zoom / gap / interval) * interval;\n\t\tconst startY = Math.floor(-y / zoom / gap / interval) * interval;\n\t\tconst endX = Math.ceil((-x / zoom + viewWidth) / gap / interval) * interval;\n\t\tconst endY = Math.ceil((-y / zoom + viewHeight) / gap / interval) * interval;\n\n\t\tfor (let gx = startX; gx <= endX; gx += interval) {\n\t\t\tfor (let gy = startY; gy <= endY; gy += interval) {\n\t\t\t\tconst pixelX = gx * gap * zoom + x;\n\t\t\t\tconst pixelY = gy * gap * zoom + y;\n\t\t\t\tresult.push({\n\t\t\t\t\tkey: `${gx},${gy}`,\n\t\t\t\t\tlabel: `${gx},${gy}`,\n\t\t\t\t\tleft: pixelX,\n\t\t\t\t\ttop: pixelY,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}, [x, y, zoom, gap, interval]);\n\n\treturn React.createElement('div', {\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tpointerEvents: 'none',\n\t\t\toverflow: 'hidden',\n\t\t}\n\t}, labels.map(({ key, label, left, top }) =>\n\t\tReact.createElement('span', {\n\t\t\tkey,\n\t\t\tstyle: {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tleft: `${left}px`,\n\t\t\t\ttop: `${top}px`,\n\t\t\t\tfontSize: '9px',\n\t\t\t\tfontFamily: \"'SF Mono', Monaco, monospace\",\n\t\t\t\tcolor: 'rgba(100, 100, 100, 0.6)',\n\t\t\t\ttransform: 'translate(2px, 2px)',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t}\n\t\t}, label)\n\t));\n};\n\nexport interface IReactFlowProps {\n\tprops: {\n\t\tnodes?: Node<any, string | undefined>[] | undefined;\n\t\tedges?: Edge<any>[] | undefined;\n\t\tdefaultNodes?: Node<any, string | undefined>[] | undefined;\n\t\tdefaultEdges?: Edge<any>[] | undefined;\n\t\tdefaultEdgeOptions?: DefaultEdgeOptions | undefined;\n\t\t// Background configuration\n\t\tbackgroundVariant?: BackgroundVariant | undefined;\n\t\tbackgroundGap?: number | [number, number] | undefined;\n\t\tbackgroundColor?: string | undefined;\n\t\tbackgroundSize?: number | undefined;\n\t\tshowBackground?: boolean | undefined;\n\t\tshowMiniMap?: boolean | undefined;\n\t\tshowControls?: boolean | undefined;\n\t\tshowCoordinateLabels?: boolean | undefined;\n\t\tcoordinateLabelInterval?: number | undefined;\n\t\tonNodeClick?: NodeMouseHandler | undefined;\n\t\tonNodeDoubleClick?: NodeMouseHandler | undefined;\n\t\tonNodeMouseEnter?: NodeMouseHandler | undefined;\n\t\tonNodeMouseMove?: NodeMouseHandler | undefined;\n\t\tonNodeMouseLeave?: NodeMouseHandler | undefined;\n\t\tonNodeContextMenu?: NodeMouseHandler | undefined;\n\t\tonNodeDragStart?: NodeDragHandler | undefined;\n\t\tonNodeDrag?: NodeDragHandler | undefined;\n\t\tonNodeDragStop?: NodeDragHandler | undefined;\n\t\tonEdgeClick?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, node: Edge<any>) => void) | undefined;\n\t\tonEdgeUpdate?: OnEdgeUpdateFunc<any> | undefined;\n\t\tonEdgeContextMenu?: EdgeMouseHandler | undefined;\n\t\tonEdgeMouseEnter?: EdgeMouseHandler | undefined;\n\t\tonEdgeMouseMove?: EdgeMouseHandler | undefined;\n\t\tonEdgeMouseLeave?: EdgeMouseHandler | undefined;\n\t\tonEdgeDoubleClick?: EdgeMouseHandler | undefined;\n\t\tonEdgeUpdateStart?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, edge: Edge<any>, handleType: HandleType) => void) | undefined;\n\t\tonEdgeUpdateEnd?: ((event: MouseEvent | TouchEvent, edge: Edge<any>, handleType: HandleType) => void) | undefined;\n\t\tonNodesChange?: OnNodesChange | undefined;\n\t\tonEdgesChange?: OnEdgesChange | undefined;\n\t\tonNodesDelete?: OnNodesDelete | undefined;\n\t\tonEdgesDelete?: OnEdgesDelete | undefined;\n\t\tonSelectionDragStart?: SelectionDragHandler | undefined;\n\t\tonSelectionDrag?: SelectionDragHandler | undefined;\n\t\tonSelectionDragStop?: SelectionDragHandler | undefined;\n\t\tonSelectionStart?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonSelectionEnd?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonSelectionContextMenu?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, nodes: Node<any, string | undefined>[]) => void) | undefined;\n\t\tonConnect?: OnConnect | undefined;\n\t\tonConnectStart?: OnConnectStart | undefined;\n\t\tonConnectEnd?: OnConnectEnd | undefined;\n\t\tonClickConnectStart?: OnConnectStart | undefined;\n\t\tonClickConnectEnd?: OnConnectEnd | undefined;\n\t\tonDragOver?: ((event: import(\"react\").DragEvent<Element>) => void) | undefined;\n\t\tonDrop?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, type: string) => void) | undefined;\n\t\tonInit?: OnInit<any, any> | undefined;\n\t\tonMove?: OnMove | undefined;\n\t\tonMoveStart?: OnMove | undefined;\n\t\tonMoveEnd?: OnMove | undefined;\n\t\tonSelectionChange?: OnSelectionChangeFunc | undefined;\n\t\tonPaneScroll?: ((event?: import(\"react\").WheelEvent<Element> | undefined) => void) | undefined;\n\t\tonPaneClick?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneContextMenu?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneMouseEnter?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneMouseMove?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneMouseLeave?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tnodeTypes?: NodeTypes | undefined;\n\t\tedgeTypes?: EdgeTypes | undefined;\n\t\tconnectionLineType?: ConnectionLineType | undefined;\n\t\tconnectionLineStyle?: React.CSSProperties | undefined;\n\t\tconnectionLineComponent?: ConnectionLineComponent | undefined;\n\t\tconnectionLineContainerStyle?: React.CSSProperties | undefined;\n\t\tconnectionMode?: ConnectionMode | undefined;\n\t\tdeleteKeyCode?: KeyCode | null | undefined;\n\t\tselectionKeyCode?: KeyCode | null | undefined;\n\t\tselectionOnDrag?: boolean | undefined;\n\t\tselectionMode?: SelectionMode | undefined;\n\t\tpanActivationKeyCode?: KeyCode | null | undefined;\n\t\tmultiSelectionKeyCode?: KeyCode | null | undefined;\n\t\tzoomActivationKeyCode?: KeyCode | null | undefined;\n\t\tsnapToGrid?: boolean | undefined;\n\t\tsnapGrid?: [number, number] | undefined;\n\t\tonlyRenderVisibleElements?: boolean | undefined;\n\t\tnodesDraggable?: boolean | undefined;\n\t\tnodesConnectable?: boolean | undefined;\n\t\tnodesFocusable?: boolean | undefined;\n\t\tnodeOrigin?: NodeOrigin | undefined;\n\t\tedgesFocusable?: boolean | undefined;\n\t\telementsSelectable?: boolean | undefined;\n\t\tselectNodesOnDrag?: boolean | undefined;\n\t\tpanOnDrag?: boolean | number[] | undefined;\n\t\tminZoom?: number | undefined;\n\t\tmaxZoom?: number | undefined;\n\t\tdefaultViewport?: Viewport | undefined;\n\t\ttranslateExtent?: CoordinateExtent | undefined;\n\t\tpreventScrolling?: boolean | undefined;\n\t\tnodeExtent?: CoordinateExtent | undefined;\n\t\tdefaultMarkerColor?: string | undefined;\n\t\tzoomOnScroll?: boolean | undefined;\n\t\tzoomOnPinch?: boolean | undefined;\n\t\tpanOnScroll?: boolean | undefined;\n\t\tpanOnScrollSpeed?: number | undefined;\n\t\tpanOnScrollMode?: PanOnScrollMode | undefined;\n\t\tzoomOnDoubleClick?: boolean | undefined;\n\t\tedgeUpdaterRadius?: number | undefined;\n\t\tnoDragClassName?: string | undefined;\n\t\tnoWheelClassName?: string | undefined;\n\t\tnoPanClassName?: string | undefined;\n\t\tfitView?: boolean | undefined;\n\t\tfitViewOptions?: FitViewOptions | undefined;\n\t\tconnectOnClick?: boolean | undefined;\n\t\tattributionPosition?: PanelPosition | undefined;\n\t\tproOptions?: ProOptions | undefined;\n\t\televateNodesOnSelect?: boolean | undefined;\n\t\televateEdgesOnSelect?: boolean | undefined;\n\t\tdisableKeyboardA11y?: boolean | undefined;\n\t\tautoPanOnNodeDrag?: boolean | undefined;\n\t\tautoPanOnConnect?: boolean | undefined;\n\t\tconnectionRadius?: number | undefined;\n\t\tonError?: ReactEventHandler<HTMLDivElement> & OnError | undefined;\n\t}\n}\n\nconst ReactFlowWrapperComponent: FunctionComponent<IReactFlowProps> = ({ props }) => {\n\tconst minimapStyle = {\n\t\theight: 120,\n\t};\n\tconst mergedProps = {\n\t\t...props,\n\t\tnodesDraggable: props.nodesDraggable !== false,\n\t\tnodesConnectable: props.nodesConnectable !== false,\n\t\telementsSelectable: props.elementsSelectable !== false,\n\t\tproOptions: { hideAttribution: true, ...props.proOptions },\n\t};\n\n\t// Background settings with defaults\n\tconst showBackground = props.showBackground !== false;\n\tconst backgroundVariant = props.backgroundVariant ?? BackgroundVariant.Dots;\n\tconst backgroundGap = props.backgroundGap ?? 16;\n\tconst backgroundSize = props.backgroundSize ?? 1;\n\tconst backgroundColor = props.backgroundColor;\n\n\t// MiniMap and Controls are opt-in (hidden by default)\n\tconst showMiniMap = props.showMiniMap === true;\n\tconst showControls = props.showControls === true;\n\tconst showCoordinateLabels = props.showCoordinateLabels === true;\n\tconst coordinateLabelInterval = props.coordinateLabelInterval ?? 1;\n\n\tconst children: React.ReactElement[] = [];\n\tif (showMiniMap) {\n\t\tchildren.push(React.createElement(MiniMap, { key: 'minimap', style: minimapStyle, zoomable: true, pannable: true }));\n\t}\n\tif (showControls) {\n\t\tchildren.push(React.createElement(Controls, { key: 'controls' }));\n\t}\n\tif (showBackground) {\n\t\tconst bgProps: any = { key: 'background', variant: backgroundVariant, gap: backgroundGap, size: backgroundSize };\n\t\tif (backgroundColor) {\n\t\t\tbgProps.color = backgroundColor;\n\t\t}\n\t\tchildren.push(React.createElement(Background, bgProps));\n\t}\n\tif (showCoordinateLabels) {\n\t\tconst gap = typeof backgroundGap === 'number' ? backgroundGap : backgroundGap[0];\n\t\tchildren.push(React.createElement(CoordinateLabels, { key: 'coordinates', gap, interval: coordinateLabelInterval }));\n\t}\n\n\treturn React.createElement(ReactFlowProvider, null,\n\t\tReact.createElement(ReactFlow, mergedProps as any, ...children)\n\t);\n};\n\n// Memoize ReactFlowWrapper to prevent unnecessary re-renders\n// Re-render when nodes, edges, or background/coordinate settings change\nexport const ReactFlowWrapper = React.memo(\n\tReactFlowWrapperComponent,\n\tarePropsEqual\n);","import { Directive, input, output, TemplateRef } from '@angular/core';\nimport { Node, Edge, NodeChange, EdgeChange, Connection, ReactFlowInstance, OnConnectStartParams, OnSelectionChangeParams, HandleType, NodeTypes, EdgeTypes, ConnectionLineType, ConnectionLineComponent, ConnectionMode, KeyCode, NodeOrigin, Viewport, CoordinateExtent, PanOnScrollMode, FitViewOptions, PanelPosition, ProOptions, OnError, DefaultEdgeOptions, SelectionMode, BackgroundVariant } from 'reactflow';\nimport * as React from 'react';\n\nexport type { BackgroundVariant } from 'reactflow';\n\n@Directive({ standalone: true })\nexport class ReactFlowComponentStore {\n // Signal inputs\n readonly nodes = input<Node<any, string | undefined>[] | undefined>();\n readonly edges = input<Edge<any>[] | undefined>();\n readonly defaultNodes = input<Node<any, string | undefined>[] | undefined>();\n readonly defaultEdges = input<Edge<any>[] | undefined>();\n readonly defaultEdgeOptions = input<DefaultEdgeOptions | undefined>();\n\n // Node templates for custom rendering\n readonly nodeTemplates = input<Record<string, TemplateRef<any>> | undefined>();\n \n // Signal inputs for configuration\n readonly nodeTypes = input<NodeTypes | undefined>();\n readonly edgeTypes = input<EdgeTypes | undefined>();\n readonly connectionLineType = input<ConnectionLineType | undefined>();\n readonly connectionLineStyle = input<React.CSSProperties | undefined>();\n readonly connectionLineComponent = input<ConnectionLineComponent | undefined>();\n readonly connectionLineContainerStyle = input<React.CSSProperties | undefined>();\n readonly connectionMode = input<ConnectionMode | undefined>();\n readonly deleteKeyCode = input<KeyCode | null | undefined>();\n readonly selectionKeyCode = input<KeyCode | null | undefined>();\n readonly selectionOnDrag = input<boolean | undefined>();\n readonly selectionMode = input<SelectionMode | undefined>();\n readonly panActivationKeyCode = input<KeyCode | null | undefined>();\n readonly multiSelectionKeyCode = input<KeyCode | null | undefined>();\n readonly zoomActivationKeyCode = input<KeyCode | null | undefined>();\n readonly snapToGrid = input<boolean | undefined>();\n readonly snapGrid = input<[number, number] | undefined>();\n readonly onlyRenderVisibleElements = input<boolean | undefined>();\n readonly nodesDraggable = input<boolean | undefined>();\n readonly nodesConnectable = input<boolean | undefined>();\n readonly nodesFocusable = input<boolean | undefined>();\n readonly nodeOrigin = input<NodeOrigin | undefined>();\n readonly edgesFocusable = input<boolean | undefined>();\n readonly initNodeOrigin = input<NodeOrigin | undefined>();\n readonly elementsSelectable = input<boolean | undefined>();\n readonly selectNodesOnDrag = input<boolean | undefined>();\n readonly panOnDrag = input<boolean | number[] | undefined>();\n readonly minZoom = input<number | undefined>();\n readonly maxZoom = input<number | undefined>();\n readonly defaultViewport = input<Viewport | undefined>();\n readonly translateExtent = input<CoordinateExtent | undefined>();\n readonly preventScrolling = input<boolean | undefined>();\n readonly nodeExtent = input<CoordinateExtent | undefined>();\n readonly defaultMarkerColor = input<string | undefined>();\n readonly zoomOnScroll = input<boolean | undefined>();\n readonly zoomOnPinch = input<boolean | undefined>();\n readonly panOnScroll = input<boolean | undefined>();\n readonly panOnScrollSpeed = input<number | undefined>();\n readonly panOnScrollMode = input<PanOnScrollMode | undefined>();\n readonly zoomOnDoubleClick = input<boolean | undefined>();\n readonly edgeUpdaterRadius = input<number | undefined>();\n readonly noDragClassName = input<string | undefined>();\n readonly noWheelClassName = input<string | undefined>();\n readonly noPanClassName = input<string | undefined>();\n readonly fitView = input<boolean | undefined>();\n readonly fitViewOptions = input<FitViewOptions | undefined>();\n readonly connectOnClick = input<boolean | undefined>();\n readonly attributionPosition = input<PanelPosition | undefined>();\n readonly proOptions = input<ProOptions | undefined>();\n readonly elevateNodesOnSelect = input<boolean | undefined>();\n readonly elevateEdgesOnSelect = input<boolean | undefined>();\n readonly disableKeyboardA11y = input<boolean | undefined>();\n readonly autoPanOnNodeDrag = input<boolean | undefined>();\n readonly autoPanOnConnect = input<boolean | undefined>();\n readonly connectionRadius = input<number | undefined>();\n\n // Background configuration\n readonly backgroundVariant = input<BackgroundVariant | undefined>();\n readonly backgroundGap = input<number | [number, number] | undefined>();\n readonly backgroundColor = input<string | undefined>();\n readonly backgroundSize = input<number | undefined>();\n readonly showBackground = input<boolean | undefined>();\n readonly showMiniMap = input<boolean | undefined>();\n readonly showControls = input<boolean | undefined>();\n readonly showCoordinateLabels = input<boolean | undefined>();\n readonly coordinateLabelInterval = input<number | undefined>();\n\n // Signal outputs for events\n readonly onNodeClick = output<[MouseEvent, Node]>();\n readonly onNodeDoubleClick = output<[MouseEvent, Node]>();\n readonly onNodeMouseEnter = output<[MouseEvent, Node]>();\n readonly onNodeMouseMove = output<[MouseEvent, Node]>();\n readonly onNodeMouseLeave = output<[MouseEvent, Node]>();\n readonly onNodeContextMenu = output<[MouseEvent, Node]>();\n readonly onNodeDragStart = output<[MouseEvent, Node, Node[]]>();\n readonly onNodeDrag = output<[MouseEvent, Node, Node[]]>();\n readonly onNodeDragStop = output<[MouseEvent, Node, Node[]]>();\n readonly onEdgeClick = output<[MouseEvent, Node]>();\n readonly onEdgeUpdate = output<[any, Connection]>();\n readonly onEdgeContextMenu = output<[MouseEvent, Edge]>();\n readonly onEdgeMouseEnter = output<[MouseEvent, Edge]>();\n readonly onEdgeMouseMove = output<[MouseEvent, Edge]>();\n readonly onEdgeMouseLeave = output<[MouseEvent, Edge]>();\n readonly onEdgeDoubleClick = output<[MouseEvent, Edge]>();\n readonly onEdgeUpdateStart = output<[MouseEvent, Edge<any>, HandleType]>();\n readonly onEdgeUpdateEnd = output<[MouseEvent, Edge<any>, HandleType]>();\n readonly onNodesChange = output<[NodeChange[]]>();\n readonly onEdgesChange = output<[EdgeChange[]]>();\n readonly onNodesDelete = output<[Node[]]>();\n readonly onEdgesDelete = output<[Edge[]]>();\n readonly onSelectionDragStart = output<[MouseEvent, Node[]]>();\n readonly onSelectionDrag = output<[MouseEvent, Node[]]>();\n readonly onSelectionDragStop = output<[MouseEvent, Node[]]>();\n readonly onSelectionStart = output<[MouseEvent]>();\n readonly onSelectionEnd = output<[MouseEvent]>();\n readonly onSelectionContextMenu = output<[MouseEvent, Node<any, string | undefined>[]]>();\n readonly onConnect = output<[Connection]>();\n readonly onConnectStart = output<[MouseEvent, OnConnectStartParams]>();\n readonly onConnectEnd = output<[MouseEvent]>();\n readonly onClickConnectStart = output<[MouseEvent, OnConnectStartParams]>();\n readonly onClickConnectEnd = output<[MouseEvent]>();\n readonly onDragOver = output<[MouseEvent]>();\n readonly onDrop = output<[MouseEvent, string]>();\n readonly onInit = output<[ReactFlowInstance<any, any>]>();\n readonly onMove = output<[MouseEvent, Viewport]>();\n readonly onMoveStart = output<[MouseEvent, Viewport]>();\n readonly onMoveEnd = output<[MouseEvent, Viewport]>();\n readonly onSelectionChange = output<[OnSelectionChangeParams]>();\n readonly onPaneScroll = output<[WheelEvent]>();\n readonly onPaneClick = output<[MouseEvent]>();\n readonly onPaneContextMenu = output<[MouseEvent]>();\n readonly onPaneMouseEnter = output<[MouseEvent]>();\n readonly onPaneMouseMove = output<[MouseEvent]>();\n readonly onPaneMouseLeave = output<[MouseEvent]>();\n readonly onError = output<OnError>();\n readonly onNodeResizeEnd = output<{ nodeId: string; width: number; height: number }>();\n}","\nimport { Component, input } from '@angular/core';\n\nexport interface NgNodeData {\n label: string;\n status: string;\n assignee: string;\n}\n\n@Component({\n selector: 'machina-task-node',\n standalone: true,\n imports: [],\n template: `\n <div class=\"task-node\" [class]=\"'status-' + data()?.status\">\n <div class=\"task-header\">\n <span class=\"status-indicator\"></span>\n <span class=\"assignee\">あああ{{ data()?.assignee }}</span>\n </div>\n <div class=\"task-label\">{{ data()?.label }}</div>\n </div>\n `,\n styleUrl: './node.component.scss',\n})\nexport class NodeComponent {\n readonly data = input<NgNodeData>();\n}\n","import React, { memo, useEffect, useRef } from 'react';\nimport { Handle, Position, NodeResizer } from 'reactflow';\nimport { createComponent, ApplicationRef, EnvironmentInjector, ComponentRef, Injectable, Injector, inject } from '@angular/core';\nimport { NgNodeData, NodeComponent } from './node.component';\n\n// Global reference to Angular app injector (will be set by ReactFlowComponent)\nlet globalInjector: EnvironmentInjector | null = null;\n\nexport function setAngularContext(injector: EnvironmentInjector, appRef: ApplicationRef) {\n globalInjector = injector;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NodeService {\n componentCache = new Map<HTMLDivElement, ComponentRef<NodeComponent>>();\n readonly injector = inject(EnvironmentInjector);\n\n createNodeComponent(hostElement: HTMLDivElement): ComponentRef<NodeComponent> {\n if (this.componentCache.has(hostElement)) {\n return this.componentCache.get(hostElement)!;\n }\n const component = createComponent(NodeComponent, {\n environmentInjector: this.injector,\n hostElement,\n });\n this.componentCache.set(hostElement, component);\n return component;\n }\n}\n\nconst Node = ({ data }: { data: NgNodeData; selected?: boolean }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const component = globalInjector?.get(NodeService).createNodeComponent(containerRef.current!);\n\n useEffect(() => component!.setInput('data', data), [data]);\n\n return (\n <div ref={containerRef}>\n <NodeResizer\n minWidth={400}\n minHeight={300}\n isVisible={true}\n />\n <Handle type=\"target\" position={Position.Left} style={{ zIndex: 10 }} />\n <Handle type=\"source\" position={Position.Right} style={{ zIndex: 10 }} />\n </div>\n );\n};\n\nexport default memo(Node);\n","import React, { memo } from 'react';\nimport { Handle, Position } from 'reactflow';\n\nexport interface GroupNodeData {\n label: string;\n status?: string;\n assignee?: string;\n task?: any;\n}\n\nconst GroupNode = ({ data }: { data: GroupNodeData }) => {\n return (\n <div className=\"group-node\">\n <Handle type=\"target\" position={Position.Left} />\n <div className=\"group-node-header\">\n <h3>{data.label}</h3>\n <span className=\"group-assignee\">{data.assignee}</span>\n </div>\n <Handle type=\"source\" position={Position.Right} />\n </div>\n );\n};\n\nexport default memo(GroupNode);","import React, { memo, useEffect, useRef, useState } from 'react';\nimport { Handle, Position, NodeResizer } from 'reactflow';\nimport { TemplateRef, ViewContainerRef, EmbeddedViewRef } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\ninterface TemplateNodeData {\n [key: string]: any;\n}\n\nexport function createTemplateNodeComponent(template: TemplateRef<any>, vcr: ViewContainerRef, onNodeResizeEnd?: (nodeId: string, width: number, height: number) => void) {\n const TemplateNode = ({ data, selected, id }: { data: TemplateNodeData; selected?: boolean; id: string }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const viewRefRef = useRef<EmbeddedViewRef<any> | null>(null);\n // resize ハンドル drag 中の即時反映用ローカル state。\n // NodeResizer は onResize/onResizeEnd が wire up されないと、\n // SVG handle だけ伸びて Angular template (中身) は元サイズのままになる。\n const [resizeOverride, setResizeOverride] = useState<{ width: number; height: number } | null>(null);\n\n // 初回のみAngularビューを作成(破棄・再作成を防ぐ)\n useEffect(() => {\n const viewRef = vcr.createEmbeddedView(template, {});\n viewRef.rootNodes.forEach(node => containerRef.current!.appendChild(node));\n viewRef.context = { $implicit: data, data };\n viewRefRef.current = viewRef;\n viewRef.markForCheck();\n\n return () => {\n if (viewRefRef.current) {\n viewRefRef.current.destroy();\n viewRefRef.current = null;\n }\n };\n }, []); // 空の依存配列 - 初回のみ実行\n\n // dataが変更されたときはコンテキストのみ更新(ビューは再作成しない)\n useEffect(() => {\n if (viewRefRef.current) {\n viewRefRef.current.context = { $implicit: data, data };\n viewRefRef.current.markForCheck();\n }\n }, [data]);\n\n const handleResize = (_event: any, params: any) => {\n // drag の各 frame で wrapper div を伸縮 → Angular template も追従\n setResizeOverride({ width: params.width, height: params.height });\n };\n\n const handleResizeEnd = (_event: any, params: any) => {\n // drag 完了。 server へ通知 → applyLayout で sizes/sizePinned 書き込み →\n // round-trip で signal の node.style.width/height が新値になるため override は不要になる。\n setResizeOverride(null);\n if (onNodeResizeEnd) {\n onNodeResizeEnd(id, params.width, params.height);\n }\n };\n\n // resize 中は wrapper を強制サイズ、 通常時は親 (React Flow) が style.width/height を制御。\n const wrapperStyle: React.CSSProperties = resizeOverride\n ? { width: resizeOverride.width, height: resizeOverride.height }\n : { width: '100%', height: '100%' };\n\n return (\n <div ref={containerRef} style={wrapperStyle}>\n <NodeResizer\n minWidth={400}\n minHeight={300}\n isVisible={true}\n onResize={handleResize}\n onResizeEnd={handleResizeEnd}\n />\n <Handle type=\"target\" position={data.targetPosition ?? Position.Left} style={{ zIndex: 10 }} />\n <Handle type=\"source\" position={data.sourcePosition ?? Position.Right} style={{ zIndex: 10 }} />\n </div>\n );\n };\n\n // memoなしで返す(デバッグ用:renameが動作するか確認)\n // 動作確認後、適切なmemo戦略を検討\n return TemplateNode;\n}","import TaskNode from './node';\nimport GroupNode from './group-node';\n\nexport const NODE_TYPES = {\n task: TaskNode,\n group: GroupNode,\n};\n\nexport { setAngularContext } from './node';\nexport { createTemplateNodeComponent } from './template-node';\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[flowNode]',\n standalone: true,\n})\nexport class FlowNodeDirective {\n @Input('flowNode') type!: string;\n \n constructor(public template: TemplateRef<any>) {}\n}","import { Component, ElementRef, computed, contentChildren, input, ViewContainerRef, ViewEncapsulation, effect, inject } from '@angular/core';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport * as React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport { ReactFlowWrapper } from './react-flow';\nimport { ReactFlowComponentStore } from './react-flow.store';\nimport { createTemplateNodeComponent } from '../nodes';\nimport { FlowNodeDirective } from '../flow-node.directive';\n\n@Component({\n selector: 'machina-react-flow',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./react-flow.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: ReactFlowComponentStore,\n inputs: [\n 'nodes', 'edges', 'defaultNodes', 'defaultEdges', 'defaultEdgeOptions',\n 'nodeTemplates', 'nodeTypes', 'edgeTypes', 'connectionLineType', 'connectionLineStyle',\n 'connectionLineComponent', 'connectionLineContainerStyle', 'connectionMode',\n 'deleteKeyCode', 'selectionKeyCode', 'selectionOnDrag', 'selectionMode',\n 'panActivationKeyCode', 'multiSelectionKeyCode', 'zoomActivationKeyCode',\n 'snapToGrid', 'snapGrid', 'onlyRenderVisibleElements', 'nodesDraggable',\n 'nodesConnectable', 'nodesFocusable', 'nodeOrigin', 'edgesFocusable',\n 'initNodeOrigin', 'elementsSelectable', 'selectNodesOnDrag', 'panOnDrag',\n 'minZoom', 'maxZoom', 'defaultViewport', 'translateExtent', 'preventScrolling',\n 'nodeExtent', 'defaultMarkerColor', 'zoomOnScroll', 'zoomOnPinch', 'panOnScroll',\n 'panOnScrollSpeed', 'panOnScrollMode', 'zoomOnDoubleClick', 'edgeUpdaterRadius',\n 'noDragClassName', 'noWheelClassName', 'noPanClassName', 'fitView', 'fitViewOptions',\n 'connectOnClick', 'attributionPosition', 'proOptions', 'elevateNodesOnSelect',\n 'elevateEdgesOnSelect', 'disableKeyboardA11y', 'autoPanOnNodeDrag', 'autoPanOnConnect',\n 'connectionRadius',\n 'backgroundVariant', 'backgroundGap', 'backgroundColor', 'backgroundSize',\n 'showBackground', 'showMiniMap', 'showControls',\n 'showCoordinateLabels', 'coordinateLabelInterval'\n ],\n outputs: [\n 'onNodeClick', 'onNodeDoubleClick', 'onNodeMouseEnter', 'onNodeMouseMove',\n 'onNodeMouseLeave', 'onNodeContextMenu', 'onNodeDragStart', 'onNodeDrag',\n 'onNodeDragStop', 'onEdgeClick', 'onEdgeUpdate', 'onEdgeContextMenu',\n 'onEdgeMouseEnter', 'onEdgeMouseMove', 'onEdgeMouseLeave', 'onEdgeDoubleClick',\n 'onEdgeUpdateStart', 'onEdgeUpdateEnd', 'onNodesChange', 'onEdgesChange',\n 'onNodesDelete', 'onEdgesDelete', 'onSelectionDragStart', 'onSelectionDrag',\n 'onSelectionDragStop', 'onSelectionStart', 'onSelectionEnd', 'onSelectionContextMenu',\n 'onConnect', 'onConnectStart', 'onConnectEnd', 'onClickConnectStart',\n 'onClickConnectEnd', 'onDragOver', 'onDrop', 'onInit', 'onMove', 'onMoveStart',\n 'onMoveEnd', 'onSelectionChange', 'onPaneScroll', 'onPaneClick', 'onPaneContextMenu',\n 'onPaneMouseEnter', 'onPaneMouseMove', 'onPaneMouseLeave', 'onError', 'onNodeResizeEnd'\n ]\n }\n ]\n})\nexport class ReactFlowComponent extends NgAtomicComponent {\n protected readonly store = inject(ReactFlowComponentStore);\n protected readonly el = inject(ElementRef<HTMLElement>);\n private readonly vcr = inject(ViewContainerRef);\n\n private _root!: Root;\n private _nodeTypesCache: any = {};\n private _transitionTimer: ReturnType<typeof setTimeout> | null = null;\n private _prevNodePositions: string | null = null;\n private contentNodeTemplates = contentChildren<FlowNodeDirective>(FlowNodeDirective);\n private _touchCleanup: (() => void) | null = null;\n private _ancestorScrollCleanup: (() => void) | null = null;\n /**\n * PR-G fix: drag end 直後の server-driven snap back を react flow internal state に強制反映する用。\n * effect 内で常時 setNodes 呼ぶと updateNodeDimensions chain で NG0103 大量発生するため、\n * onNodeDragStop event hook で drag 完了 800ms 後に one-shot で呼ぶ局所化。\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _instance: any = null;\n private _dragEndSnapBackTimer: ReturnType<typeof setTimeout> | null = null;\n\n readonly enableTouchPassthrough = input(false);\n\n /** Pre-computed React props — signal依存を分離してrender()を軽量化 */\n private readonly reactFlowProps = computed(() => ({\n ...Object.entries(this.store)\n .filter(([key, value]) => !key.startsWith('on') && typeof value === 'function' && key !== 'nodeTypes' && key !== 'nodeTemplates')\n .reduce((acc, [key, getter]) => {\n acc[key] = (getter as any)();\n return acc;\n }, {} as Record<string, any>),\n nodeTypes: this.nodeTypes(),\n ...Object.entries(this.store)\n .filter(([key, value]) => key.startsWith('on') && value && typeof value.emit === 'function')\n .reduce((handlers, [eventName, output]) => {\n handlers[eventName] = (...args: any[]) => {\n const emitValue = eventName === 'onError' ? args[0] : args;\n output.emit(emitValue);\n };\n return handlers;\n }, {} as Record<string, (...args: any[]) => void>)\n }));\n\n constructor() {\n super();\n effect(() => this.render());\n effect(() => this.applyTransitionClass()); // DOM操作をrender()ホットパスから分離\n effect(() => {\n if (this.enableTouchPassthrough()) {\n this.setupTouchPassthrough();\n } else {\n this.cleanupTouchPassthrough();\n }\n });\n\n // PR-G fix: onInit event で react flow instance を取得して保持。\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.store.onInit?.subscribe((args: any) => {\n this._instance = Array.isArray(args) ? args[0] : args;\n });\n\n // PR-G fix: drag end 後 800ms に server-driven snap back を強制反映 (one-shot)。\n // 副作用を drag end 直後の局所範囲のみに限定し、 effect 常時 setNodes による\n // NG0103 (updateNodeDimensions → output emit chain → CD cycle 中 signal 変化) を回避。\n this.store.onNodeDragStop?.subscribe(() => {\n if (this._dragEndSnapBackTimer) clearTimeout(this._dragEndSnapBackTimer);\n this._dragEndSnapBackTimer = setTimeout(() => {\n const nodes = this.store.nodes?.();\n if (this._instance && nodes && Array.isArray(nodes) && nodes.length > 0) {\n this._instance.setNodes(nodes);\n }\n this._dragEndSnapBackTimer = null;\n }, 800);\n });\n }\n\n ngOnInit() {\n this._root = createRoot(this.el.nativeElement);\n this.lockAncestorScroll();\n }\n\n ngOnDestroy() {\n if (this._dragEndSnapBackTimer) clearTimeout(this._dragEndSnapBackTimer);\n this._root.unmount();\n this.cleanupTouchPassthrough();\n this._ancestorScrollCleanup?.();\n }\n\n private setupTouchPassthrough() {\n this.cleanupTouchPassthrough();\n const el = this.el.nativeElement;\n el.classList.add('touch-mode');\n\n let startX = 0, startY = 0, startTime = 0;\n\n const onTouchStart = (e: TouchEvent) => {\n if (e.touches.length === 1) {\n startX = e.touches[0].clientX;\n startY = e.touches[0].clientY;\n startTime = Date.now();\n }\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n if (e.changedTouches.length !== 1 || e.touches.length !== 0) return;\n const touch = e.changedTouches[0];\n const dx = Math.abs(touch.clientX - startX);\n const dy = Math.abs(touch.clientY - startY);\n if (Date.now() - startTime < 300 && dx < 10 && dy < 10) {\n this.emitTapAsNodeClick(touch.clientX, touch.clientY);\n }\n };\n\n el.addEventListener('touchstart', onTouchStart, { passive: true });\n el.addEventListener('touchend', onTouchEnd, { passive: true });\n this._touchCleanup = () => {\n el.classList.remove('touch-mode');\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n };\n }\n\n private emitTapAsNodeClick(clientX: number, clientY: number) {\n const el = document.elementFromPoint(clientX, clientY);\n const nodeEl = el?.closest('.react-flow__node');\n if (!nodeEl) return;\n const nodeId = nodeEl.getAttribute('data-id');\n if (!nodeId) return;\n const node = (this.store.nodes?.() as any[])?.find((n: any) => n.id === nodeId);\n if (node) {\n this.store.onNodeClick?.emit([new MouseEvent('click', { clientX, clientY }), node]);\n }\n }\n\n /**\n * 祖先要素のスクロールをロックする。\n * overflow:clip は .react-flow 自体のスクロールを防ぐが、\n * 祖先のスクロールコンテナ(例: ScrollFrame の .contents)には効かない。\n * ノード内 input 入力時のブラウザ自動スクロールを防ぐため、\n * 全祖先の scroll イベントを監視して即座にリセットする。\n */\n private lockAncestorScroll() {\n const cleanups: (() => void)[] = [];\n let parent: HTMLElement | null = this.el.nativeElement.parentElement;\n while (parent) {\n const el = parent;\n const onScroll = () => { el.scrollTop = 0; el.scrollLeft = 0; };\n el.addEventListener('scroll', onScroll);\n cleanups.push(() => el.removeEventListener('scroll', onScroll));\n parent = parent.parentElement;\n }\n this._ancestorScrollCleanup = () => cleanups.forEach(fn => fn());\n }\n\n private cleanupTouchPassthrough() {\n this._touchCleanup?.();\n this._touchCleanup = null;\n }\n\n readonly nodeTypes = computed(() => {\n const templates = this.contentNodeTemplates();\n\n const nodeTypes: any = {};\n\n if (templates) {\n templates.forEach((template) => {\n if (!this._nodeTypesCache[template.type]) {\n // onNodeResizeEndコールバックを渡す\n this._nodeTypesCache[template.type] = createTemplateNodeComponent(\n template.template,\n this.vcr,\n (nodeId: string, width: number, height: number) => {\n this.store.onNodeResizeEnd?.emit({ nodeId, width, height });\n }\n );\n }\n nodeTypes[template.type] = this._nodeTypesCache[template.type];\n });\n }\n\n return nodeTypes;\n });\n\n private applyTransitionClass() {\n const nodes = this.store.nodes?.() as any[];\n const positionKey = nodes?.map(n => `${n.id}:${n.position?.x},${n.position?.y}:${n.style?.width},${n.style?.height}`).join('|') ?? '';\n\n if (this._prevNodePositions !== null && this._prevNodePositions !== positionKey) {\n // 複数ノードの位置が一括で変わった場合のみtransitionを適用(autolayout検知)\n const prevPositions = this._prevNodePositions.split('|');\n const currPositions = positionKey.split('|');\n const changedCount = prevPositions.filter((p, i) => p !== currPositions[i]).length;\n\n if (changedCount >= 2) {\n const nodeEls = this.el.nativeElement.querySelectorAll('.react-flow__node');\n nodeEls.forEach((el: Element) => el.classList.add('transitioning'));\n\n if (this._transitionTimer) clearTimeout(this._transitionTimer);\n this._transitionTimer = setTimeout(() => {\n nodeEls.forEach((el: Element) => el.classList.remove('transitioning'));\n this._transitionTimer = null;\n }, 350);\n }\n }\n this._prevNodePositions = positionKey;\n }\n\n private render() {\n this._root.render(React.createElement(ReactFlowWrapper, {\n props: this.reactFlowProps(),\n }));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["React","GroupNode","i1.ReactFlowComponentStore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xxmachina-components-extras-flow.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/memo-compare.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/visible-nodes-reporter.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.store.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/build-output-handlers.helper.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/template-node.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/flow-node.directive.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.component.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/xxmachina-components-extras-flow.ts"],"sourcesContent":["\nexport interface MemoCompareProps {\n nodes?: unknown;\n edges?: unknown;\n panOnDrag?: boolean | number[];\n nodesDraggable?: boolean;\n elementsSelectable?: boolean;\n backgroundVariant?: unknown;\n backgroundGap?: unknown;\n backgroundColor?: unknown;\n showBackground?: unknown;\n showMiniMap?: unknown;\n showControls?: unknown;\n showCoordinateLabels?: unknown;\n coordinateLabelInterval?: unknown;\n}\n\nexport function arePropsEqual(\n prev: { props: MemoCompareProps },\n next: { props: MemoCompareProps },\n): boolean {\n return (\n prev.props.nodes === next.props.nodes &&\n prev.props.edges === next.props.edges &&\n prev.props.panOnDrag === next.props.panOnDrag &&\n prev.props.nodesDraggable === next.props.nodesDraggable &&\n prev.props.elementsSelectable === next.props.elementsSelectable &&\n prev.props.backgroundVariant === next.props.backgroundVariant &&\n prev.props.backgroundGap === next.props.backgroundGap &&\n prev.props.backgroundColor === next.props.backgroundColor &&\n prev.props.showBackground === next.props.showBackground &&\n prev.props.showMiniMap === next.props.showMiniMap &&\n prev.props.showControls === next.props.showControls &&\n prev.props.showCoordinateLabels === next.props.showCoordinateLabels &&\n prev.props.coordinateLabelInterval === next.props.coordinateLabelInterval\n );\n}\n","import { useEffect, useRef } from 'react';\nimport { useStore } from 'reactflow';\n\n\ninterface VisibleNodesReporterProps {\n\t\n\tmarginPx: number;\n\tonChange: (ids: string[]) => void;\n}\n\nexport const VisibleNodesReporter = ({ marginPx, onChange }: VisibleNodesReporterProps) => {\n\t\n\tconst visibleIdsKey = useStore((s) => {\n\t\tconst [tx, ty, zoom] = s.transform;\n\t\tconst rect = {\n\t\t\tx: (-marginPx - tx) / zoom,\n\t\t\ty: (-marginPx - ty) / zoom,\n\t\t\twidth: (s.width + marginPx * 2) / zoom,\n\t\t\theight: (s.height + marginPx * 2) / zoom,\n\t\t};\n\t\tconst ids: string[] = [];\n\t\ts.nodeInternals.forEach((n) => {\n\t\t\tconst pos = n.positionAbsolute ?? n.position;\n\t\t\tconst w = n.width;\n\t\t\tconst h = n.height;\n\t\t\tconst notInitialized = w == null || h == null;\n\t\t\tconst overlapX = Math.min(pos.x + (w ?? 0), rect.x + rect.width) - Math.max(pos.x, rect.x);\n\t\t\tconst overlapY = Math.min(pos.y + (h ?? 0), rect.y + rect.height) - Math.max(pos.y, rect.y);\n\t\t\tif (notInitialized || n.dragging || (overlapX > 0 && overlapY > 0)) {\n\t\t\t\tids.push(n.id);\n\t\t\t}\n\t\t});\n\t\treturn ids.sort().join(' ');\n\t});\n\n\t\n\tconst onChangeRef = useRef(onChange);\n\tonChangeRef.current = onChange;\n\n\tuseEffect(() => {\n\t\tonChangeRef.current(visibleIdsKey ? visibleIdsKey.split(' ') : []);\n\t}, [visibleIdsKey]);\n\n\treturn null;\n};\n","import * as React from 'react';\nimport { FunctionComponent, ReactEventHandler, useMemo } from 'react';\nimport { arePropsEqual } from './memo-compare';\nimport { VisibleNodesReporter } from './visible-nodes-reporter';\nimport ReactFlow, {\n\tMiniMap,\n\tControls,\n\tBackground,\n\tBackgroundVariant,\n\tNode,\n\tEdge,\n\tConnectionLineComponent,\n\tConnectionLineType,\n\tConnectionMode,\n\tCoordinateExtent,\n\tDefaultEdgeOptions,\n\tEdgeMouseHandler,\n\tEdgeTypes,\n\tFitViewOptions,\n\tHandleType,\n\tKeyCode,\n\tNodeDragHandler,\n\tNodeMouseHandler,\n\tNodeOrigin,\n\tNodeTypes,\n\tOnConnect,\n\tOnConnectEnd,\n\tOnConnectStart,\n\tOnEdgesChange,\n\tOnEdgesDelete,\n\tOnEdgeUpdateFunc,\n\tOnError,\n\tOnInit,\n\tOnMove,\n\tOnNodesChange,\n\tOnNodesDelete,\n\tOnSelectionChangeFunc,\n\tPanelPosition,\n\tPanOnScrollMode,\n\tProOptions,\n\tSelectionDragHandler,\n\tSelectionMode,\n\tViewport,\n\tReactFlowProvider,\n\tuseViewport,\n} from 'reactflow';\n\n\ninterface CoordinateLabelsProps {\n\tgap: number;\n\tinterval: number;\n}\n\nconst CoordinateLabels: FunctionComponent<CoordinateLabelsProps> = ({ gap, interval }) => {\n\tconst { x, y, zoom } = useViewport();\n\n\tconst labels = useMemo(() => {\n\t\tconst result: { key: string; label: string; left: number; top: number }[] = [];\n\t\t\n\t\tconst viewWidth = 2000 / zoom;\n\t\tconst viewHeight = 1500 / zoom;\n\t\tconst startX = Math.floor(-x / zoom / gap / interval) * interval;\n\t\tconst startY = Math.floor(-y / zoom / gap / interval) * interval;\n\t\tconst endX = Math.ceil((-x / zoom + viewWidth) / gap / interval) * interval;\n\t\tconst endY = Math.ceil((-y / zoom + viewHeight) / gap / interval) * interval;\n\n\t\tfor (let gx = startX; gx <= endX; gx += interval) {\n\t\t\tfor (let gy = startY; gy <= endY; gy += interval) {\n\t\t\t\tconst pixelX = gx * gap * zoom + x;\n\t\t\t\tconst pixelY = gy * gap * zoom + y;\n\t\t\t\tresult.push({\n\t\t\t\t\tkey: `${gx},${gy}`,\n\t\t\t\t\tlabel: `${gx},${gy}`,\n\t\t\t\t\tleft: pixelX,\n\t\t\t\t\ttop: pixelY,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}, [x, y, zoom, gap, interval]);\n\n\treturn React.createElement('div', {\n\t\tstyle: {\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tpointerEvents: 'none',\n\t\t\toverflow: 'hidden',\n\t\t}\n\t}, labels.map(({ key, label, left, top }) =>\n\t\tReact.createElement('span', {\n\t\t\tkey,\n\t\t\tstyle: {\n\t\t\t\tposition: 'absolute',\n\t\t\t\tleft: `${left}px`,\n\t\t\t\ttop: `${top}px`,\n\t\t\t\tfontSize: '9px',\n\t\t\t\tfontFamily: \"'SF Mono', Monaco, monospace\",\n\t\t\t\tcolor: 'rgba(100, 100, 100, 0.6)',\n\t\t\t\ttransform: 'translate(2px, 2px)',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t}\n\t\t}, label)\n\t));\n};\n\nexport interface IReactFlowProps {\n\tprops: {\n\t\tnodes?: Node<any, string | undefined>[] | undefined;\n\t\tedges?: Edge<any>[] | undefined;\n\t\tdefaultNodes?: Node<any, string | undefined>[] | undefined;\n\t\tdefaultEdges?: Edge<any>[] | undefined;\n\t\tdefaultEdgeOptions?: DefaultEdgeOptions | undefined;\n\t\t\n\t\tbackgroundVariant?: BackgroundVariant | undefined;\n\t\tbackgroundGap?: number | [number, number] | undefined;\n\t\tbackgroundColor?: string | undefined;\n\t\tbackgroundSize?: number | undefined;\n\t\tshowBackground?: boolean | undefined;\n\t\tshowMiniMap?: boolean | undefined;\n\t\tshowControls?: boolean | undefined;\n\t\tshowCoordinateLabels?: boolean | undefined;\n\t\tcoordinateLabelInterval?: number | undefined;\n\t\tonNodeClick?: NodeMouseHandler | undefined;\n\t\tonNodeDoubleClick?: NodeMouseHandler | undefined;\n\t\tonNodeMouseEnter?: NodeMouseHandler | undefined;\n\t\tonNodeMouseMove?: NodeMouseHandler | undefined;\n\t\tonNodeMouseLeave?: NodeMouseHandler | undefined;\n\t\tonNodeContextMenu?: NodeMouseHandler | undefined;\n\t\tonNodeDragStart?: NodeDragHandler | undefined;\n\t\tonNodeDrag?: NodeDragHandler | undefined;\n\t\tonNodeDragStop?: NodeDragHandler | undefined;\n\t\tonEdgeClick?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, node: Edge<any>) => void) | undefined;\n\t\tonEdgeUpdate?: OnEdgeUpdateFunc<any> | undefined;\n\t\tonEdgeContextMenu?: EdgeMouseHandler | undefined;\n\t\tonEdgeMouseEnter?: EdgeMouseHandler | undefined;\n\t\tonEdgeMouseMove?: EdgeMouseHandler | undefined;\n\t\tonEdgeMouseLeave?: EdgeMouseHandler | undefined;\n\t\tonEdgeDoubleClick?: EdgeMouseHandler | undefined;\n\t\tonEdgeUpdateStart?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, edge: Edge<any>, handleType: HandleType) => void) | undefined;\n\t\tonEdgeUpdateEnd?: ((event: MouseEvent | TouchEvent, edge: Edge<any>, handleType: HandleType) => void) | undefined;\n\t\tonNodesChange?: OnNodesChange | undefined;\n\t\tonEdgesChange?: OnEdgesChange | undefined;\n\t\tonNodesDelete?: OnNodesDelete | undefined;\n\t\tonEdgesDelete?: OnEdgesDelete | undefined;\n\t\tonSelectionDragStart?: SelectionDragHandler | undefined;\n\t\tonSelectionDrag?: SelectionDragHandler | undefined;\n\t\tonSelectionDragStop?: SelectionDragHandler | undefined;\n\t\tonSelectionStart?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonSelectionEnd?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonSelectionContextMenu?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, nodes: Node<any, string | undefined>[]) => void) | undefined;\n\t\tonConnect?: OnConnect | undefined;\n\t\tonConnectStart?: OnConnectStart | undefined;\n\t\tonConnectEnd?: OnConnectEnd | undefined;\n\t\tonClickConnectStart?: OnConnectStart | undefined;\n\t\tonClickConnectEnd?: OnConnectEnd | undefined;\n\t\tonDragOver?: ((event: import(\"react\").DragEvent<Element>) => void) | undefined;\n\t\tonDrop?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>, type: string) => void) | undefined;\n\t\tonInit?: OnInit<any, any> | undefined;\n\t\tonMove?: OnMove | undefined;\n\t\tonMoveStart?: OnMove | undefined;\n\t\tonMoveEnd?: OnMove | undefined;\n\t\tonSelectionChange?: OnSelectionChangeFunc | undefined;\n\t\tonPaneScroll?: ((event?: import(\"react\").WheelEvent<Element> | undefined) => void) | undefined;\n\t\tonPaneClick?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneContextMenu?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneMouseEnter?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneMouseMove?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tonPaneMouseLeave?: ((event: import(\"react\").MouseEvent<Element, MouseEvent>) => void) | undefined;\n\t\tnodeTypes?: NodeTypes | undefined;\n\t\tedgeTypes?: EdgeTypes | undefined;\n\t\tconnectionLineType?: ConnectionLineType | undefined;\n\t\tconnectionLineStyle?: React.CSSProperties | undefined;\n\t\tconnectionLineComponent?: ConnectionLineComponent | undefined;\n\t\tconnectionLineContainerStyle?: React.CSSProperties | undefined;\n\t\tconnectionMode?: ConnectionMode | undefined;\n\t\tdeleteKeyCode?: KeyCode | null | undefined;\n\t\tselectionKeyCode?: KeyCode | null | undefined;\n\t\tselectionOnDrag?: boolean | undefined;\n\t\tselectionMode?: SelectionMode | undefined;\n\t\tpanActivationKeyCode?: KeyCode | null | undefined;\n\t\tmultiSelectionKeyCode?: KeyCode | null | undefined;\n\t\tzoomActivationKeyCode?: KeyCode | null | undefined;\n\t\tsnapToGrid?: boolean | undefined;\n\t\tsnapGrid?: [number, number] | undefined;\n\t\tonlyRenderVisibleElements?: boolean | undefined;\n\t\tnodesDraggable?: boolean | undefined;\n\t\tnodesConnectable?: boolean | undefined;\n\t\tnodesFocusable?: boolean | undefined;\n\t\tnodeOrigin?: NodeOrigin | undefined;\n\t\tedgesFocusable?: boolean | undefined;\n\t\telementsSelectable?: boolean | undefined;\n\t\tselectNodesOnDrag?: boolean | undefined;\n\t\tpanOnDrag?: boolean | number[] | undefined;\n\t\tminZoom?: number | undefined;\n\t\tmaxZoom?: number | undefined;\n\t\tdefaultViewport?: Viewport | undefined;\n\t\ttranslateExtent?: CoordinateExtent | undefined;\n\t\tpreventScrolling?: boolean | undefined;\n\t\tnodeExtent?: CoordinateExtent | undefined;\n\t\tdefaultMarkerColor?: string | undefined;\n\t\tzoomOnScroll?: boolean | undefined;\n\t\tzoomOnPinch?: boolean | undefined;\n\t\tpanOnScroll?: boolean | undefined;\n\t\tpanOnScrollSpeed?: number | undefined;\n\t\tpanOnScrollMode?: PanOnScrollMode | undefined;\n\t\tzoomOnDoubleClick?: boolean | undefined;\n\t\tedgeUpdaterRadius?: number | undefined;\n\t\tnoDragClassName?: string | undefined;\n\t\tnoWheelClassName?: string | undefined;\n\t\tnoPanClassName?: string | undefined;\n\t\tfitView?: boolean | undefined;\n\t\tfitViewOptions?: FitViewOptions | undefined;\n\t\tconnectOnClick?: boolean | undefined;\n\t\tattributionPosition?: PanelPosition | undefined;\n\t\tproOptions?: ProOptions | undefined;\n\t\televateNodesOnSelect?: boolean | undefined;\n\t\televateEdgesOnSelect?: boolean | undefined;\n\t\tdisableKeyboardA11y?: boolean | undefined;\n\t\tautoPanOnNodeDrag?: boolean | undefined;\n\t\tautoPanOnConnect?: boolean | undefined;\n\t\tconnectionRadius?: number | undefined;\n\t\tonError?: ReactEventHandler<HTMLDivElement> & OnError | undefined;\n\t}\n}\n\nconst ReactFlowWrapperComponent: FunctionComponent<IReactFlowProps> = ({ props }) => {\n\tconst minimapStyle = {\n\t\theight: 120,\n\t};\n\t\n\t\n\tconst onVisibleNodesChange = (props as Record<string, unknown>).onVisibleNodesChange as\n\t\t| ((ids: string[]) => void)\n\t\t| undefined;\n\n\tconst mergedProps = {\n\t\t...props,\n\t\tnodesDraggable: props.nodesDraggable !== false,\n\t\tnodesConnectable: props.nodesConnectable !== false,\n\t\telementsSelectable: props.elementsSelectable !== false,\n\t\tproOptions: { hideAttribution: true, ...props.proOptions },\n\t};\n\tdelete (mergedProps as Record<string, unknown>).onVisibleNodesChange;\n\n\t\n\tconst showBackground = props.showBackground !== false;\n\tconst backgroundVariant = props.backgroundVariant ?? BackgroundVariant.Dots;\n\tconst backgroundGap = props.backgroundGap ?? 16;\n\tconst backgroundSize = props.backgroundSize ?? 1;\n\tconst backgroundColor = props.backgroundColor;\n\n\t\n\tconst showMiniMap = props.showMiniMap === true;\n\tconst showControls = props.showControls === true;\n\tconst showCoordinateLabels = props.showCoordinateLabels === true;\n\tconst coordinateLabelInterval = props.coordinateLabelInterval ?? 1;\n\n\tconst children: React.ReactElement[] = [];\n\tif (showMiniMap) {\n\t\tchildren.push(React.createElement(MiniMap, { key: 'minimap', style: minimapStyle, zoomable: true, pannable: true }));\n\t}\n\tif (showControls) {\n\t\tchildren.push(React.createElement(Controls, { key: 'controls' }));\n\t}\n\tif (showBackground) {\n\t\tconst bgProps: any = { key: 'background', variant: backgroundVariant, gap: backgroundGap, size: backgroundSize };\n\t\tif (backgroundColor) {\n\t\t\tbgProps.color = backgroundColor;\n\t\t}\n\t\tchildren.push(React.createElement(Background, bgProps));\n\t}\n\tif (showCoordinateLabels) {\n\t\tconst gap = typeof backgroundGap === 'number' ? backgroundGap : backgroundGap[0];\n\t\tchildren.push(React.createElement(CoordinateLabels, { key: 'coordinates', gap, interval: coordinateLabelInterval }));\n\t}\n\tif (onVisibleNodesChange) {\n\t\tchildren.push(React.createElement(VisibleNodesReporter, {\n\t\t\tkey: 'visible-nodes-reporter',\n\t\t\tmarginPx: 200,\n\t\t\tonChange: onVisibleNodesChange,\n\t\t}));\n\t}\n\n\treturn React.createElement(ReactFlowProvider, null,\n\t\tReact.createElement(ReactFlow, mergedProps as any, ...children)\n\t);\n};\n\n\n\nexport const ReactFlowWrapper = React.memo(\n\tReactFlowWrapperComponent,\n\tarePropsEqual\n);","import { Directive, input, output, TemplateRef } from '@angular/core';\nimport { Node, Edge, NodeChange, EdgeChange, Connection, ReactFlowInstance, OnConnectStartParams, OnSelectionChangeParams, HandleType, NodeTypes, EdgeTypes, ConnectionLineType, ConnectionLineComponent, ConnectionMode, KeyCode, NodeOrigin, Viewport, CoordinateExtent, PanOnScrollMode, FitViewOptions, PanelPosition, ProOptions, OnError, DefaultEdgeOptions, SelectionMode, BackgroundVariant } from 'reactflow';\nimport * as React from 'react';\n\nexport type { BackgroundVariant } from 'reactflow';\n\n@Directive({ standalone: true })\nexport class ReactFlowComponentStore {\n \n readonly nodes = input<Node<any, string | undefined>[] | undefined>();\n readonly edges = input<Edge<any>[] | undefined>();\n readonly defaultNodes = input<Node<any, string | undefined>[] | undefined>();\n readonly defaultEdges = input<Edge<any>[] | undefined>();\n readonly defaultEdgeOptions = input<DefaultEdgeOptions | undefined>();\n\n \n readonly nodeTemplates = input<Record<string, TemplateRef<any>> | undefined>();\n \n \n readonly nodeTypes = input<NodeTypes | undefined>();\n readonly edgeTypes = input<EdgeTypes | undefined>();\n readonly connectionLineType = input<ConnectionLineType | undefined>();\n readonly connectionLineStyle = input<React.CSSProperties | undefined>();\n readonly connectionLineComponent = input<ConnectionLineComponent | undefined>();\n readonly connectionLineContainerStyle = input<React.CSSProperties | undefined>();\n readonly connectionMode = input<ConnectionMode | undefined>();\n readonly deleteKeyCode = input<KeyCode | null | undefined>();\n readonly selectionKeyCode = input<KeyCode | null | undefined>();\n readonly selectionOnDrag = input<boolean | undefined>();\n readonly selectionMode = input<SelectionMode | undefined>();\n readonly panActivationKeyCode = input<KeyCode | null | undefined>();\n readonly multiSelectionKeyCode = input<KeyCode | null | undefined>();\n readonly zoomActivationKeyCode = input<KeyCode | null | undefined>();\n readonly snapToGrid = input<boolean | undefined>();\n readonly snapGrid = input<[number, number] | undefined>();\n readonly onlyRenderVisibleElements = input<boolean | undefined>();\n readonly nodesDraggable = input<boolean | undefined>();\n readonly nodesConnectable = input<boolean | undefined>();\n readonly nodesFocusable = input<boolean | undefined>();\n readonly nodeOrigin = input<NodeOrigin | undefined>();\n readonly edgesFocusable = input<boolean | undefined>();\n readonly initNodeOrigin = input<NodeOrigin | undefined>();\n readonly elementsSelectable = input<boolean | undefined>();\n readonly selectNodesOnDrag = input<boolean | undefined>();\n readonly panOnDrag = input<boolean | number[] | undefined>();\n readonly minZoom = input<number | undefined>();\n readonly maxZoom = input<number | undefined>();\n readonly defaultViewport = input<Viewport | undefined>();\n readonly translateExtent = input<CoordinateExtent | undefined>();\n readonly preventScrolling = input<boolean | undefined>();\n readonly nodeExtent = input<CoordinateExtent | undefined>();\n readonly defaultMarkerColor = input<string | undefined>();\n readonly zoomOnScroll = input<boolean | undefined>();\n readonly zoomOnPinch = input<boolean | undefined>();\n readonly panOnScroll = input<boolean | undefined>();\n readonly panOnScrollSpeed = input<number | undefined>();\n readonly panOnScrollMode = input<PanOnScrollMode | undefined>();\n readonly zoomOnDoubleClick = input<boolean | undefined>();\n readonly edgeUpdaterRadius = input<number | undefined>();\n readonly noDragClassName = input<string | undefined>();\n readonly noWheelClassName = input<string | undefined>();\n readonly noPanClassName = input<string | undefined>();\n readonly fitView = input<boolean | undefined>();\n readonly fitViewOptions = input<FitViewOptions | undefined>();\n readonly connectOnClick = input<boolean | undefined>();\n readonly attributionPosition = input<PanelPosition | undefined>();\n readonly proOptions = input<ProOptions | undefined>();\n readonly elevateNodesOnSelect = input<boolean | undefined>();\n readonly elevateEdgesOnSelect = input<boolean | undefined>();\n readonly disableKeyboardA11y = input<boolean | undefined>();\n readonly autoPanOnNodeDrag = input<boolean | undefined>();\n readonly autoPanOnConnect = input<boolean | undefined>();\n readonly connectionRadius = input<number | undefined>();\n\n \n readonly backgroundVariant = input<BackgroundVariant | undefined>();\n readonly backgroundGap = input<number | [number, number] | undefined>();\n readonly backgroundColor = input<string | undefined>();\n readonly backgroundSize = input<number | undefined>();\n readonly showBackground = input<boolean | undefined>();\n readonly showMiniMap = input<boolean | undefined>();\n readonly showControls = input<boolean | undefined>();\n readonly showCoordinateLabels = input<boolean | undefined>();\n readonly coordinateLabelInterval = input<number | undefined>();\n\n \n readonly onNodeClick = output<[MouseEvent, Node]>();\n readonly onNodeDoubleClick = output<[MouseEvent, Node]>();\n readonly onNodeMouseEnter = output<[MouseEvent, Node]>();\n readonly onNodeMouseMove = output<[MouseEvent, Node]>();\n readonly onNodeMouseLeave = output<[MouseEvent, Node]>();\n readonly onNodeContextMenu = output<[MouseEvent, Node]>();\n readonly onNodeDragStart = output<[MouseEvent, Node, Node[]]>();\n readonly onNodeDrag = output<[MouseEvent, Node, Node[]]>();\n readonly onNodeDragStop = output<[MouseEvent, Node, Node[]]>();\n readonly onEdgeClick = output<[MouseEvent, Node]>();\n readonly onEdgeUpdate = output<[any, Connection]>();\n readonly onEdgeContextMenu = output<[MouseEvent, Edge]>();\n readonly onEdgeMouseEnter = output<[MouseEvent, Edge]>();\n readonly onEdgeMouseMove = output<[MouseEvent, Edge]>();\n readonly onEdgeMouseLeave = output<[MouseEvent, Edge]>();\n readonly onEdgeDoubleClick = output<[MouseEvent, Edge]>();\n readonly onEdgeUpdateStart = output<[MouseEvent, Edge<any>, HandleType]>();\n readonly onEdgeUpdateEnd = output<[MouseEvent, Edge<any>, HandleType]>();\n readonly onNodesChange = output<[NodeChange[]]>();\n readonly onEdgesChange = output<[EdgeChange[]]>();\n readonly onNodesDelete = output<[Node[]]>();\n readonly onEdgesDelete = output<[Edge[]]>();\n readonly onSelectionDragStart = output<[MouseEvent, Node[]]>();\n readonly onSelectionDrag = output<[MouseEvent, Node[]]>();\n readonly onSelectionDragStop = output<[MouseEvent, Node[]]>();\n readonly onSelectionStart = output<[MouseEvent]>();\n readonly onSelectionEnd = output<[MouseEvent]>();\n readonly onSelectionContextMenu = output<[MouseEvent, Node<any, string | undefined>[]]>();\n readonly onConnect = output<[Connection]>();\n readonly onConnectStart = output<[MouseEvent, OnConnectStartParams]>();\n readonly onConnectEnd = output<[MouseEvent]>();\n readonly onClickConnectStart = output<[MouseEvent, OnConnectStartParams]>();\n readonly onClickConnectEnd = output<[MouseEvent]>();\n readonly onDragOver = output<[MouseEvent]>();\n readonly onDrop = output<[MouseEvent, string]>();\n readonly onInit = output<[ReactFlowInstance<any, any>]>();\n readonly onMove = output<[MouseEvent, Viewport]>();\n readonly onMoveStart = output<[MouseEvent, Viewport]>();\n readonly onMoveEnd = output<[MouseEvent, Viewport]>();\n readonly onSelectionChange = output<[OnSelectionChangeParams]>();\n readonly onPaneScroll = output<[WheelEvent]>();\n readonly onPaneClick = output<[MouseEvent]>();\n readonly onPaneContextMenu = output<[MouseEvent]>();\n readonly onPaneMouseEnter = output<[MouseEvent]>();\n readonly onPaneMouseMove = output<[MouseEvent]>();\n readonly onPaneMouseLeave = output<[MouseEvent]>();\n readonly onError = output<OnError>();\n readonly onNodeResizeEnd = output<{ nodeId: string; width: number; height: number }>();\n \n readonly onVisibleNodesChange = output<[string[]]>();\n}","\n\ninterface OutputLike {\n emit: (value: unknown) => void;\n}\n\nfunction isOutputLike(value: unknown): value is OutputLike {\n return !!value && typeof (value as OutputLike).emit === 'function';\n}\n\nexport type OutputHandlerMap = Record<string, (...args: unknown[]) => void>;\n\n\nexport function buildOutputHandlers(store: object): OutputHandlerMap {\n const handlers: OutputHandlerMap = {};\n for (const [key, value] of Object.entries(store)) {\n if (!key.startsWith('on') || !isOutputLike(value)) continue;\n handlers[key] = (...args: unknown[]) => {\n value.emit(key === 'onError' ? args[0] : args);\n };\n }\n return handlers;\n}\n","import React, { memo, useEffect, useRef, useState } from 'react';\nimport { Handle, Position, NodeResizer } from 'reactflow';\nimport { TemplateRef, ViewContainerRef, EmbeddedViewRef } from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\ninterface TemplateNodeData {\n [key: string]: any;\n}\n\nexport function createTemplateNodeComponent(template: TemplateRef<any>, vcr: ViewContainerRef, onNodeResizeEnd?: (nodeId: string, width: number, height: number) => void, showHandles = true) {\n const TemplateNode = ({ data, selected, id }: { data: TemplateNodeData; selected?: boolean; id: string }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const viewRefRef = useRef<EmbeddedViewRef<any> | null>(null);\n \n \n \n const [resizeOverride, setResizeOverride] = useState<{ width: number; height: number } | null>(null);\n\n \n useEffect(() => {\n const viewRef = vcr.createEmbeddedView(template, {});\n viewRef.rootNodes.forEach(node => containerRef.current!.appendChild(node));\n viewRef.context = { $implicit: data, data };\n viewRefRef.current = viewRef;\n viewRef.markForCheck();\n\n return () => {\n if (viewRefRef.current) {\n viewRefRef.current.destroy();\n viewRefRef.current = null;\n }\n };\n }, []); \n\n \n useEffect(() => {\n if (viewRefRef.current) {\n viewRefRef.current.context = { $implicit: data, data };\n viewRefRef.current.markForCheck();\n }\n }, [data]);\n\n const handleResize = (_event: any, params: any) => {\n \n setResizeOverride({ width: params.width, height: params.height });\n };\n\n const handleResizeEnd = (_event: any, params: any) => {\n \n \n setResizeOverride(null);\n if (onNodeResizeEnd) {\n onNodeResizeEnd(id, params.width, params.height);\n }\n };\n\n \n const wrapperStyle: React.CSSProperties = resizeOverride\n ? { width: resizeOverride.width, height: resizeOverride.height }\n : { width: '100%', height: '100%' };\n\n return (\n <div ref={containerRef} style={wrapperStyle}>\n <NodeResizer\n minWidth={400}\n minHeight={300}\n isVisible={true}\n lineStyle={{ borderColor: 'transparent' }}\n handleStyle={{ opacity: 0 }}\n onResize={handleResize}\n onResizeEnd={handleResizeEnd}\n />\n <Handle type=\"target\" position={data.targetPosition ?? Position.Left} style={{ zIndex: 10, opacity: showHandles ? 1 : 0 }} />\n <Handle type=\"source\" position={data.sourcePosition ?? Position.Right} style={{ zIndex: 10, opacity: showHandles ? 1 : 0 }} />\n </div>\n );\n };\n\n \n \n return TemplateNode;\n}","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[flowNode]',\n standalone: true,\n})\nexport class FlowNodeDirective {\n @Input('flowNode') type!: string;\n \n constructor(public template: TemplateRef<any>) {}\n}","import { Component, ElementRef, computed, contentChildren, input, ViewContainerRef, ViewEncapsulation, effect, inject } from '@angular/core';\nimport { NgAtomicComponent } from '@ng-atomic/core';\nimport * as React from 'react';\nimport { createRoot, Root } from 'react-dom/client';\nimport { ReactFlowWrapper } from './react-flow';\nimport { ReactFlowComponentStore } from './react-flow.store';\nimport { buildOutputHandlers } from './build-output-handlers.helper';\nimport { createTemplateNodeComponent } from '../nodes';\nimport { FlowNodeDirective } from '../flow-node.directive';\n\n@Component({\n selector: 'machina-react-flow',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./react-flow.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: ReactFlowComponentStore,\n inputs: [\n 'nodes', 'edges', 'defaultNodes', 'defaultEdges', 'defaultEdgeOptions',\n 'nodeTemplates', 'nodeTypes', 'edgeTypes', 'connectionLineType', 'connectionLineStyle',\n 'connectionLineComponent', 'connectionLineContainerStyle', 'connectionMode',\n 'deleteKeyCode', 'selectionKeyCode', 'selectionOnDrag', 'selectionMode',\n 'panActivationKeyCode', 'multiSelectionKeyCode', 'zoomActivationKeyCode',\n 'snapToGrid', 'snapGrid', 'onlyRenderVisibleElements', 'nodesDraggable',\n 'nodesConnectable', 'nodesFocusable', 'nodeOrigin', 'edgesFocusable',\n 'initNodeOrigin', 'elementsSelectable', 'selectNodesOnDrag', 'panOnDrag',\n 'minZoom', 'maxZoom', 'defaultViewport', 'translateExtent', 'preventScrolling',\n 'nodeExtent', 'defaultMarkerColor', 'zoomOnScroll', 'zoomOnPinch', 'panOnScroll',\n 'panOnScrollSpeed', 'panOnScrollMode', 'zoomOnDoubleClick', 'edgeUpdaterRadius',\n 'noDragClassName', 'noWheelClassName', 'noPanClassName', 'fitView', 'fitViewOptions',\n 'connectOnClick', 'attributionPosition', 'proOptions', 'elevateNodesOnSelect',\n 'elevateEdgesOnSelect', 'disableKeyboardA11y', 'autoPanOnNodeDrag', 'autoPanOnConnect',\n 'connectionRadius',\n 'backgroundVariant', 'backgroundGap', 'backgroundColor', 'backgroundSize',\n 'showBackground', 'showMiniMap', 'showControls',\n 'showCoordinateLabels', 'coordinateLabelInterval'\n ],\n outputs: [\n 'onNodeClick', 'onNodeDoubleClick', 'onNodeMouseEnter', 'onNodeMouseMove',\n 'onNodeMouseLeave', 'onNodeContextMenu', 'onNodeDragStart', 'onNodeDrag',\n 'onNodeDragStop', 'onEdgeClick', 'onEdgeUpdate', 'onEdgeContextMenu',\n 'onEdgeMouseEnter', 'onEdgeMouseMove', 'onEdgeMouseLeave', 'onEdgeDoubleClick',\n 'onEdgeUpdateStart', 'onEdgeUpdateEnd', 'onNodesChange', 'onEdgesChange',\n 'onNodesDelete', 'onEdgesDelete', 'onSelectionDragStart', 'onSelectionDrag',\n 'onSelectionDragStop', 'onSelectionStart', 'onSelectionEnd', 'onSelectionContextMenu',\n 'onConnect', 'onConnectStart', 'onConnectEnd', 'onClickConnectStart',\n 'onClickConnectEnd', 'onDragOver', 'onDrop', 'onInit', 'onMove', 'onMoveStart',\n 'onMoveEnd', 'onSelectionChange', 'onPaneScroll', 'onPaneClick', 'onPaneContextMenu',\n 'onPaneMouseEnter', 'onPaneMouseMove', 'onPaneMouseLeave', 'onError', 'onNodeResizeEnd',\n 'onVisibleNodesChange'\n ]\n }\n ]\n})\nexport class ReactFlowComponent extends NgAtomicComponent {\n protected readonly store = inject(ReactFlowComponentStore);\n protected readonly el = inject(ElementRef<HTMLElement>);\n private readonly vcr = inject(ViewContainerRef);\n\n private _root!: Root;\n private _nodeTypesCache: any = {};\n private _transitionTimer: ReturnType<typeof setTimeout> | null = null;\n private _prevNodePositions: string | null = null;\n private contentNodeTemplates = contentChildren<FlowNodeDirective>(FlowNodeDirective);\n private _touchCleanup: (() => void) | null = null;\n private _ancestorScrollCleanup: (() => void) | null = null;\n \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _instance: any = null;\n private _dragEndSnapBackTimer: ReturnType<typeof setTimeout> | null = null;\n\n readonly enableTouchPassthrough = input(false);\n \n readonly handlesVisible = input(true);\n\n \n private readonly outputHandlers = buildOutputHandlers(this.store);\n\n \n private readonly reactFlowProps = computed(() => ({\n ...Object.entries(this.store)\n .filter(([key, value]) => !key.startsWith('on') && typeof value === 'function' && key !== 'nodeTypes' && key !== 'nodeTemplates')\n .reduce((acc, [key, getter]) => {\n acc[key] = (getter as any)();\n return acc;\n }, {} as Record<string, any>),\n nodeTypes: this.nodeTypes(),\n ...this.outputHandlers,\n }));\n\n constructor() {\n super();\n effect(() => this.render());\n effect(() => this.applyTransitionClass()); \n effect(() => {\n if (this.enableTouchPassthrough()) {\n this.setupTouchPassthrough();\n } else {\n this.cleanupTouchPassthrough();\n }\n });\n\n \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.store.onInit?.subscribe((args: any) => {\n this._instance = Array.isArray(args) ? args[0] : args;\n });\n\n \n \n \n this.store.onNodeDragStop?.subscribe(() => {\n if (this._dragEndSnapBackTimer) clearTimeout(this._dragEndSnapBackTimer);\n this._dragEndSnapBackTimer = setTimeout(() => {\n const nodes = this.store.nodes?.();\n if (this._instance && nodes && Array.isArray(nodes) && nodes.length > 0) {\n this._instance.setNodes(nodes);\n }\n this._dragEndSnapBackTimer = null;\n }, 800);\n });\n }\n\n ngOnInit() {\n this._root = createRoot(this.el.nativeElement);\n this.lockAncestorScroll();\n }\n\n ngOnDestroy() {\n if (this._dragEndSnapBackTimer) clearTimeout(this._dragEndSnapBackTimer);\n this._root.unmount();\n this.cleanupTouchPassthrough();\n this._ancestorScrollCleanup?.();\n }\n\n private setupTouchPassthrough() {\n this.cleanupTouchPassthrough();\n const el = this.el.nativeElement;\n el.classList.add('touch-mode');\n\n let startX = 0, startY = 0, startTime = 0;\n\n const onTouchStart = (e: TouchEvent) => {\n if (e.touches.length === 1) {\n startX = e.touches[0].clientX;\n startY = e.touches[0].clientY;\n startTime = Date.now();\n }\n };\n\n const onTouchEnd = (e: TouchEvent) => {\n if (e.changedTouches.length !== 1 || e.touches.length !== 0) return;\n const touch = e.changedTouches[0];\n const dx = Math.abs(touch.clientX - startX);\n const dy = Math.abs(touch.clientY - startY);\n if (Date.now() - startTime < 300 && dx < 10 && dy < 10) {\n this.emitTapAsNodeClick(touch.clientX, touch.clientY);\n }\n };\n\n el.addEventListener('touchstart', onTouchStart, { passive: true });\n el.addEventListener('touchend', onTouchEnd, { passive: true });\n this._touchCleanup = () => {\n el.classList.remove('touch-mode');\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n };\n }\n\n private emitTapAsNodeClick(clientX: number, clientY: number) {\n const el = document.elementFromPoint(clientX, clientY);\n const nodeEl = el?.closest('.react-flow__node');\n if (!nodeEl) return;\n const nodeId = nodeEl.getAttribute('data-id');\n if (!nodeId) return;\n const node = (this.store.nodes?.() as any[])?.find((n: any) => n.id === nodeId);\n if (node) {\n this.store.onNodeClick?.emit([new MouseEvent('click', { clientX, clientY }), node]);\n }\n }\n\n \n private lockAncestorScroll() {\n const cleanups: (() => void)[] = [];\n let parent: HTMLElement | null = this.el.nativeElement.parentElement;\n while (parent) {\n const el = parent;\n const onScroll = () => { el.scrollTop = 0; el.scrollLeft = 0; };\n el.addEventListener('scroll', onScroll);\n cleanups.push(() => el.removeEventListener('scroll', onScroll));\n parent = parent.parentElement;\n }\n this._ancestorScrollCleanup = () => cleanups.forEach(fn => fn());\n }\n\n private cleanupTouchPassthrough() {\n this._touchCleanup?.();\n this._touchCleanup = null;\n }\n\n readonly nodeTypes = computed(() => {\n const templates = this.contentNodeTemplates();\n\n const nodeTypes: any = {};\n\n if (templates) {\n templates.forEach((template) => {\n if (!this._nodeTypesCache[template.type]) {\n \n this._nodeTypesCache[template.type] = createTemplateNodeComponent(\n template.template,\n this.vcr,\n (nodeId: string, width: number, height: number) => {\n this.store.onNodeResizeEnd?.emit({ nodeId, width, height });\n },\n this.handlesVisible(),\n );\n }\n nodeTypes[template.type] = this._nodeTypesCache[template.type];\n });\n }\n\n return nodeTypes;\n });\n\n private applyTransitionClass() {\n const nodes = this.store.nodes?.() as any[];\n const positionKey = nodes?.map(n => `${n.id}:${n.position?.x},${n.position?.y}:${n.style?.width},${n.style?.height}`).join('|') ?? '';\n\n if (this._prevNodePositions !== null && this._prevNodePositions !== positionKey) {\n \n const prevPositions = this._prevNodePositions.split('|');\n const currPositions = positionKey.split('|');\n const changedCount = prevPositions.filter((p, i) => p !== currPositions[i]).length;\n\n if (changedCount >= 2) {\n const nodeEls = this.el.nativeElement.querySelectorAll('.react-flow__node');\n nodeEls.forEach((el: Element) => el.classList.add('transitioning'));\n\n if (this._transitionTimer) clearTimeout(this._transitionTimer);\n this._transitionTimer = setTimeout(() => {\n nodeEls.forEach((el: Element) => el.classList.remove('transitioning'));\n this._transitionTimer = null;\n }, 350);\n }\n }\n this._prevNodePositions = positionKey;\n }\n\n private render() {\n this._root.render(React.createElement(ReactFlowWrapper, {\n props: this.reactFlowProps(),\n }));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["React","i1.ReactFlowComponentStore"],"mappings":";;;;;;;;AAiBM,SAAU,aAAa,CAC3B,IAAiC,EACjC,IAAiC,EAAA;IAEjC,QACE,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;QACrC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;QACrC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;QAC7C,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc;QACvD,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAC/D,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,iBAAiB;QAC7D,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa;QACrD,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC,eAAe;QACzD,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc;QACvD,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW;QACjD,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY;QACnD,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,IAAI,CAAC,KAAK,CAAC,oBAAoB;QACnE,IAAI,CAAC,KAAK,CAAC,uBAAuB,KAAK,IAAI,CAAC,KAAK,CAAC,uBAAuB;AAE7E;;AC1BO,MAAM,oBAAoB,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAA6B,KAAI;AAEzF,IAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAI;QACpC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS;AAClC,QAAA,MAAM,IAAI,GAAG;YACZ,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,IAAI,IAAI;YAC1B,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,EAAE,IAAI,IAAI;YAC1B,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,IAAI,IAAI;YACtC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,IAAI,IAAI;SACxC;QACD,MAAM,GAAG,GAAa,EAAE;QACxB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;YAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,QAAQ;AAC5C,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACjB,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM;YAClB,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;AAC7C,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3F,YAAA,IAAI,cAAc,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,EAAE;AACnE,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACf;AACD,QAAA,CAAC,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B,IAAA,CAAC,CAAC;AAGF,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;AACpC,IAAA,WAAW,CAAC,OAAO,GAAG,QAAQ;IAE9B,SAAS,CAAC,MAAK;AACd,QAAA,WAAW,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnE,IAAA,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAEnB,IAAA,OAAO,IAAI;AACZ,CAAC;;ACSD,MAAM,gBAAgB,GAA6C,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAI;IACxF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE;AAEpC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAK;QAC3B,MAAM,MAAM,GAAgE,EAAE;AAE9E,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI;AAC7B,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,QAAQ;AAChE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,QAAQ;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,QAAQ;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,UAAU,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,QAAQ;AAE5E,QAAA,KAAK,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE;AACjD,YAAA,KAAK,IAAI,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE;gBACjD,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;gBAClC,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC;AACX,oBAAA,GAAG,EAAE,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE;AAClB,oBAAA,KAAK,EAAE,CAAA,EAAG,EAAE,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE;AACpB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,GAAG,EAAE,MAAM;AACX,iBAAA,CAAC;YACH;QACD;AACA,QAAA,OAAO,MAAM;AACd,IAAA,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE/B,IAAA,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACjC,QAAA,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,aAAa,EAAE,MAAM;AACrB,YAAA,QAAQ,EAAE,QAAQ;AAClB;KACD,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KACvC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;QAC3B,GAAG;AACH,QAAA,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,CAAA,EAAG,IAAI,CAAA,EAAA,CAAI;YACjB,GAAG,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI;AACf,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,UAAU,EAAE,8BAA8B;AAC1C,YAAA,KAAK,EAAE,0BAA0B;AACjC,YAAA,SAAS,EAAE,qBAAqB;AAChC,YAAA,UAAU,EAAE,QAAQ;AACpB;AACD,KAAA,EAAE,KAAK,CAAC,CACT,CAAC;AACH,CAAC;AA0HD,MAAM,yBAAyB,GAAuC,CAAC,EAAE,KAAK,EAAE,KAAI;AACnF,IAAA,MAAM,YAAY,GAAG;AACpB,QAAA,MAAM,EAAE,GAAG;KACX;AAGD,IAAA,MAAM,oBAAoB,GAAI,KAAiC,CAAC,oBAEpD;AAEZ,IAAA,MAAM,WAAW,GAAG;AACnB,QAAA,GAAG,KAAK;AACR,QAAA,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,KAAK;AAC9C,QAAA,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,KAAK,KAAK;AAClD,QAAA,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,KAAK,KAAK;QACtD,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE;KAC1D;IACD,OAAQ,WAAuC,CAAC,oBAAoB;AAGpE,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK;IACrD,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,IAAI;AAC3E,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,EAAE;AAC/C,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC;AAChD,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe;AAG7C,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,IAAI;AAC9C,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,KAAK,IAAI;AAChD,IAAA,MAAM,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,KAAK,IAAI;AAChE,IAAA,MAAM,uBAAuB,GAAG,KAAK,CAAC,uBAAuB,IAAI,CAAC;IAElE,MAAM,QAAQ,GAAyB,EAAE;IACzC,IAAI,WAAW,EAAE;AAChB,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrH;IACA,IAAI,YAAY,EAAE;AACjB,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE;IACA,IAAI,cAAc,EAAE;AACnB,QAAA,MAAM,OAAO,GAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE;QAChH,IAAI,eAAe,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,GAAG,eAAe;QAChC;AACA,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD;IACA,IAAI,oBAAoB,EAAE;AACzB,QAAA,MAAM,GAAG,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC;QAChF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,CAAC;IACrH;IACA,IAAI,oBAAoB,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,EAAE;AACvD,YAAA,GAAG,EAAE,wBAAwB;AAC7B,YAAA,QAAQ,EAAE,GAAG;AACb,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,SAAA,CAAC,CAAC;IACJ;IAEA,OAAO,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,EACjD,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,WAAkB,EAAE,GAAG,QAAQ,CAAC,CAC/D;AACF,CAAC;AAIM,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACzC,yBAAyB,EACzB,aAAa,CACb;;MCjSY,uBAAuB,CAAA;IAEzB,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA+C;IAC5D,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA2B;IACxC,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA+C;IACnE,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA2B;IAC/C,kBAAkB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkC;IAG5D,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgD;IAGrE,SAAS,GAAsB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAyB;IAC7D,SAAS,GAAsB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAyB;IAC7D,kBAAkB,GAAa,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkC;IACtE,mBAAmB,GAAY,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmC;IACvE,uBAAuB,GAAQ,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuC;IAC3E,4BAA4B,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmC;IACvE,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,aAAa,GAAkB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,eAAe,GAAgB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,aAAa,GAAkB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA6B;IACjE,oBAAoB,GAAW,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,qBAAqB,GAAU,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,qBAAqB,GAAU,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,UAAU,GAAqB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,QAAQ,GAAuB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgC;IACpE,yBAAyB,GAAM,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,2BAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,UAAU,GAAqB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA0B;IAC9D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA0B;IAC9D,kBAAkB,GAAa,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,iBAAiB,GAAc,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,SAAS,GAAsB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAkC;IACtE,OAAO,GAAwB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,OAAO,GAAwB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,eAAe,GAAgB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAwB;IAC5D,eAAe,GAAgB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgC;IACpE,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,UAAU,GAAqB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgC;IACpE,kBAAkB,GAAa,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,YAAY,GAAmB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,WAAW,GAAoB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,WAAW,GAAoB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,eAAe,GAAgB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA+B;IACnE,iBAAiB,GAAc,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,iBAAiB,GAAc,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,eAAe,GAAgB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,OAAO,GAAwB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA8B;IAClE,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,mBAAmB,GAAY,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA6B;IACjE,UAAU,GAAqB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA0B;IAC9D,oBAAoB,GAAW,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,oBAAoB,GAAW,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,mBAAmB,GAAY,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,iBAAiB,GAAc,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,gBAAgB,GAAe,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAG1D,iBAAiB,GAAc,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAiC;IACrE,aAAa,GAAkB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAyC;IAC7E,eAAe,GAAgB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAC1D,cAAc,GAAiB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,WAAW,GAAoB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,YAAY,GAAmB,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,oBAAoB,GAAW,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAuB;IAC3D,uBAAuB,GAAQ,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAsB;IAG1D,WAAW,GAAc,MAAM,EAAsB;IACrD,iBAAiB,GAAQ,MAAM,EAAsB;IACrD,gBAAgB,GAAS,MAAM,EAAsB;IACrD,eAAe,GAAU,MAAM,EAAsB;IACrD,gBAAgB,GAAS,MAAM,EAAsB;IACrD,iBAAiB,GAAQ,MAAM,EAAsB;IACrD,eAAe,GAAU,MAAM,EAA8B;IAC7D,UAAU,GAAe,MAAM,EAA8B;IAC7D,cAAc,GAAW,MAAM,EAA8B;IAC7D,WAAW,GAAc,MAAM,EAAsB;IACrD,YAAY,GAAa,MAAM,EAAqB;IACpD,iBAAiB,GAAQ,MAAM,EAAsB;IACrD,gBAAgB,GAAS,MAAM,EAAsB;IACrD,eAAe,GAAU,MAAM,EAAsB;IACrD,gBAAgB,GAAS,MAAM,EAAsB;IACrD,iBAAiB,GAAQ,MAAM,EAAsB;IACrD,iBAAiB,GAAQ,MAAM,EAAuC;IACtE,eAAe,GAAU,MAAM,EAAuC;IACtE,aAAa,GAAY,MAAM,EAAkB;IACjD,aAAa,GAAY,MAAM,EAAkB;IACjD,aAAa,GAAY,MAAM,EAAY;IAC3C,aAAa,GAAY,MAAM,EAAY;IAC3C,oBAAoB,GAAK,MAAM,EAAwB;IACvD,eAAe,GAAU,MAAM,EAAwB;IACvD,mBAAmB,GAAM,MAAM,EAAwB;IACvD,gBAAgB,GAAS,MAAM,EAAgB;IAC/C,cAAc,GAAW,MAAM,EAAgB;IAC/C,sBAAsB,GAAG,MAAM,EAAiD;IAChF,SAAS,GAAgB,MAAM,EAAgB;IAC/C,cAAc,GAAW,MAAM,EAAsC;IACrE,YAAY,GAAa,MAAM,EAAgB;IAC/C,mBAAmB,GAAM,MAAM,EAAsC;IACrE,iBAAiB,GAAQ,MAAM,EAAgB;IAC/C,UAAU,GAAe,MAAM,EAAgB;IAC/C,MAAM,GAAmB,MAAM,EAAwB;IACvD,MAAM,GAAmB,MAAM,EAAiC;IAChE,MAAM,GAAmB,MAAM,EAA0B;IACzD,WAAW,GAAc,MAAM,EAA0B;IACzD,SAAS,GAAgB,MAAM,EAA0B;IACzD,iBAAiB,GAAQ,MAAM,EAA6B;IAC5D,YAAY,GAAa,MAAM,EAAgB;IAC/C,WAAW,GAAc,MAAM,EAAgB;IAC/C,iBAAiB,GAAQ,MAAM,EAAgB;IAC/C,gBAAgB,GAAS,MAAM,EAAgB;IAC/C,eAAe,GAAU,MAAM,EAAgB;IAC/C,gBAAgB,GAAS,MAAM,EAAgB;IAC/C,OAAO,GAAkB,MAAM,EAAW;IAC1C,eAAe,GAAU,MAAM,EAAqD;IAEpF,oBAAoB,GAAK,MAAM,EAAc;uGAhI3C,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,yBAAA,EAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;mBAAC,EAAE,UAAU,EAAE,IAAI,EAAE;;;ACA/B,SAAS,YAAY,CAAC,KAAc,EAAA;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,OAAQ,KAAoB,CAAC,IAAI,KAAK,UAAU;AACpE;AAKM,SAAU,mBAAmB,CAAC,KAAa,EAAA;IAC/C,MAAM,QAAQ,GAAqB,EAAE;AACrC,IAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChD,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE;QACnD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAe,KAAI;AACrC,YAAA,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,QAAA,CAAC;IACH;AACA,IAAA,OAAO,QAAQ;AACjB;;ACbM,SAAU,2BAA2B,CAAC,QAA0B,EAAE,GAAqB,EAAE,eAAyE,EAAE,WAAW,GAAG,IAAI,EAAA;IAC1L,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAA8D,KAAI;AAC1G,QAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC;AACjD,QAAA,MAAM,UAAU,GAAG,MAAM,CAA8B,IAAI,CAAC;QAI5D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAA2C,IAAI,CAAC;QAGpG,SAAS,CAAC,MAAK;YACb,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC;AACpD,YAAA,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC,OAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1E,OAAO,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC3C,YAAA,UAAU,CAAC,OAAO,GAAG,OAAO;YAC5B,OAAO,CAAC,YAAY,EAAE;AAEtB,YAAA,OAAO,MAAK;AACV,gBAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACtB,oBAAA,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;AAC5B,oBAAA,UAAU,CAAC,OAAO,GAAG,IAAI;gBAC3B;AACF,YAAA,CAAC;QACH,CAAC,EAAE,EAAE,CAAC;QAGN,SAAS,CAAC,MAAK;AACb,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE;AACtB,gBAAA,UAAU,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACtD,gBAAA,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE;YACnC;AACF,QAAA,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAEV,QAAA,MAAM,YAAY,GAAG,CAAC,MAAW,EAAE,MAAW,KAAI;AAEhD,YAAA,iBAAiB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnE,QAAA,CAAC;AAED,QAAA,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,MAAW,KAAI;YAGnD,iBAAiB,CAAC,IAAI,CAAC;YACvB,IAAI,eAAe,EAAE;gBACnB,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YAClD;AACF,QAAA,CAAC;QAGD,MAAM,YAAY,GAAwB;AACxC,cAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM;cAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAErC,QACEA,sCAAK,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAA;AACzC,YAAAA,cAAA,CAAA,aAAA,CAAC,WAAW,EAAA,EACV,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EACzC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAC3B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,eAAe,EAAA,CAC5B;AACF,YAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,EAAA,CAAI;AAC7H,YAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,EAAA,CAAI,CAC1H;AAEV,IAAA,CAAC;AAID,IAAA,OAAO,YAAY;AACrB;;MC3Ea,iBAAiB,CAAA;AAGT,IAAA,QAAA;AAFA,IAAA,IAAI;AAEvB,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;uGAHrC,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAEE,KAAK;uBAAC,UAAU;;;ACiDb,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;AACpC,IAAA,KAAK,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACvC,IAAA,EAAE,GAAG,MAAM,EAAC,UAAuB,EAAC;AACtC,IAAA,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEvC,IAAA,KAAK;IACL,eAAe,GAAQ,EAAE;IACzB,gBAAgB,GAAyC,IAAI;IAC7D,kBAAkB,GAAkB,IAAI;AACxC,IAAA,oBAAoB,GAAG,eAAe,CAAoB,iBAAiB,gEAAC;IAC5E,aAAa,GAAwB,IAAI;IACzC,sBAAsB,GAAwB,IAAI;;IAGlD,SAAS,GAAQ,IAAI;IACrB,qBAAqB,GAAyC,IAAI;AAEjE,IAAA,sBAAsB,GAAG,KAAK,CAAC,KAAK,kEAAC;AAErC,IAAA,cAAc,GAAG,KAAK,CAAC,IAAI,0DAAC;AAGpB,IAAA,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;AAGhD,IAAA,cAAc,GAAG,QAAQ,CAAC,OAAO;AAChD,QAAA,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK;AACzB,aAAA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,eAAe;aAC/H,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,KAAI;AAC7B,YAAA,GAAG,CAAC,GAAG,CAAC,GAAI,MAAc,EAAE;AAC5B,YAAA,OAAO,GAAG;QACZ,CAAC,EAAE,EAAyB,CAAC;AAC/B,QAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;QAC3B,GAAG,IAAI,CAAC,cAAc;AACvB,KAAA,CAAC,0DAAC;AAEH,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACzC,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;gBACjC,IAAI,CAAC,qBAAqB,EAAE;YAC9B;iBAAO;gBACL,IAAI,CAAC,uBAAuB,EAAE;YAChC;AACF,QAAA,CAAC,CAAC;;QAIF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAS,KAAI;YACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;AACvD,QAAA,CAAC,CAAC;QAKF,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,MAAK;YACxC,IAAI,IAAI,CAAC,qBAAqB;AAAE,gBAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxE,YAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,MAAK;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;AAClC,gBAAA,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChC;AACA,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;YACnC,CAAC,EAAE,GAAG,CAAC;AACT,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEA,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,qBAAqB;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxE,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACpB,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,IAAI,CAAC,sBAAsB,IAAI;IACjC;IAEQ,qBAAqB,GAAA;QAC3B,IAAI,CAAC,uBAAuB,EAAE;AAC9B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAChC,QAAA,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;QAE9B,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC;AAEzC,QAAA,MAAM,YAAY,GAAG,CAAC,CAAa,KAAI;YACrC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC7B,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;AAC7B,gBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;YACxB;AACF,QAAA,CAAC;AAED,QAAA,MAAM,UAAU,GAAG,CAAC,CAAa,KAAI;AACnC,YAAA,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE;YAC7D,MAAM,KAAK,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACjC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC3C,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC3C,YAAA,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;gBACtD,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACvD;AACF,QAAA,CAAC;AAED,QAAA,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClE,QAAA,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,aAAa,GAAG,MAAK;AACxB,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,YAAA,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC;AAClD,YAAA,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC;AAChD,QAAA,CAAC;IACH;IAEQ,kBAAkB,CAAC,OAAe,EAAE,OAAe,EAAA;QACzD,MAAM,EAAE,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;QACtD,MAAM,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAAC;AAC/C,QAAA,IAAI,CAAC,MAAM;YAAE;QACb,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;AAC7C,QAAA,IAAI,CAAC,MAAM;YAAE;QACb,MAAM,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAc,EAAE,IAAI,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;QAC/E,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACrF;IACF;IAGQ,kBAAkB,GAAA;QACxB,MAAM,QAAQ,GAAmB,EAAE;QACnC,IAAI,MAAM,GAAuB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa;QACpE,OAAO,MAAM,EAAE;YACb,MAAM,EAAE,GAAG,MAAM;YACjB,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,YAAA,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACvC,YAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,YAAA,MAAM,GAAG,MAAM,CAAC,aAAa;QAC/B;AACA,QAAA,IAAI,CAAC,sBAAsB,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;IAClE;IAEQ,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,aAAa,IAAI;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC3B;AAES,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAE7C,MAAM,SAAS,GAAQ,EAAE;QAEzB,IAAI,SAAS,EAAE;AACb,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;gBAC7B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAExC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAC/D,QAAQ,CAAC,QAAQ,EACjB,IAAI,CAAC,GAAG,EACR,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc,KAAI;AAChD,wBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7D,oBAAA,CAAC,EACD,IAAI,CAAC,cAAc,EAAE,CACtB;gBACH;AACA,gBAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC;AAChE,YAAA,CAAC,CAAC;QACJ;AAEA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC,qDAAC;IAEM,oBAAoB,GAAA;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAa;QAC3C,MAAM,WAAW,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAA,CAAA,EAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;AAErI,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,KAAK,WAAW,EAAE;YAE/E,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC;YACxD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;YAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAElF,YAAA,IAAI,YAAY,IAAI,CAAC,EAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,CAAC;AAC3E,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,EAAW,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAEnE,IAAI,IAAI,CAAC,gBAAgB;AAAE,oBAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC9D,gBAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAK;AACtC,oBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,EAAW,KAAK,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACtE,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;gBAC9B,CAAC,EAAE,GAAG,CAAC;YACT;QACF;AACA,QAAA,IAAI,CAAC,kBAAkB,GAAG,WAAW;IACvC;IAEQ,MAAM,GAAA;QACZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE;AACtD,YAAA,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE;AAC7B,SAAA,CAAC,CAAC;IACL;uGAvMW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,SAAA,EASqC,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArDzE,CAAA,yBAAA,CAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,w7TAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA4C1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA9C9B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EACpB,2BAA2B,EAAA,UAAA,EAEzB,IAAI,iBACD,iBAAiB,CAAC,IAAI,EAAA,cAAA,EACrB;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,uBAAuB;AAClC,4BAAA,MAAM,EAAE;AACN,gCAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB;AACtE,gCAAA,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB;gCACtF,yBAAyB,EAAE,8BAA8B,EAAE,gBAAgB;AAC3E,gCAAA,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe;gCACvE,sBAAsB,EAAE,uBAAuB,EAAE,uBAAuB;AACxE,gCAAA,YAAY,EAAE,UAAU,EAAE,2BAA2B,EAAE,gBAAgB;AACvE,gCAAA,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB;AACpE,gCAAA,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,WAAW;AACxE,gCAAA,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB;AAC9E,gCAAA,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;AAChF,gCAAA,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB;AAC/E,gCAAA,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB;AACpF,gCAAA,gBAAgB,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAsB;AAC7E,gCAAA,sBAAsB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB;gCACtF,kBAAkB;AAClB,gCAAA,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB;gCACzE,gBAAgB,EAAE,aAAa,EAAE,cAAc;AAC/C,gCAAA,sBAAsB,EAAE;AACzB,6BAAA;AACD,4BAAA,OAAO,EAAE;AACP,gCAAA,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB;AACzE,gCAAA,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,YAAY;AACxE,gCAAA,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB;AACpE,gCAAA,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB;AAC9E,gCAAA,mBAAmB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe;AACxE,gCAAA,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB;AAC3E,gCAAA,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB;AACrF,gCAAA,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB;gCACpE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa;AAC9E,gCAAA,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB;AACpF,gCAAA,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,iBAAiB;gCACvF;AACD;AACF;AACF,qBAAA,EAAA,MAAA,EAAA,CAAA,w7TAAA,CAAA,EAAA;sIAWiE,iBAAiB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACjErF;;AAEG;;;;"}
|
|
@@ -85,17 +85,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
|
|
|
85
85
|
}], ctorParameters: () => [] });
|
|
86
86
|
|
|
87
87
|
const QUERY_RESOLVERS = new InjectionToken('QUERY_RESOLVERS');
|
|
88
|
-
/**
|
|
89
|
-
* QueryResolverを登録する(multi: trueパターン)
|
|
90
|
-
*
|
|
91
|
-
* @example
|
|
92
|
-
* // app.config.ts
|
|
93
|
-
* providers: [
|
|
94
|
-
* provideQueryResolver(GraphqlResolver),
|
|
95
|
-
* provideQueryResolver(MachinaResolver),
|
|
96
|
-
* provideQueryResolver(HttpResolver),
|
|
97
|
-
* ]
|
|
98
|
-
*/
|
|
99
88
|
function provideQueryResolver(resolver) {
|
|
100
89
|
return [
|
|
101
90
|
resolver,
|
|
@@ -103,10 +92,6 @@ function provideQueryResolver(resolver) {
|
|
|
103
92
|
];
|
|
104
93
|
}
|
|
105
94
|
|
|
106
|
-
/**
|
|
107
|
-
* GraphQLクエリ文字列がquery型かどうかを判定
|
|
108
|
-
* subscription型以外はquery型として扱う
|
|
109
|
-
*/
|
|
110
95
|
function isQuery(query) {
|
|
111
96
|
const queryString = query || '';
|
|
112
97
|
const isQuery = /^\s*(query|{)/i.test(queryString.trim());
|
|
@@ -118,7 +103,6 @@ class GraphqlResolver {
|
|
|
118
103
|
return query?.type === 'graphql' || !!query?.graphql?.query;
|
|
119
104
|
}
|
|
120
105
|
resolve(query) {
|
|
121
|
-
// GraphQL固有のquery/subscription判定はResolver内部で行う
|
|
122
106
|
return isQuery(query.graphql.query)
|
|
123
107
|
? this.queryService.query(query)
|
|
124
108
|
: this.queryService.subscribe(query);
|
|
@@ -177,7 +161,6 @@ class QueryFeature {
|
|
|
177
161
|
auth = inject(AuthService);
|
|
178
162
|
service = inject(QueryService);
|
|
179
163
|
editingStateManager = inject(EditingStateManager);
|
|
180
|
-
// multi: trueで登録されたResolver配列(オプショナル)
|
|
181
164
|
resolvers = inject(QUERY_RESOLVERS, { optional: true }) ?? [];
|
|
182
165
|
form = inject(QueryFormService).build();
|
|
183
166
|
refresh$ = new ReplaySubject();
|
|
@@ -186,25 +169,16 @@ class QueryFeature {
|
|
|
186
169
|
query$ = this.formValue$.pipe(map((query) => QueryFormService.parse(query)), shareReplay(1));
|
|
187
170
|
query = toSignal(this.query$);
|
|
188
171
|
destroyRef = inject(DestroyRef);
|
|
189
|
-
result$ = this.refresh$.pipe(takeUntilDestroyed(),
|
|
190
|
-
// まずqueryを取得
|
|
191
|
-
switchMap(() => this.query$.pipe(filter((query) => {
|
|
192
|
-
// Resolverがある場合はResolverのcanResolveで判定
|
|
172
|
+
result$ = this.refresh$.pipe(takeUntilDestroyed(), switchMap(() => this.query$.pipe(filter((query) => {
|
|
193
173
|
const resolver = this.resolvers.find(r => r.canResolve(query));
|
|
194
174
|
return resolver ? true : QueryHelper$1.validate(query);
|
|
195
|
-
}), shareReplay(1), take(1))),
|
|
196
|
-
// Resolverがない場合のみ認証を待つ
|
|
197
|
-
switchMap((query) => {
|
|
175
|
+
}), shareReplay(1), take(1))), switchMap((query) => {
|
|
198
176
|
const resolver = this.resolvers.find(r => r.canResolve(query));
|
|
199
177
|
if (resolver) {
|
|
200
|
-
// Resolverがある場合は認証不要(WebRTC等の独自認証)
|
|
201
178
|
return of(query);
|
|
202
179
|
}
|
|
203
|
-
// GraphQL等は認証を待つ
|
|
204
180
|
return this.auth.accessToken$.pipe(filter(accessToken => !!accessToken), map(() => query));
|
|
205
|
-
}), distinctUntilChanged((a, b) => isEqual(a, b)), debounceTime(500), this.app.loading.switchMap((query) => this.executeQuery(query), 'progress'), filter((result) => !!result),
|
|
206
|
-
// Pause data updates when editing
|
|
207
|
-
pauseWhenEditing(this.editingStateManager), shareReplay(1));
|
|
181
|
+
}), distinctUntilChanged((a, b) => isEqual(a, b)), debounceTime(500), this.app.loading.switchMap((query) => this.executeQuery(query), 'progress'), filter((result) => !!result), pauseWhenEditing(this.editingStateManager), shareReplay({ bufferSize: 1, refCount: true }));
|
|
208
182
|
result = toSignal(this.result$);
|
|
209
183
|
constructor() {
|
|
210
184
|
this.form.get(['graphql', 'variablesJson']).valueChanges.pipe(takeUntilDestroyed(), debounceTime(300), distinctUntilChanged(isEqual)).subscribe(() => this.refresh());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-components-features-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/features/query/actions.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/update/update.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/graphql/variables-form/variables-form.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/resolvers/base/base.resolver.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/resolvers/graphql/graphql.resolver.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/query.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/graphql/schema/schema.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/xxmachina-components-features-query.ts"],"sourcesContent":["export enum ActionId {\n クエリの実行 = 'クエリの実行',\n クエリの生成 = 'クエリの生成',\n クエリの更新 = 'クエリの更新',\n}\n","import { inject, Injectable, Provider } from \"@angular/core\";\nimport { injectEntityStore } from \"@ng-atomic/common/stores/entities\";\nimport { provideEffect } from \"@ng-atomic/core\";\nimport { Query } from \"@xxmachina/common/domain\";\nimport { ActionId } from \"../actions\";\nimport { AppService } from \"@ng-atomic/common/services/app\";\nimport { QueryFeature } from \"../query.feature\";\n\n\n@Injectable()\nexport class QueryUpdateFeature {\n static provideUpdateQueryEffect(): Provider[] {\n return [\n provideEffect(ActionId.クエリの更新, () => {\n const feature = inject(QueryUpdateFeature);\n return () => feature.update();\n }),\n ];\n }\n\n protected readonly queryEntityStore = injectEntityStore(Query);\n protected readonly app = inject(AppService);\n protected readonly feature = inject(QueryFeature);\n\n update() {\n const value = this.feature.form.getRawValue();\n this.app.loading.await(() => {\n return this.queryEntityStore.save({\n ...value,\n projectId: 'default',\n summary: 'deprecated',\n type: 'graphql',\n createdAt: undefined as never,\n updatedAt: undefined as never,\n } as never).then(() => {\n this.app.snackBar.open('クエリを更新しました');\n }).catch((error) => {\n console.error(error);\n this.app.snackBar.open(`ERROR: ${error.message}`);\n });\n });\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { QueryFeature } from \"../../query.feature\";\nimport { combineLatest, filter, map, shareReplay } from \"rxjs\";\nimport { QueryHelper } from \"@xxmachina/common/domain\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { VariablesFromService } from \"@xxmachina/components/services/forms/variables\";\nimport { getRawValue$ } from \"@ng-atomic/common/utils\";\n\n@Injectable()\nexport class QueryGraphqlVariablesFormFeature {\n protected readonly feature = inject(QueryFeature);\n protected readonly variablesFromService = inject(VariablesFromService);\n\n protected readonly queryGraphqlVariables$ = this.feature.query$.pipe(\n map((query) => JSON.parse(query!.graphql!.variablesJson!)),\n );\n protected readonly variablesValue$ = this.feature.query$.pipe(\n map((query) => query?.graphql?.variables ?? {}),\n shareReplay(1),\n );\n readonly variablesValue = toSignal(this.variablesValue$, {initialValue: {}});\n\n protected readonly variablesForm$ = this.variablesValue$.pipe(\n map((value) => this.variablesFromService.build(value)),\n shareReplay(1),\n );\n readonly variablesForm = toSignal(this.variablesForm$);\n readonly variablesFormValue$ = this.variablesForm$.pipe(\n map((form) => getRawValue$(form)),\n shareReplay(1),\n );\n\n constructor() {\n combineLatest({\n pre: this.queryGraphqlVariables$,\n current: this.variablesFormValue$,\n }).pipe(\n takeUntilDestroyed(),\n filter(({current}) => !!current),\n map(({current, pre}) => ({ pre, next: QueryHelper.overwrite(current, pre) })),\n filter(({pre, next}) => JSON.stringify(pre) !== JSON.stringify(next)),\n shareReplay(1),\n ).subscribe((mergedVariables) => {\n this.feature.form.get(['graphql', 'variablesJson'])!.setValue(JSON.stringify(mergedVariables, null, 2));\n });\n }\n}\n","import { InjectionToken, Provider, Type } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Query } from '@xxmachina/common/domain/models';\n\nexport interface QueryResult {\n [key: string]: any[];\n}\n\nexport interface QueryResolver {\n /**\n * このResolverが指定されたクエリを処理できるか判定\n */\n canResolve(query: Query): boolean;\n\n /**\n * データを取得・購読(Resolver内部でquery/subscriptionを判定)\n */\n resolve(query: Query): Observable<QueryResult>;\n}\n\nexport const QUERY_RESOLVERS = new InjectionToken<QueryResolver[]>('QUERY_RESOLVERS');\n\n/**\n * QueryResolverを登録する(multi: trueパターン)\n *\n * @example\n * // app.config.ts\n * providers: [\n * provideQueryResolver(GraphqlResolver),\n * provideQueryResolver(MachinaResolver),\n * provideQueryResolver(HttpResolver),\n * ]\n */\nexport function provideQueryResolver(resolver: Type<QueryResolver>): Provider[] {\n return [\n resolver,\n { provide: QUERY_RESOLVERS, useExisting: resolver, multi: true },\n ];\n}\n","import { Injectable, inject } from '@angular/core';\nimport { QueryService } from '@xxmachina/common/services/query';\nimport { Query } from '@xxmachina/common/domain/models';\nimport { QueryResolver, QueryResult } from '../base';\nimport { Observable } from 'rxjs';\n\n/**\n * GraphQLクエリ文字列がquery型かどうかを判定\n * subscription型以外はquery型として扱う\n */\nexport function isQuery(query: string): boolean {\n const queryString = query || '';\n const isQuery = /^\\s*(query|{)/i.test(queryString.trim());\n return isQuery;\n}\n\n@Injectable()\nexport class GraphqlResolver implements QueryResolver {\n private readonly queryService = inject(QueryService);\n\n canResolve(query: Query): boolean {\n return query?.type === 'graphql' || !!query?.graphql?.query;\n }\n\n resolve(query: Query): Observable<QueryResult> {\n // GraphQL固有のquery/subscription判定はResolver内部で行う\n return isQuery(query.graphql!.query!)\n ? this.queryService.query(query)\n : this.queryService.subscribe(query);\n }\n}\n","import { DestroyRef, inject, Injectable, Provider } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { AuthService } from '@xxmachina/common/auth';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { QueryFormService } from '@xxmachina/components/services/forms/query';\nimport { QueryService } from '@xxmachina/common/services/query';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectEntityStore } from '@ng-atomic/common/stores/entities';\nimport { getValue$ } from '@ng-atomic/common/utils';\nimport { EditingStateManager, pauseWhenEditing } from '@ng-atomic/common';\nimport { provideEffect } from '@ng-atomic/core';\nimport { isEqual } from 'lodash-es';\nimport { catchError, debounceTime, distinctUntilChanged, filter, map, of, ReplaySubject, shareReplay, switchMap, take } from 'rxjs';\nimport dayjs from 'dayjs';\nimport { QueryUpdateFeature } from './update';\nimport { ActionId } from './actions';\nimport { QueryGraphqlSchemaFeature } from './graphql/schema';\nimport { QueryGraphqlVariablesFormFeature } from './graphql/variables-form';\nimport { QUERY_RESOLVERS, QueryResolver, isQuery } from './resolvers';\n\n@Injectable()\nexport class QueryFeature {\n static readonly ActionId = ActionId;\n\n static provideDefault(): Provider[] {\n return [\n QueryFeature,\n QueryGraphqlSchemaFeature,\n QueryGraphqlVariablesFormFeature,\n QueryUpdateFeature,\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n QueryFeature.provideExecuteQueryEffect(),\n QueryFeature.provideGenerateQueryEffect(),\n QueryUpdateFeature.provideUpdateQueryEffect(),\n ]\n }\n\n static provideExecuteQueryEffect() {\n return provideEffect(ActionId.クエリの実行, () => {\n const feature = inject(QueryFeature);\n const app = inject(AppService);\n const entityStore = injectEntityStore(Query);\n return () => {\n const value = feature.form.getRawValue();\n app.loading.await(() => entityStore.create({\n ...value,\n id: undefined as unknown as string,\n type: 'graphql',\n projectId: 'default',\n title: dayjs().toISOString(),\n summary: 'クエリの実行',\n createdAt: null as unknown as dayjs.Dayjs,\n updatedAt: null as unknown as dayjs.Dayjs,\n } as never), 'progress');\n feature.refresh();\n }\n });\n }\n\n static provideGenerateQueryEffect(): Provider {\n return provideEffect(ActionId.クエリの生成, () => {\n return () => {};\n });\n }\n\n protected readonly app = inject(AppService);\n protected readonly auth = inject(AuthService);\n protected readonly service = inject(QueryService);\n protected readonly editingStateManager = inject(EditingStateManager);\n // multi: trueで登録されたResolver配列(オプショナル)\n protected readonly resolvers = inject(QUERY_RESOLVERS, { optional: true }) ?? [];\n readonly form = inject(QueryFormService).build();\n\n protected readonly refresh$ = new ReplaySubject<void>();\n protected readonly formValue$ = getValue$(this.form).pipe(shareReplay(1));\n readonly formValue = toSignal(this.formValue$);\n\n readonly query$ = this.formValue$.pipe(\n map((query) => QueryFormService.parse(query as never)),\n shareReplay(1),\n );\n readonly query = toSignal(this.query$);\n\n readonly destroyRef = inject(DestroyRef);\n readonly result$ = this.refresh$.pipe(\n takeUntilDestroyed(),\n // まずqueryを取得\n switchMap(() => this.query$.pipe(\n filter((query) => {\n // Resolverがある場合はResolverのcanResolveで判定\n const resolver = this.resolvers.find(r => r.canResolve(query));\n return resolver ? true : QueryHelper.validate(query);\n }),\n shareReplay(1),\n take(1)\n )),\n // Resolverがない場合のみ認証を待つ\n switchMap((query) => {\n const resolver = this.resolvers.find(r => r.canResolve(query));\n if (resolver) {\n // Resolverがある場合は認証不要(WebRTC等の独自認証)\n return of(query);\n }\n // GraphQL等は認証を待つ\n return this.auth.accessToken$.pipe(\n filter(accessToken => !!accessToken),\n map(() => query),\n );\n }),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n debounceTime(500),\n this.app.loading.switchMap((query) => this.executeQuery(query), 'progress'),\n filter((result) => !!result),\n // Pause data updates when editing\n pauseWhenEditing(this.editingStateManager),\n shareReplay(1),\n );\n readonly result = toSignal<Record<string, any[]> & Record<`${string}Length`, number> & { __meta__?: { title?: string } & any }>(this.result$);\n\n constructor() {\n this.form.get(['graphql', 'variablesJson'])!.valueChanges.pipe(\n takeUntilDestroyed(),\n debounceTime(300),\n distinctUntilChanged(isEqual),\n ).subscribe(() => this.refresh());\n }\n\n refresh(): void {\n this.refresh$.next();\n }\n\n protected executeQuery(query: Query) {\n const resolver = this.resolvers.find(r => r.canResolve(query));\n const source$ = resolver\n ? resolver.resolve(query)\n : isQuery(query.graphql!.query!) ? this.service.query(query) : this.service.subscribe(query);\n\n return source$.pipe(\n takeUntilDestroyed(this.destroyRef),\n catchError(error => {\n this.app.snackBar.openError(error);\n console.error(error);\n return of(null);\n }),\n );\n }\n}\n","import { inject, Injectable, Provider } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { QueryHelper } from \"@xxmachina/common/domain/models\";\nimport { QueryService } from \"@xxmachina/common/services/query\";\nimport { isEqual } from \"lodash-es\";\nimport { catchError, debounceTime, distinctUntilChanged, filter, NEVER, switchMap } from \"rxjs\";\nimport { QueryFeature } from \"../../query.feature\";\n\n\n@Injectable()\nexport class QueryGraphqlSchemaFeature {\n protected readonly feature = inject(QueryFeature);\n protected readonly service = inject(QueryService);\n\n protected readonly graphqlSchema$ = this.feature.query$.pipe(\n debounceTime(300),\n filter(query => QueryHelper.isExecutableGetSchemaGraphql(query)),\n switchMap((query) => this.service.getSchema(query).pipe(\n catchError(error => (console.error('[QueryFeature] error', error), NEVER)),\n )),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n readonly graphqlSchema = toSignal(this.graphqlSchema$);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Query","QueryHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xxmachina-components-features-query.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/features/query/actions.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/update/update.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/graphql/variables-form/variables-form.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/resolvers/base/base.resolver.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/resolvers/graphql/graphql.resolver.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/query.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/graphql/schema/schema.feature.ts","../../../../../packages/@xxmachina/components/src/lib/features/query/xxmachina-components-features-query.ts"],"sourcesContent":["export enum ActionId {\n クエリの実行 = 'クエリの実行',\n クエリの生成 = 'クエリの生成',\n クエリの更新 = 'クエリの更新',\n}\n","import { inject, Injectable, Provider } from \"@angular/core\";\nimport { injectEntityStore } from \"@ng-atomic/common/stores/entities\";\nimport { provideEffect } from \"@ng-atomic/core\";\nimport { Query } from \"@xxmachina/common/domain\";\nimport { ActionId } from \"../actions\";\nimport { AppService } from \"@ng-atomic/common/services/app\";\nimport { QueryFeature } from \"../query.feature\";\n\n\n@Injectable()\nexport class QueryUpdateFeature {\n static provideUpdateQueryEffect(): Provider[] {\n return [\n provideEffect(ActionId.クエリの更新, () => {\n const feature = inject(QueryUpdateFeature);\n return () => feature.update();\n }),\n ];\n }\n\n protected readonly queryEntityStore = injectEntityStore(Query);\n protected readonly app = inject(AppService);\n protected readonly feature = inject(QueryFeature);\n\n update() {\n const value = this.feature.form.getRawValue();\n this.app.loading.await(() => {\n return this.queryEntityStore.save({\n ...value,\n projectId: 'default',\n summary: 'deprecated',\n type: 'graphql',\n createdAt: undefined as never,\n updatedAt: undefined as never,\n } as never).then(() => {\n this.app.snackBar.open('クエリを更新しました');\n }).catch((error) => {\n console.error(error);\n this.app.snackBar.open(`ERROR: ${error.message}`);\n });\n });\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { QueryFeature } from \"../../query.feature\";\nimport { combineLatest, filter, map, shareReplay } from \"rxjs\";\nimport { QueryHelper } from \"@xxmachina/common/domain\";\nimport { takeUntilDestroyed, toSignal } from \"@angular/core/rxjs-interop\";\nimport { VariablesFromService } from \"@xxmachina/components/services/forms/variables\";\nimport { getRawValue$ } from \"@ng-atomic/common/utils\";\n\n@Injectable()\nexport class QueryGraphqlVariablesFormFeature {\n protected readonly feature = inject(QueryFeature);\n protected readonly variablesFromService = inject(VariablesFromService);\n\n protected readonly queryGraphqlVariables$ = this.feature.query$.pipe(\n map((query) => JSON.parse(query!.graphql!.variablesJson!)),\n );\n protected readonly variablesValue$ = this.feature.query$.pipe(\n map((query) => query?.graphql?.variables ?? {}),\n shareReplay(1),\n );\n readonly variablesValue = toSignal(this.variablesValue$, {initialValue: {}});\n\n protected readonly variablesForm$ = this.variablesValue$.pipe(\n map((value) => this.variablesFromService.build(value)),\n shareReplay(1),\n );\n readonly variablesForm = toSignal(this.variablesForm$);\n readonly variablesFormValue$ = this.variablesForm$.pipe(\n map((form) => getRawValue$(form)),\n shareReplay(1),\n );\n\n constructor() {\n combineLatest({\n pre: this.queryGraphqlVariables$,\n current: this.variablesFormValue$,\n }).pipe(\n takeUntilDestroyed(),\n filter(({current}) => !!current),\n map(({current, pre}) => ({ pre, next: QueryHelper.overwrite(current, pre) })),\n filter(({pre, next}) => JSON.stringify(pre) !== JSON.stringify(next)),\n shareReplay(1),\n ).subscribe((mergedVariables) => {\n this.feature.form.get(['graphql', 'variablesJson'])!.setValue(JSON.stringify(mergedVariables, null, 2));\n });\n }\n}\n","import { InjectionToken, Provider, Type } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Query } from '@xxmachina/common/domain/models';\n\nexport interface QueryResult {\n [key: string]: any[];\n}\n\nexport interface QueryResolver {\n \n canResolve(query: Query): boolean;\n\n \n resolve(query: Query): Observable<QueryResult>;\n}\n\nexport const QUERY_RESOLVERS = new InjectionToken<QueryResolver[]>('QUERY_RESOLVERS');\n\n\nexport function provideQueryResolver(resolver: Type<QueryResolver>): Provider[] {\n return [\n resolver,\n { provide: QUERY_RESOLVERS, useExisting: resolver, multi: true },\n ];\n}\n","import { Injectable, inject } from '@angular/core';\nimport { QueryService } from '@xxmachina/common/services/query';\nimport { Query } from '@xxmachina/common/domain/models';\nimport { QueryResolver, QueryResult } from '../base';\nimport { Observable } from 'rxjs';\n\n\nexport function isQuery(query: string): boolean {\n const queryString = query || '';\n const isQuery = /^\\s*(query|{)/i.test(queryString.trim());\n return isQuery;\n}\n\n@Injectable()\nexport class GraphqlResolver implements QueryResolver {\n private readonly queryService = inject(QueryService);\n\n canResolve(query: Query): boolean {\n return query?.type === 'graphql' || !!query?.graphql?.query;\n }\n\n resolve(query: Query): Observable<QueryResult> {\n \n return isQuery(query.graphql!.query!)\n ? this.queryService.query(query)\n : this.queryService.subscribe(query);\n }\n}\n","import { DestroyRef, inject, Injectable, Provider } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { AuthService } from '@xxmachina/common/auth';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { QueryFormService } from '@xxmachina/components/services/forms/query';\nimport { QueryService } from '@xxmachina/common/services/query';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectEntityStore } from '@ng-atomic/common/stores/entities';\nimport { getValue$ } from '@ng-atomic/common/utils';\nimport { EditingStateManager, pauseWhenEditing } from '@ng-atomic/common';\nimport { provideEffect } from '@ng-atomic/core';\nimport { isEqual } from 'lodash-es';\nimport { catchError, debounceTime, distinctUntilChanged, filter, map, of, ReplaySubject, shareReplay, switchMap, take } from 'rxjs';\nimport dayjs from 'dayjs';\nimport { QueryUpdateFeature } from './update';\nimport { ActionId } from './actions';\nimport { QueryGraphqlSchemaFeature } from './graphql/schema';\nimport { QueryGraphqlVariablesFormFeature } from './graphql/variables-form';\nimport { QUERY_RESOLVERS, QueryResolver, isQuery } from './resolvers';\n\n@Injectable()\nexport class QueryFeature {\n static readonly ActionId = ActionId;\n\n static provideDefault(): Provider[] {\n return [\n QueryFeature,\n QueryGraphqlSchemaFeature,\n QueryGraphqlVariablesFormFeature,\n QueryUpdateFeature,\n ];\n }\n\n static provideDefaultEffects(): Provider[] {\n return [\n QueryFeature.provideExecuteQueryEffect(),\n QueryFeature.provideGenerateQueryEffect(),\n QueryUpdateFeature.provideUpdateQueryEffect(),\n ]\n }\n\n static provideExecuteQueryEffect() {\n return provideEffect(ActionId.クエリの実行, () => {\n const feature = inject(QueryFeature);\n const app = inject(AppService);\n const entityStore = injectEntityStore(Query);\n return () => {\n const value = feature.form.getRawValue();\n app.loading.await(() => entityStore.create({\n ...value,\n id: undefined as unknown as string,\n type: 'graphql',\n projectId: 'default',\n title: dayjs().toISOString(),\n summary: 'クエリの実行',\n createdAt: null as unknown as dayjs.Dayjs,\n updatedAt: null as unknown as dayjs.Dayjs,\n } as never), 'progress');\n feature.refresh();\n }\n });\n }\n\n static provideGenerateQueryEffect(): Provider {\n return provideEffect(ActionId.クエリの生成, () => {\n return () => {};\n });\n }\n\n protected readonly app = inject(AppService);\n protected readonly auth = inject(AuthService);\n protected readonly service = inject(QueryService);\n protected readonly editingStateManager = inject(EditingStateManager);\n \n protected readonly resolvers = inject(QUERY_RESOLVERS, { optional: true }) ?? [];\n readonly form = inject(QueryFormService).build();\n\n protected readonly refresh$ = new ReplaySubject<void>();\n protected readonly formValue$ = getValue$(this.form).pipe(shareReplay(1));\n readonly formValue = toSignal(this.formValue$);\n\n readonly query$ = this.formValue$.pipe(\n map((query) => QueryFormService.parse(query as never)),\n shareReplay(1),\n );\n readonly query = toSignal(this.query$);\n\n readonly destroyRef = inject(DestroyRef);\n readonly result$ = this.refresh$.pipe(\n takeUntilDestroyed(),\n \n switchMap(() => this.query$.pipe(\n filter((query) => {\n \n const resolver = this.resolvers.find(r => r.canResolve(query));\n return resolver ? true : QueryHelper.validate(query);\n }),\n shareReplay(1),\n take(1)\n )),\n \n switchMap((query) => {\n const resolver = this.resolvers.find(r => r.canResolve(query));\n if (resolver) {\n \n return of(query);\n }\n \n return this.auth.accessToken$.pipe(\n filter(accessToken => !!accessToken),\n map(() => query),\n );\n }),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n debounceTime(500),\n this.app.loading.switchMap((query) => this.executeQuery(query), 'progress'),\n filter((result) => !!result),\n \n pauseWhenEditing(this.editingStateManager),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n readonly result = toSignal<Record<string, any[]> & Record<`${string}Length`, number> & { __meta__?: { title?: string } & any }>(this.result$);\n\n constructor() {\n this.form.get(['graphql', 'variablesJson'])!.valueChanges.pipe(\n takeUntilDestroyed(),\n debounceTime(300),\n distinctUntilChanged(isEqual),\n ).subscribe(() => this.refresh());\n }\n\n refresh(): void {\n this.refresh$.next();\n }\n\n protected executeQuery(query: Query) {\n const resolver = this.resolvers.find(r => r.canResolve(query));\n const source$ = resolver\n ? resolver.resolve(query)\n : isQuery(query.graphql!.query!) ? this.service.query(query) : this.service.subscribe(query);\n\n return source$.pipe(\n takeUntilDestroyed(this.destroyRef),\n catchError(error => {\n this.app.snackBar.openError(error);\n console.error(error);\n return of(null);\n }),\n );\n }\n}\n","import { inject, Injectable, Provider } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { QueryHelper } from \"@xxmachina/common/domain/models\";\nimport { QueryService } from \"@xxmachina/common/services/query\";\nimport { isEqual } from \"lodash-es\";\nimport { catchError, debounceTime, distinctUntilChanged, filter, NEVER, switchMap } from \"rxjs\";\nimport { QueryFeature } from \"../../query.feature\";\n\n\n@Injectable()\nexport class QueryGraphqlSchemaFeature {\n protected readonly feature = inject(QueryFeature);\n protected readonly service = inject(QueryService);\n\n protected readonly graphqlSchema$ = this.feature.query$.pipe(\n debounceTime(300),\n filter(query => QueryHelper.isExecutableGetSchemaGraphql(query)),\n switchMap((query) => this.service.getSchema(query).pipe(\n catchError(error => (console.error('[QueryFeature] error', error), NEVER)),\n )),\n distinctUntilChanged((a, b) => isEqual(a, b)),\n );\n readonly graphqlSchema = toSignal(this.graphqlSchema$);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Query","QueryHelper"],"mappings":"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"}
|