@next-bricks/diagram 0.25.1 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/bricks.json +4 -3
  2. package/dist/chunks/1045.b7c29853.js +2 -0
  3. package/dist/chunks/1045.b7c29853.js.map +1 -0
  4. package/dist/chunks/1122.ec5a28bd.js +2 -0
  5. package/dist/chunks/{1832.80a95bcd.js.map → 1122.ec5a28bd.js.map} +1 -1
  6. package/dist/chunks/114.ff6154a0.js +2 -0
  7. package/dist/chunks/114.ff6154a0.js.map +1 -0
  8. package/dist/chunks/1370.1b4ac3ac.js +2 -0
  9. package/dist/chunks/1370.1b4ac3ac.js.map +1 -0
  10. package/dist/chunks/1889.c14b28e6.js +2 -0
  11. package/dist/chunks/{8060.a4decb5e.js → 1889.c14b28e6.js.map} +1 -2
  12. package/dist/chunks/{8644.2e72c575.js → 1940.788d05b3.js} +2 -2
  13. package/dist/chunks/{8644.2e72c575.js.map → 1940.788d05b3.js.map} +1 -1
  14. package/dist/chunks/1972.3c3e1965.js +2 -0
  15. package/dist/chunks/1972.3c3e1965.js.map +1 -0
  16. package/dist/chunks/{856.8fe14637.js → 2052.fa66eafb.js} +2 -2
  17. package/dist/chunks/2052.fa66eafb.js.map +1 -0
  18. package/dist/chunks/{6064.62257333.js → 2277.9a1ded28.js} +2 -2
  19. package/dist/chunks/{3680.88310087.js.map → 2277.9a1ded28.js.map} +1 -1
  20. package/dist/chunks/2770.18b631cb.js +2 -0
  21. package/dist/chunks/2770.18b631cb.js.map +1 -0
  22. package/dist/chunks/{2356.69ab211e.js → 3144.712fb13e.js} +3 -3
  23. package/dist/chunks/{2356.69ab211e.js.map → 3144.712fb13e.js.map} +1 -1
  24. package/dist/chunks/3171.9f016ea3.js +2 -0
  25. package/dist/chunks/{8440.ce0da377.js.map → 3171.9f016ea3.js.map} +1 -1
  26. package/dist/chunks/3426.aed442e0.js +2 -0
  27. package/dist/chunks/3426.aed442e0.js.map +1 -0
  28. package/dist/chunks/3510.49d72504.js +3 -0
  29. package/dist/chunks/3510.49d72504.js.map +1 -0
  30. package/dist/chunks/3933.0342d0ab.js +2 -0
  31. package/dist/chunks/{5356.ec95af1d.js.map → 3933.0342d0ab.js.map} +1 -1
  32. package/dist/chunks/{5668.ff11ba54.js → 4041.58c8ed1f.js} +3 -3
  33. package/dist/chunks/{5668.ff11ba54.js.map → 4041.58c8ed1f.js.map} +1 -1
  34. package/dist/chunks/4456.f6066b87.js +2 -0
  35. package/dist/chunks/4456.f6066b87.js.map +1 -0
  36. package/dist/chunks/{3680.88310087.js → 4658.e875061a.js} +2 -2
  37. package/dist/chunks/{6064.62257333.js.map → 4658.e875061a.js.map} +1 -1
  38. package/dist/chunks/{8648.55f9fafb.js → 4741.b91ef9f1.js} +2 -2
  39. package/dist/chunks/{8648.55f9fafb.js.map → 4741.b91ef9f1.js.map} +1 -1
  40. package/dist/chunks/{7928.6eb9a99a.js → 5250.f7dfb399.js} +3 -3
  41. package/dist/chunks/{7928.6eb9a99a.js.map → 5250.f7dfb399.js.map} +1 -1
  42. package/dist/chunks/{1776.6541feaf.js → 5384.f1a69526.js} +2 -2
  43. package/dist/chunks/{1776.6541feaf.js.map → 5384.f1a69526.js.map} +1 -1
  44. package/dist/chunks/5399.d1706027.js +2 -0
  45. package/dist/chunks/{1372.ddfaca58.js.map → 5399.d1706027.js.map} +1 -1
  46. package/dist/chunks/5552.8099590c.js +2 -0
  47. package/dist/chunks/5552.8099590c.js.map +1 -0
  48. package/dist/chunks/6188.a80198d0.js +3 -0
  49. package/dist/chunks/6188.a80198d0.js.map +1 -0
  50. package/dist/chunks/6314.a17e6cef.js +2 -0
  51. package/dist/chunks/{2976.375fa83c.js.map → 6314.a17e6cef.js.map} +1 -1
  52. package/dist/chunks/6519.9c35628c.js +2 -0
  53. package/dist/chunks/{4524.801d1c14.js.map → 6519.9c35628c.js.map} +1 -1
  54. package/dist/chunks/6773.6ac391fe.js +2 -0
  55. package/dist/chunks/6773.6ac391fe.js.map +1 -0
  56. package/dist/chunks/726.efcf01a2.js +2 -0
  57. package/dist/chunks/726.efcf01a2.js.map +1 -0
  58. package/dist/chunks/7452.9d465fb5.js +2 -0
  59. package/dist/chunks/{6408.1aa0e97e.js.map → 7452.9d465fb5.js.map} +1 -1
  60. package/dist/chunks/7721.5bd46b7f.js +3 -0
  61. package/dist/chunks/{6736.1db5763e.js.map → 7721.5bd46b7f.js.map} +1 -1
  62. package/dist/chunks/7733.7a82300e.js +2 -0
  63. package/dist/chunks/7733.7a82300e.js.map +1 -0
  64. package/dist/chunks/7780.bbd9990e.js +2 -0
  65. package/dist/chunks/{3752.da97f490.js.map → 7780.bbd9990e.js.map} +1 -1
  66. package/dist/chunks/7918.9f7ec4d7.js +2 -0
  67. package/dist/chunks/7918.9f7ec4d7.js.map +1 -0
  68. package/dist/chunks/843.7444579f.js +2 -0
  69. package/dist/chunks/843.7444579f.js.map +1 -0
  70. package/dist/chunks/8989.55e6868c.js +2 -0
  71. package/dist/chunks/8989.55e6868c.js.map +1 -0
  72. package/dist/chunks/9407.1336c97c.js +2 -0
  73. package/dist/chunks/9407.1336c97c.js.map +1 -0
  74. package/dist/chunks/9515.405274b1.js +2 -0
  75. package/dist/chunks/9515.405274b1.js.map +1 -0
  76. package/dist/chunks/9559.7d625626.js +2 -0
  77. package/dist/chunks/{1024.b2fb4d97.js.map → 9559.7d625626.js.map} +1 -1
  78. package/dist/chunks/9591.e9a0ce2d.js +2 -0
  79. package/dist/chunks/9591.e9a0ce2d.js.map +1 -0
  80. package/dist/chunks/9740.fb9cd2a1.js +2 -0
  81. package/dist/chunks/9740.fb9cd2a1.js.map +1 -0
  82. package/dist/chunks/9844.db90776a.js +2 -0
  83. package/dist/chunks/9844.db90776a.js.map +1 -0
  84. package/dist/chunks/editable-label.8e6f528c.js +3 -0
  85. package/dist/chunks/editable-label.8e6f528c.js.map +1 -0
  86. package/dist/chunks/eo-diagram.58ca6b92.js +2 -0
  87. package/dist/chunks/eo-diagram.58ca6b92.js.map +1 -0
  88. package/dist/chunks/eo-display-canvas.77347940.js +2 -0
  89. package/dist/chunks/eo-display-canvas.77347940.js.map +1 -0
  90. package/dist/chunks/eo-draw-canvas.a7b522ea.js +2 -0
  91. package/dist/chunks/eo-draw-canvas.a7b522ea.js.map +1 -0
  92. package/dist/chunks/experimental-node.d03c0c20.js +2 -0
  93. package/dist/chunks/experimental-node.d03c0c20.js.map +1 -0
  94. package/dist/chunks/main.dd8b2330.js +2 -0
  95. package/dist/chunks/main.dd8b2330.js.map +1 -0
  96. package/dist/examples.json +6 -3
  97. package/dist/index.06ad2eaf.js +2 -0
  98. package/dist/index.06ad2eaf.js.map +1 -0
  99. package/dist/manifest.json +152 -77
  100. package/dist/types.json +2983 -1907
  101. package/dist-types/bootstrap.d.ts +1 -0
  102. package/dist-types/display-canvas/index.d.ts +51 -0
  103. package/dist-types/display-canvas/index.spec.d.ts +1 -0
  104. package/dist-types/draw-canvas/CellComponent.d.ts +8 -7
  105. package/dist-types/draw-canvas/decorators/DecoratorArea.d.ts +1 -1
  106. package/dist-types/draw-canvas/decorators/DecoratorText.d.ts +2 -2
  107. package/dist-types/draw-canvas/decorators/index.d.ts +1 -1
  108. package/dist-types/draw-canvas/interfaces.d.ts +6 -5
  109. package/dist-types/draw-canvas/processors/handleMouseDown.d.ts +1 -1
  110. package/dist-types/shared/canvas/useActiveTarget.d.ts +9 -0
  111. package/dist-types/shared/canvas/useAutoCenter.d.ts +16 -0
  112. package/dist-types/shared/canvas/useZoom.d.ts +19 -0
  113. package/docs/eo-display-canvas.md +9 -0
  114. package/package.json +4 -4
  115. package/dist/chunks/1024.b2fb4d97.js +0 -2
  116. package/dist/chunks/1372.ddfaca58.js +0 -2
  117. package/dist/chunks/1564.dad51f47.js +0 -2
  118. package/dist/chunks/1564.dad51f47.js.map +0 -1
  119. package/dist/chunks/1772.b9709e8a.js +0 -2
  120. package/dist/chunks/1772.b9709e8a.js.map +0 -1
  121. package/dist/chunks/1832.80a95bcd.js +0 -2
  122. package/dist/chunks/242.4bd90af0.js +0 -2
  123. package/dist/chunks/242.4bd90af0.js.map +0 -1
  124. package/dist/chunks/2976.375fa83c.js +0 -2
  125. package/dist/chunks/3322.63bf67fe.js +0 -2
  126. package/dist/chunks/3322.63bf67fe.js.map +0 -1
  127. package/dist/chunks/3752.da97f490.js +0 -2
  128. package/dist/chunks/3811.8484a1b6.js +0 -2
  129. package/dist/chunks/3811.8484a1b6.js.map +0 -1
  130. package/dist/chunks/3968.f63a8d5a.js +0 -2
  131. package/dist/chunks/3968.f63a8d5a.js.map +0 -1
  132. package/dist/chunks/4524.801d1c14.js +0 -2
  133. package/dist/chunks/4847.5cfb4368.js +0 -2
  134. package/dist/chunks/4847.5cfb4368.js.map +0 -1
  135. package/dist/chunks/5244.1437dfdf.js +0 -2
  136. package/dist/chunks/5244.1437dfdf.js.map +0 -1
  137. package/dist/chunks/5356.ec95af1d.js +0 -2
  138. package/dist/chunks/5676.e4df99d2.js +0 -2
  139. package/dist/chunks/5676.e4df99d2.js.map +0 -1
  140. package/dist/chunks/6192.e969705a.js +0 -2
  141. package/dist/chunks/6192.e969705a.js.map +0 -1
  142. package/dist/chunks/6228.1f4beffe.js +0 -2
  143. package/dist/chunks/6228.1f4beffe.js.map +0 -1
  144. package/dist/chunks/6352.a1d077df.js +0 -2
  145. package/dist/chunks/6352.a1d077df.js.map +0 -1
  146. package/dist/chunks/6408.1aa0e97e.js +0 -2
  147. package/dist/chunks/6736.1db5763e.js +0 -3
  148. package/dist/chunks/6796.bb543bb4.js +0 -3
  149. package/dist/chunks/6796.bb543bb4.js.map +0 -1
  150. package/dist/chunks/7228.fa4c35d3.js +0 -2
  151. package/dist/chunks/7228.fa4c35d3.js.map +0 -1
  152. package/dist/chunks/7476.2dcc0be8.js +0 -2
  153. package/dist/chunks/7476.2dcc0be8.js.map +0 -1
  154. package/dist/chunks/7861.a4c43abf.js +0 -2
  155. package/dist/chunks/7861.a4c43abf.js.map +0 -1
  156. package/dist/chunks/8020.2af7aa32.js +0 -2
  157. package/dist/chunks/8020.2af7aa32.js.map +0 -1
  158. package/dist/chunks/8060.a4decb5e.js.map +0 -1
  159. package/dist/chunks/820.83e05b04.js +0 -2
  160. package/dist/chunks/820.83e05b04.js.map +0 -1
  161. package/dist/chunks/8440.ce0da377.js +0 -2
  162. package/dist/chunks/856.8fe14637.js.map +0 -1
  163. package/dist/chunks/8732.9c55a3ea.js +0 -2
  164. package/dist/chunks/8732.9c55a3ea.js.map +0 -1
  165. package/dist/chunks/8944.952fed91.js +0 -2
  166. package/dist/chunks/8944.952fed91.js.map +0 -1
  167. package/dist/chunks/9260.c896737b.js +0 -3
  168. package/dist/chunks/9260.c896737b.js.map +0 -1
  169. package/dist/chunks/9560.315d614e.js +0 -2
  170. package/dist/chunks/9560.315d614e.js.map +0 -1
  171. package/dist/chunks/editable-label.128ef04e.js +0 -3
  172. package/dist/chunks/editable-label.128ef04e.js.map +0 -1
  173. package/dist/chunks/eo-diagram.2b8615e9.js +0 -2
  174. package/dist/chunks/eo-diagram.2b8615e9.js.map +0 -1
  175. package/dist/chunks/eo-draw-canvas.e4d56ade.js +0 -2
  176. package/dist/chunks/eo-draw-canvas.e4d56ade.js.map +0 -1
  177. package/dist/chunks/experimental-node.de4a18b6.js +0 -2
  178. package/dist/chunks/experimental-node.de4a18b6.js.map +0 -1
  179. package/dist/chunks/main.e36bc80a.js +0 -2
  180. package/dist/chunks/main.e36bc80a.js.map +0 -1
  181. package/dist/index.0204e63f.js +0 -2
  182. package/dist/index.0204e63f.js.map +0 -1
  183. /package/dist/chunks/{2356.69ab211e.js.LICENSE.txt → 3144.712fb13e.js.LICENSE.txt} +0 -0
  184. /package/dist/chunks/{6796.bb543bb4.js.LICENSE.txt → 3510.49d72504.js.LICENSE.txt} +0 -0
  185. /package/dist/chunks/{5668.ff11ba54.js.LICENSE.txt → 4041.58c8ed1f.js.LICENSE.txt} +0 -0
  186. /package/dist/chunks/{7928.6eb9a99a.js.LICENSE.txt → 5250.f7dfb399.js.LICENSE.txt} +0 -0
  187. /package/dist/chunks/{9260.c896737b.js.LICENSE.txt → 6188.a80198d0.js.LICENSE.txt} +0 -0
  188. /package/dist/chunks/{6736.1db5763e.js.LICENSE.txt → 7721.5bd46b7f.js.LICENSE.txt} +0 -0
  189. /package/dist/chunks/{editable-label.128ef04e.js.LICENSE.txt → editable-label.8e6f528c.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/4456.f6066b87.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/extractPartialRectTuple.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","import type { FullRectTuple, PartialRectTuple } from \"../interfaces\";\n\nexport function extractPartialRectTuple(\n value: PartialRectTuple\n): FullRectTuple {\n if (Array.isArray(value)) {\n const v0 = value[0];\n const v1 = value.length > 1 ? value[1]! : v0;\n const v2 = value.length > 2 ? value[2]! : v0;\n const v3 = value.length > 3 ? value[3]! : v1;\n return [v0, v1, v2, v3];\n }\n return new Array(4).fill(value) as FullRectTuple;\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","extractPartialRectTuple","value","Array","isArray","v0","v1","length","getRenderedEdges","edges","_edges$map","normalizedLinesMap","lineLabelsRefRepository","labelSize","getDummyNodes","count","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","dagre","Graph","setDefaultEdgeLabel","previousNode","getNode","setNode","setEdge","applyLayout","renderedNodes","push","console","error","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","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([[3680,6064],{6064:(e,t,r)=>{r.r(t),r.d(t,{inject:()=>y,transform:()=>k,transformAndInject:()=>D});var a=r(9604),n=r(4068),i=function(e){return e[e.Initial=0]="Initial",e[e.ExpectField=1]="ExpectField",e[e.ExpectOptionalBeginDefault=2]="ExpectOptionalBeginDefault",e[e.ExpectDefaultValue=3]="ExpectDefaultValue",e[e.ExpectOptionalBeginPipe=4]="ExpectOptionalBeginPipe",e[e.ExpectPipeIdentifier=5]="ExpectPipeIdentifier",e[e.ExpectOptionalBeginPipeParameter=6]="ExpectOptionalBeginPipeParameter",e[e.ExpectPipeParameter=7]="ExpectPipeParameter",e[e.ExpectPlaceholderEnd=8]="ExpectPlaceholderEnd",e}({}),s=function(e){return e.Raw="Raw",e.BeginPlaceHolder="BeginPlaceHolder",e.Field="Field",e.BeginDefault="BeginDefault",e.LiteralString="LiteralString",e.BeginPipe="BeginPipe",e.PipeIdentifier="PipeIdentifier",e.BeginPipeParameter="BeginPipeParameter",e.EndPlaceHolder="EndPlaceHolder",e.JsonValue="JsonValue",e}({}),u=function(e){return e[e.Array=0]="Array",e[e.Object=1]="Object",e[e.String=2]="String",e[e.Others=3]="Others",e}({});function c(e){return new RegExp("(".concat([].concat(e).map((e=>(0,a.escapeRegExp)(e))).join("|"),")\\{"))}function l(e){var t,r=b(e),a=null===(t=r.match(e.beginPlaceholder))||void 0===t?void 0:t[0],n=a?r.indexOf(a):-1;if(n>=0&&a&&"{"!==r.charAt(n+a.length)){var u=e.cursor+n;n>0&&e.tokens.push({type:s.Raw,value:r.substring(0,n)}),e.tokens.push({type:s.BeginPlaceHolder,loc:{start:u,end:u+a.length},value:a.substring(0,a.length-1)}),e.cursor+=n+a.length,e.status=i.ExpectField}else e.tokens.push({type:s.Raw,value:r}),e.cursor=e.raw.length}function o(e){e.cursor+=b(e).match(/^[ \r\n\t]*/)[0].length}function p(e){var[t]=b(e).match(/^(?:[\*\x2D\.0-9A-\[\]_a-z\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/);e.tokens.push({type:s.Field,value:t}),e.cursor+=t.length,e.status=i.ExpectOptionalBeginDefault}function d(e){"="===b(e).charAt(0)?(e.tokens.push({type:s.BeginDefault}),e.cursor+=1,e.status=i.ExpectDefaultValue):e.status=i.ExpectOptionalBeginPipe}function f(e){x(e,i.ExpectOptionalBeginPipe)}function g(e){"|"===b(e).charAt(0)?(e.tokens.push({type:s.BeginPipe}),e.cursor+=1,e.status=i.ExpectPipeIdentifier):e.status=i.ExpectPlaceholderEnd}function h(e){var t=b(e).match(/^[a-zA-Z]\w*/);if(!t)throw new Error("Expected a pipe identifier at index ".concat(e.cursor," near: ").concat(JSON.stringify(e.raw.substring(e.cursor))));var r=t[0];e.tokens.push({type:s.PipeIdentifier,value:r}),e.cursor+=r.length,e.status=i.ExpectOptionalBeginPipeParameter}function P(e){":"===b(e).charAt(0)?(e.tokens.push({type:s.BeginPipeParameter}),e.cursor+=1,e.status=i.ExpectPipeParameter):e.status=i.ExpectOptionalBeginPipe}function E(e){x(e,i.ExpectOptionalBeginPipeParameter)}function v(e){if("}"!==b(e).charAt(0))throw new Error("Expected a placeholder end '}' at index ".concat(e.cursor," near: ").concat(JSON.stringify(e.raw.substring(e.cursor))));e.tokens.push({type:s.EndPlaceHolder,loc:{start:e.cursor,end:e.cursor+1}}),e.cursor+=1,e.status=i.Initial}var F=new Map([["false",!1],["null",null],["true",!0]]);function x(e,t){var r=b(e);if(/[0-9[{"]/.test(r.charAt(0))||/-[0-9]/.test(r.substring(0,2)))!function(e,t){for(var r=b(e),a=r.charAt(0),n="["===a?u.Array:"{"===a?u.Object:'"'===a?u.String:u.Others,i=0,c=0,l=0,o=!1,p=!1,d=!1;i<r.length;){var f=r.charAt(i);if(p)p=!1;else if(o)'"'===f?o=!1:"\\"===f&&(p=!0);else switch(f){case"[":l+=1;break;case"{":c+=1;break;case"]":l-=1;break;case"}":c-=1;break;case'"':o=!0}switch(i+=1,n){case u.Array:d=!l;break;case u.Object:d=!c;break;case u.String:d=!o;break;default:d=i<r.length&&/[^a-z0-9E.+-]/.test(r.charAt(i))}if(d)break}if(!d)throw new Error("Failed to match a JSON value at index ".concat(e.cursor," near: ").concat(JSON.stringify(e.raw.substring(e.cursor))));e.tokens.push({type:s.JsonValue,value:JSON.parse(r.substring(0,i))}),e.cursor+=i,e.status=t}(e,t);else{var[a]=b(e).match(/^(?:[\x2D0-9A-Z_a-z\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/);F.has(a)?e.tokens.push({type:s.JsonValue,value:F.get(a)}):e.tokens.push({type:s.LiteralString,value:a}),e.cursor+=a.length,e.status=t}}function b(e){return e.raw.substring(e.cursor)}function k(e,t){return m(e,"@",t)}function y(e,t){return m(e,"$",t)}function D(e,t){return m(e,["@","$"],t)}function m(e,t,r){if(!function(e,t){return c(t).test(e)}(e,t))return e;var u,F,x=(u=r.data,function(e){var t=e.field?(0,a.get)(u,e.field):u;return void 0===t&&(t=e.defaultValue),(0,n.processPipes)(t,e.pipes)}),b=function(e,t){return function(r){var i,s,u=r.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\.)?(.+)$/);if(!u)return t.substring(r.loc.start,r.loc.end);var c,[,l,o]=u;!l&&/^[A-Z_]+$/.test(o)&&(l=o,o="*");var p={SYS:"sys",FLAGS:"flags"};switch(l){case"QUERY":case"query":c="*"===o?e.query:e.query.has(o)?e.query.get(o):void 0;break;case"QUERY_ARRAY":c=e.query.has(o)?e.query.getAll(o):void 0;break;case"EVENT":case"event":if(void 0===e.event)return t.substring(r.loc.start,r.loc.end);c="*"===o?e.event:(0,a.get)(e.event,o);break;case"APP":c="*"===o?null!==(i=e.overrideApp)&&void 0!==i?i:e.app:(0,a.get)(null!==(s=e.overrideApp)&&void 0!==s?s:e.app,o);break;case"HASH":c=e.location.hash;break;case"SYS":case"FLAGS":c="*"===o?e[p[l]]:(0,a.get)(e[p[l]],o);break;case"ANCHOR":var d=e.location.hash?e.location.hash.substr(1):null;c="*"===o?d:(0,a.get)(d,o);break;case"CTX":var f=t.substring(r.loc.start,r.loc.end);return console.error('CTX is not supported in placeholder any more: "'.concat(f,'"')),f;default:if(!e.match)return t.substring(r.loc.start,r.loc.end);c=e.match.params[o]}return void 0===c&&(c=r.defaultValue),(0,n.processPipes)(c,r.pipes)}}(r,e);return F=function(e,t){return function(e){var t,r={type:"InjectableString",elements:[]};function a(r){return r===e[0].type&&(t=e.shift(),!0)}function n(r){if(t=e.shift(),Array.isArray(r)?!r.includes(t.type):r!==t.type)throw new Error("Expected token: ".concat(r,", received token: ").concat(t.type))}for(;e.length>0;)if(a(s.Raw))r.elements.push({type:"RawString",value:t.value});else{n(s.BeginPlaceHolder);var i=t.loc.start,u=t.value;n(s.Field);var c={type:"Placeholder",symbol:u,field:t.value,defaultValue:void 0,pipes:[],loc:{start:i,end:i}};for(r.elements.push(c),a(s.BeginDefault)&&(n([s.JsonValue,s.LiteralString]),c.defaultValue=t.value);a(s.BeginPipe);){n(s.PipeIdentifier);var l={type:"PipeCall",identifier:t.value,parameters:[]};for(c.pipes.push(l);a(s.BeginPipeParameter);)n([s.JsonValue,s.LiteralString]),l.parameters.push(t.value)}n(s.EndPlaceHolder),c.loc.end=t.loc.end}return r}(function(e,t){for(var r={beginPlaceholder:c(t),raw:e,cursor:0,status:i.Initial,tokens:[]};r.cursor<e.length;)switch(r.status){case i.Initial:l(r);break;case i.ExpectField:o(r),p(r);break;case i.ExpectOptionalBeginDefault:o(r),d(r);break;case i.ExpectDefaultValue:o(r),f(r);break;case i.ExpectOptionalBeginPipe:o(r),g(r);break;case i.ExpectPipeIdentifier:o(r),h(r);break;case i.ExpectOptionalBeginPipeParameter:o(r),P(r);break;case i.ExpectPipeParameter:o(r),E(r);break;case i.ExpectPlaceholderEnd:o(r),v(r)}if(r.status!==i.Initial)throw new Error("Expected a placeholder end '}' at the end");return r.tokens}(e,t))}(e,t).elements.map((e=>"RawString"===e.type?e.value:"$"===e.symbol?b(e):x(e))),1===F.length?F[0]:F.join("")}}}]);
2
- //# sourceMappingURL=3680.88310087.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[4658,2277],{2277:(e,t,r)=>{r.r(t),r.d(t,{inject:()=>y,transform:()=>k,transformAndInject:()=>D});var a=r(1030),n=r(9259),i=function(e){return e[e.Initial=0]="Initial",e[e.ExpectField=1]="ExpectField",e[e.ExpectOptionalBeginDefault=2]="ExpectOptionalBeginDefault",e[e.ExpectDefaultValue=3]="ExpectDefaultValue",e[e.ExpectOptionalBeginPipe=4]="ExpectOptionalBeginPipe",e[e.ExpectPipeIdentifier=5]="ExpectPipeIdentifier",e[e.ExpectOptionalBeginPipeParameter=6]="ExpectOptionalBeginPipeParameter",e[e.ExpectPipeParameter=7]="ExpectPipeParameter",e[e.ExpectPlaceholderEnd=8]="ExpectPlaceholderEnd",e}({}),s=function(e){return e.Raw="Raw",e.BeginPlaceHolder="BeginPlaceHolder",e.Field="Field",e.BeginDefault="BeginDefault",e.LiteralString="LiteralString",e.BeginPipe="BeginPipe",e.PipeIdentifier="PipeIdentifier",e.BeginPipeParameter="BeginPipeParameter",e.EndPlaceHolder="EndPlaceHolder",e.JsonValue="JsonValue",e}({}),u=function(e){return e[e.Array=0]="Array",e[e.Object=1]="Object",e[e.String=2]="String",e[e.Others=3]="Others",e}({});function c(e){return new RegExp("(".concat([].concat(e).map((e=>(0,a.escapeRegExp)(e))).join("|"),")\\{"))}function l(e){var t,r=b(e),a=null===(t=r.match(e.beginPlaceholder))||void 0===t?void 0:t[0],n=a?r.indexOf(a):-1;if(n>=0&&a&&"{"!==r.charAt(n+a.length)){var u=e.cursor+n;n>0&&e.tokens.push({type:s.Raw,value:r.substring(0,n)}),e.tokens.push({type:s.BeginPlaceHolder,loc:{start:u,end:u+a.length},value:a.substring(0,a.length-1)}),e.cursor+=n+a.length,e.status=i.ExpectField}else e.tokens.push({type:s.Raw,value:r}),e.cursor=e.raw.length}function o(e){e.cursor+=b(e).match(/^[ \r\n\t]*/)[0].length}function p(e){var[t]=b(e).match(/^(?:[\*\x2D\.0-9A-\[\]_a-z\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/);e.tokens.push({type:s.Field,value:t}),e.cursor+=t.length,e.status=i.ExpectOptionalBeginDefault}function d(e){"="===b(e).charAt(0)?(e.tokens.push({type:s.BeginDefault}),e.cursor+=1,e.status=i.ExpectDefaultValue):e.status=i.ExpectOptionalBeginPipe}function f(e){x(e,i.ExpectOptionalBeginPipe)}function g(e){"|"===b(e).charAt(0)?(e.tokens.push({type:s.BeginPipe}),e.cursor+=1,e.status=i.ExpectPipeIdentifier):e.status=i.ExpectPlaceholderEnd}function h(e){var t=b(e).match(/^[a-zA-Z]\w*/);if(!t)throw new Error("Expected a pipe identifier at index ".concat(e.cursor," near: ").concat(JSON.stringify(e.raw.substring(e.cursor))));var r=t[0];e.tokens.push({type:s.PipeIdentifier,value:r}),e.cursor+=r.length,e.status=i.ExpectOptionalBeginPipeParameter}function P(e){":"===b(e).charAt(0)?(e.tokens.push({type:s.BeginPipeParameter}),e.cursor+=1,e.status=i.ExpectPipeParameter):e.status=i.ExpectOptionalBeginPipe}function E(e){x(e,i.ExpectOptionalBeginPipeParameter)}function v(e){if("}"!==b(e).charAt(0))throw new Error("Expected a placeholder end '}' at index ".concat(e.cursor," near: ").concat(JSON.stringify(e.raw.substring(e.cursor))));e.tokens.push({type:s.EndPlaceHolder,loc:{start:e.cursor,end:e.cursor+1}}),e.cursor+=1,e.status=i.Initial}var F=new Map([["false",!1],["null",null],["true",!0]]);function x(e,t){var r=b(e);if(/[0-9[{"]/.test(r.charAt(0))||/-[0-9]/.test(r.substring(0,2)))!function(e,t){for(var r=b(e),a=r.charAt(0),n="["===a?u.Array:"{"===a?u.Object:'"'===a?u.String:u.Others,i=0,c=0,l=0,o=!1,p=!1,d=!1;i<r.length;){var f=r.charAt(i);if(p)p=!1;else if(o)'"'===f?o=!1:"\\"===f&&(p=!0);else switch(f){case"[":l+=1;break;case"{":c+=1;break;case"]":l-=1;break;case"}":c-=1;break;case'"':o=!0}switch(i+=1,n){case u.Array:d=!l;break;case u.Object:d=!c;break;case u.String:d=!o;break;default:d=i<r.length&&/[^a-z0-9E.+-]/.test(r.charAt(i))}if(d)break}if(!d)throw new Error("Failed to match a JSON value at index ".concat(e.cursor," near: ").concat(JSON.stringify(e.raw.substring(e.cursor))));e.tokens.push({type:s.JsonValue,value:JSON.parse(r.substring(0,i))}),e.cursor+=i,e.status=t}(e,t);else{var[a]=b(e).match(/^(?:[\x2D0-9A-Z_a-z\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*/);F.has(a)?e.tokens.push({type:s.JsonValue,value:F.get(a)}):e.tokens.push({type:s.LiteralString,value:a}),e.cursor+=a.length,e.status=t}}function b(e){return e.raw.substring(e.cursor)}function k(e,t){return m(e,"@",t)}function y(e,t){return m(e,"$",t)}function D(e,t){return m(e,["@","$"],t)}function m(e,t,r){if(!function(e,t){return c(t).test(e)}(e,t))return e;var u,F,x=(u=r.data,function(e){var t=e.field?(0,a.get)(u,e.field):u;return void 0===t&&(t=e.defaultValue),(0,n.processPipes)(t,e.pipes)}),b=function(e,t){return function(r){var i,s,u=r.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\.)?(.+)$/);if(!u)return t.substring(r.loc.start,r.loc.end);var c,[,l,o]=u;!l&&/^[A-Z_]+$/.test(o)&&(l=o,o="*");var p={SYS:"sys",FLAGS:"flags"};switch(l){case"QUERY":case"query":c="*"===o?e.query:e.query.has(o)?e.query.get(o):void 0;break;case"QUERY_ARRAY":c=e.query.has(o)?e.query.getAll(o):void 0;break;case"EVENT":case"event":if(void 0===e.event)return t.substring(r.loc.start,r.loc.end);c="*"===o?e.event:(0,a.get)(e.event,o);break;case"APP":c="*"===o?null!==(i=e.overrideApp)&&void 0!==i?i:e.app:(0,a.get)(null!==(s=e.overrideApp)&&void 0!==s?s:e.app,o);break;case"HASH":c=e.location.hash;break;case"SYS":case"FLAGS":c="*"===o?e[p[l]]:(0,a.get)(e[p[l]],o);break;case"ANCHOR":var d=e.location.hash?e.location.hash.substr(1):null;c="*"===o?d:(0,a.get)(d,o);break;case"CTX":var f=t.substring(r.loc.start,r.loc.end);return console.error('CTX is not supported in placeholder any more: "'.concat(f,'"')),f;default:if(!e.match)return t.substring(r.loc.start,r.loc.end);c=e.match.params[o]}return void 0===c&&(c=r.defaultValue),(0,n.processPipes)(c,r.pipes)}}(r,e);return F=function(e,t){return function(e){var t,r={type:"InjectableString",elements:[]};function a(r){return r===e[0].type&&(t=e.shift(),!0)}function n(r){if(t=e.shift(),Array.isArray(r)?!r.includes(t.type):r!==t.type)throw new Error("Expected token: ".concat(r,", received token: ").concat(t.type))}for(;e.length>0;)if(a(s.Raw))r.elements.push({type:"RawString",value:t.value});else{n(s.BeginPlaceHolder);var i=t.loc.start,u=t.value;n(s.Field);var c={type:"Placeholder",symbol:u,field:t.value,defaultValue:void 0,pipes:[],loc:{start:i,end:i}};for(r.elements.push(c),a(s.BeginDefault)&&(n([s.JsonValue,s.LiteralString]),c.defaultValue=t.value);a(s.BeginPipe);){n(s.PipeIdentifier);var l={type:"PipeCall",identifier:t.value,parameters:[]};for(c.pipes.push(l);a(s.BeginPipeParameter);)n([s.JsonValue,s.LiteralString]),l.parameters.push(t.value)}n(s.EndPlaceHolder),c.loc.end=t.loc.end}return r}(function(e,t){for(var r={beginPlaceholder:c(t),raw:e,cursor:0,status:i.Initial,tokens:[]};r.cursor<e.length;)switch(r.status){case i.Initial:l(r);break;case i.ExpectField:o(r),p(r);break;case i.ExpectOptionalBeginDefault:o(r),d(r);break;case i.ExpectDefaultValue:o(r),f(r);break;case i.ExpectOptionalBeginPipe:o(r),g(r);break;case i.ExpectPipeIdentifier:o(r),h(r);break;case i.ExpectOptionalBeginPipeParameter:o(r),P(r);break;case i.ExpectPipeParameter:o(r),E(r);break;case i.ExpectPlaceholderEnd:o(r),v(r)}if(r.status!==i.Initial)throw new Error("Expected a placeholder end '}' at the end");return r.tokens}(e,t))}(e,t).elements.map((e=>"RawString"===e.type?e.value:"$"===e.symbol?b(e):x(e))),1===F.length?F[0]:F.join("")}}}]);
2
+ //# sourceMappingURL=4658.e875061a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/6064.62257333.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/inject/dist/esm/interfaces.js","webpack:///../../node_modules/@next-core/inject/dist/esm/lexical.js","webpack:///../../node_modules/@next-core/inject/dist/esm/compile.js","webpack:///../../node_modules/@next-core/inject/dist/esm/syntax.js"],"sourcesContent":["export var LexicalStatus = /*#__PURE__*/function (LexicalStatus) {\n LexicalStatus[LexicalStatus[\"Initial\"] = 0] = \"Initial\";\n LexicalStatus[LexicalStatus[\"ExpectField\"] = 1] = \"ExpectField\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginDefault\"] = 2] = \"ExpectOptionalBeginDefault\";\n LexicalStatus[LexicalStatus[\"ExpectDefaultValue\"] = 3] = \"ExpectDefaultValue\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginPipe\"] = 4] = \"ExpectOptionalBeginPipe\";\n LexicalStatus[LexicalStatus[\"ExpectPipeIdentifier\"] = 5] = \"ExpectPipeIdentifier\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginPipeParameter\"] = 6] = \"ExpectOptionalBeginPipeParameter\";\n LexicalStatus[LexicalStatus[\"ExpectPipeParameter\"] = 7] = \"ExpectPipeParameter\";\n LexicalStatus[LexicalStatus[\"ExpectPlaceholderEnd\"] = 8] = \"ExpectPlaceholderEnd\";\n return LexicalStatus;\n}({});\nexport var TokenType = /*#__PURE__*/function (TokenType) {\n TokenType[\"Raw\"] = \"Raw\";\n TokenType[\"BeginPlaceHolder\"] = \"BeginPlaceHolder\";\n TokenType[\"Field\"] = \"Field\";\n TokenType[\"BeginDefault\"] = \"BeginDefault\";\n TokenType[\"LiteralString\"] = \"LiteralString\";\n TokenType[\"BeginPipe\"] = \"BeginPipe\";\n TokenType[\"PipeIdentifier\"] = \"PipeIdentifier\";\n TokenType[\"BeginPipeParameter\"] = \"BeginPipeParameter\";\n TokenType[\"EndPlaceHolder\"] = \"EndPlaceHolder\";\n TokenType[\"JsonValue\"] = \"JsonValue\";\n return TokenType;\n}({});\nexport var JsonValueType = /*#__PURE__*/function (JsonValueType) {\n JsonValueType[JsonValueType[\"Array\"] = 0] = \"Array\";\n JsonValueType[JsonValueType[\"Object\"] = 1] = \"Object\";\n JsonValueType[JsonValueType[\"String\"] = 2] = \"String\";\n JsonValueType[JsonValueType[\"Others\"] = 3] = \"Others\";\n return JsonValueType;\n}({});\n//# sourceMappingURL=interfaces.js.map","import { escapeRegExp } from \"lodash\";\nimport { LexicalStatus, TokenType, JsonValueType } from \"./interfaces.js\";\nexport function getRegExpOfPlaceholder(symbols) {\n return new RegExp(\"(\".concat([].concat(symbols).map(symbol => escapeRegExp(symbol)).join(\"|\"), \")\\\\{\"));\n}\nexport function tokenize(raw, symbols) {\n var context = {\n beginPlaceholder: getRegExpOfPlaceholder(symbols),\n raw,\n cursor: 0,\n status: LexicalStatus.Initial,\n tokens: []\n };\n while (context.cursor < raw.length) {\n switch (context.status) {\n case LexicalStatus.Initial:\n eatOptionalRawAndOptionalPlaceholderBegin(context);\n break;\n case LexicalStatus.ExpectField:\n eatWhitespace(context);\n eatField(context);\n break;\n case LexicalStatus.ExpectOptionalBeginDefault:\n eatWhitespace(context);\n eatOptionalDefault(context);\n break;\n case LexicalStatus.ExpectDefaultValue:\n eatWhitespace(context);\n eatDefaultValue(context);\n break;\n case LexicalStatus.ExpectOptionalBeginPipe:\n eatWhitespace(context);\n eatOptionalBeginPipe(context);\n break;\n case LexicalStatus.ExpectPipeIdentifier:\n eatWhitespace(context);\n eatPipeIdentifier(context);\n break;\n case LexicalStatus.ExpectOptionalBeginPipeParameter:\n eatWhitespace(context);\n eatOptionalBeginPipeParameter(context);\n break;\n case LexicalStatus.ExpectPipeParameter:\n eatWhitespace(context);\n eatPipeParameter(context);\n break;\n case LexicalStatus.ExpectPlaceholderEnd:\n eatWhitespace(context);\n eatPlaceholderEnd(context);\n break;\n }\n }\n if (context.status !== LexicalStatus.Initial) {\n throw new Error(\"Expected a placeholder end '}' at the end\");\n }\n return context.tokens;\n}\nfunction eatOptionalRawAndOptionalPlaceholderBegin(context) {\n var _subRaw$match;\n var subRaw = getSubRaw(context);\n var matchedPlaceholder = (_subRaw$match = subRaw.match(context.beginPlaceholder)) === null || _subRaw$match === void 0 ? void 0 : _subRaw$match[0];\n var subCursor = matchedPlaceholder ? subRaw.indexOf(matchedPlaceholder) : -1;\n if (subCursor >= 0 && matchedPlaceholder && subRaw.charAt(subCursor + matchedPlaceholder.length) !== \"{\") {\n var nextCursor = context.cursor + subCursor;\n if (subCursor > 0) {\n context.tokens.push({\n type: TokenType.Raw,\n value: subRaw.substring(0, subCursor)\n });\n }\n context.tokens.push({\n type: TokenType.BeginPlaceHolder,\n loc: {\n start: nextCursor,\n end: nextCursor + matchedPlaceholder.length\n },\n value: matchedPlaceholder.substring(0, matchedPlaceholder.length - 1)\n });\n context.cursor += subCursor + matchedPlaceholder.length;\n context.status = LexicalStatus.ExpectField;\n } else {\n context.tokens.push({\n type: TokenType.Raw,\n value: subRaw\n });\n context.cursor = context.raw.length;\n }\n}\nfunction eatWhitespace(context) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n context.cursor += getSubRaw(context).match(/^[ \\r\\n\\t]*/)[0].length;\n}\nfunction eatField(context) {\n // Only allow alphanumeric, `_`, `.`, `*`, `[`, `]`, `-` and other non-ascii.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var [value] = getSubRaw(context).match(/^(?:[\\*\\x2D\\.0-9A-\\[\\]_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\n context.tokens.push({\n type: TokenType.Field,\n value\n });\n context.cursor += value.length;\n context.status = LexicalStatus.ExpectOptionalBeginDefault;\n}\nfunction eatOptionalDefault(context) {\n if (getSubRaw(context).charAt(0) === \"=\") {\n context.tokens.push({\n type: TokenType.BeginDefault\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectDefaultValue;\n } else {\n context.status = LexicalStatus.ExpectOptionalBeginPipe;\n }\n}\nfunction eatDefaultValue(context) {\n eatJsonValueOrLiteralString(context, LexicalStatus.ExpectOptionalBeginPipe);\n}\nfunction eatOptionalBeginPipe(context) {\n if (getSubRaw(context).charAt(0) === \"|\") {\n context.tokens.push({\n type: TokenType.BeginPipe\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectPipeIdentifier;\n } else {\n context.status = LexicalStatus.ExpectPlaceholderEnd;\n }\n}\nfunction eatPipeIdentifier(context) {\n var matches = getSubRaw(context).match(/^[a-zA-Z]\\w*/);\n if (!matches) {\n throw new Error(\"Expected a pipe identifier at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n var value = matches[0];\n context.tokens.push({\n type: TokenType.PipeIdentifier,\n value\n });\n context.cursor += value.length;\n context.status = LexicalStatus.ExpectOptionalBeginPipeParameter;\n}\nfunction eatOptionalBeginPipeParameter(context) {\n if (getSubRaw(context).charAt(0) === \":\") {\n context.tokens.push({\n type: TokenType.BeginPipeParameter\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectPipeParameter;\n } else {\n context.status = LexicalStatus.ExpectOptionalBeginPipe;\n }\n}\nfunction eatPipeParameter(context) {\n eatJsonValueOrLiteralString(context, LexicalStatus.ExpectOptionalBeginPipeParameter);\n}\nfunction eatPlaceholderEnd(context) {\n if (getSubRaw(context).charAt(0) === \"}\") {\n context.tokens.push({\n type: TokenType.EndPlaceHolder,\n loc: {\n start: context.cursor,\n end: context.cursor + 1\n }\n });\n context.cursor += 1;\n context.status = LexicalStatus.Initial;\n } else {\n throw new Error(\"Expected a placeholder end '}' at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n}\nvar jsonLiteralMap = new Map([[\"false\", false], [\"null\", null], [\"true\", true]]);\nfunction eatJsonValueOrLiteralString(context, nextStatus) {\n var subRaw = getSubRaw(context);\n if (/[0-9[{\"]/.test(subRaw.charAt(0)) || /-[0-9]/.test(subRaw.substring(0, 2))) {\n eatJsonValue(context, nextStatus);\n } else {\n // Accept any characters except controls and whitespace.\n // Only allow alphanumeric, `_`, `-` and other non-ascii.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var [value] = getSubRaw(context).match(/^(?:[\\x2D0-9A-Z_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\n if (jsonLiteralMap.has(value)) {\n context.tokens.push({\n type: TokenType.JsonValue,\n value: jsonLiteralMap.get(value)\n });\n } else {\n context.tokens.push({\n type: TokenType.LiteralString,\n value\n });\n }\n context.cursor += value.length;\n context.status = nextStatus;\n }\n}\n\n// 我们不需要非常精确地在一段字符串中匹配出一段*完整合法的* JSON value,\n// 而只需要找到一段*可能是完整合法的* JSON value 即可,解析的工作交给 `JSON.parse()`。\n// 由于 JSON 中 object/array/string 的镜像起止符特性,我们尝试去完成这些符号匹配即可。\nfunction eatJsonValue(context, nextStatus) {\n var subRaw = getSubRaw(context);\n var firstChar = subRaw.charAt(0);\n var valueType = firstChar === \"[\" ? JsonValueType.Array : firstChar === \"{\" ? JsonValueType.Object : firstChar === '\"' ? JsonValueType.String : JsonValueType.Others;\n var subCursor = 0;\n var objectBracesToMatch = 0;\n var arrayBracketsToMatch = 0;\n var stringQuotesToClose = false;\n var stringBackslashToEscape = false;\n var matched = false;\n while (subCursor < subRaw.length) {\n var char = subRaw.charAt(subCursor);\n if (stringBackslashToEscape) {\n stringBackslashToEscape = false;\n } else if (stringQuotesToClose) {\n if (char === '\"') {\n stringQuotesToClose = false;\n } else if (char === \"\\\\\") {\n stringBackslashToEscape = true;\n }\n } else {\n switch (char) {\n case \"[\":\n arrayBracketsToMatch += 1;\n break;\n case \"{\":\n objectBracesToMatch += 1;\n break;\n case \"]\":\n arrayBracketsToMatch -= 1;\n break;\n case \"}\":\n objectBracesToMatch -= 1;\n break;\n case '\"':\n stringQuotesToClose = true;\n break;\n }\n }\n subCursor += 1;\n switch (valueType) {\n case JsonValueType.Array:\n matched = !arrayBracketsToMatch;\n break;\n case JsonValueType.Object:\n matched = !objectBracesToMatch;\n break;\n case JsonValueType.String:\n matched = !stringQuotesToClose;\n break;\n default:\n // 对于其它类型,如果下一个字符不再是这些值类型可能的字符时,我们认为 JSON value 完成匹配。\n // 其它可能的值类型:number/boolean/null/undefined。\n matched = subCursor < subRaw.length && /[^a-z0-9E.+-]/.test(subRaw.charAt(subCursor));\n }\n if (matched) {\n break;\n }\n }\n if (!matched) {\n throw new Error(\"Failed to match a JSON value at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n context.tokens.push({\n type: TokenType.JsonValue,\n value: JSON.parse(subRaw.substring(0, subCursor))\n });\n context.cursor += subCursor;\n context.status = nextStatus;\n}\nfunction getSubRaw(context) {\n return context.raw.substring(context.cursor);\n}\n//# sourceMappingURL=lexical.js.map","import { get } from \"lodash\";\nimport { processPipes } from \"@next-core/pipes\";\nimport { parseInjectableString } from \"./syntax.js\";\nimport { getRegExpOfPlaceholder } from \"./lexical.js\";\nexport function transform(raw, context) {\n return compile(raw, \"@\", context);\n}\nexport function inject(raw, context) {\n return compile(raw, \"$\", context);\n}\nexport function transformAndInject(raw, context) {\n return compile(raw, [\"@\", \"$\"], context);\n}\nfunction compile(raw, symbols, context) {\n // const symbols = [\"@\", \"$\"];\n if (!isInjectable(raw, symbols)) {\n return raw;\n }\n var transformNode = transformNodeFactory(context.data);\n var injectNode = injectNodeFactory(context, raw);\n var tree = parseInjectableString(raw, symbols);\n var values = tree.elements.map(node => node.type === \"RawString\" ? node.value : node.symbol === \"$\" ? injectNode(node) : transformNode(node));\n return reduceCompiledValues(values);\n}\nfunction reduceCompiledValues(values) {\n // If the whole string is a placeholder, we should keep the original value.\n if (values.length === 1) {\n return values[0];\n }\n\n // If an element is `undefined`, `null` or an empty array `[]`, it is converted to an empty string.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join#Description\n return values.join(\"\");\n}\nfunction isInjectable(raw, symbols) {\n return getRegExpOfPlaceholder(symbols).test(raw);\n}\nfunction transformNodeFactory(data) {\n return function transformNode(node) {\n // If meet `@{}`, return `data`.\n var result = node.field ? get(data, node.field) : data;\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\nfunction injectNodeFactory(context, raw) {\n return function injectNode(node) {\n var _context$overrideApp, _context$overrideApp2;\n var matches = node.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\\.)?(.+)$/);\n if (!matches) {\n // Keep the original raw partial when meet a unknown namespace.\n return raw.substring(node.loc.start, node.loc.end);\n }\n var [, namespace, subField] = matches;\n\n // Support namespace with no subfield such as `${ANCHOR}`.\n // But distinguish with match params. E.g. `${query}` is a match param.\n if (!namespace && /^[A-Z_]+$/.test(subField)) {\n namespace = subField;\n subField = \"*\";\n }\n var result;\n var SimpleContextMap = {\n SYS: \"sys\",\n FLAGS: \"flags\"\n };\n switch (namespace) {\n case \"QUERY\":\n case \"query\":\n if (subField === \"*\") {\n result = context.query;\n } else {\n result = context.query.has(subField) ? context.query.get(subField) : undefined;\n }\n break;\n case \"QUERY_ARRAY\":\n result = context.query.has(subField) ? context.query.getAll(subField) : undefined;\n break;\n case \"EVENT\":\n case \"event\":\n if (context.event === undefined) {\n // Keep the original raw partial when meet a `${EVENT}` in non-event context.\n return raw.substring(node.loc.start, node.loc.end);\n }\n result = subField === \"*\" ? context.event : get(context.event, subField);\n break;\n case \"APP\":\n result = subField === \"*\" ? (_context$overrideApp = context.overrideApp) !== null && _context$overrideApp !== void 0 ? _context$overrideApp : context.app : get((_context$overrideApp2 = context.overrideApp) !== null && _context$overrideApp2 !== void 0 ? _context$overrideApp2 : context.app, subField);\n break;\n case \"HASH\":\n result = context.location.hash;\n break;\n case \"SYS\":\n case \"FLAGS\":\n result = subField === \"*\" ? context[SimpleContextMap[namespace]] : get(context[SimpleContextMap[namespace]], subField);\n break;\n case \"ANCHOR\":\n {\n var anchor = context.location.hash ? context.location.hash.substr(1) : null;\n result = subField === \"*\" ? anchor : get(anchor, subField);\n break;\n }\n case \"CTX\":\n {\n var original = raw.substring(node.loc.start, node.loc.end);\n // eslint-disable-next-line no-console\n console.error(\"CTX is not supported in placeholder any more: \\\"\".concat(original, \"\\\"\"));\n return original;\n }\n default:\n if (context.match) {\n result = context.match.params[subField];\n } else {\n // If the context is empty, return the original raw partial.\n return raw.substring(node.loc.start, node.loc.end);\n }\n }\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\n//# sourceMappingURL=compile.js.map","import { tokenize } from \"./lexical.js\";\nimport { TokenType } from \"./interfaces.js\";\nexport function parseInjectableString(raw, symbols) {\n return parseTokens(tokenize(raw, symbols));\n}\nfunction parseTokens(tokens) {\n var tree = {\n type: \"InjectableString\",\n elements: []\n };\n var token;\n function optionalToken(type) {\n if (type === tokens[0].type) {\n token = tokens.shift();\n return true;\n }\n return false;\n }\n function acceptToken(type) {\n token = tokens.shift();\n if (Array.isArray(type) ? !type.includes(token.type) : type !== token.type) {\n throw new Error(\"Expected token: \".concat(type, \", received token: \").concat(token.type));\n }\n }\n while (tokens.length > 0) {\n if (optionalToken(TokenType.Raw)) {\n tree.elements.push({\n type: \"RawString\",\n value: token.value\n });\n } else {\n acceptToken(TokenType.BeginPlaceHolder);\n var start = token.loc.start;\n var symbol = token.value;\n acceptToken(TokenType.Field);\n var placeholder = {\n type: \"Placeholder\",\n symbol,\n field: token.value,\n defaultValue: undefined,\n pipes: [],\n loc: {\n start,\n end: start\n }\n };\n tree.elements.push(placeholder);\n if (optionalToken(TokenType.BeginDefault)) {\n acceptToken([TokenType.JsonValue, TokenType.LiteralString]);\n placeholder.defaultValue = token.value;\n }\n while (optionalToken(TokenType.BeginPipe)) {\n acceptToken(TokenType.PipeIdentifier);\n var pipe = {\n type: \"PipeCall\",\n identifier: token.value,\n parameters: []\n };\n placeholder.pipes.push(pipe);\n while (optionalToken(TokenType.BeginPipeParameter)) {\n acceptToken([TokenType.JsonValue, TokenType.LiteralString]);\n pipe.parameters.push(token.value);\n }\n }\n acceptToken(TokenType.EndPlaceHolder);\n placeholder.loc.end = token.loc.end;\n }\n }\n return tree;\n}\n//# sourceMappingURL=syntax.js.map"],"names":["LexicalStatus","TokenType","JsonValueType","getRegExpOfPlaceholder","symbols","RegExp","concat","map","symbol","escapeRegExp","join","eatOptionalRawAndOptionalPlaceholderBegin","context","_subRaw$match","subRaw","getSubRaw","matchedPlaceholder","match","beginPlaceholder","subCursor","indexOf","charAt","length","nextCursor","cursor","tokens","push","type","Raw","value","substring","BeginPlaceHolder","loc","start","end","status","ExpectField","raw","eatWhitespace","eatField","Field","ExpectOptionalBeginDefault","eatOptionalDefault","BeginDefault","ExpectDefaultValue","ExpectOptionalBeginPipe","eatDefaultValue","eatJsonValueOrLiteralString","eatOptionalBeginPipe","BeginPipe","ExpectPipeIdentifier","ExpectPlaceholderEnd","eatPipeIdentifier","matches","Error","JSON","stringify","PipeIdentifier","ExpectOptionalBeginPipeParameter","eatOptionalBeginPipeParameter","BeginPipeParameter","ExpectPipeParameter","eatPipeParameter","eatPlaceholderEnd","EndPlaceHolder","Initial","jsonLiteralMap","Map","nextStatus","test","firstChar","valueType","Array","Object","String","Others","objectBracesToMatch","arrayBracketsToMatch","stringQuotesToClose","stringBackslashToEscape","matched","char","JsonValue","parse","eatJsonValue","has","get","LiteralString","transform","compile","inject","transformAndInject","isInjectable","data","values","transformNode","node","result","field","undefined","defaultValue","processPipes","pipes","injectNode","_context$overrideApp","_context$overrideApp2","namespace","subField","SimpleContextMap","SYS","FLAGS","query","getAll","event","overrideApp","app","location","hash","anchor","substr","original","console","error","params","injectNodeFactory","token","tree","elements","optionalToken","shift","acceptToken","isArray","includes","placeholder","pipe","identifier","parameters","parseTokens","tokenize","parseInjectableString"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/4658.e875061a.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/inject/dist/esm/interfaces.js","webpack:///../../node_modules/@next-core/inject/dist/esm/lexical.js","webpack:///../../node_modules/@next-core/inject/dist/esm/compile.js","webpack:///../../node_modules/@next-core/inject/dist/esm/syntax.js"],"sourcesContent":["export var LexicalStatus = /*#__PURE__*/function (LexicalStatus) {\n LexicalStatus[LexicalStatus[\"Initial\"] = 0] = \"Initial\";\n LexicalStatus[LexicalStatus[\"ExpectField\"] = 1] = \"ExpectField\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginDefault\"] = 2] = \"ExpectOptionalBeginDefault\";\n LexicalStatus[LexicalStatus[\"ExpectDefaultValue\"] = 3] = \"ExpectDefaultValue\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginPipe\"] = 4] = \"ExpectOptionalBeginPipe\";\n LexicalStatus[LexicalStatus[\"ExpectPipeIdentifier\"] = 5] = \"ExpectPipeIdentifier\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginPipeParameter\"] = 6] = \"ExpectOptionalBeginPipeParameter\";\n LexicalStatus[LexicalStatus[\"ExpectPipeParameter\"] = 7] = \"ExpectPipeParameter\";\n LexicalStatus[LexicalStatus[\"ExpectPlaceholderEnd\"] = 8] = \"ExpectPlaceholderEnd\";\n return LexicalStatus;\n}({});\nexport var TokenType = /*#__PURE__*/function (TokenType) {\n TokenType[\"Raw\"] = \"Raw\";\n TokenType[\"BeginPlaceHolder\"] = \"BeginPlaceHolder\";\n TokenType[\"Field\"] = \"Field\";\n TokenType[\"BeginDefault\"] = \"BeginDefault\";\n TokenType[\"LiteralString\"] = \"LiteralString\";\n TokenType[\"BeginPipe\"] = \"BeginPipe\";\n TokenType[\"PipeIdentifier\"] = \"PipeIdentifier\";\n TokenType[\"BeginPipeParameter\"] = \"BeginPipeParameter\";\n TokenType[\"EndPlaceHolder\"] = \"EndPlaceHolder\";\n TokenType[\"JsonValue\"] = \"JsonValue\";\n return TokenType;\n}({});\nexport var JsonValueType = /*#__PURE__*/function (JsonValueType) {\n JsonValueType[JsonValueType[\"Array\"] = 0] = \"Array\";\n JsonValueType[JsonValueType[\"Object\"] = 1] = \"Object\";\n JsonValueType[JsonValueType[\"String\"] = 2] = \"String\";\n JsonValueType[JsonValueType[\"Others\"] = 3] = \"Others\";\n return JsonValueType;\n}({});\n//# sourceMappingURL=interfaces.js.map","import { escapeRegExp } from \"lodash\";\nimport { LexicalStatus, TokenType, JsonValueType } from \"./interfaces.js\";\nexport function getRegExpOfPlaceholder(symbols) {\n return new RegExp(\"(\".concat([].concat(symbols).map(symbol => escapeRegExp(symbol)).join(\"|\"), \")\\\\{\"));\n}\nexport function tokenize(raw, symbols) {\n var context = {\n beginPlaceholder: getRegExpOfPlaceholder(symbols),\n raw,\n cursor: 0,\n status: LexicalStatus.Initial,\n tokens: []\n };\n while (context.cursor < raw.length) {\n switch (context.status) {\n case LexicalStatus.Initial:\n eatOptionalRawAndOptionalPlaceholderBegin(context);\n break;\n case LexicalStatus.ExpectField:\n eatWhitespace(context);\n eatField(context);\n break;\n case LexicalStatus.ExpectOptionalBeginDefault:\n eatWhitespace(context);\n eatOptionalDefault(context);\n break;\n case LexicalStatus.ExpectDefaultValue:\n eatWhitespace(context);\n eatDefaultValue(context);\n break;\n case LexicalStatus.ExpectOptionalBeginPipe:\n eatWhitespace(context);\n eatOptionalBeginPipe(context);\n break;\n case LexicalStatus.ExpectPipeIdentifier:\n eatWhitespace(context);\n eatPipeIdentifier(context);\n break;\n case LexicalStatus.ExpectOptionalBeginPipeParameter:\n eatWhitespace(context);\n eatOptionalBeginPipeParameter(context);\n break;\n case LexicalStatus.ExpectPipeParameter:\n eatWhitespace(context);\n eatPipeParameter(context);\n break;\n case LexicalStatus.ExpectPlaceholderEnd:\n eatWhitespace(context);\n eatPlaceholderEnd(context);\n break;\n }\n }\n if (context.status !== LexicalStatus.Initial) {\n throw new Error(\"Expected a placeholder end '}' at the end\");\n }\n return context.tokens;\n}\nfunction eatOptionalRawAndOptionalPlaceholderBegin(context) {\n var _subRaw$match;\n var subRaw = getSubRaw(context);\n var matchedPlaceholder = (_subRaw$match = subRaw.match(context.beginPlaceholder)) === null || _subRaw$match === void 0 ? void 0 : _subRaw$match[0];\n var subCursor = matchedPlaceholder ? subRaw.indexOf(matchedPlaceholder) : -1;\n if (subCursor >= 0 && matchedPlaceholder && subRaw.charAt(subCursor + matchedPlaceholder.length) !== \"{\") {\n var nextCursor = context.cursor + subCursor;\n if (subCursor > 0) {\n context.tokens.push({\n type: TokenType.Raw,\n value: subRaw.substring(0, subCursor)\n });\n }\n context.tokens.push({\n type: TokenType.BeginPlaceHolder,\n loc: {\n start: nextCursor,\n end: nextCursor + matchedPlaceholder.length\n },\n value: matchedPlaceholder.substring(0, matchedPlaceholder.length - 1)\n });\n context.cursor += subCursor + matchedPlaceholder.length;\n context.status = LexicalStatus.ExpectField;\n } else {\n context.tokens.push({\n type: TokenType.Raw,\n value: subRaw\n });\n context.cursor = context.raw.length;\n }\n}\nfunction eatWhitespace(context) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n context.cursor += getSubRaw(context).match(/^[ \\r\\n\\t]*/)[0].length;\n}\nfunction eatField(context) {\n // Only allow alphanumeric, `_`, `.`, `*`, `[`, `]`, `-` and other non-ascii.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var [value] = getSubRaw(context).match(/^(?:[\\*\\x2D\\.0-9A-\\[\\]_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\n context.tokens.push({\n type: TokenType.Field,\n value\n });\n context.cursor += value.length;\n context.status = LexicalStatus.ExpectOptionalBeginDefault;\n}\nfunction eatOptionalDefault(context) {\n if (getSubRaw(context).charAt(0) === \"=\") {\n context.tokens.push({\n type: TokenType.BeginDefault\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectDefaultValue;\n } else {\n context.status = LexicalStatus.ExpectOptionalBeginPipe;\n }\n}\nfunction eatDefaultValue(context) {\n eatJsonValueOrLiteralString(context, LexicalStatus.ExpectOptionalBeginPipe);\n}\nfunction eatOptionalBeginPipe(context) {\n if (getSubRaw(context).charAt(0) === \"|\") {\n context.tokens.push({\n type: TokenType.BeginPipe\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectPipeIdentifier;\n } else {\n context.status = LexicalStatus.ExpectPlaceholderEnd;\n }\n}\nfunction eatPipeIdentifier(context) {\n var matches = getSubRaw(context).match(/^[a-zA-Z]\\w*/);\n if (!matches) {\n throw new Error(\"Expected a pipe identifier at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n var value = matches[0];\n context.tokens.push({\n type: TokenType.PipeIdentifier,\n value\n });\n context.cursor += value.length;\n context.status = LexicalStatus.ExpectOptionalBeginPipeParameter;\n}\nfunction eatOptionalBeginPipeParameter(context) {\n if (getSubRaw(context).charAt(0) === \":\") {\n context.tokens.push({\n type: TokenType.BeginPipeParameter\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectPipeParameter;\n } else {\n context.status = LexicalStatus.ExpectOptionalBeginPipe;\n }\n}\nfunction eatPipeParameter(context) {\n eatJsonValueOrLiteralString(context, LexicalStatus.ExpectOptionalBeginPipeParameter);\n}\nfunction eatPlaceholderEnd(context) {\n if (getSubRaw(context).charAt(0) === \"}\") {\n context.tokens.push({\n type: TokenType.EndPlaceHolder,\n loc: {\n start: context.cursor,\n end: context.cursor + 1\n }\n });\n context.cursor += 1;\n context.status = LexicalStatus.Initial;\n } else {\n throw new Error(\"Expected a placeholder end '}' at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n}\nvar jsonLiteralMap = new Map([[\"false\", false], [\"null\", null], [\"true\", true]]);\nfunction eatJsonValueOrLiteralString(context, nextStatus) {\n var subRaw = getSubRaw(context);\n if (/[0-9[{\"]/.test(subRaw.charAt(0)) || /-[0-9]/.test(subRaw.substring(0, 2))) {\n eatJsonValue(context, nextStatus);\n } else {\n // Accept any characters except controls and whitespace.\n // Only allow alphanumeric, `_`, `-` and other non-ascii.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var [value] = getSubRaw(context).match(/^(?:[\\x2D0-9A-Z_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\n if (jsonLiteralMap.has(value)) {\n context.tokens.push({\n type: TokenType.JsonValue,\n value: jsonLiteralMap.get(value)\n });\n } else {\n context.tokens.push({\n type: TokenType.LiteralString,\n value\n });\n }\n context.cursor += value.length;\n context.status = nextStatus;\n }\n}\n\n// 我们不需要非常精确地在一段字符串中匹配出一段*完整合法的* JSON value,\n// 而只需要找到一段*可能是完整合法的* JSON value 即可,解析的工作交给 `JSON.parse()`。\n// 由于 JSON 中 object/array/string 的镜像起止符特性,我们尝试去完成这些符号匹配即可。\nfunction eatJsonValue(context, nextStatus) {\n var subRaw = getSubRaw(context);\n var firstChar = subRaw.charAt(0);\n var valueType = firstChar === \"[\" ? JsonValueType.Array : firstChar === \"{\" ? JsonValueType.Object : firstChar === '\"' ? JsonValueType.String : JsonValueType.Others;\n var subCursor = 0;\n var objectBracesToMatch = 0;\n var arrayBracketsToMatch = 0;\n var stringQuotesToClose = false;\n var stringBackslashToEscape = false;\n var matched = false;\n while (subCursor < subRaw.length) {\n var char = subRaw.charAt(subCursor);\n if (stringBackslashToEscape) {\n stringBackslashToEscape = false;\n } else if (stringQuotesToClose) {\n if (char === '\"') {\n stringQuotesToClose = false;\n } else if (char === \"\\\\\") {\n stringBackslashToEscape = true;\n }\n } else {\n switch (char) {\n case \"[\":\n arrayBracketsToMatch += 1;\n break;\n case \"{\":\n objectBracesToMatch += 1;\n break;\n case \"]\":\n arrayBracketsToMatch -= 1;\n break;\n case \"}\":\n objectBracesToMatch -= 1;\n break;\n case '\"':\n stringQuotesToClose = true;\n break;\n }\n }\n subCursor += 1;\n switch (valueType) {\n case JsonValueType.Array:\n matched = !arrayBracketsToMatch;\n break;\n case JsonValueType.Object:\n matched = !objectBracesToMatch;\n break;\n case JsonValueType.String:\n matched = !stringQuotesToClose;\n break;\n default:\n // 对于其它类型,如果下一个字符不再是这些值类型可能的字符时,我们认为 JSON value 完成匹配。\n // 其它可能的值类型:number/boolean/null/undefined。\n matched = subCursor < subRaw.length && /[^a-z0-9E.+-]/.test(subRaw.charAt(subCursor));\n }\n if (matched) {\n break;\n }\n }\n if (!matched) {\n throw new Error(\"Failed to match a JSON value at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n context.tokens.push({\n type: TokenType.JsonValue,\n value: JSON.parse(subRaw.substring(0, subCursor))\n });\n context.cursor += subCursor;\n context.status = nextStatus;\n}\nfunction getSubRaw(context) {\n return context.raw.substring(context.cursor);\n}\n//# sourceMappingURL=lexical.js.map","import { get } from \"lodash\";\nimport { processPipes } from \"@next-core/pipes\";\nimport { parseInjectableString } from \"./syntax.js\";\nimport { getRegExpOfPlaceholder } from \"./lexical.js\";\nexport function transform(raw, context) {\n return compile(raw, \"@\", context);\n}\nexport function inject(raw, context) {\n return compile(raw, \"$\", context);\n}\nexport function transformAndInject(raw, context) {\n return compile(raw, [\"@\", \"$\"], context);\n}\nfunction compile(raw, symbols, context) {\n // const symbols = [\"@\", \"$\"];\n if (!isInjectable(raw, symbols)) {\n return raw;\n }\n var transformNode = transformNodeFactory(context.data);\n var injectNode = injectNodeFactory(context, raw);\n var tree = parseInjectableString(raw, symbols);\n var values = tree.elements.map(node => node.type === \"RawString\" ? node.value : node.symbol === \"$\" ? injectNode(node) : transformNode(node));\n return reduceCompiledValues(values);\n}\nfunction reduceCompiledValues(values) {\n // If the whole string is a placeholder, we should keep the original value.\n if (values.length === 1) {\n return values[0];\n }\n\n // If an element is `undefined`, `null` or an empty array `[]`, it is converted to an empty string.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join#Description\n return values.join(\"\");\n}\nfunction isInjectable(raw, symbols) {\n return getRegExpOfPlaceholder(symbols).test(raw);\n}\nfunction transformNodeFactory(data) {\n return function transformNode(node) {\n // If meet `@{}`, return `data`.\n var result = node.field ? get(data, node.field) : data;\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\nfunction injectNodeFactory(context, raw) {\n return function injectNode(node) {\n var _context$overrideApp, _context$overrideApp2;\n var matches = node.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\\.)?(.+)$/);\n if (!matches) {\n // Keep the original raw partial when meet a unknown namespace.\n return raw.substring(node.loc.start, node.loc.end);\n }\n var [, namespace, subField] = matches;\n\n // Support namespace with no subfield such as `${ANCHOR}`.\n // But distinguish with match params. E.g. `${query}` is a match param.\n if (!namespace && /^[A-Z_]+$/.test(subField)) {\n namespace = subField;\n subField = \"*\";\n }\n var result;\n var SimpleContextMap = {\n SYS: \"sys\",\n FLAGS: \"flags\"\n };\n switch (namespace) {\n case \"QUERY\":\n case \"query\":\n if (subField === \"*\") {\n result = context.query;\n } else {\n result = context.query.has(subField) ? context.query.get(subField) : undefined;\n }\n break;\n case \"QUERY_ARRAY\":\n result = context.query.has(subField) ? context.query.getAll(subField) : undefined;\n break;\n case \"EVENT\":\n case \"event\":\n if (context.event === undefined) {\n // Keep the original raw partial when meet a `${EVENT}` in non-event context.\n return raw.substring(node.loc.start, node.loc.end);\n }\n result = subField === \"*\" ? context.event : get(context.event, subField);\n break;\n case \"APP\":\n result = subField === \"*\" ? (_context$overrideApp = context.overrideApp) !== null && _context$overrideApp !== void 0 ? _context$overrideApp : context.app : get((_context$overrideApp2 = context.overrideApp) !== null && _context$overrideApp2 !== void 0 ? _context$overrideApp2 : context.app, subField);\n break;\n case \"HASH\":\n result = context.location.hash;\n break;\n case \"SYS\":\n case \"FLAGS\":\n result = subField === \"*\" ? context[SimpleContextMap[namespace]] : get(context[SimpleContextMap[namespace]], subField);\n break;\n case \"ANCHOR\":\n {\n var anchor = context.location.hash ? context.location.hash.substr(1) : null;\n result = subField === \"*\" ? anchor : get(anchor, subField);\n break;\n }\n case \"CTX\":\n {\n var original = raw.substring(node.loc.start, node.loc.end);\n // eslint-disable-next-line no-console\n console.error(\"CTX is not supported in placeholder any more: \\\"\".concat(original, \"\\\"\"));\n return original;\n }\n default:\n if (context.match) {\n result = context.match.params[subField];\n } else {\n // If the context is empty, return the original raw partial.\n return raw.substring(node.loc.start, node.loc.end);\n }\n }\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\n//# sourceMappingURL=compile.js.map","import { tokenize } from \"./lexical.js\";\nimport { TokenType } from \"./interfaces.js\";\nexport function parseInjectableString(raw, symbols) {\n return parseTokens(tokenize(raw, symbols));\n}\nfunction parseTokens(tokens) {\n var tree = {\n type: \"InjectableString\",\n elements: []\n };\n var token;\n function optionalToken(type) {\n if (type === tokens[0].type) {\n token = tokens.shift();\n return true;\n }\n return false;\n }\n function acceptToken(type) {\n token = tokens.shift();\n if (Array.isArray(type) ? !type.includes(token.type) : type !== token.type) {\n throw new Error(\"Expected token: \".concat(type, \", received token: \").concat(token.type));\n }\n }\n while (tokens.length > 0) {\n if (optionalToken(TokenType.Raw)) {\n tree.elements.push({\n type: \"RawString\",\n value: token.value\n });\n } else {\n acceptToken(TokenType.BeginPlaceHolder);\n var start = token.loc.start;\n var symbol = token.value;\n acceptToken(TokenType.Field);\n var placeholder = {\n type: \"Placeholder\",\n symbol,\n field: token.value,\n defaultValue: undefined,\n pipes: [],\n loc: {\n start,\n end: start\n }\n };\n tree.elements.push(placeholder);\n if (optionalToken(TokenType.BeginDefault)) {\n acceptToken([TokenType.JsonValue, TokenType.LiteralString]);\n placeholder.defaultValue = token.value;\n }\n while (optionalToken(TokenType.BeginPipe)) {\n acceptToken(TokenType.PipeIdentifier);\n var pipe = {\n type: \"PipeCall\",\n identifier: token.value,\n parameters: []\n };\n placeholder.pipes.push(pipe);\n while (optionalToken(TokenType.BeginPipeParameter)) {\n acceptToken([TokenType.JsonValue, TokenType.LiteralString]);\n pipe.parameters.push(token.value);\n }\n }\n acceptToken(TokenType.EndPlaceHolder);\n placeholder.loc.end = token.loc.end;\n }\n }\n return tree;\n}\n//# sourceMappingURL=syntax.js.map"],"names":["LexicalStatus","TokenType","JsonValueType","getRegExpOfPlaceholder","symbols","RegExp","concat","map","symbol","escapeRegExp","join","eatOptionalRawAndOptionalPlaceholderBegin","context","_subRaw$match","subRaw","getSubRaw","matchedPlaceholder","match","beginPlaceholder","subCursor","indexOf","charAt","length","nextCursor","cursor","tokens","push","type","Raw","value","substring","BeginPlaceHolder","loc","start","end","status","ExpectField","raw","eatWhitespace","eatField","Field","ExpectOptionalBeginDefault","eatOptionalDefault","BeginDefault","ExpectDefaultValue","ExpectOptionalBeginPipe","eatDefaultValue","eatJsonValueOrLiteralString","eatOptionalBeginPipe","BeginPipe","ExpectPipeIdentifier","ExpectPlaceholderEnd","eatPipeIdentifier","matches","Error","JSON","stringify","PipeIdentifier","ExpectOptionalBeginPipeParameter","eatOptionalBeginPipeParameter","BeginPipeParameter","ExpectPipeParameter","eatPipeParameter","eatPlaceholderEnd","EndPlaceHolder","Initial","jsonLiteralMap","Map","nextStatus","test","firstChar","valueType","Array","Object","String","Others","objectBracesToMatch","arrayBracketsToMatch","stringQuotesToClose","stringBackslashToEscape","matched","char","JsonValue","parse","eatJsonValue","has","get","LiteralString","transform","compile","inject","transformAndInject","isInjectable","data","values","transformNode","node","result","field","undefined","defaultValue","processPipes","pipes","injectNode","_context$overrideApp","_context$overrideApp2","namespace","subField","SimpleContextMap","SYS","FLAGS","query","getAll","event","overrideApp","app","location","hash","anchor","substr","original","console","error","params","injectNodeFactory","token","tree","elements","optionalToken","shift","acceptToken","isArray","includes","placeholder","pipe","identifier","parameters","parseTokens","tokenize","parseInjectableString"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[8648],{8648:(i,e,r)=>{r.r(e),r.d(e,{pipes:()=>t,utils:()=>n});var n={};r.r(n),r.d(n,{convertUnitValueByPrecision:()=>Gi,formatUnitValue:()=>Li});var t={};function s(i,e){return i+e}function a(i){return"0"!==i&&Boolean(i)}r.r(t),r.d(t,{add:()=>s,bool:()=>o,boolean:()=>a,cmdbInstanceShowName:()=>d,countBy:()=>c,datetime:()=>p,deltaTime:()=>v,divide:()=>B,equal:()=>m,find:()=>g,findIndex:()=>h,findLast:()=>M,findLastIndex:()=>w,get:()=>k,graphTree:()=>P,groupBy:()=>K,groupByToIndex:()=>C,includes:()=>N,join:()=>A,json:()=>x,jsonStringify:()=>j,keyBy:()=>O,map:()=>I,mapToArray:()=>D,mergeArrayByKey:()=>E,multiply:()=>_,not:()=>H,nullish:()=>U,number:()=>Y,parseTimeRange:()=>q,randomString:()=>F,reverse:()=>J,round:()=>ji,slice:()=>W,sort:()=>z,split:()=>V,string:()=>Q,substr:()=>X,substring:()=>Z,subtract:()=>$,ternary:()=>ii,uniq:()=>ei,unitFormat:()=>Ci,yaml:()=>Ai,yamlStringify:()=>xi});var o=a;function d(i){if(Array.isArray(i)){var e=i[0]||"-",r=i.slice(1,i.length).join(",");return r?e+"("+r+")":e}return i}var u=r(7224);function c(i,e){return(0,u.countBy)(i,e)}var l=r(2096),y=r.n(l);function p(i,e){return y()(i).format(e)}function f(i){return"object"==typeof i&&null!==i}function b(i,e){return"number"==typeof i?y()(i):y()(i,e)}function v(i,e,r){if(void 0===e&&(e=!0),void 0===r&&(r="YYYY-MM-DD HH:mm:ss"),!i)return"";if(f(i)&&i.startTime&&i.endTime){var n=b(i.startTime,r),t=b(i.endTime,r);return y().duration(t.diff(n)).humanize(e)}var s=b(f(i)?i.startTime||i.endTime:i,r);return y().duration(s.diff(y()())).humanize(e)}function B(i,e){return i/e}function m(i,e){return(0,u.isEqual)(i,e)}function g(i,e,r){return(0,u.find)(i,e,r)}function h(i,e,r){return(0,u.findIndex)(i,e,r)}function M(i,e,r){return(0,u.findLast)(i,e,r)}function w(i,e,r){return(0,u.findLastIndex)(i,e,r)}function k(i,e,r){return(0,u.get)(i,e,r)}function P(i,e){var r,n;if(!i)return[];var t=null==e?void 0:e.sort,s=(0,u.groupBy)(i.edges,"out"),a=function(e){var r=s[e.instanceId];if((0,u.forEach)(r,(function(r){var n=r.out_name,t=(0,u.find)(i.vertices,["instanceId",r.in]);if(t){var s=a(t);e[n]?e[n].push(s):e[n]=[s]}})),t){var n=(0,u.uniq)((0,u.map)(r,"out_name"));(0,u.forEach)(n,(function(i){(0,u.isEmpty)(e[i])||(e[i]=(0,u.orderBy)(e[i],(function(i){var e;return null!==(e=(0,u.get)(i,t.key))&&void 0!==e?e:-1/0}),-1===t.order?"desc":"asc"))}))}return e};return null!==(n=null===(r=i.topic_vertices)||void 0===r?void 0:r.map((function(i){return a(i)})))&&void 0!==n?n:[]}function K(i,e){return(0,u.groupBy)(i,e)}var S,T,G=function(){return G=Object.assign||function(i){for(var e,r=1,n=arguments.length;r<n;r++)for(var t in e=arguments[r])Object.prototype.hasOwnProperty.call(e,t)&&(i[t]=e[t]);return i},G.apply(this,arguments)};function L(){for(var i=0,e=0,r=arguments.length;e<r;e++)i+=arguments[e].length;var n=Array(i),t=0;for(e=0;e<r;e++)for(var s=arguments[e],a=0,o=s.length;a<o;a++,t++)n[t]=s[a];return n}function C(i,e,r){var n=i;if(!(0,u.isNil)(e)&&!(0,u.isNil)(r)){var t=(0,u.groupBy)(i,e),s=(0,u.keys)(t).sort();n=n.map((function(i){var n=G({},i);return(0,u.set)(n,r,(0,u.indexOf)(s,(0,u.get)(i,e))),n}))}return n}function N(i,e){return i.includes(e)}function A(i,e){return void 0===e&&(e=","),Array.isArray(i)?i.join(e):""}function x(i){if((0,u.isNil)(i))return i;try{return JSON.parse(i)}catch(i){return void console.error(i)}}function j(i,e){void 0===e&&(e=2);try{return JSON.stringify(i,null,e)}catch(i){return void console.error(i)}}function O(i,e){return(0,u.keyBy)(i,e)}function I(i,e){return Array.isArray(i)?i.map((function(i){return(0,u.get)(i,e)})):[]}function D(i,e,r){return"object"==typeof i&&i?Object.entries(i).map((function(i){var n,t=i[0],s=i[1];return(n={})[e]=t,n[r]=s,n})):[]}function E(i,e){return i.reduce((function(i,r){return Object.values((0,u.mergeWith)((0,u.keyBy)(i,e),(0,u.keyBy)(r,e),R))}),[])}function R(i,e){if((0,u.isArray)(i))return i.concat(e)}function _(i,e){return i*e}function H(i){return!i}function U(i,e){return null!=i?i:e}function Y(i){return Number(i)}function q(i){if("now/d"===i)return+y()().startOf("day");if("now/y"===i)return+y()().startOf("year");var e=/^now-(\d+)(\w+)/.exec(i);if(null!==e){var r=e[1],n=e[2];return+y()().subtract(r,n)}return i?+i:+y()()}function F(i,e){i=i>0?i:8,e="string"==typeof e?e:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(var r="",n=0;n<i;n++)r+=e.charAt(Math.floor(Math.random()*e.length));return r}function J(i){return Array.isArray(i)?i.slice().reverse():[]}function W(i,e,r){return i.slice(e,r)}function z(i,e){return Array.isArray(i)?(0,u.sortBy)(i,e):[]}function V(i,e){return"string"==typeof i?i.split(e):[]}function Q(i){return null==i?"":String(i)}function X(i,e,r){return"string"==typeof i?i.substr(e,r):""}function Z(i,e,r){return"string"==typeof i?i.substring(e,r):""}function $(i,e){return i-e}function ii(i,e,r){return i?e:r}function ei(i){return(0,u.uniq)(i)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError,function(i){i.Time="time",i.Byte="byte",i.Bibyte="bibyte",i.BitRate="bitRate",i.ByteRate="byteRate"}(S||(S={})),function(i){i.Percent1="percent(1)",i.Percent100="percent(100)"}(T||(T={}));var ri,ni=[T.Percent1,T.Percent100];!function(i){i.Bytes="bytes",i.Kilobytes="kilobytes",i.Megabytes="megabytes",i.Gigabytes="gigabytes",i.Terabytes="terabytes",i.Petabytes="petabytes",i.Bibytes="bibytes",i.Kibibytes="kibibytes",i.Mebibytes="mebibytes",i.Gibibytes="gibibytes",i.Tebibytes="tebibytes",i.Pebibytes="pebibytes",i.b="b",i.B="B",i.KB="KB",i.MB="MB",i.GB="GB"}(ri||(ri={}));var ti,si=[{id:ri.Bytes,alias:["B","bytes(B)"],divisor:1,display:"B"},{id:ri.Kilobytes,alias:["KB","kilobytes(KB)"],divisor:1e3,display:"KB"},{id:ri.Megabytes,alias:["MB","megabytes(MB)"],divisor:Math.pow(1e3,2),display:"MB"},{id:ri.Gigabytes,alias:["GB","gigabytes(GB)"],divisor:Math.pow(1e3,3),display:"GB"},{id:ri.Terabytes,alias:["TB","terabytes(TB)"],divisor:Math.pow(1e3,4),display:"TB"},{id:ri.Petabytes,alias:["PB","petabytes(PB)"],divisor:Math.pow(1e3,5),display:"PB"}],ai=[{id:ri.Bibytes,alias:["B","bibytes(B)"],divisor:1,display:"B"},{id:ri.Kibibytes,alias:["KiB","kibibytes(KiB)"],divisor:1024,display:"KiB"},{id:ri.Mebibytes,alias:["MiB","mebibytes(MiB)"],divisor:Math.pow(1024,2),display:"MiB"},{id:ri.Gibibytes,alias:["GiB","gibibytes(GiB)"],divisor:Math.pow(1024,3),display:"GiB"},{id:ri.Tebibytes,alias:["TiB","tebibytes(TiB)"],divisor:Math.pow(1024,4),display:"TiB"},{id:ri.Pebibytes,alias:["PiB","pebibytes(PiB)"],divisor:Math.pow(1024,5),display:"PiB"}],oi=[{id:ri.b,divisor:1,display:"b"},{id:ri.B,divisor:8,display:"B"},{id:ri.KB,divisor:8192,display:"KB"},{id:ri.MB,divisor:8388608,display:"MB"},{id:ri.GB,divisor:8589934592,display:"GB"}];!function(i){i.BitsPerSecond="bits/sec",i.KilobitsPerSecond="kilobits/sec",i.MegabitsPerSecond="megabits/sec",i.GigabitsPerSecond="gigabits/sec",i.BytesPerSecond="bytes/sec",i.KilobytesPerSecond="kilobytes/sec",i.MegabytesPerSecond="megabytes/sec",i.GigabytesPerSecond="gigabytes/sec",i.bps="bps",i.Bps="Bps",i.KBps="KBps",i.MBps="MBps",i.GBps="GBps"}(ti||(ti={}));var di,ui=[{id:ti.BitsPerSecond,alias:["bps","bits/sec(bps)"],divisor:1,display:"bps"},{id:ti.KilobitsPerSecond,alias:["Kbps","kilobits/sec(Kbps)"],divisor:1024,display:"Kbps"},{id:ti.MegabitsPerSecond,alias:["Mbps","megabits/sec(Mbps)"],divisor:1048576,display:"Mbps"},{id:ti.GigabitsPerSecond,alias:["Gbps","gigabits/sec(Gbps)"],divisor:1073741824,display:"Gbps"}],ci=[{id:ti.BytesPerSecond,alias:["Bps","bytes/sec(Bps)"],divisor:8,display:"Bps"},{id:ti.KilobytesPerSecond,alias:["KBps","kilobytes/sec(KBps)"],divisor:8192,display:"KBps"},{id:ti.MegabytesPerSecond,alias:["MBps","megabytes/sec(MBps)"],divisor:8388608,display:"MBps"},{id:ti.GigabytesPerSecond,alias:["GBps","gigabytes/sec(GBps)"],divisor:8589934592,display:"GBps"}],li=[{id:ti.bps,divisor:1,display:"bps"},{id:ti.Bps,divisor:8,display:"Bps"},{id:ti.KBps,divisor:8192,display:"KBps"},{id:ti.MBps,divisor:8388608,display:"MBps"},{id:ti.GBps,divisor:8589934592,display:"GBps"}];!function(i){i.Nanosecond="nanoseconds",i.Microsecond="microseconds",i.Milliseconds="milliseconds",i.Seconds="seconds",i.Minutes="minutes",i.Hours="hours",i.Days="days",i.Weeks="weeks",i.Months="months",i.Years="years",i.ms="ms",i.s="s",i.min="min",i.hour="hour",i.day="day",i.week="week"}(di||(di={}));var yi,pi,fi=[{id:di.Nanosecond,alias:["ns","nanoseconds(ns)"],divisor:1,display:"ns"},{id:di.Microsecond,alias:["μs","microseconds(μs)"],divisor:1e3,display:"μs"},{id:di.Milliseconds,alias:["ms","milliseconds(ms)"],divisor:1e6,display:"ms"},{id:di.Seconds,alias:["s","seconds(s)"],divisor:1e9,display:"s"},{id:di.Minutes,alias:["min","minutes(min)"],divisor:6e10,display:"min"},{id:di.Hours,alias:["hour","hours(hour)"],divisor:36e11,display:"hour"},{id:di.Days,alias:["day","days(day)"],divisor:864e11,display:"day"},{id:di.Weeks,alias:["week","weeks(week)"],divisor:6048e11,display:"week"},{id:di.Months,alias:["month","months(month)"],divisor:2592e12,display:"month"},{id:di.Years,alias:["year","years(year)"],divisor:31536e12,display:"year"}];di.ms,di.s,di.min,di.hour,di.day,di.week,(yi={})[S.Time]=fi,yi[S.Byte]=si,yi[S.Bibyte]=ai,yi[S.BitRate]=ui,yi[S.ByteRate]=ci,function(i){i.None="none",i.K="K",i.M="M",i.B="B",i.T="T"}(pi||(pi={}));var bi,vi,Bi=[{id:pi.None,divisor:1,display:""},{id:pi.K,divisor:1e3,display:"K"},{id:pi.M,divisor:1e6,display:"M"},{id:pi.B,divisor:1e9,display:"B"},{id:pi.T,divisor:1e12,display:"T"}],mi=function(i,e){return i.id.toLocaleLowerCase()===(null==e?void 0:e.toLocaleLowerCase())||i.alias&&i.alias.map((function(i){return i.toLocaleLowerCase()})).includes(e)},gi=function(i,e){return i.id.toLocaleLowerCase()===(null==e?void 0:e.toLocaleLowerCase())||i.alias&&i.alias.includes(e)},hi=[fi],Mi=[].concat.apply([],hi.map((function(i){return L(i.map((function(i){return i.id})),[].concat.apply([],i.map((function(i){return i.alias?i.alias:[]}))))}))),wi=[si,ai,oi],ki=[].concat.apply([],wi.map((function(i){return L(i.map((function(i){return i.id})),[].concat.apply([],i.map((function(i){return i.alias?i.alias:[]}))))}))),Pi=[ui,ci,li],Ki=[].concat.apply([],Pi.map((function(i){return L(i.map((function(i){return i.id})),[].concat.apply([],i.map((function(i){return i.alias?i.alias:[]}))))}))),Si=function(i,e,r){var n=0,t=Math.sign(i),s=Math.abs(i);if(e){var a=Bi.findIndex((function(i){return i.id.toLocaleLowerCase()===e.toLocaleLowerCase()}));-1!==a&&(n=a)}for(var o=Bi[n],d=n+1;d<Bi.length&&s/(Bi[d].divisor/Bi[n].divisor)>=1;++d)o=Bi[d];return o.id===pi.None?(t*s).toFixed(null!=r?r:2):(s/(o.divisor/Bi[n].divisor)*t).toFixed(null!=r?r:2)+o.display};!function(i){i.None="none",i.Short="short",i.Percent="percent",i.Time="time",i.Data="data",i.DataRate="data_rate"}(vi||(vi={}));var Ti=((bi={})[vi.None]=[],bi[vi.Short]=[],bi[vi.Percent]=ni,bi[vi.Time]=Mi,bi[vi.Data]=ki,bi[vi.DataRate]=Ki,bi),Gi=function(i,e){return void 0===e?i.toString():i.toFixed(e)},Li=function(i,e){if(!e)return[Si(i),null];var r=e.type;r||(e.unit?(r=vi.Short,Object.entries(Ti).map((function(i){var n=i[0];i[1].map((function(i){return i.toLocaleLowerCase()})).includes(e.unit.toLocaleLowerCase())&&(r=n)}))):r=vi.None);var n=void 0===(null==e?void 0:e.precision)?2:e.precision;switch(r){case vi.Percent:var t=function(i,e){return e&&e.toLocaleLowerCase()===T.Percent100.toLocaleLowerCase()?i:100*i}(i,e.unit);return[Gi(t,n)+"%",null];case vi.Time:var s=function(i,e,r){var n=0,t=2,s=-1;if(e)for(var a=function(i){var a=-1,o=-1;if(hi[i].forEach((function(i,n){mi(i,e)&&(a=n),mi(i,r)&&(o=n)})),-1!==a)return n=i,t=a,s=o,"break"},o=0;o<hi.length&&"break"!==a(o);++o);else r&&(s=hi[n].findIndex((function(i){return mi(i,r)})));var d=hi[n],u=d[t],c=u;if(-1===s)for(o=t+1;o<d.length&&i/(d[o].divisor/u.divisor)>=1;++o)c=d[o];else c=d[s];return r&&-1===s&&console.warn('Cannot convert unit "'+(e||u.display)+'" to "'+r+'"'),[i/(c.divisor/u.divisor),c.display]}(i,e.unit,e.targetUnit),a=s[0],o=s[1];return[""+Gi(a,void 0===(null==e?void 0:e.precision)?1:e.precision),o];case vi.Data:var d=function(i,e,r){var n=wi.length-1,t=0,s=-1,a=Math.sign(i),o=Math.abs(i);if(e)for(var d=function(i){var a=-1,o=-1;if(wi[i].forEach((function(i,n){gi(i,e)&&(a=n),gi(i,r)&&(o=n)})),-1!==a)return n=i,t=a,s=o,"break"},u=0;u<wi.length&&"break"!==d(u);++u);else r&&(s=wi[n].findIndex((function(i){return gi(i,r)})));var c=wi[n],l=c[t],y=l;if(-1===s)for(u=t+1;u<c.length&&o/(c[u].divisor/l.divisor)>=1;++u)y=c[u];else y=c[s];return r&&-1===s&&console.warn('Cannot convert unit "'+(e||l.display)+'" to "'+r+'"'),[o/(y.divisor/l.divisor)*a,y.display]}(i,e.unit,e.targetUnit),u=d[0],c=d[1];return[""+Gi(u,n),c];case vi.DataRate:var l=function(i,e,r){var n=Pi.length-1,t=0,s=-1,a=Math.sign(i),o=Math.abs(i);if(e)for(var d=function(i){var a=-1,o=-1;if(Pi[i].forEach((function(i,n){mi(i,e)&&(a=n),mi(i,r)&&(o=n)})),-1!==a)return n=i,t=a,s=o,"break"},u=0;u<Pi.length&&"break"!==d(u);++u);else r&&(s=Pi[n].findIndex((function(i){return mi(i,r)})));var c=Pi[n],l=c[t],y=l;if(-1===s)for(u=t+1;u<c.length&&o/(c[u].divisor/l.divisor)>=1;++u)y=c[u];else y=c[s];return r&&-1===s&&console.warn('Cannot convert unit "'+(e||l.display)+'" to "'+r+'"'),[o/(y.divisor/l.divisor)*a,y.display]}(i,e.unit,e.targetUnit),y=l[0],p=l[1];return[""+Gi(y,n),p];case vi.None:return[Gi(i,n),""];default:return[Si(i,e.unit,n),e.unit]}};function Ci(i,e,r,n){return void 0===r&&(r=2),Li(i,{unit:e,precision:r,targetUnit:n})}var Ni=r(6712);function Ai(i){var e;try{e=(0,Ni.safeLoad)(i,{schema:Ni.JSON_SCHEMA,json:!0})}catch(i){console.error(i)}return e}function xi(i,e,r){var n;void 0===e&&(e=2);try{n=(0,Ni.safeDump)(i,{indent:e,schema:Ni.JSON_SCHEMA,skipInvalid:!0,noRefs:!0,noCompatMode:!0,sortKeys:null==r?void 0:r.sortKeys})}catch(i){console.error(i)}return n}function ji(i,e){return(0,u.round)(i,e)}}}]);
2
- //# sourceMappingURL=8648.55f9fafb.js.map
1
+ "use strict";(self.webpackChunk_next_bricks_diagram=self.webpackChunk_next_bricks_diagram||[]).push([[4741],{4741:(i,e,r)=>{r.r(e),r.d(e,{pipes:()=>t,utils:()=>n});var n={};r.r(n),r.d(n,{convertUnitValueByPrecision:()=>Gi,formatUnitValue:()=>Li});var t={};function s(i,e){return i+e}function a(i){return"0"!==i&&Boolean(i)}r.r(t),r.d(t,{add:()=>s,bool:()=>o,boolean:()=>a,cmdbInstanceShowName:()=>d,countBy:()=>c,datetime:()=>p,deltaTime:()=>v,divide:()=>B,equal:()=>m,find:()=>g,findIndex:()=>h,findLast:()=>M,findLastIndex:()=>w,get:()=>k,graphTree:()=>P,groupBy:()=>K,groupByToIndex:()=>C,includes:()=>N,join:()=>A,json:()=>x,jsonStringify:()=>j,keyBy:()=>O,map:()=>I,mapToArray:()=>D,mergeArrayByKey:()=>E,multiply:()=>_,not:()=>H,nullish:()=>U,number:()=>Y,parseTimeRange:()=>q,randomString:()=>F,reverse:()=>J,round:()=>ji,slice:()=>W,sort:()=>z,split:()=>V,string:()=>Q,substr:()=>X,substring:()=>Z,subtract:()=>$,ternary:()=>ii,uniq:()=>ei,unitFormat:()=>Ci,yaml:()=>Ai,yamlStringify:()=>xi});var o=a;function d(i){if(Array.isArray(i)){var e=i[0]||"-",r=i.slice(1,i.length).join(",");return r?e+"("+r+")":e}return i}var u=r(5521);function c(i,e){return(0,u.countBy)(i,e)}var l=r(8297),y=r.n(l);function p(i,e){return y()(i).format(e)}function f(i){return"object"==typeof i&&null!==i}function b(i,e){return"number"==typeof i?y()(i):y()(i,e)}function v(i,e,r){if(void 0===e&&(e=!0),void 0===r&&(r="YYYY-MM-DD HH:mm:ss"),!i)return"";if(f(i)&&i.startTime&&i.endTime){var n=b(i.startTime,r),t=b(i.endTime,r);return y().duration(t.diff(n)).humanize(e)}var s=b(f(i)?i.startTime||i.endTime:i,r);return y().duration(s.diff(y()())).humanize(e)}function B(i,e){return i/e}function m(i,e){return(0,u.isEqual)(i,e)}function g(i,e,r){return(0,u.find)(i,e,r)}function h(i,e,r){return(0,u.findIndex)(i,e,r)}function M(i,e,r){return(0,u.findLast)(i,e,r)}function w(i,e,r){return(0,u.findLastIndex)(i,e,r)}function k(i,e,r){return(0,u.get)(i,e,r)}function P(i,e){var r,n;if(!i)return[];var t=null==e?void 0:e.sort,s=(0,u.groupBy)(i.edges,"out"),a=function(e){var r=s[e.instanceId];if((0,u.forEach)(r,(function(r){var n=r.out_name,t=(0,u.find)(i.vertices,["instanceId",r.in]);if(t){var s=a(t);e[n]?e[n].push(s):e[n]=[s]}})),t){var n=(0,u.uniq)((0,u.map)(r,"out_name"));(0,u.forEach)(n,(function(i){(0,u.isEmpty)(e[i])||(e[i]=(0,u.orderBy)(e[i],(function(i){var e;return null!==(e=(0,u.get)(i,t.key))&&void 0!==e?e:-1/0}),-1===t.order?"desc":"asc"))}))}return e};return null!==(n=null===(r=i.topic_vertices)||void 0===r?void 0:r.map((function(i){return a(i)})))&&void 0!==n?n:[]}function K(i,e){return(0,u.groupBy)(i,e)}var S,T,G=function(){return G=Object.assign||function(i){for(var e,r=1,n=arguments.length;r<n;r++)for(var t in e=arguments[r])Object.prototype.hasOwnProperty.call(e,t)&&(i[t]=e[t]);return i},G.apply(this,arguments)};function L(){for(var i=0,e=0,r=arguments.length;e<r;e++)i+=arguments[e].length;var n=Array(i),t=0;for(e=0;e<r;e++)for(var s=arguments[e],a=0,o=s.length;a<o;a++,t++)n[t]=s[a];return n}function C(i,e,r){var n=i;if(!(0,u.isNil)(e)&&!(0,u.isNil)(r)){var t=(0,u.groupBy)(i,e),s=(0,u.keys)(t).sort();n=n.map((function(i){var n=G({},i);return(0,u.set)(n,r,(0,u.indexOf)(s,(0,u.get)(i,e))),n}))}return n}function N(i,e){return i.includes(e)}function A(i,e){return void 0===e&&(e=","),Array.isArray(i)?i.join(e):""}function x(i){if((0,u.isNil)(i))return i;try{return JSON.parse(i)}catch(i){return void console.error(i)}}function j(i,e){void 0===e&&(e=2);try{return JSON.stringify(i,null,e)}catch(i){return void console.error(i)}}function O(i,e){return(0,u.keyBy)(i,e)}function I(i,e){return Array.isArray(i)?i.map((function(i){return(0,u.get)(i,e)})):[]}function D(i,e,r){return"object"==typeof i&&i?Object.entries(i).map((function(i){var n,t=i[0],s=i[1];return(n={})[e]=t,n[r]=s,n})):[]}function E(i,e){return i.reduce((function(i,r){return Object.values((0,u.mergeWith)((0,u.keyBy)(i,e),(0,u.keyBy)(r,e),R))}),[])}function R(i,e){if((0,u.isArray)(i))return i.concat(e)}function _(i,e){return i*e}function H(i){return!i}function U(i,e){return null!=i?i:e}function Y(i){return Number(i)}function q(i){if("now/d"===i)return+y()().startOf("day");if("now/y"===i)return+y()().startOf("year");var e=/^now-(\d+)(\w+)/.exec(i);if(null!==e){var r=e[1],n=e[2];return+y()().subtract(r,n)}return i?+i:+y()()}function F(i,e){i=i>0?i:8,e="string"==typeof e?e:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(var r="",n=0;n<i;n++)r+=e.charAt(Math.floor(Math.random()*e.length));return r}function J(i){return Array.isArray(i)?i.slice().reverse():[]}function W(i,e,r){return i.slice(e,r)}function z(i,e){return Array.isArray(i)?(0,u.sortBy)(i,e):[]}function V(i,e){return"string"==typeof i?i.split(e):[]}function Q(i){return null==i?"":String(i)}function X(i,e,r){return"string"==typeof i?i.substr(e,r):""}function Z(i,e,r){return"string"==typeof i?i.substring(e,r):""}function $(i,e){return i-e}function ii(i,e,r){return i?e:r}function ei(i){return(0,u.uniq)(i)}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError,function(i){i.Time="time",i.Byte="byte",i.Bibyte="bibyte",i.BitRate="bitRate",i.ByteRate="byteRate"}(S||(S={})),function(i){i.Percent1="percent(1)",i.Percent100="percent(100)"}(T||(T={}));var ri,ni=[T.Percent1,T.Percent100];!function(i){i.Bytes="bytes",i.Kilobytes="kilobytes",i.Megabytes="megabytes",i.Gigabytes="gigabytes",i.Terabytes="terabytes",i.Petabytes="petabytes",i.Bibytes="bibytes",i.Kibibytes="kibibytes",i.Mebibytes="mebibytes",i.Gibibytes="gibibytes",i.Tebibytes="tebibytes",i.Pebibytes="pebibytes",i.b="b",i.B="B",i.KB="KB",i.MB="MB",i.GB="GB"}(ri||(ri={}));var ti,si=[{id:ri.Bytes,alias:["B","bytes(B)"],divisor:1,display:"B"},{id:ri.Kilobytes,alias:["KB","kilobytes(KB)"],divisor:1e3,display:"KB"},{id:ri.Megabytes,alias:["MB","megabytes(MB)"],divisor:Math.pow(1e3,2),display:"MB"},{id:ri.Gigabytes,alias:["GB","gigabytes(GB)"],divisor:Math.pow(1e3,3),display:"GB"},{id:ri.Terabytes,alias:["TB","terabytes(TB)"],divisor:Math.pow(1e3,4),display:"TB"},{id:ri.Petabytes,alias:["PB","petabytes(PB)"],divisor:Math.pow(1e3,5),display:"PB"}],ai=[{id:ri.Bibytes,alias:["B","bibytes(B)"],divisor:1,display:"B"},{id:ri.Kibibytes,alias:["KiB","kibibytes(KiB)"],divisor:1024,display:"KiB"},{id:ri.Mebibytes,alias:["MiB","mebibytes(MiB)"],divisor:Math.pow(1024,2),display:"MiB"},{id:ri.Gibibytes,alias:["GiB","gibibytes(GiB)"],divisor:Math.pow(1024,3),display:"GiB"},{id:ri.Tebibytes,alias:["TiB","tebibytes(TiB)"],divisor:Math.pow(1024,4),display:"TiB"},{id:ri.Pebibytes,alias:["PiB","pebibytes(PiB)"],divisor:Math.pow(1024,5),display:"PiB"}],oi=[{id:ri.b,divisor:1,display:"b"},{id:ri.B,divisor:8,display:"B"},{id:ri.KB,divisor:8192,display:"KB"},{id:ri.MB,divisor:8388608,display:"MB"},{id:ri.GB,divisor:8589934592,display:"GB"}];!function(i){i.BitsPerSecond="bits/sec",i.KilobitsPerSecond="kilobits/sec",i.MegabitsPerSecond="megabits/sec",i.GigabitsPerSecond="gigabits/sec",i.BytesPerSecond="bytes/sec",i.KilobytesPerSecond="kilobytes/sec",i.MegabytesPerSecond="megabytes/sec",i.GigabytesPerSecond="gigabytes/sec",i.bps="bps",i.Bps="Bps",i.KBps="KBps",i.MBps="MBps",i.GBps="GBps"}(ti||(ti={}));var di,ui=[{id:ti.BitsPerSecond,alias:["bps","bits/sec(bps)"],divisor:1,display:"bps"},{id:ti.KilobitsPerSecond,alias:["Kbps","kilobits/sec(Kbps)"],divisor:1024,display:"Kbps"},{id:ti.MegabitsPerSecond,alias:["Mbps","megabits/sec(Mbps)"],divisor:1048576,display:"Mbps"},{id:ti.GigabitsPerSecond,alias:["Gbps","gigabits/sec(Gbps)"],divisor:1073741824,display:"Gbps"}],ci=[{id:ti.BytesPerSecond,alias:["Bps","bytes/sec(Bps)"],divisor:8,display:"Bps"},{id:ti.KilobytesPerSecond,alias:["KBps","kilobytes/sec(KBps)"],divisor:8192,display:"KBps"},{id:ti.MegabytesPerSecond,alias:["MBps","megabytes/sec(MBps)"],divisor:8388608,display:"MBps"},{id:ti.GigabytesPerSecond,alias:["GBps","gigabytes/sec(GBps)"],divisor:8589934592,display:"GBps"}],li=[{id:ti.bps,divisor:1,display:"bps"},{id:ti.Bps,divisor:8,display:"Bps"},{id:ti.KBps,divisor:8192,display:"KBps"},{id:ti.MBps,divisor:8388608,display:"MBps"},{id:ti.GBps,divisor:8589934592,display:"GBps"}];!function(i){i.Nanosecond="nanoseconds",i.Microsecond="microseconds",i.Milliseconds="milliseconds",i.Seconds="seconds",i.Minutes="minutes",i.Hours="hours",i.Days="days",i.Weeks="weeks",i.Months="months",i.Years="years",i.ms="ms",i.s="s",i.min="min",i.hour="hour",i.day="day",i.week="week"}(di||(di={}));var yi,pi,fi=[{id:di.Nanosecond,alias:["ns","nanoseconds(ns)"],divisor:1,display:"ns"},{id:di.Microsecond,alias:["μs","microseconds(μs)"],divisor:1e3,display:"μs"},{id:di.Milliseconds,alias:["ms","milliseconds(ms)"],divisor:1e6,display:"ms"},{id:di.Seconds,alias:["s","seconds(s)"],divisor:1e9,display:"s"},{id:di.Minutes,alias:["min","minutes(min)"],divisor:6e10,display:"min"},{id:di.Hours,alias:["hour","hours(hour)"],divisor:36e11,display:"hour"},{id:di.Days,alias:["day","days(day)"],divisor:864e11,display:"day"},{id:di.Weeks,alias:["week","weeks(week)"],divisor:6048e11,display:"week"},{id:di.Months,alias:["month","months(month)"],divisor:2592e12,display:"month"},{id:di.Years,alias:["year","years(year)"],divisor:31536e12,display:"year"}];di.ms,di.s,di.min,di.hour,di.day,di.week,(yi={})[S.Time]=fi,yi[S.Byte]=si,yi[S.Bibyte]=ai,yi[S.BitRate]=ui,yi[S.ByteRate]=ci,function(i){i.None="none",i.K="K",i.M="M",i.B="B",i.T="T"}(pi||(pi={}));var bi,vi,Bi=[{id:pi.None,divisor:1,display:""},{id:pi.K,divisor:1e3,display:"K"},{id:pi.M,divisor:1e6,display:"M"},{id:pi.B,divisor:1e9,display:"B"},{id:pi.T,divisor:1e12,display:"T"}],mi=function(i,e){return i.id.toLocaleLowerCase()===(null==e?void 0:e.toLocaleLowerCase())||i.alias&&i.alias.map((function(i){return i.toLocaleLowerCase()})).includes(e)},gi=function(i,e){return i.id.toLocaleLowerCase()===(null==e?void 0:e.toLocaleLowerCase())||i.alias&&i.alias.includes(e)},hi=[fi],Mi=[].concat.apply([],hi.map((function(i){return L(i.map((function(i){return i.id})),[].concat.apply([],i.map((function(i){return i.alias?i.alias:[]}))))}))),wi=[si,ai,oi],ki=[].concat.apply([],wi.map((function(i){return L(i.map((function(i){return i.id})),[].concat.apply([],i.map((function(i){return i.alias?i.alias:[]}))))}))),Pi=[ui,ci,li],Ki=[].concat.apply([],Pi.map((function(i){return L(i.map((function(i){return i.id})),[].concat.apply([],i.map((function(i){return i.alias?i.alias:[]}))))}))),Si=function(i,e,r){var n=0,t=Math.sign(i),s=Math.abs(i);if(e){var a=Bi.findIndex((function(i){return i.id.toLocaleLowerCase()===e.toLocaleLowerCase()}));-1!==a&&(n=a)}for(var o=Bi[n],d=n+1;d<Bi.length&&s/(Bi[d].divisor/Bi[n].divisor)>=1;++d)o=Bi[d];return o.id===pi.None?(t*s).toFixed(null!=r?r:2):(s/(o.divisor/Bi[n].divisor)*t).toFixed(null!=r?r:2)+o.display};!function(i){i.None="none",i.Short="short",i.Percent="percent",i.Time="time",i.Data="data",i.DataRate="data_rate"}(vi||(vi={}));var Ti=((bi={})[vi.None]=[],bi[vi.Short]=[],bi[vi.Percent]=ni,bi[vi.Time]=Mi,bi[vi.Data]=ki,bi[vi.DataRate]=Ki,bi),Gi=function(i,e){return void 0===e?i.toString():i.toFixed(e)},Li=function(i,e){if(!e)return[Si(i),null];var r=e.type;r||(e.unit?(r=vi.Short,Object.entries(Ti).map((function(i){var n=i[0];i[1].map((function(i){return i.toLocaleLowerCase()})).includes(e.unit.toLocaleLowerCase())&&(r=n)}))):r=vi.None);var n=void 0===(null==e?void 0:e.precision)?2:e.precision;switch(r){case vi.Percent:var t=function(i,e){return e&&e.toLocaleLowerCase()===T.Percent100.toLocaleLowerCase()?i:100*i}(i,e.unit);return[Gi(t,n)+"%",null];case vi.Time:var s=function(i,e,r){var n=0,t=2,s=-1;if(e)for(var a=function(i){var a=-1,o=-1;if(hi[i].forEach((function(i,n){mi(i,e)&&(a=n),mi(i,r)&&(o=n)})),-1!==a)return n=i,t=a,s=o,"break"},o=0;o<hi.length&&"break"!==a(o);++o);else r&&(s=hi[n].findIndex((function(i){return mi(i,r)})));var d=hi[n],u=d[t],c=u;if(-1===s)for(o=t+1;o<d.length&&i/(d[o].divisor/u.divisor)>=1;++o)c=d[o];else c=d[s];return r&&-1===s&&console.warn('Cannot convert unit "'+(e||u.display)+'" to "'+r+'"'),[i/(c.divisor/u.divisor),c.display]}(i,e.unit,e.targetUnit),a=s[0],o=s[1];return[""+Gi(a,void 0===(null==e?void 0:e.precision)?1:e.precision),o];case vi.Data:var d=function(i,e,r){var n=wi.length-1,t=0,s=-1,a=Math.sign(i),o=Math.abs(i);if(e)for(var d=function(i){var a=-1,o=-1;if(wi[i].forEach((function(i,n){gi(i,e)&&(a=n),gi(i,r)&&(o=n)})),-1!==a)return n=i,t=a,s=o,"break"},u=0;u<wi.length&&"break"!==d(u);++u);else r&&(s=wi[n].findIndex((function(i){return gi(i,r)})));var c=wi[n],l=c[t],y=l;if(-1===s)for(u=t+1;u<c.length&&o/(c[u].divisor/l.divisor)>=1;++u)y=c[u];else y=c[s];return r&&-1===s&&console.warn('Cannot convert unit "'+(e||l.display)+'" to "'+r+'"'),[o/(y.divisor/l.divisor)*a,y.display]}(i,e.unit,e.targetUnit),u=d[0],c=d[1];return[""+Gi(u,n),c];case vi.DataRate:var l=function(i,e,r){var n=Pi.length-1,t=0,s=-1,a=Math.sign(i),o=Math.abs(i);if(e)for(var d=function(i){var a=-1,o=-1;if(Pi[i].forEach((function(i,n){mi(i,e)&&(a=n),mi(i,r)&&(o=n)})),-1!==a)return n=i,t=a,s=o,"break"},u=0;u<Pi.length&&"break"!==d(u);++u);else r&&(s=Pi[n].findIndex((function(i){return mi(i,r)})));var c=Pi[n],l=c[t],y=l;if(-1===s)for(u=t+1;u<c.length&&o/(c[u].divisor/l.divisor)>=1;++u)y=c[u];else y=c[s];return r&&-1===s&&console.warn('Cannot convert unit "'+(e||l.display)+'" to "'+r+'"'),[o/(y.divisor/l.divisor)*a,y.display]}(i,e.unit,e.targetUnit),y=l[0],p=l[1];return[""+Gi(y,n),p];case vi.None:return[Gi(i,n),""];default:return[Si(i,e.unit,n),e.unit]}};function Ci(i,e,r,n){return void 0===r&&(r=2),Li(i,{unit:e,precision:r,targetUnit:n})}var Ni=r(1204);function Ai(i){var e;try{e=(0,Ni.safeLoad)(i,{schema:Ni.JSON_SCHEMA,json:!0})}catch(i){console.error(i)}return e}function xi(i,e,r){var n;void 0===e&&(e=2);try{n=(0,Ni.safeDump)(i,{indent:e,schema:Ni.JSON_SCHEMA,skipInvalid:!0,noRefs:!0,noCompatMode:!0,sortKeys:null==r?void 0:r.sortKeys})}catch(i){console.error(i)}return n}function ji(i,e){return(0,u.round)(i,e)}}}]);
2
+ //# sourceMappingURL=4741.b91ef9f1.js.map