@next-bricks/diagram 0.34.0 → 0.34.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/bricks.json +1 -1
  2. package/dist/chunks/1045.fe0f720b.js +2 -0
  3. package/dist/chunks/1045.fe0f720b.js.map +1 -0
  4. package/dist/chunks/1122.1c346310.js +2 -0
  5. package/dist/chunks/1122.1c346310.js.map +1 -0
  6. package/dist/chunks/114.6e895da2.js +2 -0
  7. package/dist/chunks/114.6e895da2.js.map +1 -0
  8. package/dist/chunks/1236.4ff24d9b.js +3 -0
  9. package/dist/chunks/1236.4ff24d9b.js.map +1 -0
  10. package/dist/chunks/1370.c61e5a57.js +2 -0
  11. package/dist/chunks/1370.c61e5a57.js.map +1 -0
  12. package/dist/chunks/{1940.788d05b3.js → 1940.bf9cc2aa.js} +2 -2
  13. package/dist/chunks/{1940.788d05b3.js.map → 1940.bf9cc2aa.js.map} +1 -1
  14. package/dist/chunks/{2277.9a1ded28.js → 2277.bccae794.js} +2 -2
  15. package/dist/chunks/{2277.9a1ded28.js.map → 2277.bccae794.js.map} +1 -1
  16. package/dist/chunks/2416.22bd941c.js +2 -0
  17. package/dist/chunks/2416.22bd941c.js.map +1 -0
  18. package/dist/chunks/{3171.1cc1ab1d.js → 3171.e9678516.js} +2 -2
  19. package/dist/chunks/{3171.1cc1ab1d.js.map → 3171.e9678516.js.map} +1 -1
  20. package/dist/chunks/3426.b0774b0a.js +2 -0
  21. package/dist/chunks/3426.b0774b0a.js.map +1 -0
  22. package/dist/chunks/{3933.834a1e86.js → 3933.ddf52584.js} +2 -2
  23. package/dist/chunks/{6314.3cd58874.js.map → 3933.ddf52584.js.map} +1 -1
  24. package/dist/chunks/{4658.e875061a.js → 4658.ad35c045.js} +2 -2
  25. package/dist/chunks/{4658.e875061a.js.map → 4658.ad35c045.js.map} +1 -1
  26. package/dist/chunks/{5030.dfda5297.js → 5030.ccae96c3.js} +2 -2
  27. package/dist/chunks/{5030.dfda5297.js.map → 5030.ccae96c3.js.map} +1 -1
  28. package/dist/chunks/5145.d51337d7.js +3 -0
  29. package/dist/chunks/5145.d51337d7.js.map +1 -0
  30. package/dist/chunks/5399.99cc03a0.js +2 -0
  31. package/dist/chunks/5399.99cc03a0.js.map +1 -0
  32. package/dist/chunks/{5552.133fe4f7.js → 5552.703ad6ab.js} +2 -2
  33. package/dist/chunks/{5552.133fe4f7.js.map → 5552.703ad6ab.js.map} +1 -1
  34. package/dist/chunks/{6314.3cd58874.js → 6314.51e48079.js} +2 -2
  35. package/dist/chunks/{3933.834a1e86.js.map → 6314.51e48079.js.map} +1 -1
  36. package/dist/chunks/{6773.6ac391fe.js → 6773.e196650d.js} +2 -2
  37. package/dist/chunks/6773.e196650d.js.map +1 -0
  38. package/dist/chunks/6862.15908a98.js +2 -0
  39. package/dist/chunks/6862.15908a98.js.map +1 -0
  40. package/dist/chunks/7115.8090e97e.js +2 -0
  41. package/dist/chunks/7115.8090e97e.js.map +1 -0
  42. package/dist/chunks/726.b7728fa4.js +2 -0
  43. package/dist/chunks/726.b7728fa4.js.map +1 -0
  44. package/dist/chunks/7304.83b52b1e.js +2 -0
  45. package/dist/chunks/7304.83b52b1e.js.map +1 -0
  46. package/dist/chunks/7721.d1e6cb79.js +3 -0
  47. package/dist/chunks/7721.d1e6cb79.js.map +1 -0
  48. package/dist/chunks/7733.8f8cf2f5.js +2 -0
  49. package/dist/chunks/7733.8f8cf2f5.js.map +1 -0
  50. package/dist/chunks/{7920.cc5f2f6b.js → 7920.fc2cdfe0.js} +2 -2
  51. package/dist/chunks/7920.fc2cdfe0.js.map +1 -0
  52. package/dist/chunks/8954.666a1c23.js +2 -0
  53. package/dist/chunks/8954.666a1c23.js.map +1 -0
  54. package/dist/chunks/8989.45ff7d3e.js +2 -0
  55. package/dist/chunks/8989.45ff7d3e.js.map +1 -0
  56. package/dist/chunks/9074.f359ec14.js +3 -0
  57. package/dist/chunks/9074.f359ec14.js.LICENSE.txt +5 -0
  58. package/dist/chunks/9074.f359ec14.js.map +1 -0
  59. package/dist/chunks/{9496.b07ede77.js → 9496.e87406ec.js} +2 -2
  60. package/dist/chunks/{9496.b07ede77.js.map → 9496.e87406ec.js.map} +1 -1
  61. package/dist/chunks/{9515.c8266f33.js → 9515.115c18b1.js} +2 -2
  62. package/dist/chunks/{9515.c8266f33.js.map → 9515.115c18b1.js.map} +1 -1
  63. package/dist/chunks/9559.98ce320d.js +2 -0
  64. package/dist/chunks/9559.98ce320d.js.map +1 -0
  65. package/dist/chunks/9829.4363c9d8.js +3 -0
  66. package/dist/chunks/9829.4363c9d8.js.map +1 -0
  67. package/dist/chunks/editable-label.c003d921.js +3 -0
  68. package/dist/chunks/editable-label.c003d921.js.map +1 -0
  69. package/dist/chunks/eo-diagram.47dee0f3.js +2 -0
  70. package/dist/chunks/eo-diagram.47dee0f3.js.map +1 -0
  71. package/dist/chunks/eo-display-canvas.a4c49e6d.js +2 -0
  72. package/dist/chunks/eo-display-canvas.a4c49e6d.js.map +1 -0
  73. package/dist/chunks/eo-draw-canvas.5109e2e1.js +2 -0
  74. package/dist/chunks/eo-draw-canvas.5109e2e1.js.map +1 -0
  75. package/dist/chunks/experimental-node.988acb30.js +2 -0
  76. package/dist/chunks/experimental-node.988acb30.js.map +1 -0
  77. package/dist/chunks/main.8bdb3fea.js +2 -0
  78. package/dist/chunks/main.8bdb3fea.js.map +1 -0
  79. package/dist/index.16d6a7f3.js +2 -0
  80. package/dist/index.16d6a7f3.js.map +1 -0
  81. package/package.json +4 -4
  82. package/dist/chunks/1045.c6921aed.js +0 -2
  83. package/dist/chunks/1045.c6921aed.js.map +0 -1
  84. package/dist/chunks/1122.aa791e35.js +0 -2
  85. package/dist/chunks/1122.aa791e35.js.map +0 -1
  86. package/dist/chunks/114.ff6154a0.js +0 -2
  87. package/dist/chunks/114.ff6154a0.js.map +0 -1
  88. package/dist/chunks/1370.1b4ac3ac.js +0 -2
  89. package/dist/chunks/1370.1b4ac3ac.js.map +0 -1
  90. package/dist/chunks/3426.f1ddd917.js +0 -2
  91. package/dist/chunks/3426.f1ddd917.js.map +0 -1
  92. package/dist/chunks/5145.f606390f.js +0 -3
  93. package/dist/chunks/5145.f606390f.js.map +0 -1
  94. package/dist/chunks/5399.e2de915e.js +0 -2
  95. package/dist/chunks/5399.e2de915e.js.map +0 -1
  96. package/dist/chunks/5481.85c478a9.js +0 -3
  97. package/dist/chunks/5481.85c478a9.js.map +0 -1
  98. package/dist/chunks/5576.533d5860.js +0 -2
  99. package/dist/chunks/5576.533d5860.js.map +0 -1
  100. package/dist/chunks/6773.6ac391fe.js.map +0 -1
  101. package/dist/chunks/7034.089eebe3.js +0 -3
  102. package/dist/chunks/7034.089eebe3.js.map +0 -1
  103. package/dist/chunks/7115.7ff52cf4.js +0 -2
  104. package/dist/chunks/7115.7ff52cf4.js.map +0 -1
  105. package/dist/chunks/726.efcf01a2.js +0 -2
  106. package/dist/chunks/726.efcf01a2.js.map +0 -1
  107. package/dist/chunks/7304.a2d65f45.js +0 -2
  108. package/dist/chunks/7304.a2d65f45.js.map +0 -1
  109. package/dist/chunks/7721.5bd46b7f.js +0 -3
  110. package/dist/chunks/7721.5bd46b7f.js.map +0 -1
  111. package/dist/chunks/7733.557f1536.js +0 -2
  112. package/dist/chunks/7733.557f1536.js.map +0 -1
  113. package/dist/chunks/7920.cc5f2f6b.js.map +0 -1
  114. package/dist/chunks/8954.94a77ece.js +0 -2
  115. package/dist/chunks/8954.94a77ece.js.map +0 -1
  116. package/dist/chunks/8989.cf6586cc.js +0 -2
  117. package/dist/chunks/8989.cf6586cc.js.map +0 -1
  118. package/dist/chunks/9559.2729fe3b.js +0 -2
  119. package/dist/chunks/9559.2729fe3b.js.map +0 -1
  120. package/dist/chunks/editable-label.ebc55c2c.js +0 -3
  121. package/dist/chunks/editable-label.ebc55c2c.js.map +0 -1
  122. package/dist/chunks/eo-diagram.5c082c3b.js +0 -2
  123. package/dist/chunks/eo-diagram.5c082c3b.js.map +0 -1
  124. package/dist/chunks/eo-display-canvas.72c6b1bd.js +0 -2
  125. package/dist/chunks/eo-display-canvas.72c6b1bd.js.map +0 -1
  126. package/dist/chunks/eo-draw-canvas.b99af02e.js +0 -2
  127. package/dist/chunks/eo-draw-canvas.b99af02e.js.map +0 -1
  128. package/dist/chunks/experimental-node.87c6ccfb.js +0 -2
  129. package/dist/chunks/experimental-node.87c6ccfb.js.map +0 -1
  130. package/dist/chunks/main.c2305d83.js +0 -2
  131. package/dist/chunks/main.c2305d83.js.map +0 -1
  132. package/dist/index.869d35b6.js +0 -2
  133. package/dist/index.869d35b6.js.map +0 -1
  134. /package/dist/chunks/{7034.089eebe3.js.LICENSE.txt → 1236.4ff24d9b.js.LICENSE.txt} +0 -0
  135. /package/dist/chunks/{5145.f606390f.js.LICENSE.txt → 5145.d51337d7.js.LICENSE.txt} +0 -0
  136. /package/dist/chunks/{7721.5bd46b7f.js.LICENSE.txt → 7721.d1e6cb79.js.LICENSE.txt} +0 -0
  137. /package/dist/chunks/{5481.85c478a9.js.LICENSE.txt → 9829.4363c9d8.js.LICENSE.txt} +0 -0
  138. /package/dist/chunks/{editable-label.ebc55c2c.js.LICENSE.txt → editable-label.c003d921.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/2416.22bd941c.js","mappings":"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","sources":["webpack:///./src/diagram/ConnectLineComponent.tsx","webpack:///./src/diagram/LineComponent.tsx","webpack:///./src/diagram/LineLabelComponent.tsx","webpack:///./src/diagram/LineMaskComponent.tsx","webpack:///./src/diagram/NodeComponent.tsx","webpack:///./src/diagram/processors/findNodeBrick.ts","webpack:///./src/diagram/constants.ts","webpack:///./src/diagram/processors/adjustNodesSize.ts","webpack:///./src/diagram/processors/adjustNodesPosition.ts","webpack:///./src/diagram/processors/getRenderedEdges.ts","webpack:///./src/diagram/processors/getForceGraph.ts","webpack:///./src/diagram/hooks/useRenderedDiagram.ts","webpack:///./src/diagram/processors/getDagreGraph.ts","webpack:///./src/diagram/processors/getManualGraph.ts","webpack:///./src/diagram/hooks/useUserView.ts","webpack:///./src/diagram/processors/createAsyncQueue.ts","webpack:///./src/diagram/processors/adjustLineLabels.ts","webpack:///./src/diagram/processors/getLineMaskRects.ts","webpack:///./src/diagram/processors/getRenderedLineLabels.ts","webpack:///./src/diagram/lines/curveLine.ts","webpack:///./src/diagram/lines/getPolyLinePoints.ts","webpack:///./src/diagram/processors/getRenderedLines.ts","webpack:///./src/diagram/processors/handleKeyboard.ts","webpack:///./src/diagram/processors/handleNodesMouseDown.ts","webpack:///./src/diagram/processors/normalizeLinesAndMarkers.ts","webpack:///./src/diagram/processors/matchEdgeByFilter.ts","webpack:///./src/diagram/processors/sameTarget.ts","webpack:///./src/diagram/processors/transformToCenter.ts","webpack:///./src/diagram/styles.shadow.css"],"sourcesContent":["import React from \"react\";\nimport classNames from \"classnames\";\nimport type { ConnectLineState, PositionTuple } from \"./interfaces\";\nimport { MarkerComponent } from \"./MarkerComponent\";\n\nexport interface ConnectLineComponentProps {\n connectLineState: ConnectLineState | null;\n connectLineTo: PositionTuple;\n markerPrefix: string;\n}\n\nexport function ConnectLineComponent({\n connectLineState,\n connectLineTo,\n markerPrefix,\n}: ConnectLineComponentProps): JSX.Element {\n return (\n <svg\n width=\"100%\"\n height=\"100%\"\n className={classNames(\"connect-line\", {\n connecting:\n !!connectLineState &&\n // Do not show when the distance of mouse move is less than 5px\n (connectLineTo[0] - connectLineState.from[0]) ** 2 +\n (connectLineTo[1] - connectLineState.from[1]) ** 2 >\n 25,\n })}\n >\n <defs>\n <MarkerComponent\n type=\"arrow\"\n id={`${markerPrefix}connect-line`}\n strokeColor={connectLineState?.options.strokeColor}\n />\n </defs>\n <path\n d={\n connectLineState\n ? `M${connectLineState.from.join(\" \")}L${connectLineTo.join(\" \")}`\n : \"\"\n }\n fill=\"none\"\n stroke={connectLineState?.options.strokeColor}\n strokeWidth={connectLineState?.options.strokeWidth}\n markerEnd={\n connectLineState?.options.arrow\n ? `url(#${markerPrefix}connect-line)`\n : undefined\n }\n />\n </svg>\n );\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport type { LineTarget, RenderedLine, LineMaskRects } from \"./interfaces\";\n\nexport interface LineComponentProps {\n line: RenderedLine;\n linePaths: Map<string, SVGPathElement | null>;\n lineMaskRects: LineMaskRects;\n maskPrefix: string;\n markerPrefix: string;\n activeLineMarkerPrefix: string;\n active?: boolean;\n activeRelated?: boolean;\n onLineClick?(line: LineTarget): void;\n onLineDoubleClick?(line: LineTarget): void;\n}\n\nexport function LineComponent({\n line: { line, edge, d, markers },\n linePaths,\n lineMaskRects,\n maskPrefix,\n markerPrefix,\n activeLineMarkerPrefix,\n active,\n activeRelated,\n onLineClick,\n onLineDoubleClick,\n}: LineComponentProps): JSX.Element {\n const mask = lineMaskRects.has(line.$id)\n ? `url(#${maskPrefix}${line.$id})`\n : undefined;\n\n const { strokeColor, strokeWidth, interactStrokeWidth } = {\n ...line,\n ...(active\n ? line.overrides?.active\n : activeRelated\n ? line.overrides?.activeRelated\n : null),\n };\n\n const expectVariant = active\n ? \"active\"\n : activeRelated\n ? \"active-related\"\n : \"default\";\n\n let markerStart: string | undefined;\n let markerEnd: string | undefined;\n\n for (const marker of markers) {\n if (marker.variant === expectVariant) {\n if (marker.placement === \"start\") {\n markerStart = `url(#${markerPrefix}${marker.index})`;\n } else {\n markerEnd = `url(#${markerPrefix}${marker.index})`;\n }\n }\n }\n\n return (\n <g\n className={classNames(\"line\", {\n interactable: line.interactable,\n active,\n \"active-related\": activeRelated,\n })}\n onClick={\n line.interactable\n ? () => {\n onLineClick?.({ id: line.$id, edge });\n }\n : undefined\n }\n onDoubleClick={\n line.interactable\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n onLineDoubleClick?.({ id: line.$id, edge });\n }\n : undefined\n }\n style={{ cursor: line.cursor }}\n >\n {line.interactable && (\n <path\n // This `path` is made for expanding interaction area of graph lines.\n d={d}\n fill=\"none\"\n stroke=\"transparent\"\n strokeWidth={interactStrokeWidth}\n />\n )}\n <path\n ref={(element) => linePaths.set(line.$id, element)}\n stroke={strokeColor}\n strokeWidth={strokeWidth}\n d={d}\n fill=\"none\"\n markerStart={markerStart}\n markerEnd={markerEnd}\n mask={mask}\n />\n <path\n stroke=\"var(--palette-blue-3)\"\n strokeWidth={strokeWidth}\n d={d}\n fill=\"none\"\n className=\"active-bg\"\n markerStart={`url(#${activeLineMarkerPrefix}start)`}\n markerEnd={`url(#${activeLineMarkerPrefix}end)`}\n mask={mask}\n />\n </g>\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport type {\n DiagramEdge,\n LineLabelConf,\n // PositionTuple,\n RefRepository,\n LineLabel,\n TextOptions,\n} from \"./interfaces\";\n\nexport interface LineLabelComponentGroupProps {\n labels?: LineLabel[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function LineLabelComponentGroup({\n labels,\n onRendered,\n}: LineLabelComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<string[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: string, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: string) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!labels?.some((label) => !renderedIds.includes(label.id)));\n }, [labels, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {labels?.map(({ text, label, /* position, */ id, edge }) =>\n label ? (\n <div\n key={id}\n className=\"line-label\"\n // style={{\n // left: position[0],\n // top: position[1],\n // }}\n >\n <LineLabelComponent\n id={id}\n edge={edge}\n label={label}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ) : (\n <LineTextComponent\n key={id}\n id={id}\n text={text!}\n // position={position}\n onRendered={handleRenderer}\n />\n )\n )}\n </React.Fragment>\n );\n}\n\nexport interface LineTextComponentProps {\n id: string;\n text: TextOptions;\n // position: PositionTuple;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n // onUnmount?: (id: string) => void;\n}\n\nexport function LineTextComponent({\n id,\n text,\n // position,\n onRendered /* , onUnmount */,\n}: LineTextComponentProps): JSX.Element {\n const refCallback = useCallback(\n (element: HTMLDivElement) => {\n onRendered?.(id, element);\n },\n [id, onRendered]\n );\n\n return (\n <div\n className=\"line-label\"\n ref={refCallback}\n // style={{\n // left: position[0],\n // top: position[1],\n // ...text!.style,\n // }}\n style={text.style}\n >\n {text!.content}\n </div>\n );\n}\n\n// export const LineLabelComponentGroup = React.memo(LegacyLineLabelComponentGroup);\n\nexport interface LineLabelComponentProps {\n id: string;\n edge: DiagramEdge;\n label: LineLabelConf;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n onUnmount?: (id: string) => void;\n}\n\nexport function LineLabelComponent({\n id,\n edge,\n label,\n onRendered,\n onUnmount,\n}: LineLabelComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => (checkIfByTransform(label, { edge }) ? label.useBrick : null),\n [edge, label]\n );\n\n const memoizedData = useMemo(() => ({ edge }), [edge]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }\n }, [id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(id, element.parentElement);\n });\n }\n },\n [id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }, [id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import React from \"react\";\nimport type { RenderedLineLabel, SimpleRect } from \"./interfaces\";\n\nexport interface LineMaskComponentProps {\n maskPrefix: string;\n lineId: string;\n rects: SimpleRect[];\n renderedLineLabels: RenderedLineLabel[];\n}\n\nexport function LineMaskComponent({\n lineId,\n rects,\n maskPrefix,\n renderedLineLabels,\n}: LineMaskComponentProps): JSX.Element | null {\n const lineText = renderedLineLabels.find(\n (item) => item.lineId === lineId && item.placement === \"center\"\n );\n // istanbul ignore next\n if (!lineText) {\n return null;\n }\n const { lineRect } = lineText;\n const bgRect = getRectWithPadding(lineRect, 1000);\n return (\n <mask\n id={`${maskPrefix}${lineId}`}\n x={bgRect.left}\n y={bgRect.top}\n width={bgRect.width}\n height={bgRect.height}\n >\n <rect\n x={bgRect.left}\n y={bgRect.top}\n width={bgRect.width}\n height={bgRect.height}\n // Everything under a white pixel will be visible\n fill=\"white\"\n />\n {rects.map((rect, index) => (\n <rect\n key={index}\n x={rect.left}\n y={rect.top}\n width={rect.width}\n height={rect.height}\n // Everything under a black pixel will be invisible\n fill=\"black\"\n />\n ))}\n </mask>\n );\n}\n\nfunction getRectWithPadding(rect: SimpleRect, padding: number): SimpleRect {\n return {\n left: rect.left - padding,\n top: rect.top - padding,\n width: rect.width + padding * 2,\n height: rect.height + padding * 2,\n };\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport type {\n DiagramNode,\n DiagramNodeId,\n NodeBrickConf,\n RefRepository,\n} from \"./interfaces\";\nimport { findNodeBrick } from \"./processors/findNodeBrick\";\n\nexport interface NodeComponentGroupProps {\n nodes?: DiagramNode[];\n nodeBricks?: NodeBrickConf[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function NodeComponentGroup({\n nodes,\n nodeBricks,\n onRendered,\n}: NodeComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<DiagramNodeId[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: DiagramNodeId, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: DiagramNodeId) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!nodes?.some((node) => !renderedIds.includes(node.id)));\n }, [nodes, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {nodes?.map((node) => (\n <div key={node.id} className=\"node\">\n <NodeComponent\n nodeBricks={nodeBricks}\n node={node}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ))}\n </React.Fragment>\n );\n}\n\nexport interface NodeComponentProps {\n node: DiagramNode;\n nodeBricks?: NodeBrickConf[];\n onRendered?: (id: DiagramNodeId, element: HTMLElement | null) => void;\n onUnmount?: (id: DiagramNodeId) => void;\n}\n\nexport function NodeComponent({\n node,\n nodeBricks,\n onRendered,\n onUnmount,\n}: NodeComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => findNodeBrick(node, nodeBricks)?.useBrick,\n [node, nodeBricks]\n );\n const memoizedData = useMemo(() => ({ node }), [node]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }\n }, [node.id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(node.id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(node.id, element);\n });\n }\n },\n [node.id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }, [node.id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport { NodeBrickConf, DiagramNode } from \"../interfaces\";\n\nexport function findNodeBrick(\n node: DiagramNode,\n nodeBricks: NodeBrickConf[] | undefined\n): NodeBrickConf | undefined {\n return nodeBricks?.find((item) => {\n if (item.nodeType) {\n return ([] as unknown[]).concat(item.nodeType).includes(node.type);\n }\n return checkIfByTransform(item, { node });\n });\n}\n","export const DEFAULT_LINE_STROKE_COLOR = \"var(--palette-gray-5)\";\nexport const DEFAULT_LINE_STROKE_WIDTH = 1;\nexport const DEFAULT_LINE_CURVE_TYPE = \"curveBasis\";\nexport const DEFAULT_LINE_INTERACT_STROKE_WIDTH = 20;\nexport const DEFAULT_SCALE_RANGE_MIN = 0.5;\nexport const DEFAULT_SCALE_RANGE_MAX = 2;\n","import type { FullRectTuple, RefRepository, RenderedNode } from \"../interfaces\";\n\nexport function adjustNodesSize(\n nodes: RenderedNode[],\n nodesRefRepository: RefRepository,\n nodePaddings: FullRectTuple\n) {\n for (const node of nodes) {\n const element = nodesRefRepository.get(node.id);\n node.width =\n Math.max(element?.offsetWidth ?? 0, 10) +\n nodePaddings[1] +\n nodePaddings[3];\n node.height =\n Math.max(element?.offsetHeight ?? 0, 10) +\n nodePaddings[0] +\n nodePaddings[2];\n }\n}\n","import type { FullRectTuple, RefRepository, RenderedNode } from \"../interfaces\";\n\nexport function adjustNodesPosition(\n nodes: RenderedNode[],\n nodesRefRepository: RefRepository,\n nodePaddings: FullRectTuple\n) {\n for (const node of nodes) {\n const x = node.x - node.width / 2 + nodePaddings[3];\n const y = node.y - node.height / 2 + nodePaddings[0];\n\n const nodeContainer = nodesRefRepository.get(node.id)?.parentElement;\n if (nodeContainer) {\n nodeContainer.style.left = `${x}px`;\n nodeContainer.style.top = `${y}px`;\n nodeContainer.style.visibility = \"visible\";\n }\n }\n}\n","// istanbul ignore file: experimental\nimport type {\n DiagramEdge,\n LabelSize,\n RefRepository,\n RenderedEdge,\n} from \"../interfaces\";\n\nexport function getRenderedEdges(\n edges: DiagramEdge[] | undefined,\n {\n normalizedLinesMap,\n lineLabelsRefRepository,\n }: {\n normalizedLinesMap: WeakMap<DiagramEdge, string>;\n lineLabelsRefRepository: RefRepository;\n }\n) {\n return (\n edges?.map<RenderedEdge>((edge) => {\n const lineId = normalizedLinesMap.get(edge);\n const labelSize: LabelSize = {};\n if (lineId) {\n for (const placement of [/* \"center\", */ \"start\", \"end\"] as const) {\n const element = lineLabelsRefRepository.get(`${lineId}-${placement}`);\n if (element) {\n labelSize[placement] = [element.offsetWidth, element.offsetHeight];\n }\n }\n }\n\n return {\n data: edge,\n labelSize,\n };\n }) ?? []\n );\n}\n","// istanbul ignore file: experimental\nimport {\n forceSimulation,\n forceLink,\n forceCollide,\n forceManyBody,\n forceX,\n forceY,\n type Simulation,\n type SimulationNodeDatum,\n type SimulationLinkDatum,\n} from \"d3-force\";\nimport { pick } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n ForceCollideOptions,\n LayoutOptionsForce,\n RenderedNode,\n UnifiedGraph,\n UserViewNodesMap,\n} from \"../interfaces\";\nimport { adjustNodesSize } from \"./adjustNodesSize\";\nimport { adjustNodesPosition } from \"./adjustNodesPosition\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\nimport { getRenderedEdges } from \"./getRenderedEdges\";\n\ninterface NormalNode extends SimulationNodeDatum {\n dummy?: false;\n id: string;\n data: DiagramNode;\n width: number;\n height: number;\n}\n\ninterface DummyNode extends SimulationNodeDatum {\n dummy: true;\n id: string;\n}\n\ntype ForceNode = NormalNode | DummyNode;\n\ntype ForceLink = SimulationLinkDatum<ForceNode> & {\n dummy?: boolean;\n};\n\nexport function getForceGraph(\n previousGraph: UnifiedGraph | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n userViewNodesMap: UserViewNodesMap | null,\n forceLayoutOptions: LayoutOptionsForce | undefined\n): UnifiedGraph {\n const { nodePadding, dummyNodesOnEdges, collide } = {\n nodePadding: 0,\n dummyNodesOnEdges: 0,\n ...pick(forceLayoutOptions, [\"nodePadding\", \"dummyNodesOnEdges\"]),\n collide:\n forceLayoutOptions?.collide !== false\n ? ({\n dummyRadius: 1,\n radiusDiff: 5,\n strength: 1,\n iterations: 1,\n ...(forceLayoutOptions?.collide === true\n ? null\n : (forceLayoutOptions?.collide as ForceCollideOptions)),\n } as Required<ForceCollideOptions>)\n : (false as const),\n };\n const nodePaddings = extractPartialRectTuple(nodePadding);\n\n const renderedNodes: RenderedNode[] = [];\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.getNode(node.id);\n if (previousNode?.data === node) {\n renderedNodes.push(previousNode);\n } else {\n const renderedNode = {\n id: node.id,\n data: node,\n } as RenderedNode & { fx?: number; fy?: number };\n const userViewNode = userViewNodesMap?.get(node.id);\n if (userViewNode) {\n renderedNode.fx = userViewNode.x;\n renderedNode.fy = userViewNode.y;\n }\n renderedNodes.push(renderedNode);\n }\n }\n\n function getNode(id: string) {\n return renderedNodes.find((node) => node.data.id === id);\n }\n\n return {\n layout: \"force\",\n getNode,\n applyLayout({\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n }) {\n if (renderedNodes.length === 0) {\n return null;\n }\n\n adjustNodesSize(renderedNodes, nodesRefRepository, nodePaddings);\n\n const forceNodes = renderedNodes.slice();\n const forceLinks: ForceLink[] = [];\n\n for (const edge of edges ?? []) {\n forceLinks.push({ ...edge });\n if (dummyNodesOnEdges > 0) {\n forceNodes.push(\n ...(getDummyNodes(\n edge,\n dummyNodesOnEdges\n ) as Partial<RenderedNode>[] as RenderedNode[])\n );\n forceLinks.push(...getDummyEdges(edge, dummyNodesOnEdges));\n }\n }\n\n const linkSimulation = forceLink<ForceNode, ForceLink>(forceLinks).id(\n (d) => d.id\n );\n\n if (dummyNodesOnEdges > 0) {\n linkSimulation\n .distance((l) => (l.dummy ? 30 / (dummyNodesOnEdges + 1) : 30))\n .strength((l) => (l.dummy ? 0.5 : 1));\n }\n\n const simulation = forceSimulation<ForceNode>(forceNodes)\n .force(\"link\", linkSimulation)\n .force(\"x\", forceX())\n .force(\"y\", forceY())\n .force(\"charge\", forceManyBody());\n\n if (collide) {\n simulation.force(\n \"collide\",\n forceCollide<ForceNode>()\n .radius((d) =>\n d.dummy\n ? collide.dummyRadius\n : Math.sqrt(d.width ** 2 + d.height ** 2) / 2 +\n collide.radiusDiff\n )\n .strength(collide.strength)\n .iterations(collide.iterations)\n );\n }\n\n simulation.stop();\n manuallyTickToTheEnd(simulation);\n\n adjustNodesPosition(renderedNodes, nodesRefRepository, nodePaddings);\n\n const renderedEdges = getRenderedEdges(edges, {\n normalizedLinesMap,\n lineLabelsRefRepository,\n });\n\n return { nodes: renderedNodes, edges: renderedEdges };\n },\n };\n}\n\nfunction manuallyTickToTheEnd(\n simulation: Simulation<ForceNode, ForceLink>\n): void {\n // Manually tick to the end.\n simulation.tick(\n Math.ceil(\n Math.log(simulation.alphaMin()) / Math.log(1 - simulation.alphaDecay())\n )\n );\n}\n\nfunction getDummyNodes(edge: DiagramEdge, count: number): DummyNode[] {\n return new Array(count).fill(null).map<DummyNode>((v, i) => ({\n dummy: true,\n id: `$dummy-${edge.source}-${edge.target}-${i}`,\n }));\n}\n\nfunction getDummyEdges(edge: DiagramEdge, count: number): ForceLink[] {\n return new Array(count + 1).fill(null).map<ForceLink>((v, i) => ({\n dummy: true,\n source:\n i === 0 ? edge.source : `$dummy-${edge.source}-${edge.target}-${i - 1}`,\n target:\n i === count ? edge.target : `$dummy-${edge.source}-${edge.target}-${i}`,\n }));\n}\n","import { useEffect, useState } from \"react\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptions,\n LayoutOptionsDagre,\n LayoutOptionsForce,\n ManualLayoutStatus,\n NodeMovement,\n RefRepository,\n RenderedDiagram,\n UnifiedGraph,\n UserViewNodesMap,\n} from \"../interfaces\";\nimport { getDagreGraph } from \"../processors/getDagreGraph\";\nimport { getForceGraph } from \"../processors/getForceGraph\";\nimport { getManualGraph } from \"../processors/getManualGraph\";\n\nexport function useRenderedDiagram({\n layout: originalLayout,\n nodes,\n edges,\n manualLayoutStatus,\n userViewReady,\n userViewNodesMap,\n nodeMovement,\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n nodesRenderId,\n lineLabelsRenderId,\n layoutOptions,\n}: {\n layout: \"dagre\" | \"force\" | undefined;\n nodes: DiagramNode[] | undefined;\n edges: DiagramEdge[] | undefined;\n manualLayoutStatus: ManualLayoutStatus;\n userViewReady: boolean;\n userViewNodesMap: UserViewNodesMap | null;\n nodeMovement: NodeMovement | null;\n nodesRefRepository: RefRepository | null;\n lineLabelsRefRepository: RefRepository | null;\n normalizedLinesMap: WeakMap<DiagramEdge, string>;\n nodesRenderId: number;\n lineLabelsRenderId: number;\n layoutOptions?: LayoutOptions;\n}) {\n const layout = manualLayoutStatus === \"initial\" ? originalLayout : \"manual\";\n const [graph, setGraph] = useState<UnifiedGraph | null>(null);\n\n const [renderedDiagram, setRenderedDiagram] = useState<RenderedDiagram>({\n nodes: [],\n edges: [],\n });\n\n useEffect(() => {\n if (!userViewReady) {\n return;\n }\n setGraph((previousGraph) =>\n layout === \"dagre\"\n ? getDagreGraph(\n previousGraph,\n nodes,\n edges,\n layoutOptions as LayoutOptionsDagre\n )\n : layout === \"force\"\n ? getForceGraph(\n previousGraph,\n nodes,\n edges,\n userViewNodesMap,\n layoutOptions as LayoutOptionsForce\n )\n : layout === \"manual\"\n ? getManualGraph(previousGraph, nodes, edges, layoutOptions)\n : null\n );\n }, [edges, nodes, layout, layoutOptions, userViewReady, userViewNodesMap]);\n\n useEffect(() => {\n if (\n !nodesRefRepository ||\n !lineLabelsRefRepository ||\n layout !== graph?.layout\n ) {\n return;\n }\n const renderedDiagram = graph?.applyLayout({\n manualLayoutStatus,\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n nodeMovement,\n });\n if (renderedDiagram) {\n setRenderedDiagram(renderedDiagram);\n }\n }, [\n layout,\n manualLayoutStatus,\n graph,\n nodeMovement,\n nodesRefRepository,\n lineLabelsRefRepository,\n nodesRenderId,\n lineLabelsRenderId,\n normalizedLinesMap,\n ]);\n\n return renderedDiagram;\n}\n","import dagre from \"@dagrejs/dagre\";\nimport { pick } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptionsDagre,\n RenderedEdge,\n RenderedNode,\n UnifiedGraph,\n} from \"../interfaces\";\nimport { adjustNodesSize } from \"./adjustNodesSize\";\nimport { adjustNodesPosition } from \"./adjustNodesPosition\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\n\nexport function getDagreGraph(\n previousGraph: UnifiedGraph | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n dagreLayoutOptions: LayoutOptionsDagre | undefined\n): UnifiedGraph {\n const { nodePadding, ...dagreGraphOptions } = {\n nodePadding: 0,\n rankdir: \"TB\",\n ranksep: 50,\n edgesep: 10,\n nodesep: 50,\n // align: undefined,\n ...pick(dagreLayoutOptions, [\n \"nodePadding\",\n \"rankdir\",\n \"ranksep\",\n \"edgesep\",\n \"nodesep\",\n \"align\",\n ]),\n };\n const nodePaddings = extractPartialRectTuple(nodePadding);\n\n // Create a new directed graph\n const graph = new dagre.graphlib.Graph<RenderedNode>();\n\n // Set an object for the graph label\n graph.setGraph(dagreGraphOptions);\n\n // Default to assigning a new object as a label for each new edge.\n graph.setDefaultEdgeLabel(function () {\n return {};\n });\n\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.getNode(node.id);\n graph.setNode(\n node.id,\n previousNode?.data === node\n ? previousNode\n : {\n id: node.id,\n data: node,\n }\n );\n }\n\n for (const edge of edges ?? []) {\n graph.setEdge(edge.source, edge.target, { data: edge });\n }\n\n return {\n layout: \"dagre\",\n getNode(id) {\n return graph.node(id);\n },\n applyLayout({\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n }) {\n const renderedNodes: RenderedNode[] = [];\n for (const id of graph.nodes()) {\n const node = graph.node(id);\n if (node) {\n renderedNodes.push(node);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Diagram node not found: %s\", id);\n }\n }\n\n if (renderedNodes.length === 0) {\n return null;\n }\n\n adjustNodesSize(renderedNodes, nodesRefRepository, nodePaddings);\n\n const renderedEdges = graph\n .edges()\n .map((e) => graph.edge(e) as RenderedEdge);\n for (const edge of renderedEdges) {\n const lineId = normalizedLinesMap.get(edge.data);\n if (lineId) {\n for (const placement of [\"center\", \"start\", \"end\"] as const) {\n const element = lineLabelsRefRepository.get(\n `${lineId}-${placement}`\n );\n if (element) {\n const { offsetWidth, offsetHeight } = element;\n if (placement === \"center\") {\n edge.labelpos = \"c\";\n edge.width = offsetWidth;\n edge.height = offsetHeight;\n }\n edge.labelSize ??= {};\n edge.labelSize[placement] = [offsetWidth, offsetHeight];\n }\n }\n }\n }\n dagre.layout(graph);\n\n adjustNodesPosition(renderedNodes, nodesRefRepository, nodePaddings);\n\n return {\n nodes: renderedNodes,\n edges: renderedEdges,\n };\n },\n };\n}\n","// istanbul ignore file: experimental\nimport { pick } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n BaseLayoutOptions,\n RenderedNode,\n UnifiedGraph,\n} from \"../interfaces\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\nimport { adjustNodesSize } from \"./adjustNodesSize\";\nimport { adjustNodesPosition } from \"./adjustNodesPosition\";\nimport { getRenderedEdges } from \"./getRenderedEdges\";\n\nexport function getManualGraph(\n previousGraph: UnifiedGraph | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n layoutOptions: BaseLayoutOptions | undefined\n): UnifiedGraph {\n const { nodePadding } = {\n nodePadding: 0,\n ...pick(layoutOptions, [\"nodePadding\"]),\n };\n const nodePaddings = extractPartialRectTuple(nodePadding);\n\n const renderedNodes: RenderedNode[] = [];\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.getNode(node.id);\n if (previousNode?.data === node) {\n renderedNodes.push(previousNode);\n previousNode.x0 = previousNode.x;\n previousNode.y0 = previousNode.y;\n } else {\n renderedNodes.push({\n id: node.id,\n data: node,\n } as RenderedNode);\n }\n }\n\n function getNode(id: string) {\n return renderedNodes.find((node) => node.data.id === id);\n }\n\n let movedNode: RenderedNode | undefined;\n\n return {\n layout: \"manual\",\n getNode,\n applyLayout({\n manualLayoutStatus,\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n nodeMovement,\n }) {\n if (renderedNodes.length === 0) {\n return null;\n }\n\n adjustNodesSize(renderedNodes, nodesRefRepository, nodePaddings);\n\n if (nodeMovement) {\n movedNode = renderedNodes.find((node) => node.id === nodeMovement.id);\n if (movedNode) {\n movedNode.x = (movedNode.x0 ?? 0) + nodeMovement.move[0];\n movedNode.y = (movedNode.y0 ?? 0) + nodeMovement.move[1];\n }\n }\n\n if (manualLayoutStatus === \"finished\" && movedNode) {\n // Set x0/y0 after finished manual layout\n movedNode.x0 = movedNode.x;\n movedNode.y0 = movedNode.y;\n }\n\n adjustNodesPosition(renderedNodes, nodesRefRepository, nodePaddings);\n\n const renderedEdges = getRenderedEdges(edges, {\n normalizedLinesMap,\n lineLabelsRefRepository,\n });\n\n return { nodes: renderedNodes, edges: renderedEdges };\n },\n };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport {\n InstanceApi_postSearchV3,\n InstanceApi_updateInstanceV2,\n InstanceApi_createInstance,\n} from \"@next-api-sdk/cmdb-sdk\";\nimport { createAsyncQueue } from \"../processors/createAsyncQueue\";\nimport {\n NodeUserView,\n UserView,\n UserViewNodesMap,\n UserViewQuery,\n} from \"../interfaces\";\n\nconst USER_VIEW_MODEL_ID = \"GRAPH_USER_VIEW@EASYOPS\";\n\nexport interface UserViewHook {\n userViewReady: boolean;\n userViewNodesMap: UserViewNodesMap | null;\n saveUserView: (nodes: NodeUserView[]) => void;\n}\n\nexport function useUserView(query: UserViewQuery | undefined): UserViewHook {\n const [userViewReady, setUserViewReady] = useState(!query);\n const userViewIdRef = useRef<string>();\n const [userViewNodesMap, setUserViewNodesMap] =\n useState<UserViewNodesMap | null>(null);\n const queue = useMemo(() => createAsyncQueue(), []);\n\n useEffect(() => {\n async function getUserView(): Promise<void> {\n if (!query) {\n setUserViewReady(true);\n return;\n }\n const { namespace, key } = query;\n if (!(namespace && key)) {\n // eslint-disable-next-line no-console\n console.error(\"Namespace and key are required to save graph user view\");\n setUserViewReady(true);\n return;\n }\n try {\n const list = (\n await InstanceApi_postSearchV3(USER_VIEW_MODEL_ID, {\n fields: [\"nodes\"],\n query: {\n namespace: {\n $eq: namespace,\n },\n key: {\n $eq: key,\n },\n },\n page: 1,\n page_size: 30,\n })\n ).list as UserView[];\n if (list.length > 0) {\n const userView = list[0];\n const userViewNodesMap = new Map(\n userView.nodes?.map((node) => [node.id, node])\n );\n userViewIdRef.current = userView.instanceId;\n setUserViewNodesMap(userViewNodesMap);\n } else {\n setUserViewNodesMap(null);\n }\n } catch (error) {\n handleHttpError(error as Error);\n } finally {\n setUserViewReady(true);\n }\n }\n getUserView();\n }, [query]);\n\n const saveUserView = useCallback(\n (nodes: NodeUserView[]) => {\n const { namespace, key } = query ?? {};\n if (!(namespace && key)) {\n return;\n }\n queue(async () => {\n const userViewData = {\n namespace,\n key,\n nodes,\n };\n try {\n if (userViewIdRef.current) {\n await InstanceApi_updateInstanceV2(\n USER_VIEW_MODEL_ID,\n userViewIdRef.current,\n userViewData,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n } else {\n const userView = await InstanceApi_createInstance(\n USER_VIEW_MODEL_ID,\n userViewData,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n userViewIdRef.current = userView.instanceId;\n }\n } catch (error) {\n handleHttpError(error);\n }\n });\n },\n [query, queue]\n );\n\n return {\n userViewReady,\n userViewNodesMap,\n saveUserView,\n };\n}\n","type Task = (...args: unknown[]) => unknown;\ntype Queue = (task: Task) => Promise<void>;\n\nexport function createAsyncQueue(): Queue {\n let working = false;\n const waitingTasks: Task[] = [];\n return async function queue(task: Task) {\n waitingTasks.push(task);\n if (!working) {\n working = true;\n let nextTask: Task | undefined;\n while ((nextTask = waitingTasks.shift())) {\n try {\n await nextTask();\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n working = false;\n }\n };\n}\n","import type { RefRepository, RenderedLineLabel } from \"../interfaces\";\n\nexport function adjustLineLabels(\n renderedLineLabels: RenderedLineLabel[],\n lineLabelsRefRepository: RefRepository\n) {\n for (const {\n id,\n position,\n placement,\n angle,\n size: _size,\n } of renderedLineLabels) {\n const label = lineLabelsRefRepository.get(id);\n if (label) {\n label.style.left = `${position[0]}px`;\n label.style.top = `${position[1]}px`;\n label.style.visibility = \"visible\";\n // label.classList.add(placement);\n if (placement !== \"center\" && angle !== undefined) {\n const [width, height] = _size ?? [0, 0];\n // Get the numbered direction of the line\n //\n // \\ | /\n // \\ 5 | 6 /\n // 4 \\ | / 7\n // -----x-----\n // 3 / | \\ 0\n // / 2 | 1 \\\n // / | \\\n const tempDirection = Math.floor(\n ((angle < 0 ? Math.PI * 2 + angle : angle) / Math.PI) * 4\n );\n // Swap direction for end labels.\n const direction =\n placement === \"start\" ? tempDirection : (tempDirection + 4) % 8;\n const tangent = Math.tan(angle);\n const offsetAngle =\n angle + ((placement === \"start\" ? 1 : -1) * Math.PI) / 2;\n const offset = 2;\n const offsetSin = Math.sin(offsetAngle) * offset;\n const offsetCos = Math.cos(offsetAngle) * offset;\n let transform: string;\n switch (direction) {\n case 0:\n transform = `translate(0,${width * tangent + offsetSin}px)`;\n break;\n case 1:\n transform = `translate(${height / tangent - offsetCos}px,0)`;\n break;\n case 2:\n transform = `translate(calc(${\n height / tangent + offsetCos\n }px - 100%),0)`;\n break;\n case 3:\n transform = `translate(-100%,${-width * tangent - offsetSin}px)`;\n break;\n case 4:\n transform = `translate(-100%,calc(${\n -width * tangent + offsetSin\n }px - 100%))`;\n break;\n case 5:\n transform = `translate(calc(${\n -height / tangent - offsetCos\n }px - 100%),-100%)`;\n break;\n case 6:\n transform = `translate(${-height / tangent + offsetCos}px,-100%)`;\n break;\n default:\n transform = `translate(0,calc(${\n width * tangent - offsetSin\n }px - 100%))`;\n }\n label.style.transform = transform;\n }\n }\n }\n}\n","import type {\n LineMaskRects,\n RefRepository,\n RenderedLineLabel,\n} from \"../interfaces\";\n\nexport function getLineMaskRects(\n renderedLineLabels: RenderedLineLabel[],\n lineLabelsRefRepository: RefRepository\n) {\n const map: LineMaskRects = new Map();\n\n for (const { id, lineId, placement } of renderedLineLabels) {\n if (!lineLabelsRefRepository || placement !== \"center\") {\n continue;\n }\n const element = lineLabelsRefRepository.get(id);\n if (!element) {\n continue;\n }\n const { offsetWidth, offsetHeight } = element;\n // Do not mask out when the label takes no space.\n // istanbul ignore next\n if (\n process.env.NODE_ENV !== \"test\" &&\n (offsetWidth === 0 || offsetHeight === 0)\n ) {\n continue;\n }\n const padding = 3;\n // Currently no other rects\n map.set(lineId, [\n {\n left: element.offsetLeft - offsetWidth / 2 - padding,\n top: element.offsetTop - offsetHeight / 2 - padding,\n width: offsetWidth + padding * 2,\n height: offsetHeight + padding * 2,\n },\n ]);\n }\n\n return map;\n}\n","import type {\n LineLabelConf,\n RenderedLine,\n RenderedLineLabel,\n TextOptions,\n} from \"../interfaces\";\n\nexport function getRenderedLineLabels(\n previous: RenderedLineLabel[],\n renderedLines: RenderedLine[],\n linePaths: Map<string, SVGPathElement | null>\n) {\n if (previous.length === 0 && renderedLines.length === 0) {\n return previous;\n }\n return renderedLines.flatMap(\n ({ line: { text, label, $id }, edge, labelSize, angle }) => {\n const path = linePaths.get($id);\n if ((!text && !label) || !path || !path.getAttribute(\"d\")) {\n return [] as RenderedLineLabel[];\n }\n\n let key: \"label\" | \"text\";\n let list: LineLabelConf[] | TextOptions[];\n if (label) {\n key = \"label\";\n list = ([] as LineLabelConf[]).concat(label);\n } else {\n key = \"text\";\n list = ([] as TextOptions[]).concat(text!);\n }\n\n // istanbul ignore next\n const {\n x: left,\n y: top,\n width,\n height,\n } = process.env.NODE_ENV === \"test\"\n ? { x: 10, y: 20, width: 300, height: 400 }\n : path.getBBox();\n\n // istanbul ignore next\n const pathLength =\n process.env.NODE_ENV === \"test\" ? 50 : path.getTotalLength();\n\n return list.map<RenderedLineLabel>((item) => {\n const placement = item.placement ?? \"center\";\n const offset = 0;\n // istanbul ignore next\n const point =\n process.env.NODE_ENV === \"test\"\n ? { x: 50, y: 50 }\n : path.getPointAtLength(\n placement === \"start\"\n ? Math.min(offset, pathLength / 2)\n : placement === \"end\"\n ? Math.max(pathLength - offset, pathLength / 2)\n : pathLength / 2\n );\n\n return {\n [key as \"label\"]: item as LineLabelConf,\n edge,\n position: [point.x, point.y],\n lineRect: { left, top, width, height },\n id: `${$id}-${placement}`,\n lineId: $id,\n placement,\n angle,\n size: labelSize?.[placement],\n };\n });\n }\n );\n}\n","import {\n curveLinear,\n line,\n curveBasis,\n curveBumpX,\n curveBumpY,\n type CurveFactory,\n curveMonotoneX,\n curveNatural,\n curveMonotoneY,\n} from \"d3-shape\";\nimport type { CurveType, NodePosition } from \"../interfaces\";\n\n/**\n * Generate Line from points\n */\nexport function curveLine(\n points: Array<NodePosition> | null | undefined,\n curveType: CurveType | undefined,\n startOffset: number,\n endOffset: number\n): string {\n if (!Array.isArray(points)) {\n return \"\";\n }\n let curveFactory: CurveFactory;\n switch (curveType) {\n case \"curveLinear\":\n curveFactory = curveLinear;\n break;\n case \"curveBumpX\":\n curveFactory = curveBumpX;\n break;\n case \"curveBumpY\":\n curveFactory = curveBumpY;\n break;\n case \"curveMonotoneX\":\n curveFactory = curveMonotoneX;\n break;\n case \"curveMonotoneY\":\n curveFactory = curveMonotoneY;\n break;\n case \"curveNatural\":\n curveFactory = curveNatural;\n break;\n default:\n curveFactory = curveBasis;\n }\n const startOffsets = getOffsets(points[1], points[0], startOffset);\n const endOffsets = getOffsets(\n points[points.length - 2],\n points[points.length - 1],\n endOffset\n );\n const lineFunction = line()\n .x(\n (d, index) =>\n (d as unknown as { x: number }).x -\n (index === 0\n ? startOffsets.x\n : index === points.length - 1\n ? endOffsets.x\n : 0)\n )\n .y(\n (d, index) =>\n (d as unknown as { y: number }).y -\n (index === 0\n ? startOffsets.y\n : index === points.length - 1\n ? endOffsets.y\n : 0)\n )\n .curve(curveFactory);\n return lineFunction(points as unknown as Array<[number, number]>)!;\n}\n\nfunction getOffsets(\n start: NodePosition,\n end: NodePosition,\n offset: number\n): NodePosition {\n if (!offset) {\n return { x: 0, y: 0 };\n }\n const { x: x0, y: y0 } = start;\n const { x: x1, y: y1 } = end;\n const distance = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n const ratio = offset / distance;\n return {\n x: (x1 - x0) * ratio,\n y: (y1 - y0) * ratio,\n };\n}\n","import type { Direction, NodePosition, RenderedNode } from \"../interfaces\";\n\nexport function getPolyLinePoints(\n source: RenderedNode,\n target: RenderedNode,\n sourceDirection: Direction,\n targetDirection: Direction,\n sourcePosition: number,\n targetPosition: number\n): NodePosition[] | null {\n const p0 = getCoordinates(source, sourceDirection, sourcePosition);\n const p1 = getCoordinates(target, targetDirection, targetPosition);\n\n let c1: NodePosition;\n let c2: NodePosition;\n switch (sourceDirection) {\n case \"top\":\n case \"bottom\":\n switch (targetDirection) {\n default:\n c1 = { x: p0.x, y: (p0.y + p1.y) / 2 };\n c2 = { x: p1.x, y: c1.y };\n break;\n }\n break;\n default:\n switch (targetDirection) {\n default:\n c1 = { x: (p0.x + p1.x) / 2, y: p0.y };\n c2 = { x: c1.x, y: p1.y };\n break;\n }\n }\n\n return [p0, c1, c2, p1];\n}\n\nfunction getCoordinates(\n node: RenderedNode,\n direction: Direction,\n position: number\n): NodePosition {\n const { x, y, width, height } = node;\n switch (direction) {\n case \"top\":\n return {\n x: x - width / 2 + width * position,\n y: y - height / 2,\n };\n case \"bottom\":\n return {\n x: x - width / 2 + width * position,\n y: y + height / 2,\n };\n case \"left\":\n return {\n x: x - width / 2,\n y: y - height / 2 + height * position,\n };\n case \"right\":\n return {\n x: x + width / 2,\n y: y - height / 2 + height * position,\n };\n }\n}\n","// istanbul ignore file: experimental\nimport type {\n DiagramEdge,\n Direction,\n NormalizedLine,\n RenderedEdge,\n RenderedLine,\n RenderedNode,\n} from \"../interfaces\";\nimport { curveLine } from \"../lines/curveLine\";\nimport { getDirectLinePoints } from \"../lines/getDirectLinePoints\";\nimport { getPolyLinePoints } from \"../lines/getPolyLinePoints\";\nimport { doTwoNodesOverlap } from \"./doTwoNodesOverlap\";\n\nexport function getRenderedLines(\n renderedEdges: RenderedEdge[],\n renderedNodes: RenderedNode[],\n normalizedLines: NormalizedLine[]\n): RenderedLine[] {\n const renderedEdgeMap = new WeakMap<DiagramEdge, RenderedEdge>();\n const renderedNodeMap = new Map<string, RenderedNode>();\n const relatedNodes = new Map<string, Set<RenderedNode>>();\n\n for (const renderedNode of renderedNodes) {\n renderedNodeMap.set(renderedNode.id, renderedNode);\n }\n\n for (const renderedEdge of renderedEdges) {\n const { data: edge } = renderedEdge;\n renderedEdgeMap.set(edge, renderedEdge);\n }\n\n let prepared = false;\n const prepareRelatedNodes = () => {\n if (prepared) {\n return;\n }\n prepared = true;\n\n const addRelatedNodes = (from: string, to: string) => {\n let relates = relatedNodes.get(from);\n if (!relates) {\n relatedNodes.set(from, (relates = new Set()));\n }\n const toNode = renderedNodeMap.get(to);\n if (toNode) {\n relates.add(toNode);\n }\n };\n\n for (const {\n data: { source, target },\n } of renderedEdges) {\n if (source !== target) {\n addRelatedNodes(source, target);\n addRelatedNodes(target, source);\n }\n }\n };\n\n return normalizedLines\n .map<RenderedLine | undefined>(({ line, edge, markers, ...rest }) => {\n const renderedEdge = renderedEdgeMap.get(edge);\n if (!renderedEdge) {\n return;\n }\n const startMarkerOffset =\n markers.find(\n (marker) =>\n marker.variant === \"default\" && marker.placement === \"start\"\n )?.offset ?? 0;\n const endMarkerOffset =\n markers.find(\n (marker) => marker.variant === \"default\" && marker.placement === \"end\"\n )?.offset ?? 0;\n let angle: number | undefined;\n\n let { points } = renderedEdge;\n // Only dagre graph will have pre-calculated line points\n if (!points) {\n const source = renderedNodeMap.get(edge.source);\n const target = renderedNodeMap.get(edge.target);\n\n if (source && target && source !== target) {\n if (line.type === \"polyline\") {\n if (\n !doTwoNodesOverlap(\n source,\n target,\n startMarkerOffset,\n endMarkerOffset\n )\n ) {\n prepareRelatedNodes();\n const sourceDirection = getDirection(\n source,\n target,\n startMarkerOffset\n );\n const targetDirection = getDirection(\n target,\n source,\n endMarkerOffset\n );\n const sourceRelates = getOrderedRelates(\n relatedNodes.get(edge.source) ?? [],\n source,\n sourceDirection,\n startMarkerOffset\n );\n const targetRelates = getOrderedRelates(\n relatedNodes.get(edge.target) ?? [],\n target,\n targetDirection,\n endMarkerOffset\n );\n\n const sourcePosition =\n (sourceRelates.indexOf(target) + 1) /\n (sourceRelates.length + 1);\n const targetPosition =\n (targetRelates.indexOf(source) + 1) /\n (targetRelates.length + 1);\n\n points = getPolyLinePoints(\n source,\n target,\n sourceDirection,\n targetDirection,\n sourcePosition,\n targetPosition\n );\n }\n } else {\n points = getDirectLinePoints(source, target);\n }\n\n if (points) {\n const start = points[0];\n const end = points[points.length - 1];\n angle = Math.atan2(end.y - start.y, end.x - start.x);\n }\n }\n }\n\n const d = curveLine(\n points,\n line.curveType,\n startMarkerOffset,\n endMarkerOffset\n );\n return {\n ...rest,\n markers,\n line,\n edge,\n d,\n angle,\n labelSize: renderedEdge.labelSize,\n };\n })\n .filter(Boolean) as RenderedLine[];\n}\n\nfunction getDirection(\n source: RenderedNode,\n target: RenderedNode,\n padding: number\n): Direction {\n // Add a padding to the source node to avoid the markers being warped.\n const sourceAngle = Math.atan2(\n source.height + padding * 2,\n source.width + padding * 2\n );\n const { x: sx, y: sy } = source;\n const { x: tx, y: ty } = target;\n const angle = Math.atan2(ty - sy, tx - sx);\n const fixedAngle = angle < 0 ? Math.PI * 2 + angle : angle;\n const direction = Math.floor((fixedAngle / Math.PI) * 2);\n switch (direction) {\n case 0:\n return fixedAngle < sourceAngle ? \"right\" : \"bottom\";\n case 1:\n return fixedAngle < Math.PI - sourceAngle ? \"bottom\" : \"left\";\n case 2:\n return fixedAngle < Math.PI + sourceAngle ? \"left\" : \"top\";\n default:\n return fixedAngle < Math.PI * 2 - sourceAngle ? \"top\" : \"right\";\n }\n}\n\nfunction getOrderedRelates(\n relates: Iterable<RenderedNode>,\n from: RenderedNode,\n direction: Direction,\n padding: number\n): RenderedNode[] {\n return [...relates]\n .filter((node) => getDirection(from, node, padding) === direction)\n .sort((a, b) => {\n const { x: ax, y: ay } = a;\n const { x: bx, y: by } = b;\n return direction === \"top\" || direction === \"bottom\" ? ax - bx : ay - by;\n });\n}\n","import { minBy } from \"lodash\";\nimport type {\n ActiveTarget,\n DiagramEdge,\n DiagramNode,\n RenderedNode,\n} from \"../interfaces\";\n\nexport type KeyboardAction =\n | KeyboardActionSwitchActiveNode\n | KeyboardActionDeleteNode\n | KeyboardActionDeleteEdge;\n\nexport interface KeyboardActionSwitchActiveNode {\n action: \"switch-active-node\";\n node?: DiagramNode;\n}\n\nexport interface KeyboardActionDeleteNode {\n action: \"delete-node\";\n node: DiagramNode;\n}\n\nexport interface KeyboardActionDeleteEdge {\n action: \"delete-edge\";\n edge: DiagramEdge;\n}\n\nexport function handleKeyboard(\n event: KeyboardEvent,\n {\n renderedNodes,\n activeTarget,\n }: {\n renderedNodes: RenderedNode[];\n activeTarget: ActiveTarget | null | undefined;\n }\n): KeyboardAction | undefined {\n const activeNode =\n activeTarget?.type === \"node\"\n ? renderedNodes.find((node) => node.id === activeTarget.nodeId)\n : undefined;\n const activeEdge =\n activeTarget?.type === \"edge\" ? activeTarget.edge : undefined;\n\n if (!activeNode && !activeEdge) {\n return;\n }\n\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n let action: KeyboardAction[\"action\"] | undefined;\n let node: RenderedNode | undefined;\n let edge: DiagramEdge | undefined;\n\n switch (key) {\n case \"Backspace\":\n case 8:\n case \"Delete\":\n case 46: {\n if (activeNode) {\n action = \"delete-node\";\n node = activeNode;\n } else {\n action = \"delete-edge\";\n edge = activeEdge;\n }\n break;\n }\n default:\n if (!activeNode) {\n return;\n }\n switch (key) {\n case \"ArrowLeft\":\n case 37: {\n node = moveOnAxis(\"x\", renderedNodes, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowUp\":\n case 38: {\n node = moveOnAxis(\"y\", renderedNodes, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowRight\":\n case 39: {\n node = moveOnAxis(\"x\", renderedNodes, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowDown\":\n case 40: {\n node = moveOnAxis(\"y\", renderedNodes, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n }\n }\n if (action) {\n event.preventDefault();\n event.stopPropagation();\n return { action, node: node?.data, edge } as KeyboardAction;\n }\n}\n\nfunction moveOnAxis(\n axis: \"x\" | \"y\",\n renderedNodes: RenderedNode[],\n activeNode: RenderedNode,\n direction: 1 | -1\n) {\n const oppositeAxis = axis === \"x\" ? \"y\" : \"x\";\n let diff: number;\n const candidates = renderedNodes.filter(\n (node) =>\n node !== activeNode &&\n ((diff = (node[axis] - activeNode[axis]) * direction), diff > 0) &&\n diff > Math.abs(activeNode[oppositeAxis] - node[oppositeAxis])\n );\n return minBy(\n candidates,\n (node) =>\n (activeNode[oppositeAxis] - node[oppositeAxis]) ** 2 +\n (activeNode[axis] - node[axis]) ** 2\n );\n}\n","import { checkIfByTransform, __secret_internals } from \"@next-core/runtime\";\nimport type React from \"react\";\nimport {\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\nimport type {\n ConnectLineState,\n DiagramNode,\n ConnectLineDetail,\n ConnectNodesOptions,\n PositionTuple,\n RefRepository,\n ActiveTarget,\n DragNodesOptions,\n NodesFilterOptions,\n NodeMovement,\n ManualLayoutStatus,\n} from \"../interfaces\";\n\nexport function handleNodesMouseDown(\n event: MouseEvent,\n {\n nodes,\n nodesRefRepository,\n connectNodes,\n dragNodes,\n scale,\n setConnectLineState,\n setConnectLineTo,\n setManualLayoutStatus,\n setNodeMovement,\n onSwitchActiveTarget,\n onNodesConnect,\n }: {\n nodes: DiagramNode[] | undefined;\n connectNodes: ConnectNodesOptions | undefined;\n dragNodes: DragNodesOptions | undefined;\n nodesRefRepository: RefRepository | null;\n scale: number;\n setConnectLineState: (\n value: React.SetStateAction<ConnectLineState | null>\n ) => void;\n setConnectLineTo: (value: React.SetStateAction<PositionTuple>) => void;\n setManualLayoutStatus: (\n value: React.SetStateAction<ManualLayoutStatus>\n ) => void;\n setNodeMovement: (value: React.SetStateAction<NodeMovement | null>) => void;\n onSwitchActiveTarget?(target: ActiveTarget | null): void;\n onNodesConnect?(detail: ConnectLineDetail): void;\n }\n) {\n function findNode(match: (element: HTMLElement) => boolean) {\n if (nodesRefRepository) {\n for (const [id, element] of nodesRefRepository) {\n if (match(element)) {\n return nodes?.find((node) => node.id === id);\n }\n }\n }\n }\n\n if (!connectNodes && !dragNodes) {\n return;\n }\n\n const source = findNode((element) =>\n element.contains(event.target as Node | null)\n );\n\n if (!source) {\n return;\n }\n\n if (!nodeMatched(connectNodes || dragNodes!, source)) {\n return;\n }\n\n event.stopPropagation();\n const from: PositionTuple = [event.clientX, event.clientY];\n\n if (connectNodes) {\n setConnectLineState({\n from,\n options: {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n ...(__secret_internals.legacyDoTransform(\n { source },\n connectNodes\n ) as ConnectNodesOptions),\n },\n });\n setConnectLineTo(from);\n\n onSwitchActiveTarget?.({ type: \"node\", nodeId: source.id });\n\n const onMouseMove = (e: MouseEvent) => {\n setConnectLineTo([e.clientX, e.clientY]);\n };\n const onMouseUp = (e: MouseEvent) => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n setConnectLineState(null);\n const eventTargets = e.composedPath();\n const target = findNode((element) => eventTargets.includes(element));\n if (target && source !== target) {\n onNodesConnect?.({ source, target });\n }\n };\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n return;\n }\n\n // Drag node\n onSwitchActiveTarget?.({ type: \"node\", nodeId: source.id });\n\n let moved = false;\n const onMouseMove = (e: MouseEvent) => {\n // Respect the scale\n const movement: PositionTuple = [\n (e.clientX - from[0]) / scale,\n (e.clientY - from[1]) / scale,\n ];\n if (!moved) {\n moved = movement[0] ** 2 + movement[1] ** 2 >= 9;\n if (moved) {\n setManualLayoutStatus(\"started\");\n }\n }\n if (moved) {\n setNodeMovement({ id: source.id, move: movement });\n }\n };\n const onMouseUp = () => {\n moved = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n setNodeMovement(null);\n setManualLayoutStatus(\"finished\");\n };\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n}\n\nfunction nodeMatched(\n options: NodesFilterOptions,\n source: DiagramNode\n): boolean {\n return options.sourceType\n ? ([] as unknown[]).concat(options.sourceType).includes(source.type)\n : checkIfByTransform(options, { source });\n}\n","import { findIndex, uniqueId } from \"lodash\";\nimport { __secret_internals } from \"@next-core/runtime\";\nimport type {\n DiagramEdge,\n LineConf,\n LineMarker,\n LineMarkerConf,\n LineMarkerType,\n NormalizedLine,\n NormalizedLineMarker,\n} from \"../interfaces\";\nimport { matchEdgeByFilter } from \"./matchEdgeByFilter\";\nimport {\n DEFAULT_LINE_CURVE_TYPE,\n DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\n\nexport function normalizeLinesAndMarkers(\n edges: DiagramEdge[] | undefined,\n lines: LineConf[] | undefined\n) {\n const normalizedLines: NormalizedLine[] = [];\n const normalizedLinesMap = new WeakMap<DiagramEdge, string>();\n const markers: LineMarker[] = [];\n for (const edge of edges ?? []) {\n const { label, ...restLineConf } =\n lines?.find((line) => matchEdgeByFilter(edge, line)) ?? {};\n\n const computedLineConf = __secret_internals.legacyDoTransform(\n { edge },\n restLineConf\n ) as LineConf | undefined;\n if (computedLineConf?.draw === false) {\n continue;\n }\n const id = uniqueId(\"line-\");\n const line: NormalizedLine[\"line\"] = {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n curveType:\n computedLineConf?.type === \"polyline\"\n ? \"curveLinear\"\n : DEFAULT_LINE_CURVE_TYPE,\n interactStrokeWidth: DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n type: \"auto\",\n ...computedLineConf,\n label,\n $id: id,\n };\n normalizedLinesMap.set(edge, id);\n\n const normalizedMarkers: NormalizedLineMarker[] = [];\n\n const lineMarkers: LineMarkerConf[] =\n line.markers ?? (line.arrow ? [{ placement: \"end\", type: \"arrow\" }] : []);\n for (const marker of lineMarkers) {\n const { placement: _placement, type: _type } = marker;\n const placement = _placement ?? \"end\";\n\n let type: LineMarkerType;\n let offsetUnit: number;\n\n switch (_type) {\n case \"0..1\":\n case \"0..N\":\n offsetUnit = 21;\n type = _type;\n break;\n default:\n offsetUnit = 1;\n type = \"arrow\";\n }\n const offset = offsetUnit * line.strokeWidth;\n\n const index = addMarker({ type, strokeColor: line.strokeColor }, markers);\n normalizedMarkers.push({\n index,\n placement,\n type,\n variant: \"default\",\n offset,\n });\n\n const activeStrokeColor =\n line.overrides?.active?.strokeColor ?? line.strokeColor;\n const activeMarkerIndex = addMarker(\n { type, strokeColor: activeStrokeColor },\n markers\n );\n normalizedMarkers.push({\n index: activeMarkerIndex,\n placement,\n type,\n variant: \"active\",\n offset,\n });\n const activeRelatedStrokeColor =\n line.overrides?.activeRelated?.strokeColor ?? line.strokeColor;\n const activeRelatedMarkerIndex = addMarker(\n { type, strokeColor: activeRelatedStrokeColor },\n markers\n );\n normalizedMarkers.push({\n index: activeRelatedMarkerIndex,\n placement,\n type,\n variant: \"active-related\",\n offset,\n });\n }\n\n normalizedLines.push({\n line,\n markers: normalizedMarkers,\n edge,\n });\n }\n return {\n normalizedLines,\n normalizedLinesMap,\n markers,\n };\n}\n\nfunction addMarker(marker: LineMarker, markers: LineMarker[]): number {\n let markerIndex = findIndex(markers, marker);\n if (markerIndex === -1) {\n markerIndex = markers.push(marker) - 1;\n }\n return markerIndex;\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport type { DiagramEdge, LineConf } from \"../interfaces\";\n\nexport function matchEdgeByFilter(\n edge: DiagramEdge,\n filter: LineConf\n): boolean {\n if (!filter) {\n return false;\n }\n if (filter.edgeType) {\n return ([] as string[]).concat(filter.edgeType).includes(edge.type!);\n }\n return checkIfByTransform(filter, { edge });\n}\n","import type {\n ActiveTarget,\n ActiveTargetOfEdge,\n ActiveTargetOfNode,\n} from \"../interfaces\";\n\nexport function sameTarget(\n a: ActiveTarget | null | undefined,\n b: ActiveTarget | null | undefined\n): boolean {\n return a\n ? !!b &&\n a.type === b.type &&\n (a.type === \"node\"\n ? a.nodeId === (b as ActiveTargetOfNode).nodeId\n : a.edge.source === (b as ActiveTargetOfEdge).edge.source &&\n a.edge.target === (b as ActiveTargetOfEdge).edge.target)\n : !b;\n}\n","import type { RenderedNode, TransformLiteral } from \"../interfaces\";\n\nexport interface TransformToCenterOptions {\n canvasWidth: number;\n canvasHeight: number;\n scaleRange?: [min: number, max: number];\n}\n\nexport function transformToCenter(\n renderedNodes: RenderedNode[],\n { canvasWidth, canvasHeight, scaleRange }: TransformToCenterOptions\n): TransformLiteral {\n let left = Infinity;\n let top = Infinity;\n let right = -Infinity;\n let bottom = -Infinity;\n for (const node of renderedNodes) {\n const hw = node.width / 2;\n const hh = node.height / 2;\n const l = node.x - hw;\n const r = node.x + hw;\n const t = node.y - hh;\n const b = node.y + hh;\n if (l < left) {\n left = l;\n }\n if (r > right) {\n right = r;\n }\n if (t < top) {\n top = t;\n }\n if (b > bottom) {\n bottom = b;\n }\n }\n\n const width = right - left;\n const height = bottom - top;\n\n const scale =\n scaleRange && (width > canvasWidth || height > canvasHeight)\n ? Math.max(\n Math.min(canvasWidth / width, canvasHeight / height, scaleRange[1]),\n scaleRange[0]\n )\n : 1;\n\n const x = (canvasWidth - width * scale) / 2 - left * scale;\n const y = (canvasHeight - height * scale) / 2 - top * scale;\n\n return { x, y, k: scale };\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.line-labels{opacity:0}.ready{opacity:1}.diagram.ready.pannable{cursor:-webkit-grab;cursor:grab}.diagram.pannable.grabbing{cursor:-webkit-grabbing;cursor:grabbing}.nodes,\n.lines{transform-origin:0 0}.node,\n.line-label{position:absolute;visibility:hidden}.line-label{transform:translate(-50%,-50%);white-space:pre-line;width:-webkit-max-content;width:-moz-max-content;width:max-content;text-align:center;line-height:1}.lines{pointer-events:none}.line.interactable{pointer-events:auto;cursor:default}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}.line:not(.active) .active-bg{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["ConnectLineComponent","_ref","connectLineState","connectLineTo","markerPrefix","React","width","height","className","classNames","connecting","from","MarkerComponent","type","id","concat","strokeColor","options","d","join","fill","stroke","strokeWidth","markerEnd","arrow","undefined","LineComponent","_line$overrides","_line$overrides2","markerStart","line","edge","markers","linePaths","lineMaskRects","maskPrefix","activeLineMarkerPrefix","active","activeRelated","onLineClick","onLineDoubleClick","mask","has","$id","interactStrokeWidth","_objectSpread","overrides","expectVariant","marker","variant","placement","index","interactable","onClick","onDoubleClick","e","preventDefault","stopPropagation","style","cursor","ref","element","set","LineLabelComponentGroup","labels","onRendered","rendered","setRendered","useState","renderedIds","setRenderedIds","refRepository","useMemo","Map","handleRenderer","useCallback","previous","includes","handleUnmount","indexOf","slice","delete","useEffect","some","label","map","_ref2","text","key","LineLabelComponent","onUnmount","LineTextComponent","_ref3","refCallback","content","_ref4","useBrick","checkIfByTransform","memoizedData","setTimeout","parentElement","ignoredCallback","ReactUseBrick","data","LineMaskComponent","lineId","rects","renderedLineLabels","lineText","find","item","rect","padding","lineRect","bgRect","left","top","x","y","NodeComponentGroup","nodes","nodeBricks","node","NodeComponent","_findNodeBrick","nodeType","findNodeBrick","DEFAULT_LINE_STROKE_COLOR","DEFAULT_LINE_STROKE_WIDTH","DEFAULT_LINE_CURVE_TYPE","DEFAULT_LINE_INTERACT_STROKE_WIDTH","DEFAULT_SCALE_RANGE_MIN","DEFAULT_SCALE_RANGE_MAX","adjustNodesSize","nodesRefRepository","nodePaddings","_element$offsetWidth","_element$offsetHeight","get","Math","max","offsetWidth","offsetHeight","adjustNodesPosition","_nodesRefRepository$g","nodeContainer","visibility","getRenderedEdges","edges","_edges$map","normalizedLinesMap","lineLabelsRefRepository","labelSize","getDummyNodes","count","Array","v","i","dummy","source","target","getDummyEdges","useRenderedDiagram","layout","originalLayout","manualLayoutStatus","userViewReady","userViewNodesMap","nodeMovement","nodesRenderId","lineLabelsRenderId","layoutOptions","graph","setGraph","renderedDiagram","setRenderedDiagram","previousGraph","dagreLayoutOptions","_nodePadding$rankdir$","nodePadding","rankdir","ranksep","edgesep","nodesep","pick","dagreGraphOptions","_objectWithoutProperties","_excluded","extractPartialRectTuple","dagre","Graph","setDefaultEdgeLabel","previousNode","getNode","setNode","setEdge","applyLayout","renderedNodes","push","console","error","length","renderedEdges","_edge$labelSize","labelpos","getDagreGraph","forceLayoutOptions","dummyNodesOnEdges","collide","dummyRadius","radiusDiff","strength","iterations","renderedNode","userViewNode","fx","fy","forceNodes","forceLinks","linkSimulation","forceLink","distance","l","simulation","forceSimulation","force","forceX","forceY","forceManyBody","forceCollide","radius","sqrt","stop","tick","ceil","log","alphaMin","alphaDecay","manuallyTickToTheEnd","getForceGraph","movedNode","x0","y0","_movedNode$x","_movedNode$y","move","getManualGraph","USER_VIEW_MODEL_ID","useUserView","query","setUserViewReady","userViewIdRef","useRef","setUserViewNodesMap","queue","createAsyncQueue","working","waitingTasks","_queue","_asyncToGenerator","task","nextTask","shift","_x","apply","arguments","_getUserView","namespace","list","InstanceApi_postSearchV3","fields","$eq","page","page_size","_userView$nodes","userView","current","instanceId","handleHttpError","getUserView","saveUserView","userViewData","InstanceApi_updateInstanceV2","interceptorParams","ignoreLoadingBar","InstanceApi_createInstance","adjustLineLabels","position","angle","size","_size","tempDirection","floor","PI","direction","tangent","tan","offsetAngle","offsetSin","sin","offsetCos","cos","transform","getLineMaskRects","offsetLeft","offsetTop","getRenderedLineLabels","renderedLines","flatMap","path","getAttribute","getBBox","pathLength","getTotalLength","_item$placement","point","getPointAtLength","min","curveLine","points","curveType","startOffset","endOffset","isArray","curveFactory","curveLinear","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveNatural","curveBasis","startOffsets","getOffsets","endOffsets","curve","lineFunction","start","end","offset","x1","y1","ratio","pow","getCoordinates","getRenderedLines","normalizedLines","renderedEdgeMap","WeakMap","renderedNodeMap","relatedNodes","renderedEdge","prepared","_markers$find$offset","_markers$find","_markers$find$offset2","_markers$find2","rest","startMarkerOffset","endMarkerOffset","doTwoNodesOverlap","_relatedNodes$get","_relatedNodes$get2","prepareRelatedNodes","addRelatedNodes","to","relates","Set","toNode","add","sourceDirection","getDirection","targetDirection","sourceRelates","getOrderedRelates","targetRelates","sourcePosition","targetPosition","c1","c2","p0","p1","getPolyLinePoints","getDirectLinePoints","atan2","filter","Boolean","sourceAngle","sx","sy","tx","ty","fixedAngle","sort","a","b","ax","ay","bx","by","handleKeyboard","event","activeTarget","activeNode","nodeId","activeEdge","action","_node","keyCode","which","moveOnAxis","axis","diff","oppositeAxis","candidates","abs","minBy","handleNodesMouseDown","connectNodes","dragNodes","scale","setConnectLineState","setConnectLineTo","setManualLayoutStatus","setNodeMovement","onSwitchActiveTarget","onNodesConnect","findNode","match","_ret","_loop","contains","sourceType","nodeMatched","clientX","clientY","__secret_internals","legacyDoTransform","onMouseMove","onMouseUp","document","removeEventListener","eventTargets","composedPath","addEventListener","moved","movement","normalizeLinesAndMarkers","lines","_lines$find","_line$markers","edgeType","matchEdgeByFilter","restLineConf","computedLineConf","draw","uniqueId","normalizedMarkers","lineMarkers","_line$overrides$activ","_line$overrides$activ2","_placement","_type","offsetUnit","addMarker","activeMarkerIndex","activeRelatedMarkerIndex","markerIndex","findIndex","sameTarget","transformToCenter","canvasWidth","canvasHeight","scaleRange","Infinity","right","bottom","hw","hh","r","t","k","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[3171,5552],{5552:(e,n,r)=>{r.r(n),r.d(n,{i18n:()=>l,i18nText:()=>f,initializeI18n:()=>o});var i=r(2350),a=r(5386),t=r(6837),s=!1,u=new Set;function o(e,n){if(s||(s=!0,a.i18n.use(t.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),e&&n&&!u.has(e))for(var[r,i]of(u.add(e),Object.entries(n)))a.i18n.addResourceBundle(r,e,i)}var c=r(9523);function f(e){var n;if(e){var r=null!==(n=a.i18n.language)&&void 0!==n?n:"zh-CN";if((0,c.hasOwnProperty)(e,r))return e[r];var i=r.split("-")[0];if(i!==r)return(0,c.hasOwnProperty)(e,i)?e[i]:void 0;var t="".concat(i,"-");for(var s of Object.keys(e))if(s.startsWith(t))return e[s]}}var l=i.default}}]);
2
- //# sourceMappingURL=3171.1cc1ab1d.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[3171,5552],{5552:(e,n,r)=>{r.r(n),r.d(n,{i18n:()=>l,i18nText:()=>f,initializeI18n:()=>o});var i=r(2350),a=r(2659),t=r(7072),s=!1,u=new Set;function o(e,n){if(s||(s=!0,a.i18n.use(t.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),e&&n&&!u.has(e))for(var[r,i]of(u.add(e),Object.entries(n)))a.i18n.addResourceBundle(r,e,i)}var c=r(4376);function f(e){var n;if(e){var r=null!==(n=a.i18n.language)&&void 0!==n?n:"zh-CN";if((0,c.hasOwnProperty)(e,r))return e[r];var i=r.split("-")[0];if(i!==r)return(0,c.hasOwnProperty)(e,i)?e[i]:void 0;var t="".concat(i,"-");for(var s of Object.keys(e))if(s.startsWith(t))return e[s]}}var l=i.default}}]);
2
+ //# sourceMappingURL=3171.e9678516.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/3171.1cc1ab1d.js","mappings":"kOAEIA,GAAc,EACdC,EAAwB,IAAIC,IACzB,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAIjD,IAAK,IAAKgB,EAAMF,KADhBjB,EAAsBoB,IAAIjB,GACIkB,OAAOC,QAAQlB,IAC3C,EAAAC,KAAKkB,kBAAkBJ,EAAMhB,EAAIc,EAErC,C,cCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,GAAKD,EAAL,CAGA,IAAIE,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAEzG,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,IAAIE,EAAkBF,EAASG,MAAM,KAAK,GAC1C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,IAAIC,EAAS,GAAGC,OAAOJ,EAAiB,KACxC,IAAK,IAAIK,KAAOb,OAAOc,KAAKV,GAC1B,GAAIS,EAAIE,WAAWJ,GACjB,OAAOP,EAAKS,EAnBhB,CAsBF,CC3BO,IAAI7B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nvar initialized = false;\nvar initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (var [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n var language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n var primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n var prefix = \"\".concat(primaryLanguage, \"-\");\n for (var key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport var i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","lang","add","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","concat","key","keys","startsWith"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/3171.e9678516.js","mappings":"kOAEIA,GAAc,EACdC,EAAwB,IAAIC,IACzB,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAIjD,IAAK,IAAKgB,EAAMF,KADhBjB,EAAsBoB,IAAIjB,GACIkB,OAAOC,QAAQlB,IAC3C,EAAAC,KAAKkB,kBAAkBJ,EAAMhB,EAAIc,EAErC,C,cCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,GAAKD,EAAL,CAGA,IAAIE,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAEzG,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,IAAIE,EAAkBF,EAASG,MAAM,KAAK,GAC1C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,IAAIC,EAAS,GAAGC,OAAOJ,EAAiB,KACxC,IAAK,IAAIK,KAAOb,OAAOc,KAAKV,GAC1B,GAAIS,EAAIE,WAAWJ,GACjB,OAAOP,EAAKS,EAnBhB,CAsBF,CC3BO,IAAI7B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nvar initialized = false;\nvar initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (var [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n var language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n var primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n var prefix = \"\".concat(primaryLanguage, \"-\");\n for (var key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport var i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","lang","add","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","concat","key","keys","startsWith"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[3426,7920],{4586:(t,e,r)=>{r.d(e,{A:()=>i});var n=r(1369);function i(t,e,r){return(e=(0,n.A)(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}},9740:(t,e,r)=>{r.d(e,{A:()=>o});var n=r(4586);function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function o(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?i(Object(r),!0).forEach((function(e){(0,n.A)(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}},4223:(t,e,r)=>{function n(t,e){if(null==t)return{};var r,n,i=function(t,e){if(null==t)return{};var r,n,i={},o=Object.keys(t);for(n=0;n<o.length;n++)r=o[n],e.indexOf(r)>=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n<o.length;n++)r=o[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}r.d(e,{A:()=>n})},1369:(t,e,r)=>{r.d(e,{A:()=>i});var n=r(7545);function i(t){var e=function(t,e){if("object"!=(0,n.A)(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,"string");if("object"!=(0,n.A)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,n.A)(e)?e:e+""}},7545:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}r.d(e,{A:()=>n})},1045:(t,e,r)=>{r.r(e),r.d(e,{NextElement:()=>w,createDecorators:()=>c,supportsAdoptingStyleSheets:()=>O});var n=r(4223),i=r(9740),o=Symbol("attributeHasBeenSet"),s=Symbol("markAttributeHasBeenSet"),a=Symbol("stopAttributeChangedCallback"),u=["type"],l={attribute:!0,type:String,converter:{toAttribute:(t,e)=>e===Boolean?t?"":null:t,fromAttribute(t,e){switch(e){case Boolean:return null!==t&&"false"!==t;case Number:return null===t?null:Number(t)}return t}},render:!0,hasChanged:(t,e)=>e!==t&&(e==e||t==t)};function c(){var t=new Map,e=new Set,r=new Set,c=new Set;return{defineElement:function(n){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(s,a)=>{var{kind:u,name:l,addInitializer:h}=a;h((function(){var a,u,l,h,b,p=Object.getPrototypeOf(this);if(d(this,"observedAttributes",f(null!==(a=p.observedAttributes)&&void 0!==a?a:[],t.keys())),d(this,"__attributeReflections",new Map([...null!==(u=p.__attributeReflections)&&void 0!==u?u:[],...t])),d(this,"styleTexts",o.styleTexts),d(this,"shadowOptions",!1!==o.shadowOptions?(0,i.A)({mode:"open"},o.shadowOptions):null),d(this,"__tagName",n),d(this,"_dev_only_definedProperties",f(null!==(l=p._dev_only_definedProperties)&&void 0!==l?l:[],e)),d(this,"_dev_only_definedMethods",f(null!==(h=p._dev_only_definedMethods)&&void 0!==h?h:[],r)),d(this,"_dev_only_definedEvents",f(null!==(b=p._dev_only_definedEvents)&&void 0!==b?b:[],c)),customElements.define(n,this),Array.isArray(o.alias))for(var v of o.alias){var y=class extends s{};d(y,"__tagName",v),customElements.define(v,y)}}))}},property:function(r){return function(n,u){var{get:c,set:d}=n,{kind:f,name:h,static:b,private:p}=u;e.add(h);var v=Object.assign({},l,r),y=function(t,e){var r=e.attribute;return!1===r?void 0:"string"==typeof r?r:t.replace(/[A-Z]/g,(t=>"-".concat(t.toLowerCase())))}(h,v);return void 0!==y&&t.set(y,(0,i.A)((0,i.A)({},v),{},{property:h})),{get(){return void 0!==y&&this[o](y)?v.converter.fromAttribute(this.getAttribute(y),v.type):c.call(this)},set(t){var e=c.call(this);if(d.call(this,t),v.hasChanged(t,e)){if(void 0!==y){var r=v.converter.toAttribute(t,v.type);this[a](!0),null==r?this.removeAttribute(y):this.setAttribute(y,r),this[s](y),this[a](!1)}v.render&&this._requestRender()}},init(t){if(void 0!==y&&v.hasChanged(t,void 0)){var e=v.converter.toAttribute(t,v.type);null!=e&&requestAnimationFrame((()=>{this[o](y)||(this[a](!0),this.setAttribute(y,e),this[a](!1))}))}return t}}}},method:function(t){return function(e,n){var{kind:i,name:o,static:s,private:a,addInitializer:u}=n;null!=t&&t.bound&&u((function(){this[o]=this[o].bind(this)})),r.add(o)}},event:function(t){return function(e,r){var{get:o}=e,{kind:s,name:a,static:l,private:d}=r,{type:f}=t,h=(0,n.A)(t,u);return c.add(f),{get(){return o.call(this)},set(){throw new Error("Decorated events are readonly")},init(t){return Object.freeze({emit:t=>this.dispatchEvent(new CustomEvent(f,(0,i.A)((0,i.A)({},h),{},{detail:t})))})}}}}}}function d(t,e,r){Object.defineProperty(t,e,{get:()=>r,configurable:!0})}function f(t,e){var r=new Set(t);for(var n of e)r.add(n);return[...r]}new Set(["prefix"]);var h,b=r(918),p=r(4586),v=r(829),y=r(6121),m=new WeakMap,A=new WeakMap,_=new WeakMap,g=new WeakMap;class w extends HTMLElement{constructor(){super(...arguments),(0,b.A)(this,m,!1),(0,b.A)(this,A,!1),(0,b.A)(this,_,!1),(0,b.A)(this,g,new Set)}_markConnectedCallbackCalled(){(0,y.A)(A,this,!0)}connectedCallback(){this._markConnectedCallbackCalled(),this._render()}[o](t){return(0,v.A)(g,this).has(t)}[s](t){(0,v.A)(g,this).add(t)}[a](t){(0,y.A)(_,this,t)}attributeChangedCallback(t,e,r){if((0,v.A)(g,this).add(t),!(0,v.A)(_,this)&&e!==r){var n=this.constructor.__attributeReflections.get(t),i=n.converter.fromAttribute(r,n.type);this[n.property]=i}}_requestRender(){this.isConnected&&(0,v.A)(A,this)&&!(0,v.A)(m,this)&&((0,y.A)(m,this,!0),Promise.resolve().then((()=>{(0,y.A)(m,this,!1),this._render()})))}}function O(){return void 0===h&&(h=!!(window.ShadowRoot&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype)),h}(0,p.A)(w,"styleTexts",void 0),(0,p.A)(w,"shadowOptions",void 0),(0,p.A)(w,"__attributeReflections",void 0),(0,p.A)(w,"__tagName",void 0)}}]);
2
+ //# sourceMappingURL=3426.b0774b0a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/3426.b0774b0a.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../node_modules/@next-core/element/dist/esm/internal/symbols.js","webpack:///../../node_modules/@next-core/element/dist/esm/createDecorators.js","webpack:///../../node_modules/@next-core/element/dist/esm/supportsAdoptingStyleSheets.js","webpack:///../../node_modules/@next-core/element/dist/esm/NextElement.js"],"sourcesContent":["import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export var symbolOfAttributeHasBeenSet = Symbol(\"attributeHasBeenSet\");\nexport var symbolOfMarkAttributeHasBeenSet = Symbol(\"markAttributeHasBeenSet\");\nexport var symbolOfStopAttributeChangedCallback = Symbol(\"stopAttributeChangedCallback\");\n//# sourceMappingURL=symbols.js.map","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nvar _excluded = [\"type\"];\nimport { symbolOfAttributeHasBeenSet, symbolOfMarkAttributeHasBeenSet, symbolOfStopAttributeChangedCallback } from \"./internal/symbols.js\";\nvar defaultConverter = {\n toAttribute(value, type) {\n switch (type) {\n case Boolean:\n return value ? \"\" : null;\n }\n return value;\n },\n fromAttribute(value, type) {\n switch (type) {\n case Boolean:\n return value !== null && value !== \"false\";\n case Number:\n return value === null ? null : Number(value);\n }\n return value;\n }\n};\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nvar notEqual = (value, old) => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\nvar defaultPropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n // reflect: true,\n render: true,\n hasChanged: notEqual\n};\n\n// Note: `prefix` is a native prop on Element, but it's only used in XML documents.\nvar allowedNativeProps = new Set([\"prefix\"]);\nexport function createDecorators() {\n var attributeReflections = new Map();\n var definedProperties = new Set();\n var definedMethods = new Set();\n var definedEvents = new Set();\n function defineElement(name) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return (value, _ref) => {\n var {\n kind,\n name: className,\n addInitializer\n } = _ref;\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && kind !== \"class\") {\n throw new Error(\"Invalid usage of `@defineElement()` on a \".concat(kind, \": \\\"\").concat(className, \"\\\"\"));\n }\n addInitializer(function () {\n var _superClass$observedA, _superClass$__attribu, _superClass$_dev_only, _superClass$_dev_only2, _superClass$_dev_only3;\n var superClass = Object.getPrototypeOf(this);\n var mergedAttributes = mergeIterables((_superClass$observedA = superClass.observedAttributes) !== null && _superClass$observedA !== void 0 ? _superClass$observedA : [], attributeReflections.keys());\n defineReadonlyProperty(this, \"observedAttributes\", mergedAttributes);\n var mergedAttributeReflections = new Map([...((_superClass$__attribu = superClass.__attributeReflections) !== null && _superClass$__attribu !== void 0 ? _superClass$__attribu : []), ...attributeReflections]);\n defineReadonlyProperty(this, \"__attributeReflections\", mergedAttributeReflections);\n defineReadonlyProperty(this, \"styleTexts\", options.styleTexts);\n defineReadonlyProperty(this, \"shadowOptions\", options.shadowOptions !== false ? _objectSpread({\n mode: \"open\"\n }, options.shadowOptions) : null);\n defineReadonlyProperty(this, \"__tagName\", name);\n var mergedProperties = mergeIterables((_superClass$_dev_only = superClass._dev_only_definedProperties) !== null && _superClass$_dev_only !== void 0 ? _superClass$_dev_only : [], definedProperties);\n defineReadonlyProperty(this, \"_dev_only_definedProperties\", mergedProperties);\n var mergedMethods = mergeIterables((_superClass$_dev_only2 = superClass._dev_only_definedMethods) !== null && _superClass$_dev_only2 !== void 0 ? _superClass$_dev_only2 : [], definedMethods);\n defineReadonlyProperty(this, \"_dev_only_definedMethods\", mergedMethods);\n var mergedEvents = mergeIterables((_superClass$_dev_only3 = superClass._dev_only_definedEvents) !== null && _superClass$_dev_only3 !== void 0 ? _superClass$_dev_only3 : [], definedEvents);\n defineReadonlyProperty(this, \"_dev_only_definedEvents\", mergedEvents);\n customElements.define(name, this);\n if (Array.isArray(options.alias)) {\n for (var alias of options.alias) {\n // Use a parenthesized expression to make the class has no name.\n var Alias = (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n 0, class extends value {});\n defineReadonlyProperty(Alias, \"__tagName\", alias);\n customElements.define(alias, Alias);\n }\n }\n });\n };\n }\n function property(options) {\n return function (_ref2, _ref3) {\n var {\n get,\n set\n } = _ref2;\n var {\n kind,\n name,\n static: isStatic,\n private: isPrivate\n } = _ref3;\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\") {\n if (kind !== \"accessor\") {\n throw new Error(\"Invalid usage of `@property()` on a \".concat(kind, \": \\\"\").concat(String(name), \"\\\"\"));\n }\n if (typeof name !== \"string\") {\n throw new Error(\"Invalid usage of `@property()` on a \".concat(kind, \" of \").concat(typeof name));\n }\n if (isStatic) {\n throw new Error(\"Invalid usage of `@property()` on a static \".concat(kind, \": \\\"\").concat(name, \"\\\"\"));\n }\n if (isPrivate) {\n throw new Error(\"Invalid usage of `@property()` on a private \".concat(kind, \": \\\"\").concat(name, \"\\\"\"));\n }\n if (name in HTMLElement.prototype && !allowedNativeProps.has(name)) {\n var message = \"\\\"\".concat(name, \"\\\" is a native HTMLElement property, and is deprecated to be used as a brick property.\");\n throw new Error(message);\n }\n }\n definedProperties.add(name);\n var _options = Object.assign({}, defaultPropertyDeclaration, options);\n var attrName = attributeNameForProperty(name, _options);\n if (attrName !== undefined) {\n attributeReflections.set(attrName, _objectSpread(_objectSpread({}, _options), {}, {\n property: name\n }));\n }\n return {\n get() {\n // If the attribute has been set (not by initialization), returns the\n // value converted by the attribute. Otherwise returns the prop value.\n // This works as a type conversion when reading a prop value.\n if (attrName !== undefined && this[symbolOfAttributeHasBeenSet](attrName)) {\n return _options.converter.fromAttribute(this.getAttribute(attrName), _options.type);\n }\n return get.call(this);\n },\n set(value) {\n var oldValue = get.call(this);\n set.call(this, value);\n if (_options.hasChanged(value, oldValue)) {\n if (attrName !== undefined) {\n var attrValue = _options.converter.toAttribute(value, _options.type);\n this[symbolOfStopAttributeChangedCallback](true);\n if (attrValue == null) {\n this.removeAttribute(attrName);\n } else {\n this.setAttribute(attrName, attrValue);\n }\n this[symbolOfMarkAttributeHasBeenSet](attrName);\n this[symbolOfStopAttributeChangedCallback](false);\n }\n if (_options.render) {\n this._requestRender();\n }\n }\n },\n init(initialValue) {\n if (attrName !== undefined && _options.hasChanged(initialValue, undefined)) {\n var attrValue = _options.converter.toAttribute(initialValue, _options.type);\n if (attrValue != null) {\n // No attributes should be created during constructing custom elements.\n // This is true even if the work is done inside a constructor-initiated microtask.\n // https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-conformance\n requestAnimationFrame(() => {\n if (!this[symbolOfAttributeHasBeenSet](attrName)) {\n this[symbolOfStopAttributeChangedCallback](true);\n this.setAttribute(attrName, attrValue);\n this[symbolOfStopAttributeChangedCallback](false);\n }\n });\n }\n }\n return initialValue;\n }\n };\n };\n }\n function method(options) {\n return function (value, _ref4) {\n var {\n kind,\n name,\n static: isStatic,\n private: isPrivate,\n addInitializer\n } = _ref4;\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\") {\n if (kind !== \"method\") {\n throw new Error(\"Invalid usage of `@method()` on a \".concat(kind, \": \\\"\").concat(String(name), \"\\\"\"));\n }\n if (typeof name !== \"string\") {\n throw new Error(\"Invalid usage of `@method()` on a \".concat(kind, \" of \").concat(typeof name));\n }\n if (isStatic) {\n throw new Error(\"Invalid usage of `@method()` on a static \".concat(kind, \": \\\"\").concat(name, \"\\\"\"));\n }\n if (isPrivate) {\n throw new Error(\"Invalid usage of `@method()` on a private \".concat(kind, \": \\\"\").concat(name, \"\\\"\"));\n }\n if (name in HTMLElement.prototype && !allowedNativeProps.has(name)) {\n var message = \"\\\"\".concat(name, \"\\\" is a native HTMLElement property, and is deprecated to be used as a brick method.\");\n throw new Error(message);\n }\n }\n if (options !== null && options !== void 0 && options.bound) {\n addInitializer(function () {\n this[name] = this[name].bind(this);\n });\n }\n definedMethods.add(name);\n };\n }\n function event(options) {\n return function (_ref5, _ref6) {\n var {\n get\n } = _ref5;\n var {\n kind,\n name,\n static: isStatic,\n private: isPrivate\n } = _ref6;\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\") {\n if (kind !== \"accessor\") {\n throw new Error(\"Invalid usage of `@event()` on a \".concat(kind, \": \\\"\").concat(String(name), \"\\\"\"));\n }\n if (!isPrivate) {\n throw new Error(\"Invalid usage of `@event()` on a non-private \".concat(kind, \": \\\"\").concat(String(name), \"\\\"\"));\n }\n if (isStatic) {\n throw new Error(\"Invalid usage of `@event()` on a static \".concat(kind, \": \\\"\").concat(String(name), \"\\\"\"));\n }\n }\n var {\n type\n } = options,\n eventInit = _objectWithoutProperties(options, _excluded);\n definedEvents.add(type);\n return {\n get() {\n return get.call(this);\n },\n set() {\n throw new Error(\"Decorated events are readonly\");\n },\n init(initialValue) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && initialValue !== undefined) {\n throw new Error(\"Do not set an initial value for a decorated event: \\\"\".concat(String(name), \"\\\"\"));\n }\n return Object.freeze({\n emit: detail => this.dispatchEvent(new CustomEvent(type, _objectSpread(_objectSpread({}, eventInit), {}, {\n detail\n })))\n });\n }\n };\n };\n }\n return {\n defineElement,\n property,\n method,\n event\n };\n}\nfunction defineReadonlyProperty(target, propName, propValue) {\n Object.defineProperty(target, propName, {\n get() {\n return propValue;\n },\n configurable: true\n });\n}\nfunction mergeIterables(list1, list2) {\n var newList = new Set(list1);\n for (var item of list2) {\n newList.add(item);\n }\n return [...newList];\n}\nfunction attributeNameForProperty(name, options) {\n var attribute = options.attribute;\n return attribute === false ? undefined : typeof attribute === \"string\" ? attribute : name.replace(/[A-Z]/g, char => \"-\".concat(char.toLowerCase()));\n}\n//# sourceMappingURL=createDecorators.js.map","var supports;\nexport function supportsAdoptingStyleSheets() {\n if (supports === undefined) {\n supports = !!(window.ShadowRoot &&\n // (window.ShadyCSS === undefined || window.ShadyCSS.nativeShadow) &&\n \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype);\n }\n return supports;\n}\n//# sourceMappingURL=supportsAdoptingStyleSheets.js.map","import _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport { symbolOfAttributeHasBeenSet, symbolOfMarkAttributeHasBeenSet, symbolOfStopAttributeChangedCallback } from \"./internal/symbols.js\";\nvar _hasRequestedRender = /*#__PURE__*/new WeakMap();\nvar _connectedCallbackCalled = /*#__PURE__*/new WeakMap();\nvar _attributeChangedCallbackStopped = /*#__PURE__*/new WeakMap();\nvar _attributesBeenSet = /*#__PURE__*/new WeakMap();\nexport class NextElement extends HTMLElement {\n constructor() {\n super(...arguments);\n _classPrivateFieldInitSpec(this, _hasRequestedRender, false);\n _classPrivateFieldInitSpec(this, _connectedCallbackCalled, false);\n _classPrivateFieldInitSpec(this, _attributeChangedCallbackStopped, false);\n _classPrivateFieldInitSpec(this, _attributesBeenSet, new Set());\n }\n /**\n * When render a custom element as parsed DOM, it is already connected in the\n * first place. The attributes are set while isConnected is true, which will\n * trigger a render request, and then before the next micro-task, the\n * `connectedCallback` will be called, which will trigger an immediate render.\n * Thus we would see two calls of render. So we manually set a mark of whether\n * the `connectedCallback` is actually get called, to prevent a trigger of\n * render request during attributes initialization before `connectedCallback`.\n */\n _markConnectedCallbackCalled() {\n _classPrivateFieldSet(_connectedCallbackCalled, this, true);\n }\n connectedCallback() {\n this._markConnectedCallbackCalled();\n this._render();\n }\n [symbolOfAttributeHasBeenSet](name) {\n return _classPrivateFieldGet(_attributesBeenSet, this).has(name);\n }\n [symbolOfMarkAttributeHasBeenSet](name) {\n _classPrivateFieldGet(_attributesBeenSet, this).add(name);\n }\n\n /** Whether to process attributeChangedCallback. */\n [symbolOfStopAttributeChangedCallback](value) {\n _classPrivateFieldSet(_attributeChangedCallbackStopped, this, value);\n }\n\n /** @internal */\n attributeChangedCallback(name, old, value) {\n _classPrivateFieldGet(_attributesBeenSet, this).add(name);\n if (!_classPrivateFieldGet(_attributeChangedCallbackStopped, this) && old !== value) {\n var attrRef = this.constructor.__attributeReflections.get(name);\n assertAttributeIsReflected(attrRef, name);\n var propValue = attrRef.converter.fromAttribute(value, attrRef.type);\n this[attrRef.property] = propValue;\n }\n }\n\n /**\n * Request a render in the next micro-task. This ensures multiple properties\n * or attributes will trigger a render once in a batch.\n */\n _requestRender() {\n // If the element is not connected,\n // let `connectedCallback()` do the job of calling _render.\n if (this.isConnected && _classPrivateFieldGet(_connectedCallbackCalled, this) && !_classPrivateFieldGet(_hasRequestedRender, this)) {\n _classPrivateFieldSet(_hasRequestedRender, this, true);\n Promise.resolve().then(() => {\n _classPrivateFieldSet(_hasRequestedRender, this, false);\n this._render();\n });\n }\n }\n}\n_defineProperty(NextElement, \"styleTexts\", void 0);\n_defineProperty(NextElement, \"shadowOptions\", void 0);\n_defineProperty(NextElement, \"__attributeReflections\", void 0);\n_defineProperty(NextElement, \"__tagName\", void 0);\nfunction assertAttributeIsReflected(attrRef, name) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && !attrRef) {\n throw new Error(\"Attribute [\".concat(name, \"] is not reflected\"));\n }\n}\n//# sourceMappingURL=NextElement.js.map"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","length","forEach","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","source","excluded","i","target","sourceKeys","indexOf","sourceSymbolKeys","prototype","propertyIsEnumerable","call","toPropertyKey","Symbol","toPrimitive","TypeError","String","_typeof","iterator","constructor","symbolOfAttributeHasBeenSet","symbolOfMarkAttributeHasBeenSet","symbolOfStopAttributeChangedCallback","_excluded","defaultPropertyDeclaration","attribute","type","converter","toAttribute","Boolean","fromAttribute","Number","render","hasChanged","old","createDecorators","attributeReflections","Map","definedProperties","Set","definedMethods","definedEvents","defineElement","name","options","undefined","_ref","kind","className","addInitializer","_superClass$observedA","_superClass$__attribu","_superClass$_dev_only","_superClass$_dev_only2","_superClass$_dev_only3","superClass","getPrototypeOf","this","defineReadonlyProperty","mergeIterables","observedAttributes","__attributeReflections","styleTexts","shadowOptions","mode","_dev_only_definedProperties","_dev_only_definedMethods","_dev_only_definedEvents","customElements","define","Array","isArray","alias","Alias","property","_ref2","_ref3","get","set","static","isStatic","private","isPrivate","add","_options","assign","attrName","replace","char","concat","toLowerCase","attributeNameForProperty","getAttribute","oldValue","attrValue","removeAttribute","setAttribute","_requestRender","init","initialValue","requestAnimationFrame","method","_ref4","bound","bind","event","_ref5","_ref6","eventInit","Error","freeze","emit","detail","dispatchEvent","CustomEvent","propName","propValue","list1","list2","newList","item","supports","_hasRequestedRender","WeakMap","_connectedCallbackCalled","_attributeChangedCallbackStopped","_attributesBeenSet","NextElement","HTMLElement","super","_markConnectedCallbackCalled","connectedCallback","_render","has","attributeChangedCallback","attrRef","isConnected","Promise","resolve","then","supportsAdoptingStyleSheets","window","ShadowRoot","Document","CSSStyleSheet"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[3933,6314],{3933:(e,t,r)=>{function o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(n,a){if("string"==typeof t?n.name===t:t.includes(n.name)){for(var i=[],s=1;s<=r;s++){var c=a[a.length-s];if("MemberExpression"===(null==c?void 0:c.node.type)&&"object"===c.key){var u=c.node;u.computed||"Identifier"!==u.property.type?u.computed&&"Literal"===u.property.type&&"string"==typeof u.property.value?i.push(o?"".concat(n.name,".").concat(u.property.value):u.property.value):e.hasNonStaticUsage=!0:i.push(o?"".concat(n.name,".").concat(u.property.name):u.property.name)}else e.hasNonStaticUsage=!0}i.length===r&&e.usedProperties.add(i.join("."))}}}function n(e,t){return function(r,o,n){if(o.name===e){var a=n[n.length-1],i=n[n.length-2];if("CallExpression"===(null==i?void 0:i.node.type)&&"callee"===(null==i?void 0:i.key)&&"MemberExpression"===(null==a?void 0:a.node.type)&&"object"===a.key&&(a.node.computed?"Literal"===a.node.property.type&&a.node.property.value===t:"Identifier"===a.node.property.type&&a.node.property.name===t)){var s=i.node.arguments;if(s.length>0){var c=s[0];"Literal"===c.type&&"string"==typeof c.value?r.usedArgs.add(c.value):r.hasNonStaticUsage=!0}}}}}r.r(t),r.d(t,{beforeVisitGlobalMember:()=>o,collectAppGetMenuUsage:()=>a,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>g,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>b,scanPermissionActionsInStoryboard:()=>m,strictCollectMemberUsage:()=>l,track:()=>d,trackAll:()=>f,traverseStoryboardExpressions:()=>u,traverseStoryboardFunction:()=>v,traverseStoryboardFunctions:()=>y,unwrapProvider:()=>c.unwrapProvider});var a=n("APP","getMenu"),i=n("INSTALLED_APPS","has"),s=r(5481),c=r(9523);function u(e,t,r){var o=new WeakSet,{matchExpressionString:n,visitNotMatchedExpressionString:a,visitNonExpressionString:i,visitObject:u}="string"==typeof r?{matchExpressionString:e=>e.includes(r)}:r;!function e(r){if("string"==typeof r)if((0,s.isEvaluable)(r))if(n(r))try{(0,s.preevaluate)(r,{withParent:!0,hooks:{beforeVisitGlobal(e,o){t(e,o,r)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==a||a(r);else null==i||i(r);else if((0,c.isObject)(r)){if(o.has(r))return;for(var l of(o.add(r),null==u||u(r),Array.isArray(r)?r:Object.values(r)))e(l)}}(e)}function l(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,{hasNonStaticUsage:o,nonStaticUsage:n,usedProperties:a}=p(e,t,r);if(o)throw new Error("Non-static usage of ".concat(t,' is prohibited, check your expression: "').concat(n,'"'));return a}function p(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n={usedProperties:new Set,hasNonStaticUsage:!1},a=o(n,t,r);return u(e,((e,t,r)=>{a(e,t),n.hasNonStaticUsage&&(n.nonStaticUsage=r)}),t),n}function d(e,t,r){if(e.includes(t)){var n,a={usedProperties:new Set,hasNonStaticUsage:!1},{expression:i}=(0,s.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal:o(a,r)}});if("SequenceExpression"===i.type&&(n=i.expressions[0])&&"Literal"===n.type&&n.value===t){if(a.usedProperties.size>0)return a.usedProperties;console.warn('You are using "'.concat(t,'" but no `').concat(r,"` usage found in your expression: ").concat(JSON.stringify(e)))}}return!1}function f(e){if(e){var t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,s.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal:o(t,["CTX","STATE","FORM_STATE"],1,!0)}}),t.usedProperties.size>0){var r=[...t.usedProperties],n={context:!1,state:!1,formState:!1},a={CTX:"context",STATE:"state",FORM_STATE:"formState"};return r.forEach((e=>{var[t,r]=e.split(".");n[a[t]]||(n[a[t]]=[]),n[a[t]].push(r)})),n}console.warn('You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: '.concat(JSON.stringify(e)))}return!1}function y(e,t){if(Array.isArray(e))for(var r of e)v(r,t)}function v(e,t,r){try{(0,s.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t}})}catch(t){r||console.error('Parse storyboard function "'.concat(e.name,'" failed:'),t)}}function g(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a={usedProperties:new Set,hasNonStaticUsage:!1};if(v(e,o(a,t,n),r),a.hasNonStaticUsage&&!r)throw new Error("Non-static usage of ".concat(t,' is prohibited, check your function: "').concat(e.name,'"'));return a.usedProperties.delete(e.name),a.usedProperties}var h="PERMISSIONS",S="check";function m(e){var t,r=new Set,o=P(r),{customTemplates:n,functions:a}=null!==(t=e.meta)&&void 0!==t?t:{};return u([e.routes,n],o,h),y(a,o),Array.from(r)}function b(e){var t=new Set;return u(e,P(t),h),Array.from(t)}function P(e){return function(t,r){if(t.name===h){var o=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key&&(o.node.computed?"Literal"===o.node.property.type&&o.node.property.value===S:"Identifier"===o.node.property.type&&o.node.property.name===S))for(var a of n.node.arguments)"Literal"===a.type&&"string"==typeof a.value&&e.add(a.value)}}}}}]);
2
- //# sourceMappingURL=3933.834a1e86.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[3933,6314],{3933:(e,t,r)=>{function o(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(n,a){if("string"==typeof t?n.name===t:t.includes(n.name)){for(var i=[],s=1;s<=r;s++){var c=a[a.length-s];if("MemberExpression"===(null==c?void 0:c.node.type)&&"object"===c.key){var u=c.node;u.computed||"Identifier"!==u.property.type?u.computed&&"Literal"===u.property.type&&"string"==typeof u.property.value?i.push(o?"".concat(n.name,".").concat(u.property.value):u.property.value):e.hasNonStaticUsage=!0:i.push(o?"".concat(n.name,".").concat(u.property.name):u.property.name)}else e.hasNonStaticUsage=!0}i.length===r&&e.usedProperties.add(i.join("."))}}}function n(e,t){return function(r,o,n){if(o.name===e){var a=n[n.length-1],i=n[n.length-2];if("CallExpression"===(null==i?void 0:i.node.type)&&"callee"===(null==i?void 0:i.key)&&"MemberExpression"===(null==a?void 0:a.node.type)&&"object"===a.key&&(a.node.computed?"Literal"===a.node.property.type&&a.node.property.value===t:"Identifier"===a.node.property.type&&a.node.property.name===t)){var s=i.node.arguments;if(s.length>0){var c=s[0];"Literal"===c.type&&"string"==typeof c.value?r.usedArgs.add(c.value):r.hasNonStaticUsage=!0}}}}}r.r(t),r.d(t,{beforeVisitGlobalMember:()=>o,collectAppGetMenuUsage:()=>a,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>g,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>b,scanPermissionActionsInStoryboard:()=>m,strictCollectMemberUsage:()=>l,track:()=>d,trackAll:()=>f,traverseStoryboardExpressions:()=>u,traverseStoryboardFunction:()=>v,traverseStoryboardFunctions:()=>y,unwrapProvider:()=>c.unwrapProvider});var a=n("APP","getMenu"),i=n("INSTALLED_APPS","has"),s=r(5058),c=r(4376);function u(e,t,r){var o=new WeakSet,{matchExpressionString:n,visitNotMatchedExpressionString:a,visitNonExpressionString:i,visitObject:u}="string"==typeof r?{matchExpressionString:e=>e.includes(r)}:r;!function e(r){if("string"==typeof r)if((0,s.isEvaluable)(r))if(n(r))try{(0,s.preevaluate)(r,{withParent:!0,hooks:{beforeVisitGlobal(e,o){t(e,o,r)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==a||a(r);else null==i||i(r);else if((0,c.isObject)(r)){if(o.has(r))return;for(var l of(o.add(r),null==u||u(r),Array.isArray(r)?r:Object.values(r)))e(l)}}(e)}function l(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,{hasNonStaticUsage:o,nonStaticUsage:n,usedProperties:a}=p(e,t,r);if(o)throw new Error("Non-static usage of ".concat(t,' is prohibited, check your expression: "').concat(n,'"'));return a}function p(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n={usedProperties:new Set,hasNonStaticUsage:!1},a=o(n,t,r);return u(e,((e,t,r)=>{a(e,t),n.hasNonStaticUsage&&(n.nonStaticUsage=r)}),t),n}function d(e,t,r){if(e.includes(t)){var n,a={usedProperties:new Set,hasNonStaticUsage:!1},{expression:i}=(0,s.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal:o(a,r)}});if("SequenceExpression"===i.type&&(n=i.expressions[0])&&"Literal"===n.type&&n.value===t){if(a.usedProperties.size>0)return a.usedProperties;console.warn('You are using "'.concat(t,'" but no `').concat(r,"` usage found in your expression: ").concat(JSON.stringify(e)))}}return!1}function f(e){if(e){var t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,s.preevaluate)(e,{withParent:!0,hooks:{beforeVisitGlobal:o(t,["CTX","STATE","FORM_STATE"],1,!0)}}),t.usedProperties.size>0){var r=[...t.usedProperties],n={context:!1,state:!1,formState:!1},a={CTX:"context",STATE:"state",FORM_STATE:"formState"};return r.forEach((e=>{var[t,r]=e.split(".");n[a[t]]||(n[a[t]]=[]),n[a[t]].push(r)})),n}console.warn('You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: '.concat(JSON.stringify(e)))}return!1}function y(e,t){if(Array.isArray(e))for(var r of e)v(r,t)}function v(e,t,r){try{(0,s.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t}})}catch(t){r||console.error('Parse storyboard function "'.concat(e.name,'" failed:'),t)}}function g(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,a={usedProperties:new Set,hasNonStaticUsage:!1};if(v(e,o(a,t,n),r),a.hasNonStaticUsage&&!r)throw new Error("Non-static usage of ".concat(t,' is prohibited, check your function: "').concat(e.name,'"'));return a.usedProperties.delete(e.name),a.usedProperties}var h="PERMISSIONS",S="check";function m(e){var t,r=new Set,o=P(r),{customTemplates:n,functions:a}=null!==(t=e.meta)&&void 0!==t?t:{};return u([e.routes,n],o,h),y(a,o),Array.from(r)}function b(e){var t=new Set;return u(e,P(t),h),Array.from(t)}function P(e){return function(t,r){if(t.name===h){var o=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key&&(o.node.computed?"Literal"===o.node.property.type&&o.node.property.value===S:"Identifier"===o.node.property.type&&o.node.property.name===S))for(var a of n.node.arguments)"Literal"===a.type&&"string"==typeof a.value&&e.add(a.value)}}}}}]);
2
+ //# sourceMappingURL=3933.ddf52584.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/6314.3cd58874.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n var segments = [];\n for (var i = 1; i <= level; i++) {\n var memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n var memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? \"\".concat(node.name, \".\").concat(memberNode.property.name) : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? \"\".concat(node.name, \".\").concat(memberNode.property.value) : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n var memberParent = parent[parent.length - 1];\n var callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n var args = callParent.node.arguments;\n if (args.length > 0) {\n var firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport var collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport var collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n var memo = new WeakSet();\n var {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (var item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(\"Non-static usage of \".concat(objectName, \" is prohibited, check your expression: \\\"\").concat(nonStaticUsage, \"\\\"\"));\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n var beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n var {\n expression\n } = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n var trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(\"You are using \\\"\".concat(trackText, \"\\\" but no `\").concat(variableName, \"` usage found in your expression: \").concat(JSON.stringify(raw)));\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n if (raw) {\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, [\"CTX\", \"STATE\", \"FORM_STATE\"], 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n var usedProperites = [...usage.usedProperties];\n var result = {\n context: false,\n state: false,\n formState: false\n };\n var keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperites.forEach(item => {\n var [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(\"You are using track all but no \\\"CTX\\\" or \\\"STATE\\\" or \\\"FORM_STATE\\\" usage found in your expression: \".concat(JSON.stringify(raw)));\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal) {\n if (Array.isArray(functions)) {\n for (var fn of functions) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n }\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard function \\\"\".concat(fn.name, \"\\\" failed:\"), error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(\"Non-static usage of \".concat(objectName, \" is prohibited, check your function: \\\"\").concat(fn.name, \"\\\"\"));\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nvar PERMISSIONS = \"PERMISSIONS\";\nvar check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n var collection = new Set();\n var beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n var {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions);\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n var collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n var memberParent = parent[parent.length - 1];\n var callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (var arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","concat","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","track","raw","trackText","variableName","trackCtxExp","expression","expressions","size","warn","JSON","stringify","trackAll","usedProperites","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","traverseStoryboardFunction","silentErrors","precookFunction","source","typescript","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/3933.ddf52584.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n var segments = [];\n for (var i = 1; i <= level; i++) {\n var memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n var memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? \"\".concat(node.name, \".\").concat(memberNode.property.name) : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? \"\".concat(node.name, \".\").concat(memberNode.property.value) : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n var memberParent = parent[parent.length - 1];\n var callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n var args = callParent.node.arguments;\n if (args.length > 0) {\n var firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport var collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport var collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n var memo = new WeakSet();\n var {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (var item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(\"Non-static usage of \".concat(objectName, \" is prohibited, check your expression: \\\"\").concat(nonStaticUsage, \"\\\"\"));\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n var beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n var {\n expression\n } = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n var trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(\"You are using \\\"\".concat(trackText, \"\\\" but no `\").concat(variableName, \"` usage found in your expression: \").concat(JSON.stringify(raw)));\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n if (raw) {\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, [\"CTX\", \"STATE\", \"FORM_STATE\"], 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n var usedProperites = [...usage.usedProperties];\n var result = {\n context: false,\n state: false,\n formState: false\n };\n var keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperites.forEach(item => {\n var [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(\"You are using track all but no \\\"CTX\\\" or \\\"STATE\\\" or \\\"FORM_STATE\\\" usage found in your expression: \".concat(JSON.stringify(raw)));\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal) {\n if (Array.isArray(functions)) {\n for (var fn of functions) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n }\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard function \\\"\".concat(fn.name, \"\\\" failed:\"), error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n var level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(\"Non-static usage of \".concat(objectName, \" is prohibited, check your function: \\\"\").concat(fn.name, \"\\\"\"));\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nvar PERMISSIONS = \"PERMISSIONS\";\nvar check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n var collection = new Set();\n var beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n var {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions);\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n var collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n var memberParent = parent[parent.length - 1];\n var callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (var arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","concat","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","track","raw","trackText","variableName","trackCtxExp","expression","expressions","size","warn","JSON","stringify","trackAll","usedProperites","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","traverseStoryboardFunction","silentErrors","precookFunction","source","typescript","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}