@xxmachina/components 19.30.0 → 19.32.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.
@@ -444,17 +444,16 @@ class ReactFlowComponent extends NgAtomicComponent {
444
444
  };
445
445
  }
446
446
  emitTapAsNodeClick(clientX, clientY) {
447
- const nodeEls = this.el.nativeElement.querySelectorAll('.react-flow__node');
448
- for (const nodeEl of Array.from(nodeEls).reverse()) {
449
- const rect = nodeEl.getBoundingClientRect();
450
- if (clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom) {
451
- const nodeId = nodeEl.getAttribute('data-id');
452
- const node = this.store.nodes?.()?.find((n) => n.id === nodeId);
453
- if (node) {
454
- this.store.onNodeClick?.emit([new MouseEvent('click', { clientX, clientY }), node]);
455
- }
456
- return;
457
- }
447
+ const el = document.elementFromPoint(clientX, clientY);
448
+ const nodeEl = el?.closest('.react-flow__node');
449
+ if (!nodeEl)
450
+ return;
451
+ const nodeId = nodeEl.getAttribute('data-id');
452
+ if (!nodeId)
453
+ return;
454
+ const node = this.store.nodes?.()?.find((n) => n.id === nodeId);
455
+ if (node) {
456
+ this.store.onNodeClick?.emit([new MouseEvent('click', { clientX, clientY }), node]);
458
457
  }
459
458
  }
460
459
  cleanupTouchPassthrough() {
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-extras-flow.mjs","sources":["../../../../../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":["import * as React from 'react';\nimport { FunctionComponent, ReactEventHandler, useMemo } from 'react';\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// Show minimap and controls by default\n\tconst showMiniMap = props.showMiniMap !== false;\n\tconst showControls = props.showControls !== false;\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\t(prevProps, nextProps) => {\n\t\t// Return true to skip re-render (props are equal)\n\t\t// Return false to re-render (props have changed)\n\t\treturn (\n\t\t\tprevProps.props.nodes === nextProps.props.nodes &&\n\t\t\tprevProps.props.edges === nextProps.props.edges &&\n\t\t\tprevProps.props.backgroundVariant === nextProps.props.backgroundVariant &&\n\t\t\tprevProps.props.backgroundGap === nextProps.props.backgroundGap &&\n\t\t\tprevProps.props.backgroundColor === nextProps.props.backgroundColor &&\n\t\t\tprevProps.props.showBackground === nextProps.props.showBackground &&\n\t\t\tprevProps.props.showMiniMap === nextProps.props.showMiniMap &&\n\t\t\tprevProps.props.showControls === nextProps.props.showControls &&\n\t\t\tprevProps.props.showCoordinateLabels === nextProps.props.showCoordinateLabels &&\n\t\t\tprevProps.props.coordinateLabelInterval === nextProps.props.coordinateLabelInterval\n\t\t);\n\t}\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 } 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\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 handleResizeEnd = (event: any, params: any) => {\n if (onNodeResizeEnd) {\n onNodeResizeEnd(id, params.width, params.height);\n }\n };\n\n return (\n <div ref={containerRef}>\n <NodeResizer\n minWidth={400}\n minHeight={300}\n isVisible={true}\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\n readonly enableTouchPassthrough = input(false);\n\n constructor() {\n super();\n effect(() => this.render());\n effect(() => {\n if (this.enableTouchPassthrough()) {\n this.setupTouchPassthrough();\n } else {\n this.cleanupTouchPassthrough();\n }\n });\n }\n\n ngOnInit() {\n this._root = createRoot(this.el.nativeElement);\n }\n\n ngOnDestroy() {\n this._root.unmount();\n this.cleanupTouchPassthrough();\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 nodeEls = this.el.nativeElement.querySelectorAll('.react-flow__node');\n for (const nodeEl of Array.from(nodeEls).reverse() as Element[]) {\n const rect = nodeEl.getBoundingClientRect();\n if (clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom) {\n const nodeId = nodeEl.getAttribute('data-id');\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 return;\n }\n }\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.applyTransitionClass();\n this._root.render(React.createElement(ReactFlowWrapper, {\n props: {\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(), // Use the merged node types\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 // Special case: onError emits only the first argument\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 }\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/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":["import * as React from 'react';\nimport { FunctionComponent, ReactEventHandler, useMemo } from 'react';\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// Show minimap and controls by default\n\tconst showMiniMap = props.showMiniMap !== false;\n\tconst showControls = props.showControls !== false;\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\t(prevProps, nextProps) => {\n\t\t// Return true to skip re-render (props are equal)\n\t\t// Return false to re-render (props have changed)\n\t\treturn (\n\t\t\tprevProps.props.nodes === nextProps.props.nodes &&\n\t\t\tprevProps.props.edges === nextProps.props.edges &&\n\t\t\tprevProps.props.backgroundVariant === nextProps.props.backgroundVariant &&\n\t\t\tprevProps.props.backgroundGap === nextProps.props.backgroundGap &&\n\t\t\tprevProps.props.backgroundColor === nextProps.props.backgroundColor &&\n\t\t\tprevProps.props.showBackground === nextProps.props.showBackground &&\n\t\t\tprevProps.props.showMiniMap === nextProps.props.showMiniMap &&\n\t\t\tprevProps.props.showControls === nextProps.props.showControls &&\n\t\t\tprevProps.props.showCoordinateLabels === nextProps.props.showCoordinateLabels &&\n\t\t\tprevProps.props.coordinateLabelInterval === nextProps.props.coordinateLabelInterval\n\t\t);\n\t}\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 } 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\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 handleResizeEnd = (event: any, params: any) => {\n if (onNodeResizeEnd) {\n onNodeResizeEnd(id, params.width, params.height);\n }\n };\n\n return (\n <div ref={containerRef}>\n <NodeResizer\n minWidth={400}\n minHeight={300}\n isVisible={true}\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\n readonly enableTouchPassthrough = input(false);\n\n constructor() {\n super();\n effect(() => this.render());\n effect(() => {\n if (this.enableTouchPassthrough()) {\n this.setupTouchPassthrough();\n } else {\n this.cleanupTouchPassthrough();\n }\n });\n }\n\n ngOnInit() {\n this._root = createRoot(this.el.nativeElement);\n }\n\n ngOnDestroy() {\n this._root.unmount();\n this.cleanupTouchPassthrough();\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 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.applyTransitionClass();\n this._root.render(React.createElement(ReactFlowWrapper, {\n props: {\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(), // Use the merged node types\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 // Special case: onError emits only the first argument\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 }\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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"}
@@ -12,7 +12,7 @@ class WeeklyHeaderMolecule {
12
12
  <span>{{ day }}</span>
13
13
  </div>
14
14
  }
15
- `, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-R08lD1Tz: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-R08lD1Tz: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-R08lD1Tz)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] });
15
+ `, isInline: true, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-BVLMOZoa: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-BVLMOZoa: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-BVLMOZoa)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: WeeklyHeaderMolecule, decorators: [{
18
18
  type: Component,
@@ -22,7 +22,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
22
22
  <span>{{ day }}</span>
23
23
  </div>
24
24
  }
25
- `, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-R08lD1Tz: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-R08lD1Tz: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-R08lD1Tz)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] }]
25
+ `, styles: [":host{display:block;--primary-color: #404040;--primary-color-SCOPED-IN-BVLMOZoa: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-BVLMOZoa: var(--secondary-color)}:host{display:grid;width:100%;grid-template-columns:repeat(7,1fr);background-color:var(--primary-color-SCOPED-IN-BVLMOZoa)}:host .day-container{display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;width:calc(hvar(--width) / 7)}\n"] }]
26
26
  }], ctorParameters: () => [] });
27
27
 
28
28
  /**
@@ -56,7 +56,7 @@ class CalendarSectionOrganism {
56
56
  }
57
57
  }
58
58
  </div>
59
- `, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-yWnRjroj: var(--row);--row-num: 0;--row-num-SCOPED-IN-yWnRjroj: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-yWnRjroj: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-yWnRjroj: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-yWnRjroj: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-yWnRjroj);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-yWnRjroj),var(--row-SCOPED-IN-yWnRjroj));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-yWnRjroj)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-yWnRjroj);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"], dependencies: [{ kind: "component", type: DailyCellMolecule, selector: "molecules-daily-cell", inputs: ["date", "schedules", "displayDate", "noSchedulesText", "toolTipText", "marked", "markingColor"] }, { kind: "component", type: WeeklyHeaderMolecule, selector: "molecules-weekly-header" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
59
+ `, isInline: true, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-D4AXytEZ: var(--row);--row-num: 0;--row-num-SCOPED-IN-D4AXytEZ: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-D4AXytEZ: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-D4AXytEZ: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-D4AXytEZ: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-D4AXytEZ);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-D4AXytEZ),var(--row-SCOPED-IN-D4AXytEZ));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-D4AXytEZ)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-D4AXytEZ);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"], dependencies: [{ kind: "component", type: DailyCellMolecule, selector: "molecules-daily-cell", inputs: ["date", "schedules", "displayDate", "noSchedulesText", "toolTipText", "marked", "markingColor"] }, { kind: "component", type: WeeklyHeaderMolecule, selector: "molecules-weekly-header" }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
60
60
  }
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: CalendarSectionOrganism, decorators: [{
62
62
  type: Component,
@@ -90,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
90
90
  }
91
91
  }
92
92
  </div>
93
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-yWnRjroj: var(--row);--row-num: 0;--row-num-SCOPED-IN-yWnRjroj: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-yWnRjroj: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-yWnRjroj: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-yWnRjroj: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-yWnRjroj);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-yWnRjroj),var(--row-SCOPED-IN-yWnRjroj));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-yWnRjroj)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-yWnRjroj);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"] }]
93
+ `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;--row: 80px;--row-SCOPED-IN-D4AXytEZ: var(--row);--row-num: 0;--row-num-SCOPED-IN-D4AXytEZ: var(--row-num);--border-color: #9E9E9E;--border-color-SCOPED-IN-D4AXytEZ: var(--border-color);--primary-color: #404040;--primary-color-SCOPED-IN-D4AXytEZ: var(--primary-color);--secondary-color: #B0B0B0;--secondary-color-SCOPED-IN-D4AXytEZ: var(--secondary-color)}:host{width:100%;height:auto}:host .calendar.header molecules-weekly-header{--height: 32px}:host .calendar.contents{display:grid;width:var(--width);border:1px solid var(--border-color-SCOPED-IN-D4AXytEZ);grid-gap:1px;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--row-num-SCOPED-IN-D4AXytEZ),var(--row-SCOPED-IN-D4AXytEZ));box-sizing:border-box;background-color:var(--border-color-SCOPED-IN-D4AXytEZ)}:host .calendar.contents molecules-daily-cell{--width: calc((var(--width) - 8px) / 7);--height: var(--row-SCOPED-IN-D4AXytEZ);background-color:#fff}:host .calendar.description{display:flex;justify-content:flex-end;width:var(--width);height:32px;padding-right:16px}:host .calendar.description .description.container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;font-size:12px}:host .calendar.description .description.container .circle{display:flex;width:20px;height:20px;justify-content:center;align-items:center;border-radius:50%;color:#fff;background:#00f}:host .calendar.description .description.container label{padding-left:4px;padding-right:8px}\n"] }]
94
94
  }], propDecorators: { label: [{
95
95
  type: Input
96
96
  }], displayDays: [{
@@ -428,7 +428,7 @@ class CommandPage extends NgAtomicComponent {
428
428
  </frames-tabs>
429
429
  </templates-form>
430
430
  </frames-router-outlet>
431
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-qj5s: var(--page-width-lv1);--primary-color-SCOPED-IN-command-qj5s: var(--primary-color);--on-primary-color-SCOPED-IN-command-qj5s: var(--on-primary-color);--background-color-SCOPED-IN-command-qj5s: var(--background-color);--on-background-color-SCOPED-IN-command-qj5s: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-qj5s)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-qj5s);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-qj5s);--background-color: var(--background-color-SCOPED-IN-command-qj5s);--on-background-color: var(--on-background-color-SCOPED-IN-command-qj5s)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] });
431
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-qJZQ: var(--page-width-lv1);--primary-color-SCOPED-IN-command-qJZQ: var(--primary-color);--on-primary-color-SCOPED-IN-command-qJZQ: var(--on-primary-color);--background-color-SCOPED-IN-command-qJZQ: var(--background-color);--on-background-color-SCOPED-IN-command-qJZQ: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-qJZQ)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-qJZQ);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-qJZQ);--background-color: var(--background-color-SCOPED-IN-command-qJZQ);--on-background-color: var(--on-background-color-SCOPED-IN-command-qJZQ)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] });
432
432
  }
433
433
  __decorate([
434
434
  Effect(FormTemplateStore.ActionId.FILE_SELECTED),
@@ -491,7 +491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
491
491
  'actions',
492
492
  ]
493
493
  },
494
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-qj5s: var(--page-width-lv1);--primary-color-SCOPED-IN-command-qj5s: var(--primary-color);--on-primary-color-SCOPED-IN-command-qj5s: var(--on-primary-color);--background-color-SCOPED-IN-command-qj5s: var(--background-color);--on-background-color-SCOPED-IN-command-qj5s: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-qj5s)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-qj5s);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-qj5s);--background-color: var(--background-color-SCOPED-IN-command-qj5s);--on-background-color: var(--on-background-color-SCOPED-IN-command-qj5s)}\n"] }]
494
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-qJZQ: var(--page-width-lv1);--primary-color-SCOPED-IN-command-qJZQ: var(--primary-color);--on-primary-color-SCOPED-IN-command-qJZQ: var(--on-primary-color);--background-color-SCOPED-IN-command-qJZQ: var(--background-color);--on-background-color-SCOPED-IN-command-qJZQ: var(--on-background-color)}:host templates-form{padding-left:0;box-sizing:border-box;transition:padding-left .3s}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-qJZQ)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-qJZQ);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-qJZQ);--background-color: var(--background-color-SCOPED-IN-command-qJZQ);--on-background-color: var(--on-background-color-SCOPED-IN-command-qJZQ)}\n"] }]
495
495
  }], propDecorators: { onFileSelected: [] } });
496
496
 
497
497
  /**
@@ -738,7 +738,7 @@ class QueryPage extends NgAtomicComponent {
738
738
  <groups-query-form dashboard (action)="dispatch($event)" />
739
739
  </templates-index>
740
740
  </frames-router-outlet>
741
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-H2lJ: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-H2lJ: var(--page-width-lv3);--primary-color-SCOPED-IN-query-H2lJ: var(--primary-color);--on-primary-color-SCOPED-IN-query-H2lJ: var(--on-primary-color);--surface-color-SCOPED-IN-query-H2lJ: var(--surface-color);--on-surface-color-SCOPED-IN-query-H2lJ: var(--on-surface-color);--on-background-color-SCOPED-IN-query-H2lJ: var(--on-background-color);--background-color-SCOPED-IN-query-H2lJ: var(--background-color);--navigator-background-color-SCOPED-IN-query-H2lJ: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-H2lJ: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-H2lJ: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-H2lJ: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-H2lJ: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-H2lJ);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-H2lJ);--surface-color: var(--surface-color-SCOPED-IN-query-H2lJ);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-H2lJ);--background-color: var(--background-color-SCOPED-IN-query-H2lJ);--on-background-color: var(--on-background-color-SCOPED-IN-query-H2lJ);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-H2lJ);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-H2lJ);--table-background-color: var(--table-background-color-SCOPED-IN-query-H2lJ);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-H2lJ);--is-debug: var(--is-debug-SCOPED-IN-query-H2lJ)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-H2lJ) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
741
+ `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-q501: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-q501: var(--page-width-lv3);--primary-color-SCOPED-IN-query-q501: var(--primary-color);--on-primary-color-SCOPED-IN-query-q501: var(--on-primary-color);--surface-color-SCOPED-IN-query-q501: var(--surface-color);--on-surface-color-SCOPED-IN-query-q501: var(--on-surface-color);--on-background-color-SCOPED-IN-query-q501: var(--on-background-color);--background-color-SCOPED-IN-query-q501: var(--background-color);--navigator-background-color-SCOPED-IN-query-q501: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-q501: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-q501: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-q501: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-q501: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-q501);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-q501);--surface-color: var(--surface-color-SCOPED-IN-query-q501);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-q501);--background-color: var(--background-color-SCOPED-IN-query-q501);--on-background-color: var(--on-background-color-SCOPED-IN-query-q501);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-q501);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-q501);--table-background-color: var(--table-background-color-SCOPED-IN-query-q501);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-q501);--is-debug: var(--is-debug-SCOPED-IN-query-q501)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-q501) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
742
742
  }
743
743
  __decorate([
744
744
  Effect(IndexTemplateStore.ActionId.BACK),
@@ -819,7 +819,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
819
819
  'pageSizeOptions'
820
820
  ]
821
821
  },
822
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-H2lJ: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-H2lJ: var(--page-width-lv3);--primary-color-SCOPED-IN-query-H2lJ: var(--primary-color);--on-primary-color-SCOPED-IN-query-H2lJ: var(--on-primary-color);--surface-color-SCOPED-IN-query-H2lJ: var(--surface-color);--on-surface-color-SCOPED-IN-query-H2lJ: var(--on-surface-color);--on-background-color-SCOPED-IN-query-H2lJ: var(--on-background-color);--background-color-SCOPED-IN-query-H2lJ: var(--background-color);--navigator-background-color-SCOPED-IN-query-H2lJ: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-H2lJ: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-H2lJ: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-H2lJ: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-H2lJ: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-H2lJ);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-H2lJ);--surface-color: var(--surface-color-SCOPED-IN-query-H2lJ);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-H2lJ);--background-color: var(--background-color-SCOPED-IN-query-H2lJ);--on-background-color: var(--on-background-color-SCOPED-IN-query-H2lJ);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-H2lJ);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-H2lJ);--table-background-color: var(--table-background-color-SCOPED-IN-query-H2lJ);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-H2lJ);--is-debug: var(--is-debug-SCOPED-IN-query-H2lJ)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-H2lJ) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
822
+ ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-q501: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-q501: var(--page-width-lv3);--primary-color-SCOPED-IN-query-q501: var(--primary-color);--on-primary-color-SCOPED-IN-query-q501: var(--on-primary-color);--surface-color-SCOPED-IN-query-q501: var(--surface-color);--on-surface-color-SCOPED-IN-query-q501: var(--on-surface-color);--on-background-color-SCOPED-IN-query-q501: var(--on-background-color);--background-color-SCOPED-IN-query-q501: var(--background-color);--navigator-background-color-SCOPED-IN-query-q501: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-q501: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-q501: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-q501: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-q501: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-q501);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-q501);--surface-color: var(--surface-color-SCOPED-IN-query-q501);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-q501);--background-color: var(--background-color-SCOPED-IN-query-q501);--on-background-color: var(--on-background-color-SCOPED-IN-query-q501);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-q501);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-q501);--table-background-color: var(--table-background-color-SCOPED-IN-query-q501);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-q501);--is-debug: var(--is-debug-SCOPED-IN-query-q501)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-q501) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
823
823
  }], ctorParameters: () => [], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => IndexTemplate), { isSignal: true }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], back: [], navigateToIframe: [], expandPage: [], itemClick: [] } });
824
824
 
825
825
  /**
@@ -120,7 +120,7 @@ class ThreadPage extends NgAtomicComponent {
120
120
  (action)="dispatch($event)"
121
121
  />
122
122
  </frames-router-outlet>
123
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-3N44: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-3N44: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-3N44: var(--primary-color);--on-primary-color-SCOPED-IN-thread-3N44: var(--on-primary-color);--surface-color-SCOPED-IN-thread-3N44: var(--surface-color);--on-surface-color-SCOPED-IN-thread-3N44: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-3N44: var(--on-background-color);--background-color-SCOPED-IN-thread-3N44: var(--background-color);--navigator-background-color-SCOPED-IN-thread-3N44: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-3N44: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-3N44: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-3N44: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-3N44)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: ThreadTemplate, selector: "templates-messages" }] });
123
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-9udR: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-9udR: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-9udR: var(--primary-color);--on-primary-color-SCOPED-IN-thread-9udR: var(--on-primary-color);--surface-color-SCOPED-IN-thread-9udR: var(--surface-color);--on-surface-color-SCOPED-IN-thread-9udR: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-9udR: var(--on-background-color);--background-color-SCOPED-IN-thread-9udR: var(--background-color);--navigator-background-color-SCOPED-IN-thread-9udR: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-9udR: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-9udR: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-9udR: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-9udR)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: ThreadTemplate, selector: "templates-messages" }] });
124
124
  }
125
125
  __decorate([
126
126
  Effect(ActionId.SEND_MESSAGE),
@@ -153,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
153
153
  'messages',
154
154
  ]
155
155
  },
156
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-3N44: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-3N44: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-3N44: var(--primary-color);--on-primary-color-SCOPED-IN-thread-3N44: var(--on-primary-color);--surface-color-SCOPED-IN-thread-3N44: var(--surface-color);--on-surface-color-SCOPED-IN-thread-3N44: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-3N44: var(--on-background-color);--background-color-SCOPED-IN-thread-3N44: var(--background-color);--navigator-background-color-SCOPED-IN-thread-3N44: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-3N44: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-3N44: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-3N44: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-3N44)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"] }]
156
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-thread-9udR: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-thread-9udR: var(--page-width-lv3);--primary-color-SCOPED-IN-thread-9udR: var(--primary-color);--on-primary-color-SCOPED-IN-thread-9udR: var(--on-primary-color);--surface-color-SCOPED-IN-thread-9udR: var(--surface-color);--on-surface-color-SCOPED-IN-thread-9udR: var(--on-surface-color);--on-background-color-SCOPED-IN-thread-9udR: var(--on-background-color);--background-color-SCOPED-IN-thread-9udR: var(--background-color);--navigator-background-color-SCOPED-IN-thread-9udR: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-thread-9udR: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-thread-9udR: var(--table-background-color);--table-on-background-color-SCOPED-IN-thread-9udR: var(--table-on-background-color)}:host .template{width:var(--page-width-lv1-SCOPED-IN-thread-9udR)}:host .chat-container{display:flex;flex-direction:column;height:100%}:host .message{padding:10px;border-bottom:1px solid #ccc}\n"] }]
157
157
  }], propDecorators: { onCompositionStart: [{
158
158
  type: HostListener,
159
159
  args: ['compositionstart', ['$event']]
@@ -462,7 +462,7 @@ class AgentTemplate extends NgAtomicComponent {
462
462
  </div>
463
463
  </div>
464
464
  </frames-scroll>
465
- `, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-G1re: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-G1re: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-G1re: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-G1re: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-G1re: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-G1re);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-G1re);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-G1re);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-G1re);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-G1re);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-G1re);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-G1re);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-G1re);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-G1re)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-G1re),0 0 20px var(--accent-SCOPED-IN-entrance-G1re);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
465
+ `, isInline: true, styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-vdoa: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-vdoa: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-vdoa: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-vdoa: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-vdoa: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-vdoa);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-vdoa);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-vdoa);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-vdoa);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-vdoa);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-vdoa);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-vdoa);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-vdoa);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-vdoa)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-vdoa),0 0 20px var(--accent-SCOPED-IN-entrance-vdoa);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: XtermOrganism, selector: "organisms-xterm", outputs: ["terminalReady", "githubLinkClick"] }, { kind: "directive", type: NavigatorOrganismStore, selector: "organisms-navigator", inputs: ["startActions", "endActions", "title"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
466
466
  }
467
467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: AgentTemplate, decorators: [{
468
468
  type: Component,
@@ -543,7 +543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
543
543
  'fieldMap',
544
544
  ],
545
545
  },
546
- ], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-G1re: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-G1re: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-G1re: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-G1re: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-G1re: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-G1re);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-G1re);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-G1re);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-G1re);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-G1re);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-G1re);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-G1re);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-G1re);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-G1re)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-G1re),0 0 20px var(--accent-SCOPED-IN-entrance-G1re);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
546
+ ], styles: [":host{--text: #e0e0e0;--text-SCOPED-IN-entrance-vdoa: var(--text);--user: #00ff00;--user-SCOPED-IN-entrance-vdoa: var(--user);--sys: #888;--sys-SCOPED-IN-entrance-vdoa: var(--sys);--accent: #ff79c6;--accent-SCOPED-IN-entrance-vdoa: var(--accent);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-entrance-vdoa: var(--border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}:host{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background:transparent;font-family:SF Mono,Monaco,monospace;container-type:inline-size;container-name:agent-container;transition:all .3s ease}.terminal-window{--height: 100%;--contents-gap: 0;width:100%;max-width:900px;height:600px;background:#0a0a0a;border:1px solid var(--border-SCOPED-IN-entrance-vdoa);border-radius:8px;box-shadow:0 20px 40px #0000004d;animation:fadeIn .3s;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;height:56px;min-height:56px;flex-shrink:0;padding:0 20px;background:#1a1a1a99;border-bottom:1px solid var(--border-SCOPED-IN-entrance-vdoa);transition:all .3s ease;position:relative}.terminal-header .close-button{color:var(--sys-SCOPED-IN-entrance-vdoa);margin-right:.5rem;opacity:.7}.terminal-header .close-button:hover{color:var(--text-SCOPED-IN-entrance-vdoa);opacity:1}.terminal-header .terminal-title{font-size:13px;color:var(--text-SCOPED-IN-entrance-vdoa);font-weight:500;flex:1}.terminal-header .terminal-status{font-size:12px;color:var(--sys-SCOPED-IN-entrance-vdoa);opacity:.7}.terminal-display{width:100%;height:100%;background:#0a0a0a}.input-area{background:#000000e6;border-top:1px solid var(--border-SCOPED-IN-entrance-vdoa);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s ease;padding:16px 20px}.input-line{display:block;position:relative}.input-line .input-prefix{display:none}.input-line .textarea-wrapper{display:flex;align-items:flex-start;position:relative;border:1px solid rgba(255,255,255,.2);border-radius:4px;transition:border-color .2s ease}.input-line .textarea-wrapper:focus-within{border-color:#fff6}.input-line .textarea-wrapper .arrow-prefix{color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;padding:12px 0 12px 16px;flex-shrink:0;pointer-events:none}.input-line .textarea-wrapper .input-container{flex:1;position:relative;overflow:hidden}.input-line .textarea-wrapper .terminal-input{width:100%;background:transparent;border:none;outline:none;color:#e0e0e0;font-family:SF Mono,Monaco,monospace;font-size:14px;font-weight:400;caret-color:transparent;padding:12px 16px 12px 8px;transition:none;resize:none;height:44px;min-height:44px;max-height:200px;overflow-y:auto;overflow-x:hidden;line-height:20px;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word}.input-line .textarea-wrapper .terminal-input::selection{background:#ffffff4d}.input-line .textarea-wrapper .terminal-input{caret-shape:block}.input-line .textarea-wrapper .terminal-input:disabled{opacity:.5;cursor:not-allowed}.input-line .textarea-wrapper .terminal-input:-webkit-autofill{-webkit-text-fill-color:#e0e0e0;-webkit-box-shadow:0 0 0 1000px rgba(0,0,0,.9) inset}.input-line .textarea-wrapper .terminal-input::placeholder{color:#ffffff4d;opacity:1}.input-line .textarea-wrapper .block-cursor{position:absolute;width:10px;height:20px;background:#e0e0e0;opacity:0;pointer-events:none}.input-line .textarea-wrapper .block-cursor.visible{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.8}51%,to{opacity:0}}:host:has(.terminal-window){height:100vh;height:100dvh;overflow-y:auto}@container agent-container (max-width: 600px){:host{padding:0;padding-top:env(safe-area-inset-top)}.terminal-window{height:100%;max-height:100vh;max-height:100dvh;max-width:100%;border-radius:0;border:none;box-shadow:none}.terminal-header{height:56px;padding:0 16px}.terminal-header .terminal-title{font-size:12px}.terminal-header .terminal-status{font-size:11px}.terminal-header .close-button{margin-right:.25rem}}@container agent-container (min-width: 601px) and (max-width: 900px){.terminal-window{max-width:100%;height:100%;border-radius:0}}@container agent-container (max-width: 400px){.terminal-header{height:56px;padding:0 12px}.terminal-header .close-button{margin-right:.2rem}.input-area{padding:12px 16px}.textarea-wrapper .arrow-prefix{font-size:13px;padding:10px 0 10px 12px}.textarea-wrapper .terminal-input{font-size:12px;padding:10px 12px 10px 6px;height:40px;min-height:40px;line-height:20px}}.ascii-art{font-family:Consolas,Monaco,Liberation Mono,Menlo,Courier New,monospace!important;font-size:10px!important;line-height:1.1!important;letter-spacing:0!important;font-weight:400!important;margin:1em 0!important;padding:1em!important;white-space:pre!important;overflow-x:auto!important;overflow-y:hidden!important;display:block!important;width:fit-content!important;background:#ffffff08;border:1px solid var(--border-SCOPED-IN-entrance-vdoa);border-radius:4px;color:var(--accent-SCOPED-IN-entrance-vdoa)!important;opacity:.9;text-shadow:0 0 10px var(--accent-SCOPED-IN-entrance-vdoa),0 0 20px var(--accent-SCOPED-IN-entrance-vdoa);-webkit-font-smoothing:none!important;-moz-osx-font-smoothing:unset!important;font-variant-ligatures:none!important;text-rendering:optimizeLegibility!important}\n"] }]
547
547
  }], propDecorators: { endActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "endActions", required: false }] }], xtermComponent: [{ type: i0.ViewChild, args: ['xtermComponent', { isSignal: true }] }], inputField: [{ type: i0.ViewChild, args: ['inputField', { isSignal: true }] }], onWindowResize: [{
548
548
  type: HostListener,
549
549
  args: ['window:resize']
@@ -6,6 +6,7 @@ import { MarkerType } from 'reactflow';
6
6
  import * as i1 from '@angular/material/icon';
7
7
  import { MatIconModule } from '@angular/material/icon';
8
8
  import { NgAtomicComponent, InjectableComponent, provideComponent, TokenizedType, Effect } from '@ng-atomic/core';
9
+ import { ScrollFrame } from '@ng-atomic/components/frames/scroll';
9
10
 
10
11
  var ActionId$1;
11
12
  (function (ActionId) {
@@ -185,9 +186,9 @@ class FlowTemplate extends NgAtomicComponent {
185
186
  nodes = input([], ...(ngDevMode ? [{ debugName: "nodes" }] : []));
186
187
  edges = input([], ...(ngDevMode ? [{ debugName: "edges" }] : []));
187
188
  interactionMode = input('desktop', ...(ngDevMode ? [{ debugName: "interactionMode" }] : []));
189
+ deleteKeyCode = input(null, ...(ngDevMode ? [{ debugName: "deleteKeyCode" }] : []));
188
190
  panOnDrag_ = computed(() => this.interactionMode() === 'touch' ? [2] : true, ...(ngDevMode ? [{ debugName: "panOnDrag_" }] : []));
189
191
  nodesDraggable_ = computed(() => this.interactionMode() !== 'touch', ...(ngDevMode ? [{ debugName: "nodesDraggable_" }] : []));
190
- deleteKeyCode = input(null, ...(ngDevMode ? [{ debugName: "deleteKeyCode" }] : [])); // nullで削除機能を無効化
191
192
  defaultEdgeOptions = input({
192
193
  type: 'smoothstep',
193
194
  animated: true,
@@ -210,10 +211,6 @@ class FlowTemplate extends NgAtomicComponent {
210
211
  onViewportMove([_event, viewport]) {
211
212
  this.viewportChange.emit(viewport);
212
213
  }
213
- /**
214
- * Handle ReactFlow initialization.
215
- * Uses requestAnimationFrame to wait for fitView completion before emitting viewport.
216
- */
217
214
  onFlowInit([instance]) {
218
215
  requestAnimationFrame(() => {
219
216
  const viewport = instance.getViewport();
@@ -222,14 +219,15 @@ class FlowTemplate extends NgAtomicComponent {
222
219
  }
223
220
  onGroupExpandedChange(payload) {
224
221
  const nodeId = payload.data?.task?.id;
225
- console.log('FlowTemplate - GroupNode EXPANDED_CHANGE:', { nodeId, expanded: payload.expanded });
226
222
  if (nodeId) {
227
223
  this.dispatch({ id: ActionId.EXPANDED_CHANGE, payload: { nodeId, expanded: payload.expanded } });
228
224
  }
229
225
  }
230
226
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: FlowTemplate, deps: null, target: i0.ɵɵFactoryTarget.Component });
231
227
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: FlowTemplate, isStandalone: true, selector: "templates-flow", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, edges: { classPropertyName: "edges", publicName: "edges", isSignal: true, isRequired: false, transformFunction: null }, interactionMode: { classPropertyName: "interactionMode", publicName: "interactionMode", isSignal: true, isRequired: false, transformFunction: null }, deleteKeyCode: { classPropertyName: "deleteKeyCode", publicName: "deleteKeyCode", isSignal: true, isRequired: false, transformFunction: null }, defaultEdgeOptions: { classPropertyName: "defaultEdgeOptions", publicName: "defaultEdgeOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeClick: "nodeClick", nodesChange: "nodesChange", nodeDragStop: "nodeDragStop", edgesChange: "edgesChange", connect: "connect", nodeData: "nodeData", nodeResizeEnd: "nodeResizeEnd", viewportChange: "viewportChange" }, usesInheritance: true, ngImport: i0, template: `
232
- <machina-react-flow
228
+ <frames-scroll>
229
+ <ng-content select="[top]" top />
230
+ <machina-react-flow
233
231
  [nodes]="nodes()"
234
232
  [edges]="edges()"
235
233
  [deleteKeyCode]="deleteKeyCode()"
@@ -243,6 +241,7 @@ class FlowTemplate extends NgAtomicComponent {
243
241
  [nodesDraggable]="nodesDraggable_()"
244
242
  [nodesConnectable]="true"
245
243
  [elementsSelectable]="true"
244
+ [onlyRenderVisibleElements]="true"
246
245
  [panOnDrag]="panOnDrag_()"
247
246
  [panOnScroll]="true"
248
247
  [selectionOnDrag]="false"
@@ -271,7 +270,8 @@ class FlowTemplate extends NgAtomicComponent {
271
270
  (action)="dispatch($event)"
272
271
  />
273
272
  </machina-react-flow>
274
- `, isInline: true, styles: [":host{display:block;width:100%;height:100%}::ng-deep .react-flow__node-group{background:#f0f0f04d!important;border:2px solid #e1e4e8!important;border-radius:12px!important;box-shadow:none!important;padding:60px 40px 40px!important}::ng-deep .react-flow__node-group .react-flow__node-group__label{display:none!important}\n"], dependencies: [{ kind: "component", type: ReactFlowComponent, selector: "machina-react-flow", inputs: ["enableTouchPassthrough"] }, { kind: "directive", type: FlowNodeDirective, selector: "[flowNode]", inputs: ["flowNode"] }, { kind: "component", type: GroupNodeComponent, selector: "flow-group-node", inputs: ["data"], outputs: ["expandedChange"] }, { kind: "directive", type: FlowNodeStore, selector: "flow-node", inputs: ["data"] }] });
273
+ </frames-scroll>
274
+ `, isInline: true, styles: [":host{display:block;width:100%;height:100%}::ng-deep .react-flow__node-group{background:#f0f0f04d!important;border:2px solid #e1e4e8!important;border-radius:12px!important;box-shadow:none!important;padding:60px 40px 40px!important}::ng-deep .react-flow__node-group .react-flow__node-group__label{display:none!important}\n"], dependencies: [{ kind: "component", type: ReactFlowComponent, selector: "machina-react-flow", inputs: ["enableTouchPassthrough"] }, { kind: "directive", type: FlowNodeDirective, selector: "[flowNode]", inputs: ["flowNode"] }, { kind: "component", type: GroupNodeComponent, selector: "flow-group-node", inputs: ["data"], outputs: ["expandedChange"] }, { kind: "directive", type: FlowNodeStore, selector: "flow-node", inputs: ["data"] }, { kind: "component", type: ScrollFrame, selector: "frames-scroll" }] });
275
275
  }
276
276
  __decorate([
277
277
  Effect(GroupNodeComponent.ActionId.EXPANDED_CHANGE),
@@ -285,9 +285,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
285
285
  ReactFlowComponent,
286
286
  FlowNodeDirective,
287
287
  GroupNodeComponent,
288
- FlowNodeStore
288
+ FlowNodeStore,
289
+ ScrollFrame,
289
290
  ], template: `
290
- <machina-react-flow
291
+ <frames-scroll>
292
+ <ng-content select="[top]" top />
293
+ <machina-react-flow
291
294
  [nodes]="nodes()"
292
295
  [edges]="edges()"
293
296
  [deleteKeyCode]="deleteKeyCode()"
@@ -301,6 +304,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
301
304
  [nodesDraggable]="nodesDraggable_()"
302
305
  [nodesConnectable]="true"
303
306
  [elementsSelectable]="true"
307
+ [onlyRenderVisibleElements]="true"
304
308
  [panOnDrag]="panOnDrag_()"
305
309
  [panOnScroll]="true"
306
310
  [selectionOnDrag]="false"
@@ -329,6 +333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
329
333
  (action)="dispatch($event)"
330
334
  />
331
335
  </machina-react-flow>
336
+ </frames-scroll>
332
337
  `, styles: [":host{display:block;width:100%;height:100%}::ng-deep .react-flow__node-group{background:#f0f0f04d!important;border:2px solid #e1e4e8!important;border-radius:12px!important;box-shadow:none!important;padding:60px 40px 40px!important}::ng-deep .react-flow__node-group .react-flow__node-group__label{display:none!important}\n"] }]
333
338
  }], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], edges: [{ type: i0.Input, args: [{ isSignal: true, alias: "edges", required: false }] }], interactionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactionMode", required: false }] }], deleteKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "deleteKeyCode", required: false }] }], defaultEdgeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultEdgeOptions", required: false }] }], nodeClick: [{ type: i0.Output, args: ["nodeClick"] }], nodesChange: [{ type: i0.Output, args: ["nodesChange"] }], nodeDragStop: [{ type: i0.Output, args: ["nodeDragStop"] }], edgesChange: [{ type: i0.Output, args: ["edgesChange"] }], connect: [{ type: i0.Output, args: ["connect"] }], nodeData: [{ type: i0.Output, args: ["nodeData"] }], nodeResizeEnd: [{ type: i0.Output, args: ["nodeResizeEnd"] }], viewportChange: [{ type: i0.Output, args: ["viewportChange"] }], onGroupExpandedChange: [] } });
334
339
 
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-templates-flow.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.meta.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/flow.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/xxmachina-components-templates-flow.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgAtomicComponent } from '@ng-atomic/core';\n\nexport interface GroupNodeData {\n label: string;\n status?: string;\n assignee?: string;\n assigneeIcon?: string;\n childCount?: number;\n expanded?: boolean;\n}\n\nenum ActionId {\n EXPANDED_CHANGE = 'EXPANDED_CHANGE',\n}\n\n@Component({\n selector: 'flow-group-node',\n standalone: true,\n imports: [MatIconModule],\n template: `\n <div class=\"group-node\" [class]=\"'s-' + data()?.status\">\n <div class=\"group-header\">\n <span class=\"dot\"></span>\n <span class=\"status-badge\">{{ getStatusLabel(data()?.status) }}</span>\n @if (data()?.childCount) {\n <span class=\"child-count\">{{ data()?.childCount }}</span>\n }\n </div>\n <div class=\"group-title\">{{ data()?.label }}</div>\n @if (data()?.assignee) {\n <div class=\"group-footer\">\n <span class=\"assignee\">\n @if (data()?.assigneeIcon) {\n <img [src]=\"data()?.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">group</mat-icon>\n }\n {{ data()?.assignee }}\n </span>\n </div>\n }\n </div>\n `,\n styles: [`\n :host { display: block; width: 180px; }\n\n .group-node {\n background: #0a0a0a;\n border: 1px solid rgba(51, 51, 51, 0.8);\n border-radius: 10px;\n padding: 12px;\n font-family: 'SF Mono', Monaco, monospace;\n transition: all 0.2s ease;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);\n }\n\n .group-node:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);\n border-color: rgba(80, 80, 80, 0.8);\n }\n\n .group-node.s-root { border-color: rgba(99, 102, 241, 0.6); }\n .group-node.s-completed { border-color: rgba(16, 185, 129, 0.6); }\n .group-node.s-in_progress { border-color: rgba(59, 130, 246, 0.6); }\n .group-node.s-pending { border-color: rgba(136, 136, 136, 0.6); }\n .group-node.s-sprint_planned { border-color: rgba(139, 92, 246, 0.6); }\n .group-node.s-needs_breakdown { border-color: rgba(245, 158, 11, 0.6); }\n\n .group-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n }\n\n .dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n box-shadow: 0 0 10px currentColor;\n }\n\n .s-root .dot { background: #6366f1; color: #6366f1; }\n .s-completed .dot { background: #10b981; color: #10b981; }\n .s-in_progress .dot { background: #3b82f6; color: #3b82f6; animation: pulse 2s infinite; }\n .s-pending .dot { background: #888; color: #888; }\n .s-sprint_planned .dot { background: #8b5cf6; color: #8b5cf6; }\n .s-needs_breakdown .dot { background: #f59e0b; color: #f59e0b; }\n\n @keyframes pulse {\n 0%, 100% { box-shadow: 0 0 4px rgba(59, 130, 246, 0.4); }\n 50% { box-shadow: 0 0 12px rgba(59, 130, 246, 0.8); }\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .s-root .status-badge { background: rgba(99, 102, 241, 0.2); color: #6366f1; }\n .s-completed .status-badge { background: rgba(16, 185, 129, 0.2); color: #10b981; }\n .s-in_progress .status-badge { background: rgba(59, 130, 246, 0.2); color: #3b82f6; }\n .s-pending .status-badge { background: rgba(136, 136, 136, 0.2); color: #888; }\n .s-sprint_planned .status-badge { background: rgba(139, 92, 246, 0.2); color: #8b5cf6; }\n .s-needs_breakdown .status-badge { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }\n\n .child-count {\n margin-left: auto;\n font-size: 11px;\n font-weight: 600;\n color: #888;\n background: rgba(255, 255, 255, 0.05);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .group-title {\n font-size: 14px;\n font-weight: 500;\n color: #e0e0e0;\n line-height: 1.4;\n margin-bottom: 8px;\n }\n\n .group-footer {\n padding-top: 8px;\n border-top: 1px solid rgba(51, 51, 51, 0.5);\n }\n\n .assignee {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: #888;\n font-weight: 500;\n }\n\n .assignee-icon {\n font-size: 14px;\n width: 14px;\n height: 14px;\n color: #666;\n }\n\n .assignee-avatar {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n object-fit: cover;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n `]\n})\nexport class GroupNodeComponent extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly data = input<GroupNodeData>();\n readonly expandedChange = output<boolean>();\n\n getStatusLabel(status?: string): string {\n const labels: Record<string, string> = {\n 'root': 'ROOT',\n 'in_progress': 'WIP',\n 'completed': 'DONE',\n 'pending': 'TODO',\n 'sprint_planned': 'PLAN',\n 'needs_breakdown': 'BREAK',\n 'under_consideration': 'REVIEW',\n 'abandoned': 'DROP'\n };\n return labels[status || ''] || status?.toUpperCase() || '';\n }\n\n onExpandedChange(expanded: boolean): void {\n this.dispatch({id: ActionId.EXPANDED_CHANGE, payload: { expanded, data: this.data() }});\n }\n}\n","import { Type } from '@angular/core';\nimport { GroupNodeComponent, GroupNodeData } from './group.node';\n\ninterface ComponentMeta<T = unknown> {\n title: string;\n group?: 'atoms' | 'molecules' | 'organisms' | 'templates' | 'presenters' | 'extras';\n component: Type<T>;\n inputs?: Record<string, unknown>;\n viewport?: { width?: number; height?: number };\n variants?: { name: string; inputs: Record<string, unknown> }[];\n}\n\nexport const groupNodeMeta: ComponentMeta = {\n title: 'Flow Group Node',\n group: 'molecules',\n component: GroupNodeComponent,\n viewport: { width: 280, height: 180 },\n variants: [\n {\n name: 'root',\n inputs: {\n data: {\n label: 'Project Tasks',\n status: 'root',\n childCount: 12,\n } as GroupNodeData,\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n label: 'Sprint 1 Tasks',\n status: 'in_progress',\n assignee: 'Team Alpha',\n childCount: 5,\n } as GroupNodeData,\n },\n },\n {\n name: 'completed',\n inputs: {\n data: {\n label: 'Completed Features',\n status: 'completed',\n assignee: 'Team Beta',\n childCount: 8,\n } as GroupNodeData,\n },\n },\n {\n name: 'pending',\n inputs: {\n data: {\n label: 'Backlog Items',\n status: 'pending',\n childCount: 15,\n } as GroupNodeData,\n },\n },\n {\n name: 'sprint planned',\n inputs: {\n data: {\n label: 'Sprint 2 Planned',\n status: 'sprint_planned',\n assignee: 'Team Gamma',\n childCount: 6,\n } as GroupNodeData,\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n label: 'Design Review',\n status: 'in_progress',\n assignee: 'Design Team',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Team',\n childCount: 3,\n } as GroupNodeData,\n },\n },\n ],\n};\n","import { Component, computed, Directive, input, output, Type } from '@angular/core';\n\nimport { ReactFlowComponent, FlowNodeDirective } from '@xxmachina/components/extras/flow';\nimport { Node, Edge, NodeChange, EdgeChange, Connection, MarkerType, Viewport, ReactFlowInstance } from 'reactflow';\nimport { GroupNodeComponent } from './nodes/group';\nimport { TaskNodeComponent } from './nodes/task';\nimport { Effect, InjectableComponent, NgAtomicComponent, provideComponent, TokenizedType } from '@ng-atomic/core';\n\nexport type FlowInteractionMode = 'desktop' | 'touch';\n\nenum ActionId {\n EXPANDED_CHANGE = '[FlowTemplate] EXPANDED_CHANGE',\n}\n\n@TokenizedType()\n@Directive({ standalone: true, selector: 'flow-node' })\nexport class FlowNodeStore<T> extends InjectableComponent {\n static provideComponent(loader: () => Promise<Type<any>> | Type<any>) {\n return provideComponent(FlowNodeStore, loader);\n }\n\n readonly data = input<T>();\n}\n\n@Component({\n selector: 'templates-flow',\n standalone: true,\n imports: [\n ReactFlowComponent,\n FlowNodeDirective,\n GroupNodeComponent,\n FlowNodeStore\n],\n template: `\n <machina-react-flow\n [nodes]=\"nodes()\"\n [edges]=\"edges()\"\n [deleteKeyCode]=\"deleteKeyCode()\"\n [defaultEdgeOptions]=\"defaultEdgeOptions()\"\n [enableTouchPassthrough]=\"interactionMode() === 'touch'\"\n [minZoom]=\"0.05\"\n [maxZoom]=\"2\"\n [fitView]=\"true\"\n [fitViewOptions]=\"{ padding: 0.1, minZoom: 0.1, maxZoom: 0.5 }\"\n [defaultViewport]=\"{ x: 0, y: 0, zoom: 0.3 }\"\n [nodesDraggable]=\"nodesDraggable_()\"\n [nodesConnectable]=\"true\"\n [elementsSelectable]=\"true\"\n [panOnDrag]=\"panOnDrag_()\"\n [panOnScroll]=\"true\"\n [selectionOnDrag]=\"false\"\n [zoomOnScroll]=\"true\"\n [zoomOnPinch]=\"true\"\n [zoomOnDoubleClick]=\"true\"\n (action)=\"dispatch($event)\"\n (onNodeClick)=\"nodeClick.emit($event)\"\n (onNodesChange)=\"nodesChange.emit($event)\"\n (onNodeDragStop)=\"nodeDragStop.emit($event)\"\n (onEdgesChange)=\"edgesChange.emit($event)\"\n (onConnect)=\"connect.emit($event)\"\n (onNodeResizeEnd)=\"nodeResizeEnd.emit($event)\"\n (onMove)=\"onViewportMove($event)\"\n (onMoveEnd)=\"onViewportMove($event)\"\n (onInit)=\"onFlowInit($event)\"\n >\n <flow-node injectable\n *flowNode=\"'task'; let data\"\n [data]=\"data\"\n (action)=\"dispatch($event)\"\n />\n <flow-group-node\n *flowNode=\"'group'; let data; let node\"\n [data]=\"data\"\n (action)=\"dispatch($event)\"\n />\n </machina-react-flow>\n `,\n styleUrl: './flow.template.scss',\n})\nexport class FlowTemplate extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly nodes = input<Node[]>([]);\n readonly edges = input<Edge[]>([]);\n readonly interactionMode = input<FlowInteractionMode>('desktop');\n\n protected readonly panOnDrag_ = computed(() => this.interactionMode() === 'touch' ? [2] : true);\n protected readonly nodesDraggable_ = computed(() => this.interactionMode() !== 'touch');\n readonly deleteKeyCode = input<string | null>(null); // nullで削除機能を無効化\n readonly defaultEdgeOptions = input({\n type: 'smoothstep',\n animated: true,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n },\n style: {\n stroke: '#333',\n strokeWidth: 2,\n }\n });\n\n readonly nodeClick = output<[MouseEvent, Node]>();\n readonly nodesChange = output<NodeChange[]>();\n readonly nodeDragStop = output<[MouseEvent, Node, Node[]]>();\n readonly edgesChange = output<EdgeChange[]>();\n readonly connect = output<Connection>();\n readonly nodeData = output<[string, any]>();\n readonly nodeResizeEnd = output<{ nodeId: string; width: number; height: number }>();\n readonly viewportChange = output<Viewport>();\n\n protected onViewportMove([_event, viewport]: [MouseEvent, Viewport]): void {\n this.viewportChange.emit(viewport);\n }\n\n /**\n * Handle ReactFlow initialization.\n * Uses requestAnimationFrame to wait for fitView completion before emitting viewport.\n */\n protected onFlowInit([instance]: [ReactFlowInstance]): void {\n requestAnimationFrame(() => {\n const viewport = instance.getViewport();\n this.viewportChange.emit(viewport);\n });\n }\n\n @Effect(GroupNodeComponent.ActionId.EXPANDED_CHANGE)\n protected onGroupExpandedChange(payload: { expanded: boolean, data: any }): void {\n const nodeId = payload.data?.task?.id;\n console.log('FlowTemplate - GroupNode EXPANDED_CHANGE:', { nodeId, expanded: payload.expanded });\n if (nodeId) {\n this.dispatch({ id: ActionId.EXPANDED_CHANGE, payload: { nodeId, expanded: payload.expanded } });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ActionId"],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-components-templates-flow.mjs","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/nodes/group/group.node.meta.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/flow.template.ts","../../../../../packages/@xxmachina/components/src/lib/templates/flow/xxmachina-components-templates-flow.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgAtomicComponent } from '@ng-atomic/core';\n\nexport interface GroupNodeData {\n label: string;\n status?: string;\n assignee?: string;\n assigneeIcon?: string;\n childCount?: number;\n expanded?: boolean;\n}\n\nenum ActionId {\n EXPANDED_CHANGE = 'EXPANDED_CHANGE',\n}\n\n@Component({\n selector: 'flow-group-node',\n standalone: true,\n imports: [MatIconModule],\n template: `\n <div class=\"group-node\" [class]=\"'s-' + data()?.status\">\n <div class=\"group-header\">\n <span class=\"dot\"></span>\n <span class=\"status-badge\">{{ getStatusLabel(data()?.status) }}</span>\n @if (data()?.childCount) {\n <span class=\"child-count\">{{ data()?.childCount }}</span>\n }\n </div>\n <div class=\"group-title\">{{ data()?.label }}</div>\n @if (data()?.assignee) {\n <div class=\"group-footer\">\n <span class=\"assignee\">\n @if (data()?.assigneeIcon) {\n <img [src]=\"data()?.assigneeIcon\" class=\"assignee-avatar\" alt=\"\" />\n } @else {\n <mat-icon class=\"assignee-icon\">group</mat-icon>\n }\n {{ data()?.assignee }}\n </span>\n </div>\n }\n </div>\n `,\n styles: [`\n :host { display: block; width: 180px; }\n\n .group-node {\n background: #0a0a0a;\n border: 1px solid rgba(51, 51, 51, 0.8);\n border-radius: 10px;\n padding: 12px;\n font-family: 'SF Mono', Monaco, monospace;\n transition: all 0.2s ease;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);\n }\n\n .group-node:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);\n border-color: rgba(80, 80, 80, 0.8);\n }\n\n .group-node.s-root { border-color: rgba(99, 102, 241, 0.6); }\n .group-node.s-completed { border-color: rgba(16, 185, 129, 0.6); }\n .group-node.s-in_progress { border-color: rgba(59, 130, 246, 0.6); }\n .group-node.s-pending { border-color: rgba(136, 136, 136, 0.6); }\n .group-node.s-sprint_planned { border-color: rgba(139, 92, 246, 0.6); }\n .group-node.s-needs_breakdown { border-color: rgba(245, 158, 11, 0.6); }\n\n .group-header {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n }\n\n .dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n flex-shrink: 0;\n box-shadow: 0 0 10px currentColor;\n }\n\n .s-root .dot { background: #6366f1; color: #6366f1; }\n .s-completed .dot { background: #10b981; color: #10b981; }\n .s-in_progress .dot { background: #3b82f6; color: #3b82f6; animation: pulse 2s infinite; }\n .s-pending .dot { background: #888; color: #888; }\n .s-sprint_planned .dot { background: #8b5cf6; color: #8b5cf6; }\n .s-needs_breakdown .dot { background: #f59e0b; color: #f59e0b; }\n\n @keyframes pulse {\n 0%, 100% { box-shadow: 0 0 4px rgba(59, 130, 246, 0.4); }\n 50% { box-shadow: 0 0 12px rgba(59, 130, 246, 0.8); }\n }\n\n .status-badge {\n font-size: 10px;\n font-weight: 600;\n padding: 2px 8px;\n border-radius: 10px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n .s-root .status-badge { background: rgba(99, 102, 241, 0.2); color: #6366f1; }\n .s-completed .status-badge { background: rgba(16, 185, 129, 0.2); color: #10b981; }\n .s-in_progress .status-badge { background: rgba(59, 130, 246, 0.2); color: #3b82f6; }\n .s-pending .status-badge { background: rgba(136, 136, 136, 0.2); color: #888; }\n .s-sprint_planned .status-badge { background: rgba(139, 92, 246, 0.2); color: #8b5cf6; }\n .s-needs_breakdown .status-badge { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }\n\n .child-count {\n margin-left: auto;\n font-size: 11px;\n font-weight: 600;\n color: #888;\n background: rgba(255, 255, 255, 0.05);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n .group-title {\n font-size: 14px;\n font-weight: 500;\n color: #e0e0e0;\n line-height: 1.4;\n margin-bottom: 8px;\n }\n\n .group-footer {\n padding-top: 8px;\n border-top: 1px solid rgba(51, 51, 51, 0.5);\n }\n\n .assignee {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: #888;\n font-weight: 500;\n }\n\n .assignee-icon {\n font-size: 14px;\n width: 14px;\n height: 14px;\n color: #666;\n }\n\n .assignee-avatar {\n width: 18px;\n height: 18px;\n border-radius: 50%;\n object-fit: cover;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n `]\n})\nexport class GroupNodeComponent extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly data = input<GroupNodeData>();\n readonly expandedChange = output<boolean>();\n\n getStatusLabel(status?: string): string {\n const labels: Record<string, string> = {\n 'root': 'ROOT',\n 'in_progress': 'WIP',\n 'completed': 'DONE',\n 'pending': 'TODO',\n 'sprint_planned': 'PLAN',\n 'needs_breakdown': 'BREAK',\n 'under_consideration': 'REVIEW',\n 'abandoned': 'DROP'\n };\n return labels[status || ''] || status?.toUpperCase() || '';\n }\n\n onExpandedChange(expanded: boolean): void {\n this.dispatch({id: ActionId.EXPANDED_CHANGE, payload: { expanded, data: this.data() }});\n }\n}\n","import { Type } from '@angular/core';\nimport { GroupNodeComponent, GroupNodeData } from './group.node';\n\ninterface ComponentMeta<T = unknown> {\n title: string;\n group?: 'atoms' | 'molecules' | 'organisms' | 'templates' | 'presenters' | 'extras';\n component: Type<T>;\n inputs?: Record<string, unknown>;\n viewport?: { width?: number; height?: number };\n variants?: { name: string; inputs: Record<string, unknown> }[];\n}\n\nexport const groupNodeMeta: ComponentMeta = {\n title: 'Flow Group Node',\n group: 'molecules',\n component: GroupNodeComponent,\n viewport: { width: 280, height: 180 },\n variants: [\n {\n name: 'root',\n inputs: {\n data: {\n label: 'Project Tasks',\n status: 'root',\n childCount: 12,\n } as GroupNodeData,\n },\n },\n {\n name: 'in progress',\n inputs: {\n data: {\n label: 'Sprint 1 Tasks',\n status: 'in_progress',\n assignee: 'Team Alpha',\n childCount: 5,\n } as GroupNodeData,\n },\n },\n {\n name: 'completed',\n inputs: {\n data: {\n label: 'Completed Features',\n status: 'completed',\n assignee: 'Team Beta',\n childCount: 8,\n } as GroupNodeData,\n },\n },\n {\n name: 'pending',\n inputs: {\n data: {\n label: 'Backlog Items',\n status: 'pending',\n childCount: 15,\n } as GroupNodeData,\n },\n },\n {\n name: 'sprint planned',\n inputs: {\n data: {\n label: 'Sprint 2 Planned',\n status: 'sprint_planned',\n assignee: 'Team Gamma',\n childCount: 6,\n } as GroupNodeData,\n },\n },\n {\n name: 'with avatar',\n inputs: {\n data: {\n label: 'Design Review',\n status: 'in_progress',\n assignee: 'Design Team',\n assigneeIcon: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Team',\n childCount: 3,\n } as GroupNodeData,\n },\n },\n ],\n};\n","import { Component, computed, Directive, input, output, Type } from '@angular/core';\nimport { ReactFlowComponent, FlowNodeDirective } from '@xxmachina/components/extras/flow';\nimport { Node, Edge, NodeChange, EdgeChange, Connection, MarkerType, Viewport, ReactFlowInstance } from 'reactflow';\nimport { GroupNodeComponent } from './nodes/group';\nimport { TaskNodeComponent } from './nodes/task';\nimport { Effect, InjectableComponent, NgAtomicComponent, provideComponent, TokenizedType } from '@ng-atomic/core';\nimport { ScrollFrame } from '@ng-atomic/components/frames/scroll';\n\nexport type FlowInteractionMode = 'desktop' | 'touch';\n\nenum ActionId {\n EXPANDED_CHANGE = '[FlowTemplate] EXPANDED_CHANGE',\n}\n\n@TokenizedType()\n@Directive({ standalone: true, selector: 'flow-node' })\nexport class FlowNodeStore<T> extends InjectableComponent {\n static provideComponent(loader: () => Promise<Type<any>> | Type<any>) {\n return provideComponent(FlowNodeStore, loader);\n }\n\n readonly data = input<T>();\n}\n\n@Component({\n selector: 'templates-flow',\n standalone: true,\n imports: [\n ReactFlowComponent,\n FlowNodeDirective,\n GroupNodeComponent,\n FlowNodeStore,\n ScrollFrame,\n],\n template: `\n <frames-scroll>\n <ng-content select=\"[top]\" top />\n <machina-react-flow\n [nodes]=\"nodes()\"\n [edges]=\"edges()\"\n [deleteKeyCode]=\"deleteKeyCode()\"\n [defaultEdgeOptions]=\"defaultEdgeOptions()\"\n [enableTouchPassthrough]=\"interactionMode() === 'touch'\"\n [minZoom]=\"0.05\"\n [maxZoom]=\"2\"\n [fitView]=\"true\"\n [fitViewOptions]=\"{ padding: 0.1, minZoom: 0.1, maxZoom: 0.5 }\"\n [defaultViewport]=\"{ x: 0, y: 0, zoom: 0.3 }\"\n [nodesDraggable]=\"nodesDraggable_()\"\n [nodesConnectable]=\"true\"\n [elementsSelectable]=\"true\"\n [onlyRenderVisibleElements]=\"true\"\n [panOnDrag]=\"panOnDrag_()\"\n [panOnScroll]=\"true\"\n [selectionOnDrag]=\"false\"\n [zoomOnScroll]=\"true\"\n [zoomOnPinch]=\"true\"\n [zoomOnDoubleClick]=\"true\"\n (action)=\"dispatch($event)\"\n (onNodeClick)=\"nodeClick.emit($event)\"\n (onNodesChange)=\"nodesChange.emit($event)\"\n (onNodeDragStop)=\"nodeDragStop.emit($event)\"\n (onEdgesChange)=\"edgesChange.emit($event)\"\n (onConnect)=\"connect.emit($event)\"\n (onNodeResizeEnd)=\"nodeResizeEnd.emit($event)\"\n (onMove)=\"onViewportMove($event)\"\n (onMoveEnd)=\"onViewportMove($event)\"\n (onInit)=\"onFlowInit($event)\"\n >\n <flow-node injectable\n *flowNode=\"'task'; let data\"\n [data]=\"data\"\n (action)=\"dispatch($event)\"\n />\n <flow-group-node\n *flowNode=\"'group'; let data; let node\"\n [data]=\"data\"\n (action)=\"dispatch($event)\"\n />\n </machina-react-flow>\n </frames-scroll>\n `,\n styleUrl: './flow.template.scss',\n})\nexport class FlowTemplate extends NgAtomicComponent {\n static readonly ActionId = ActionId;\n\n readonly nodes = input<Node[]>([]);\n readonly edges = input<Edge[]>([]);\n readonly interactionMode = input<FlowInteractionMode>('desktop');\n readonly deleteKeyCode = input<string | null>(null);\n protected readonly panOnDrag_ = computed(() => this.interactionMode() === 'touch' ? [2] : true);\n protected readonly nodesDraggable_ = computed(() => this.interactionMode() !== 'touch');\n readonly defaultEdgeOptions = input({\n type: 'smoothstep',\n animated: true,\n markerEnd: {\n type: MarkerType.ArrowClosed,\n },\n style: {\n stroke: '#333',\n strokeWidth: 2,\n }\n });\n\n readonly nodeClick = output<[MouseEvent, Node]>();\n readonly nodesChange = output<NodeChange[]>();\n readonly nodeDragStop = output<[MouseEvent, Node, Node[]]>();\n readonly edgesChange = output<EdgeChange[]>();\n readonly connect = output<Connection>();\n readonly nodeData = output<[string, any]>();\n readonly nodeResizeEnd = output<{ nodeId: string; width: number; height: number }>();\n readonly viewportChange = output<Viewport>();\n\n protected onViewportMove([_event, viewport]: [MouseEvent, Viewport]): void {\n this.viewportChange.emit(viewport);\n }\n\n protected onFlowInit([instance]: [ReactFlowInstance]): void {\n requestAnimationFrame(() => {\n const viewport = instance.getViewport();\n this.viewportChange.emit(viewport);\n });\n }\n\n @Effect(GroupNodeComponent.ActionId.EXPANDED_CHANGE)\n protected onGroupExpandedChange(payload: { expanded: boolean, data: any }): void {\n const nodeId = payload.data?.task?.id;\n if (nodeId) {\n this.dispatch({ id: ActionId.EXPANDED_CHANGE, payload: { nodeId, expanded: payload.expanded } });\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ActionId"],"mappings":"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"}
@@ -234,7 +234,7 @@ class SessionNavigatorOrganism extends NgAtomicComponent {
234
234
  }
235
235
  </div>
236
236
  </mat-toolbar>
237
- `, isInline: true, styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-0j9e: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-0j9e: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-0j9e: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-0j9e: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-0j9e: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-0j9e: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-0j9e: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-0j9e: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-0j9e: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-0j9e);color:var(--on-primary-color-SCOPED-IN-session-navigator-0j9e);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-0j9e)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-0j9e)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-0j9e)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-0j9e)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-0j9e)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-0j9e)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-0j9e: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-0j9e: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-0j9e: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i1$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: MenuButtonAtomStore, selector: "atoms-menu-button, atoms-smart-menu-button", inputs: ["actions", "type", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
237
+ `, isInline: true, styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-4n2S: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-4n2S: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-4n2S: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-4n2S: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-4n2S: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-4n2S: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-4n2S: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-4n2S: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-4n2S: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-4n2S);color:var(--on-primary-color-SCOPED-IN-session-navigator-4n2S);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-4n2S)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-4n2S)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-4n2S)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-4n2S)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-4n2S)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-4n2S)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-4n2S: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-4n2S: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-4n2S: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatToolbarModule }, { kind: "component", type: i1$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: MenuButtonAtomStore, selector: "atoms-menu-button, atoms-smart-menu-button", inputs: ["actions", "type", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
238
238
  }
239
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: SessionNavigatorOrganism, decorators: [{
240
240
  type: Component,
@@ -268,7 +268,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
268
268
  directive: SessionNavigatorOrganismStore,
269
269
  inputs: ['startActions', 'endActions', 'title'],
270
270
  }
271
- ], styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-0j9e: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-0j9e: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-0j9e: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-0j9e: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-0j9e: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-0j9e: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-0j9e: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-0j9e: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-0j9e: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-0j9e);color:var(--on-primary-color-SCOPED-IN-session-navigator-0j9e);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-0j9e)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-0j9e)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-0j9e)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-0j9e)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-0j9e)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-0j9e)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-0j9e: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-0j9e: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-0j9e: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"] }]
271
+ ], styles: [":host{display:block;--text: #e0e0e0;--text-SCOPED-IN-session-navigator-4n2S: var(--text);--sys: #888;--sys-SCOPED-IN-session-navigator-4n2S: var(--sys);--border: rgba(51, 51, 51, .5);--border-SCOPED-IN-session-navigator-4n2S: var(--border);--primary-color: #0f0f11;--primary-color-SCOPED-IN-session-navigator-4n2S: var(--primary-color);--on-primary-color: #e0e0e0;--on-primary-color-SCOPED-IN-session-navigator-4n2S: var(--on-primary-color);--secondary-color: #888;--secondary-color-SCOPED-IN-session-navigator-4n2S: var(--secondary-color);--on-secondary-color: #f0f0f0;--on-secondary-color-SCOPED-IN-session-navigator-4n2S: var(--on-secondary-color);--background-color: #0f0f11;--background-color-SCOPED-IN-session-navigator-4n2S: var(--background-color);--on-background-color: #e0e0e0;--on-background-color-SCOPED-IN-session-navigator-4n2S: var(--on-background-color)}:host{display:block;width:100%;height:56px}:host mat-toolbar{display:flex;width:100%;height:100%;justify-content:space-between;align-items:center;overflow:hidden;transition:background .5s ease-in-out;background-color:var(--primary-color-SCOPED-IN-session-navigator-4n2S);color:var(--on-primary-color-SCOPED-IN-session-navigator-4n2S);border-bottom:1px solid var(--border-SCOPED-IN-session-navigator-4n2S)!important;font-family:SF Mono,Monaco,monospace!important;font-size:12px!important;--mat-toolbar-title-text-size: 12px !important;--mat-sys-title-large-size: 12px !important}:host mat-toolbar>div:first-child,:host mat-toolbar>div:last-child{flex:0 0 auto}:host mat-toolbar>div:nth-child(2){flex:1 1 auto;display:flex;justify-content:flex-start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}:host mat-toolbar *:not(.mat-icon){font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar span,:host mat-toolbar div,:host mat-toolbar h1,:host mat-toolbar h2,:host mat-toolbar h3,:host mat-toolbar h4,:host mat-toolbar h5,:host mat-toolbar h6{font-size:12px!important;font-family:SF Mono,Monaco,monospace!important;color:var(--text-SCOPED-IN-session-navigator-4n2S)!important}:host mat-toolbar .mat-button{color:var(--sys-SCOPED-IN-session-navigator-4n2S)!important;font-family:SF Mono,Monaco,monospace!important}:host mat-toolbar .mat-button:hover{color:var(--text-SCOPED-IN-session-navigator-4n2S)!important}:host mat-toolbar .mat-icon-button{color:var(--sys-SCOPED-IN-session-navigator-4n2S)!important;opacity:.7}:host mat-toolbar .mat-icon-button:hover{color:var(--text-SCOPED-IN-session-navigator-4n2S)!important;opacity:1}:host mat-toolbar .mat-icon-button .mat-icon{font-family:Material Icons!important;font-size:24px!important}:host div{display:flex;justify-content:center;align-items:center;line-height:1}:host atoms-menu-button{display:flex;align-items:center;line-height:1}@media(prefers-color-scheme:light){:host{--text: #333;--text-SCOPED-IN-session-navigator-4n2S: var(--text);--sys: #666;--sys-SCOPED-IN-session-navigator-4n2S: var(--sys);--border: #ddd;--border-SCOPED-IN-session-navigator-4n2S: var(--border)}}@media(max-width:600px){:host mat-toolbar span{font-size:11px!important}}\n"] }]
272
272
  }] });
273
273
 
274
274
  var InvoiceAppActionId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xxmachina/components",
3
- "version": "19.30.0",
3
+ "version": "19.32.0",
4
4
  "license": "MIT",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-extras-flow.d.ts","sources":["../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.store.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.component.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/group-node.tsx","../../../../../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/template-node.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/index.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/flow-node.directive.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HE;;;;AAA8F;;;AAC/F;;AC7HD;AA8CE;AACA;AACA;;;;;;;;;;;AAgCA;AAkCA;AAeA;;AA6BA;AAwBA;;;AAwBD;;;;;;;AC/MA;;;;;;ACDA;;ACCD;;ACHA;AACE;AACD;AAED;;;;;;ACNA;;;;;;;;;;ACDA;AAOqB;;AAAA;;;AACpB;;"}
1
+ {"version":3,"file":"xxmachina-components-extras-flow.d.ts","sources":["../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.store.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/react-flow/react-flow.component.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/group-node.tsx","../../../../../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/template-node.tsx","../../../../../packages/@xxmachina/components/src/lib/extras/flow/nodes/index.ts","../../../../../packages/@xxmachina/components/src/lib/extras/flow/flow-node.directive.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HE;;;;AAA8F;;;AAC/F;;AC7HD;AA8CE;AACA;AACA;;;;;;;;;;;AAgCA;AAkCA;AAYA;;AA6BA;AAwBA;;;AAwBD;;;;;;;AC5MA;;;;;;ACDA;;ACCD;;ACHA;AACE;AACD;AAED;;;;;;ACNA;;;;;;;;;;ACDA;AAOqB;;AAAA;;;AACpB;;"}
@@ -21,9 +21,9 @@ declare class FlowTemplate extends NgAtomicComponent {
21
21
  readonly nodes: _angular_core.InputSignal<Node[]>;
22
22
  readonly edges: _angular_core.InputSignal<Edge[]>;
23
23
  readonly interactionMode: _angular_core.InputSignal<FlowInteractionMode>;
24
+ readonly deleteKeyCode: _angular_core.InputSignal<string>;
24
25
  protected readonly panOnDrag_: _angular_core.Signal<true | number[]>;
25
26
  protected readonly nodesDraggable_: _angular_core.Signal<boolean>;
26
- readonly deleteKeyCode: _angular_core.InputSignal<string>;
27
27
  readonly defaultEdgeOptions: _angular_core.InputSignal<{
28
28
  type: string;
29
29
  animated: boolean;
@@ -48,17 +48,13 @@ declare class FlowTemplate extends NgAtomicComponent {
48
48
  }>;
49
49
  readonly viewportChange: _angular_core.OutputEmitterRef<Viewport>;
50
50
  protected onViewportMove([_event, viewport]: [MouseEvent, Viewport]): void;
51
- /**
52
- * Handle ReactFlow initialization.
53
- * Uses requestAnimationFrame to wait for fitView completion before emitting viewport.
54
- */
55
51
  protected onFlowInit([instance]: [ReactFlowInstance]): void;
56
52
  protected onGroupExpandedChange(payload: {
57
53
  expanded: boolean;
58
54
  data: any;
59
55
  }): void;
60
56
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlowTemplate, never>;
61
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlowTemplate, "templates-flow", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "edges": { "alias": "edges"; "required": false; "isSignal": true; }; "interactionMode": { "alias": "interactionMode"; "required": false; "isSignal": true; }; "deleteKeyCode": { "alias": "deleteKeyCode"; "required": false; "isSignal": true; }; "defaultEdgeOptions": { "alias": "defaultEdgeOptions"; "required": false; "isSignal": true; }; }, { "nodeClick": "nodeClick"; "nodesChange": "nodesChange"; "nodeDragStop": "nodeDragStop"; "edgesChange": "edgesChange"; "connect": "connect"; "nodeData": "nodeData"; "nodeResizeEnd": "nodeResizeEnd"; "viewportChange": "viewportChange"; }, never, never, true, never>;
57
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FlowTemplate, "templates-flow", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "edges": { "alias": "edges"; "required": false; "isSignal": true; }; "interactionMode": { "alias": "interactionMode"; "required": false; "isSignal": true; }; "deleteKeyCode": { "alias": "deleteKeyCode"; "required": false; "isSignal": true; }; "defaultEdgeOptions": { "alias": "defaultEdgeOptions"; "required": false; "isSignal": true; }; }, { "nodeClick": "nodeClick"; "nodesChange": "nodesChange"; "nodeDragStop": "nodeDragStop"; "edgesChange": "edgesChange"; "connect": "connect"; "nodeData": "nodeData"; "nodeResizeEnd": "nodeResizeEnd"; "viewportChange": "viewportChange"; }, never, ["[top]"], true, never>;
62
58
  }
63
59
 
64
60
  export { FlowNodeStore, FlowTemplate };
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-templates-flow.d.ts","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/flow.template.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA;AACE;AACD;AAED;AAGE;;;;;;;AAKD;AAED;AAwDE;;;;AAMA;AACA;;AAEA;;;;;;;;;;AAUG;;;;;;;AAQH;;;;AAAqF;;AAGrF;AAIA;;;AAGG;;AASH;;;AAAyE;;;AAO1E;;;"}
1
+ {"version":3,"file":"xxmachina-components-templates-flow.d.ts","sources":["../../../../../packages/@xxmachina/components/src/lib/templates/flow/flow.template.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA;AACE;AACD;AAED;AAGE;;;;;;;AAKD;AAED;AA6DE;;;;;AAMA;AACA;AACA;;;;;;;;;;AAUG;;;;;;;AAQH;;;;AAAqF;;AAGrF;;AAYA;;;AAAyE;;;AAM1E;;;"}