@next-bricks/visual-builder 1.36.25 → 1.36.26

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 (156) hide show
  1. package/dist/bricks.json +20 -20
  2. package/dist/chunks/1045.f6e80fec.js +2 -0
  3. package/dist/chunks/{1045.b07d6bc1.js.map → 1045.f6e80fec.js.map} +1 -1
  4. package/dist/chunks/1122.ba17383d.js +2 -0
  5. package/dist/chunks/1122.ba17383d.js.map +1 -0
  6. package/dist/chunks/{114.429325c5.js → 114.aaa7c484.js} +2 -2
  7. package/dist/chunks/{114.429325c5.js.map → 114.aaa7c484.js.map} +1 -1
  8. package/dist/chunks/{1940.12b74fb1.js → 1940.94045d6e.js} +2 -2
  9. package/dist/chunks/{1940.12b74fb1.js.map → 1940.94045d6e.js.map} +1 -1
  10. package/dist/chunks/{2201.0a5797e4.js → 2201.21df7990.js} +2 -2
  11. package/dist/chunks/{2201.0a5797e4.js.map → 2201.21df7990.js.map} +1 -1
  12. package/dist/chunks/{2277.337070c4.js → 2277.73960d42.js} +2 -2
  13. package/dist/chunks/{4658.7c2c5ee7.js.map → 2277.73960d42.js.map} +1 -1
  14. package/dist/chunks/{2980.6d37f71e.js → 2980.778671d4.js} +2 -2
  15. package/dist/chunks/{2980.6d37f71e.js.map → 2980.778671d4.js.map} +1 -1
  16. package/dist/chunks/3171.5cd02271.js +2 -0
  17. package/dist/chunks/{3171.0a7855c3.js.map → 3171.5cd02271.js.map} +1 -1
  18. package/dist/chunks/{3933.3edb4523.js → 3933.21c52045.js} +2 -2
  19. package/dist/chunks/{6314.f577ecf7.js.map → 3933.21c52045.js.map} +1 -1
  20. package/dist/chunks/{4291.da2890c6.js → 4291.3c12fe9f.js} +2 -2
  21. package/dist/chunks/{4291.da2890c6.js.map → 4291.3c12fe9f.js.map} +1 -1
  22. package/dist/chunks/{4658.7c2c5ee7.js → 4658.758b09ca.js} +2 -2
  23. package/dist/chunks/{2277.337070c4.js.map → 4658.758b09ca.js.map} +1 -1
  24. package/dist/chunks/{4837.df6d466c.js → 4837.5f8d6dc7.js} +2 -2
  25. package/dist/chunks/{7218.f8cd78da.js.map → 4837.5f8d6dc7.js.map} +1 -1
  26. package/dist/chunks/5552.3773d6dd.js +2 -0
  27. package/dist/chunks/{5552.2814cc37.js.map → 5552.3773d6dd.js.map} +1 -1
  28. package/dist/chunks/{5559.46d76c74.js → 5559.5ea3e556.js} +3 -3
  29. package/dist/chunks/{5559.46d76c74.js.map → 5559.5ea3e556.js.map} +1 -1
  30. package/dist/chunks/6297.ce3c21bc.js +3 -0
  31. package/dist/chunks/6297.ce3c21bc.js.map +1 -0
  32. package/dist/chunks/{6314.f577ecf7.js → 6314.7cf962aa.js} +2 -2
  33. package/dist/chunks/{3933.3edb4523.js.map → 6314.7cf962aa.js.map} +1 -1
  34. package/dist/chunks/{6519.94d78769.js → 6519.11291cc6.js} +2 -2
  35. package/dist/chunks/{6519.94d78769.js.map → 6519.11291cc6.js.map} +1 -1
  36. package/dist/chunks/{7218.f8cd78da.js → 7218.a358e2b5.js} +2 -2
  37. package/dist/chunks/{4837.df6d466c.js.map → 7218.a358e2b5.js.map} +1 -1
  38. package/dist/chunks/{726.e407e050.js → 726.b2215460.js} +2 -2
  39. package/dist/chunks/726.b2215460.js.map +1 -0
  40. package/dist/chunks/7304.09d181ac.js +2 -0
  41. package/dist/chunks/{7304.12ca6e2d.js.map → 7304.09d181ac.js.map} +1 -1
  42. package/dist/chunks/7434.67a7c326.js +2 -0
  43. package/dist/chunks/{7434.4ddb3aab.js.map → 7434.67a7c326.js.map} +1 -1
  44. package/dist/chunks/7507.7e65daab.js +2 -0
  45. package/dist/chunks/{7507.c0a5c220.js.map → 7507.7e65daab.js.map} +1 -1
  46. package/dist/chunks/7643.da90fc6d.js +3 -0
  47. package/dist/chunks/{7643.32857740.js.map → 7643.da90fc6d.js.map} +1 -1
  48. package/dist/chunks/{7733.80dc8554.js → 7733.8b0e5606.js} +2 -2
  49. package/dist/chunks/{7733.80dc8554.js.map → 7733.8b0e5606.js.map} +1 -1
  50. package/dist/chunks/8081.cac28864.js +2 -0
  51. package/dist/chunks/8081.cac28864.js.map +1 -0
  52. package/dist/chunks/{8097.f37c5904.js → 8097.beaba572.js} +2 -2
  53. package/dist/chunks/{8097.f37c5904.js.map → 8097.beaba572.js.map} +1 -1
  54. package/dist/chunks/8989.0517d458.js +2 -0
  55. package/dist/chunks/{8989.74e3337d.js.map → 8989.0517d458.js.map} +1 -1
  56. package/dist/chunks/{9080.58f31ca3.js → 9080.7ef2b8f1.js} +2 -2
  57. package/dist/chunks/{9080.58f31ca3.js.map → 9080.7ef2b8f1.js.map} +1 -1
  58. package/dist/chunks/{9515.3823b0b7.js → 9515.80c4b472.js} +2 -2
  59. package/dist/chunks/{9515.3823b0b7.js.map → 9515.80c4b472.js.map} +1 -1
  60. package/dist/chunks/{9559.a13f579e.js → 9559.c6a42507.js} +2 -2
  61. package/dist/chunks/{9559.a13f579e.js.map → 9559.c6a42507.js.map} +1 -1
  62. package/dist/chunks/{batch-update-raw-data-generated-view.a164f520.js → batch-update-raw-data-generated-view.bc27d0ef.js} +3 -3
  63. package/dist/chunks/{batch-update-raw-data-generated-view.a164f520.js.map → batch-update-raw-data-generated-view.bc27d0ef.js.map} +1 -1
  64. package/dist/chunks/{chat-conversation.34898a33.js → chat-conversation.ede87265.js} +3 -3
  65. package/dist/chunks/{chat-conversation.34898a33.js.map → chat-conversation.ede87265.js.map} +1 -1
  66. package/dist/chunks/{chat-preview.e99e2848.js → chat-preview.15101f06.js} +3 -3
  67. package/dist/chunks/{chat-preview.e99e2848.js.map → chat-preview.15101f06.js.map} +1 -1
  68. package/dist/chunks/{check-editor-by-name.fcc2c37d.js → check-editor-by-name.d03a632d.js} +2 -2
  69. package/dist/chunks/{check-editor-by-name.fcc2c37d.js.map → check-editor-by-name.d03a632d.js.map} +1 -1
  70. package/dist/chunks/contract-select.26fce878.js +3 -0
  71. package/dist/chunks/{contract-select.cceb7453.js.map → contract-select.26fce878.js.map} +1 -1
  72. package/dist/chunks/{generate-snippets-context-menu.37335c3f.js → generate-snippets-context-menu.19b2db8f.js} +2 -2
  73. package/dist/chunks/{generate-snippets-context-menu.37335c3f.js.map → generate-snippets-context-menu.19b2db8f.js.map} +1 -1
  74. package/dist/chunks/{get-data-deps.c38a65f6.js → get-data-deps.24231f8f.js} +2 -2
  75. package/dist/chunks/{get-data-deps.c38a65f6.js.map → get-data-deps.24231f8f.js.map} +1 -1
  76. package/dist/chunks/{get-dependency-tree.c0af7e28.js → get-dependency-tree.f0dd3414.js} +2 -2
  77. package/dist/chunks/{get-dependency-tree.c0af7e28.js.map → get-dependency-tree.f0dd3414.js.map} +1 -1
  78. package/dist/chunks/{get-raw-data-system-prompts.75e39ffa.js → get-raw-data-system-prompts.e306ead0.js} +2 -2
  79. package/dist/chunks/{get-raw-data-system-prompts.75e39ffa.js.map → get-raw-data-system-prompts.e306ead0.js.map} +1 -1
  80. package/dist/chunks/{inject-chat-preview-agent.bd562547.js → inject-chat-preview-agent.e1897fcc.js} +2 -2
  81. package/dist/chunks/{inject-chat-preview-agent.bd562547.js.map → inject-chat-preview-agent.e1897fcc.js.map} +1 -1
  82. package/dist/chunks/main.7e154136.js +2 -0
  83. package/dist/chunks/main.7e154136.js.map +1 -0
  84. package/dist/chunks/{page-arch-node.65e9e884.js → page-arch-node.6b2ea1fe.js} +3 -3
  85. package/dist/chunks/{page-arch-node.65e9e884.js.map → page-arch-node.6b2ea1fe.js.map} +1 -1
  86. package/dist/chunks/{parse-path.8c76084b.js → parse-path.3150102e.js} +2 -2
  87. package/dist/chunks/{parse-path.8c76084b.js.map → parse-path.3150102e.js.map} +1 -1
  88. package/dist/chunks/{pre-generated-container.e3db46d5.js → pre-generated-container.2d973de8.js} +2 -2
  89. package/dist/chunks/{pre-generated-container.e3db46d5.js.map → pre-generated-container.2d973de8.js.map} +1 -1
  90. package/dist/chunks/{pre-generated-preview.40607780.js → pre-generated-preview.0cbd5b4e.js} +3 -3
  91. package/dist/chunks/{pre-generated-preview.40607780.js.map → pre-generated-preview.0cbd5b4e.js.map} +1 -1
  92. package/dist/chunks/{pre-generated-table-view.7b1dc979.js → pre-generated-table-view.5780ee3e.js} +2 -2
  93. package/dist/chunks/{pre-generated-table-view.7b1dc979.js.map → pre-generated-table-view.5780ee3e.js.map} +1 -1
  94. package/dist/chunks/{property-editor.b295b8e4.js → property-editor.1c969872.js} +2 -2
  95. package/dist/chunks/{property-editor.b295b8e4.js.map → property-editor.1c969872.js.map} +1 -1
  96. package/dist/chunks/{raw-data-preview.1f363728.js → raw-data-preview.fe46c777.js} +3 -3
  97. package/dist/chunks/{raw-data-preview.1f363728.js.map → raw-data-preview.fe46c777.js.map} +1 -1
  98. package/dist/chunks/workbench-action-list.e01c0110.js +2 -0
  99. package/dist/chunks/workbench-action-list.e01c0110.js.map +1 -0
  100. package/dist/chunks/{workbench-action.0d4aa2f1.js → workbench-action.8c7d1148.js} +3 -3
  101. package/dist/chunks/{workbench-action.0d4aa2f1.js.map → workbench-action.8c7d1148.js.map} +1 -1
  102. package/dist/chunks/workbench-history-action.8b1c5841.js +3 -0
  103. package/dist/chunks/{workbench-history-action.a83dcc98.js.map → workbench-history-action.8b1c5841.js.map} +1 -1
  104. package/dist/chunks/{workbench-pane.ebe65194.js → workbench-pane.c9d876e0.js} +3 -3
  105. package/dist/chunks/workbench-pane.c9d876e0.js.map +1 -0
  106. package/dist/chunks/workbench-sidebar.9e1ea9f1.js +2 -0
  107. package/dist/chunks/{workbench-sidebar.647c3683.js.map → workbench-sidebar.9e1ea9f1.js.map} +1 -1
  108. package/dist/chunks/{workbench-tree.f128149d.js → workbench-tree.ce12c809.js} +3 -3
  109. package/dist/chunks/{workbench-tree.f128149d.js.map → workbench-tree.ce12c809.js.map} +1 -1
  110. package/dist/examples.json +3 -3
  111. package/dist/index.8471c93a.js +2 -0
  112. package/dist/index.8471c93a.js.map +1 -0
  113. package/dist/manifest.json +96 -96
  114. package/dist/types.json +82 -82
  115. package/package.json +6 -6
  116. package/dist/chunks/1045.b07d6bc1.js +0 -2
  117. package/dist/chunks/1122.7e99ff7d.js +0 -2
  118. package/dist/chunks/1122.7e99ff7d.js.map +0 -1
  119. package/dist/chunks/3171.0a7855c3.js +0 -2
  120. package/dist/chunks/4586.6b85a822.js +0 -2
  121. package/dist/chunks/4586.6b85a822.js.map +0 -1
  122. package/dist/chunks/5552.2814cc37.js +0 -2
  123. package/dist/chunks/5832.7b134e89.js +0 -3
  124. package/dist/chunks/5832.7b134e89.js.map +0 -1
  125. package/dist/chunks/726.e407e050.js.map +0 -1
  126. package/dist/chunks/7304.12ca6e2d.js +0 -2
  127. package/dist/chunks/7434.4ddb3aab.js +0 -2
  128. package/dist/chunks/7507.c0a5c220.js +0 -2
  129. package/dist/chunks/7643.32857740.js +0 -3
  130. package/dist/chunks/790.ad2cdfc8.js +0 -2
  131. package/dist/chunks/790.ad2cdfc8.js.map +0 -1
  132. package/dist/chunks/8989.74e3337d.js +0 -2
  133. package/dist/chunks/contract-select.cceb7453.js +0 -3
  134. package/dist/chunks/main.317dc265.js +0 -2
  135. package/dist/chunks/main.317dc265.js.map +0 -1
  136. package/dist/chunks/workbench-action-list.6dfe4f95.js +0 -2
  137. package/dist/chunks/workbench-action-list.6dfe4f95.js.map +0 -1
  138. package/dist/chunks/workbench-history-action.a83dcc98.js +0 -3
  139. package/dist/chunks/workbench-pane.ebe65194.js.map +0 -1
  140. package/dist/chunks/workbench-sidebar.647c3683.js +0 -2
  141. package/dist/index.20dd929b.js +0 -2
  142. package/dist/index.20dd929b.js.map +0 -1
  143. /package/dist/chunks/{5559.46d76c74.js.LICENSE.txt → 5559.5ea3e556.js.LICENSE.txt} +0 -0
  144. /package/dist/chunks/{5832.7b134e89.js.LICENSE.txt → 6297.ce3c21bc.js.LICENSE.txt} +0 -0
  145. /package/dist/chunks/{7643.32857740.js.LICENSE.txt → 7643.da90fc6d.js.LICENSE.txt} +0 -0
  146. /package/dist/chunks/{batch-update-raw-data-generated-view.a164f520.js.LICENSE.txt → batch-update-raw-data-generated-view.bc27d0ef.js.LICENSE.txt} +0 -0
  147. /package/dist/chunks/{chat-conversation.34898a33.js.LICENSE.txt → chat-conversation.ede87265.js.LICENSE.txt} +0 -0
  148. /package/dist/chunks/{chat-preview.e99e2848.js.LICENSE.txt → chat-preview.15101f06.js.LICENSE.txt} +0 -0
  149. /package/dist/chunks/{contract-select.cceb7453.js.LICENSE.txt → contract-select.26fce878.js.LICENSE.txt} +0 -0
  150. /package/dist/chunks/{page-arch-node.65e9e884.js.LICENSE.txt → page-arch-node.6b2ea1fe.js.LICENSE.txt} +0 -0
  151. /package/dist/chunks/{pre-generated-preview.40607780.js.LICENSE.txt → pre-generated-preview.0cbd5b4e.js.LICENSE.txt} +0 -0
  152. /package/dist/chunks/{raw-data-preview.1f363728.js.LICENSE.txt → raw-data-preview.fe46c777.js.LICENSE.txt} +0 -0
  153. /package/dist/chunks/{workbench-action.0d4aa2f1.js.LICENSE.txt → workbench-action.8c7d1148.js.LICENSE.txt} +0 -0
  154. /package/dist/chunks/{workbench-history-action.a83dcc98.js.LICENSE.txt → workbench-history-action.8b1c5841.js.LICENSE.txt} +0 -0
  155. /package/dist/chunks/{workbench-pane.ebe65194.js.LICENSE.txt → workbench-pane.c9d876e0.js.LICENSE.txt} +0 -0
  156. /package/dist/chunks/{workbench-tree.f128149d.js.LICENSE.txt → workbench-tree.ce12c809.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/5832.7b134e89.js","mappings":"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","sources":["webpack:///./src/workbench-pane/index.tsx","webpack:///../../src/debounceByAnimationFrame.ts","webpack:///./src/workbench-sidebar/index.tsx","webpack:///./src/workbench-action/host-context.css?4509","webpack:///./src/workbench-action/index.tsx","webpack:///../../src/menu.ts","webpack:///./src/workbench-action-list/host-context.css?28ab","webpack:///./src/workbench-action-list/index.tsx","webpack:///./src/workbench-tree/index.tsx","webpack:///./src/workbench-history-action/i18n.ts","webpack:///../../node_modules/@next-api-sdk/next-builder-sdk/dist/esm/api/next_builder/workspace/getChangeHistory.js","webpack:///./src/workbench-history-action/utils.ts","webpack:///./src/workbench-history-action/index.tsx","webpack:///./src/page-arch-node/index.tsx","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js","webpack:///../../src/FormItemElement.tsx","webpack:///../../node_modules/@next-api-sdk/next-builder-sdk/dist/esm/api/next_builder/contract_center/searchContract.js","webpack:///./src/contract-select/i18n.ts","webpack:///./src/contract-select/more-option/MoreOption.tsx","webpack:///./src/contract-select/index.tsx","webpack:///./src/contract-select/useContractList.ts","webpack:///./src/generate-snippets-context-menu/index.tsx","webpack:///./src/generate-snippets-context-menu/i18n.ts","webpack:///../../src/rehypePrism.ts","webpack:///../../src/MarkdownComponent.tsx","webpack:///./src/chat-conversation/MessageComponent.tsx","webpack:///./src/chat-conversation/index.tsx","webpack:///./src/chat-preview/InspectOutlineComponent.tsx","webpack:///./src/chat-preview/index.tsx","webpack:///./src/data-providers/chat-preview/inspector.ts","webpack:///./src/data-providers/inject-chat-preview-agent.ts","webpack:///./src/pre-generated-preview/index.tsx","webpack:///./src/pre-generated-table-view/index.tsx","webpack:///./src/pre-generated-container/index.tsx","webpack:///./src/data-providers/check-editor-by-name.ts","webpack:///./src/data-providers/get-data-dependency.ts","webpack:///./src/data-providers/get-dependency-tree.ts","webpack:///./src/raw-data-preview/convert.ts","webpack:///./src/raw-data-preview/index.tsx","webpack:///./src/data-providers/parse-path.ts","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/createInstance.js","webpack:///./src/data-providers/batch-update-raw-data-generated-view.ts","webpack:///./src/data-providers/get-raw-data-system-prompts.ts","webpack:///./src/property-editor/index.tsx","webpack:///./src/workbench-action-list/host-context.css","webpack:///./src/workbench-action/host-context.css","webpack:///./src/chat-conversation/styles.shadow.css","webpack:///./src/chat-preview/styles.shadow.css","webpack:///./src/contract-select/styles.shadow.css","webpack:///./src/generate-snippets-context-menu/styles.shadow.css","webpack:///./src/page-arch-node/styles.shadow.css","webpack:///./src/pre-generated-container/styles.shadow.css","webpack:///./src/pre-generated-preview/preview.shadow.css","webpack:///./src/pre-generated-preview/styles.shadow.css","webpack:///./src/pre-generated-table-view/styles.shadow.css","webpack:///./src/raw-data-preview/preview.shadow.css","webpack:///./src/raw-data-preview/styles.shadow.css","webpack:///./src/shared/scrollbar.shadow.css","webpack:///./src/workbench-action-list/workbench-action-list.shadow.css","webpack:///./src/workbench-action/workbench-action.shadow.css","webpack:///./src/workbench-history-action/styles.shadow.css","webpack:///./src/workbench-pane/workbench-pane.shadow.css","webpack:///./src/workbench-sidebar/workbench-sidebar.shadow.css","webpack:///../../shared/markdown/dist/esm/prism-tomorrow.css","webpack:///../../node_modules/path-to-regexp/dist.es2015/index.js"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useState,\n useCallback,\n useMemo,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./workbench-pane.shadow.css\";\nimport sharedStyle from \"../shared/scrollbar.shadow.css\";\nimport { debounceByAnimationFrame } from \"@next-shared/general/debounceByAnimationFrame\";\nimport classNames from \"classnames\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface WorkbenchPaneProps {\n titleLabel?: string;\n active?: boolean;\n badge?: number;\n onActiveChange?(active: boolean): void;\n onFirstActivated?(): void;\n}\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-pane\", {\n styleTexts: [styleText, sharedStyle],\n})\nclass WorkbenchPane extends ReactNextElement {\n @property() accessor titleLabel: string | undefined;\n\n @property({ type: Boolean }) accessor active: boolean | undefined;\n\n @property({ type: Number }) accessor badge: number | undefined;\n\n @event({ type: \"active.change\" })\n accessor #activeChangeEvent: EventEmitter<boolean>;\n #handleActiveChange = (active: boolean): void => {\n if (active !== this.active) {\n this.active = active;\n this.#activeChangeEvent.emit(active);\n }\n };\n\n @event({ type: \"active.firstActivated\" })\n accessor #activeFirstActivatedEvent: EventEmitter<void>;\n\n #handleActiveFirstActivated = (): void => {\n this.#activeFirstActivatedEvent.emit();\n };\n\n render() {\n return (\n <WorkbenchPaneComponent\n titleLabel={this.titleLabel}\n active={this.active}\n badge={this.badge}\n onActiveChange={this.#handleActiveChange}\n onFirstActivated={this.#handleActiveFirstActivated}\n />\n );\n }\n}\n\nfunction WorkbenchPaneComponent({\n titleLabel,\n active,\n badge,\n onActiveChange,\n onFirstActivated,\n}: WorkbenchPaneProps) {\n const [internalActive, setInternalActive] = useState<boolean>(active);\n const [activatedOnce, setActivatedOnce] = useState(false);\n\n useEffect(() => {\n setInternalActive(active);\n }, [active]);\n\n useEffect(() => {\n onActiveChange?.(internalActive);\n }, [internalActive, onActiveChange]);\n\n const handleClick = useCallback(() => {\n setInternalActive((previousActive) => !previousActive);\n if (!activatedOnce && !internalActive) {\n setActivatedOnce(true);\n onFirstActivated?.();\n }\n }, [activatedOnce, internalActive, onFirstActivated]);\n\n const scrollBodyRef = useRef<HTMLDivElement>();\n\n const [scrolled, setScrolled] = useState(false);\n\n const handleScroll = useMemo(\n () =>\n debounceByAnimationFrame((): void => {\n setScrolled(scrollBodyRef.current.scrollTop > 0);\n }),\n []\n );\n\n return (\n <div\n className={classNames(\"pane\", {\n scrolled,\n })}\n >\n <div className=\"pane-header\" tabIndex={0} onClick={handleClick}>\n <div className=\"pane-title\">\n <span className=\"title-icon\">\n {internalActive ? (\n <WrappedIcon lib=\"antd\" theme=\"outlined\" icon=\"down\" />\n ) : (\n <WrappedIcon lib=\"antd\" theme=\"outlined\" icon=\"right\" />\n )}\n </span>\n <div className=\"title-label\">{titleLabel}</div>\n <slot name=\"title\" />\n </div>\n <slot name=\"actions\" />\n {badge && <div className=\"badge\">{badge}</div>}\n <div className=\"pane-scroll-shadow\"></div>\n </div>\n <div\n className=\"pane-body custom-scrollbar-container\"\n onScroll={handleScroll}\n ref={scrollBodyRef}\n >\n <slot>\n <div\n style={{\n padding: \"10px 20px\",\n color: \"var(--text-color-secondary)\",\n }}\n >\n No content\n </div>\n </slot>\n </div>\n </div>\n );\n}\n\nexport { WorkbenchPane };\n","export type SimpleFunction<P extends unknown[] = unknown[], R = unknown> = (\n ...args: P\n) => R;\n\n// The debounce function receives our function as a parameter\nexport function debounceByAnimationFrame<P extends unknown[]>(\n fn: SimpleFunction<P, void>\n): SimpleFunction<P, void> & { cancel: () => void } {\n // This holds the requestAnimationFrame reference, so we can cancel it if we wish\n let frame: number;\n\n const cancel = () => cancelAnimationFrame(frame);\n\n // The debounce function returns a new function that can receive a variable number of arguments\n const func = (...params: P) => {\n // If the frame variable has been defined, clear it now, and queue for next frame\n if (frame) {\n cancel();\n }\n\n // Queue our function call for the next frame\n frame = requestAnimationFrame(() => {\n // Call our function and pass any params we received\n fn(...params);\n });\n };\n\n func.cancel = cancel;\n\n return func;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./workbench-sidebar.shadow.css\";\n\ninterface WorkbenchSidebarProps {\n titleLabel: string;\n refCallback: (element: HTMLDivElement) => void;\n}\ninterface WorkbenchSidebarChildElement extends HTMLElement {\n active?: boolean;\n activeFlex?: string;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-sidebar\", {\n styleTexts: [styleText],\n})\nclass WorkbenchSidebar extends ReactNextElement {\n @property() accessor titleLabel: string | undefined;\n\n #getPaneSlot = (): HTMLSlotElement => {\n return this.shadowRoot?.querySelector(\"slot:not([name])\");\n };\n\n #reflowPanes = (): void => {\n const slot = this.#getPaneSlot();\n const panes = slot.assignedNodes() as WorkbenchSidebarChildElement[];\n\n for (const pane of panes) {\n if (pane.active) {\n pane.style.flex = String(pane.activeFlex ?? \"1\");\n } else {\n pane.style.flex = \"initial\";\n }\n }\n };\n\n #onPanesSlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n const panes = slot.assignedNodes();\n for (const pane of panes) {\n pane.addEventListener(\"active.change\", this.#reflowPanes);\n }\n };\n\n refCallback = () => {\n this.#reflowPanes();\n const panesSlots = this.#getPaneSlot();\n\n panesSlots?.addEventListener(\"slotchange\", (e) => {\n this.#onPanesSlotChange(e);\n });\n };\n\n render() {\n return (\n <WorkbenchSidebarComponent\n titleLabel={this.titleLabel}\n refCallback={this.refCallback}\n />\n );\n }\n}\n\nfunction WorkbenchSidebarComponent({\n titleLabel,\n refCallback,\n}: WorkbenchSidebarProps) {\n return (\n <div className=\"sidebar\" ref={refCallback}>\n <div className=\"title-container\">\n <div className=\"title-label\">{titleLabel}</div>\n <slot name=\"titleToolbar\" />\n </div>\n <div className=\"pane-container\">\n <slot />\n </div>\n </div>\n );\n}\n\nexport { WorkbenchSidebar };\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport \"./host-context.css\";\nimport styleText from \"./workbench-action.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrapLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nexport interface WorkbenchActionProps {\n icon?: GeneralIconProps;\n to?: string;\n target?: string;\n active?: boolean;\n href?: string;\n tooltip?: string;\n}\n\n/**\n * @insider\n */\nexport\n@defineElement(\"visual-builder.workbench-action\", {\n styleTexts: [styleText],\n})\nclass WorkbenchAction extends ReactNextElement {\n @property({\n attribute: false,\n })\n accessor icon: GeneralIconProps | undefined;\n\n @property() accessor to: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor active: boolean | undefined;\n\n @property() accessor href: string | undefined;\n\n @property() accessor target: string | undefined;\n\n @property() accessor tooltip: string | undefined;\n\n render(): React.ReactNode {\n return (\n <WorkbenchActionComponent\n to={this.to}\n icon={this.icon}\n active={this.active}\n href={this.href}\n target={this.target}\n tooltip={this.tooltip}\n />\n );\n }\n}\n\nfunction WorkbenchActionComponent({\n icon,\n to,\n active,\n href,\n target,\n tooltip,\n}: WorkbenchActionProps) {\n return (\n <WrappedTooltip content={tooltip} placement=\"right\">\n <WrapLink\n className={classNames(\"action\", { active })}\n url={to}\n href={href}\n target={target as LinkProps[\"target\"]}\n >\n <WrappedIcon {...icon} />\n </WrapLink>\n </WrappedTooltip>\n );\n}\n","import { Location, parsePath } from \"history\";\nimport { matchPath } from \"@next-core/runtime\";\nimport type {\n SidebarMenuSimpleItem,\n SidebarMenuItem,\n SidebarMenuGroup,\n} from \"./types.js\";\nimport { isObject } from \"lodash\";\n\nexport function isGroup(item: SidebarMenuItem): item is SidebarMenuGroup {\n return item.type === \"group\";\n}\n\nexport function isSubMenu(\n item: SidebarMenuItem,\n groupAsSubMenu?: boolean\n): item is SidebarMenuGroup {\n return Boolean(\n item.type === \"subMenu\" || (groupAsSubMenu && item.type === \"group\")\n );\n}\n\nexport function initMenuItemAndMatchCurrentPathKeys(\n menuItems: SidebarMenuItem[],\n pathname: string,\n search: string,\n parentCursor: string\n): {\n selectedKeys: string[];\n openedKeys: string[];\n matchedKeys: string[];\n} {\n const selectedKeys: string[] = [];\n const openedKeys: string[] = [];\n const matchedKeys: string[] = [];\n\n let cursor = 0;\n menuItems &&\n menuItems.forEach((item) => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key =\n parentCursor === \"\" ? `${cursor}` : `${parentCursor}.${cursor}`;\n if (isGroup(item) || isSubMenu(item)) {\n const tmp = initMenuItemAndMatchCurrentPathKeys(\n item.items,\n pathname,\n search,\n item.key\n );\n selectedKeys.push(...tmp.selectedKeys);\n if (tmp.selectedKeys.length || item.defaultExpanded) {\n openedKeys.push(item.key);\n }\n openedKeys.push(...tmp.openedKeys);\n matchedKeys.push(...tmp.matchedKeys);\n } else {\n if (matchMenuItem(item, pathname, search)) {\n selectedKeys.push(String(item.key));\n\n const keyPath = item.key.split(\".\");\n\n for (let i = 0; i < keyPath.length; i++) {\n matchedKeys.push(keyPath.slice(0, i + 1).join(\".\"));\n }\n }\n }\n cursor += 1;\n });\n if (selectedKeys.length && parentCursor !== \"\") {\n openedKeys.push(parentCursor);\n }\n return {\n selectedKeys: selectedKeys,\n openedKeys: openedKeys,\n matchedKeys: matchedKeys,\n };\n}\n\nfunction getMatchOfSearch(\n currentSearch: string,\n toSearch: string | undefined\n): boolean {\n const current = new URLSearchParams(currentSearch);\n const to = new URLSearchParams(toSearch);\n for (const [key, value] of to.entries()) {\n // Allow `?k=` to match `?` (when `k` doesn't exist)\n if ((current.get(key) ?? \"\") !== value) {\n return false;\n }\n }\n return true;\n}\n\nexport function matchMenuItem(\n item: SidebarMenuSimpleItem,\n pathname: string,\n search: string\n): boolean {\n if (!item.to) return false;\n const to = typeof item.to === \"object\" ? item.to : parsePath(item.to);\n\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath = to.pathname!.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n let match = !!matchPath(pathname, {\n path: escapedPath,\n exact: item.exact,\n });\n\n if (match && item.activeMatchSearch) {\n match = getMatchOfSearch(search, to.search);\n }\n\n if (!match && Array.isArray(item.activeIncludes)) {\n for (const include of item.activeIncludes) {\n let paths: string[];\n let exact: boolean | undefined = true;\n\n if (isObject(include)) {\n paths = Array.isArray(include.path) ? include.path : [include.path];\n exact = include.exact;\n } else {\n paths = [include];\n }\n\n for (const path of paths) {\n let parsedPath: Location | undefined;\n const hasSearch = path.includes(\"?\");\n\n if (hasSearch) {\n parsedPath = parsePath(path);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parsedPath!.pathname : path,\n exact,\n });\n\n if (match && parsedPath?.search) {\n match = getMatchOfSearch(search, parsedPath.search);\n }\n\n if (match) {\n break;\n }\n }\n\n if (match) {\n break;\n }\n }\n }\n\n if (match && Array.isArray(item.activeExcludes)) {\n for (const include of item.activeExcludes) {\n let paths: string[];\n let exact: boolean | undefined = true;\n\n if (isObject(include)) {\n paths = Array.isArray(include.path) ? include.path : [include.path];\n exact = include.exact;\n } else {\n paths = [include];\n }\n\n for (const path of paths) {\n let parsedPathWithSearch: Location | undefined;\n if (path.includes(\"?\")) {\n parsedPathWithSearch = parsePath(path);\n }\n\n match = !(\n matchPath(pathname, {\n path: parsedPathWithSearch ? parsedPathWithSearch.pathname : path,\n exact,\n }) &&\n (!parsedPathWithSearch ||\n getMatchOfSearch(search, parsedPathWithSearch.search))\n );\n\n if (!match) {\n break;\n }\n }\n\n if (!match) {\n break;\n }\n }\n }\n\n return match;\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./host-context.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useState, useEffect } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { getHistory } from \"@next-core/runtime\";\nimport {\n WorkbenchAction,\n WorkbenchActionProps,\n} from \"../workbench-action/index.js\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { initMenuItemAndMatchCurrentPathKeys } from \"@next-shared/general/menu\";\nimport {\n SidebarMenuSimpleItem,\n SidebarMenuItem,\n} from \"@next-shared/general/types\";\nimport { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"./host-context.css\";\nimport styleText from \"./workbench-action-list.shadow.css\";\n\nexport interface SidebarMenu {\n title?: string;\n icon?: GeneralIconProps;\n menuItems?: SidebarMenuItem[];\n}\n\nconst WrapperWorkbenchAction = wrapBrick<WorkbenchAction, WorkbenchActionProps>(\n \"visual-builder.workbench-action\"\n);\n\nconst { defineElement, property } = createDecorators();\n\ninterface WorkbenchActionListProps {\n appId?: string;\n menu: SidebarMenu;\n}\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-action-list\", {\n styleTexts: [styleText],\n})\nclass WorkbenchActionList extends ReactNextElement {\n @property() accessor appId: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor menu!: SidebarMenu;\n\n render(): React.ReactNode {\n return <WorkbenchActionListComponent appId={this.appId} menu={this.menu} />;\n }\n}\n\nlet currentAppId: string;\nconst historyMap = new Map<number, string>();\n\nexport function WorkbenchActionListComponent({\n appId,\n menu,\n}: WorkbenchActionListProps) {\n const history = getHistory();\n const [activeIndex, setActiveIndex] = useState<number>();\n const [location, setLocation] = useState(history.location);\n\n useEffect(() => {\n const unlisten = history.listen((location) => {\n setLocation(location);\n });\n return unlisten;\n }, [history]);\n\n useEffect(() => {\n if (!currentAppId) currentAppId = appId;\n if (currentAppId !== appId) {\n historyMap.clear();\n currentAppId = appId;\n }\n }, [appId]);\n\n useEffect(() => {\n const { pathname, search } = location;\n\n const { selectedKeys } = initMenuItemAndMatchCurrentPathKeys(\n menu?.menuItems ?? [],\n pathname,\n search,\n \"\"\n );\n setActiveIndex(Number(selectedKeys[0]));\n }, [menu, location]);\n\n const handleLinkClick = (item: SidebarMenuItem): void => {\n if ((item as SidebarMenuSimpleItem).href) return;\n historyMap.set(activeIndex, `${location.pathname}${location.search}`);\n };\n\n const isSimpleMenuItem = (\n item: SidebarMenuItem\n ): item is SidebarMenuSimpleItem => {\n return item.type === \"default\" || !item.type;\n };\n\n return (\n <>\n {menu?.menuItems\n ?.map((item, index) => {\n if (isSimpleMenuItem(item)) {\n let url = item.to;\n if (activeIndex !== index && historyMap.has(index)) {\n url = historyMap.get(index);\n }\n return (\n <WrapperWorkbenchAction\n key={index}\n icon={item.icon}\n to={url as string}\n href={item.href}\n target={item.target}\n tooltip={item.text}\n active={activeIndex === index}\n onClick={() => handleLinkClick(item)}\n />\n );\n }\n })\n .filter(Boolean)}\n </>\n );\n}\n\nexport { WorkbenchActionList };\n","import React from \"react\";\nimport { pick } from \"lodash\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type {\n ActionClickDetail,\n WorkbenchNodeData,\n WorkbenchTreeAction,\n} from \"../interfaces.js\";\nimport { WorkbenchActionsContext } from \"../shared/workbench/WorkbenchActionsContext.js\";\nimport {\n WorkbenchTree,\n dropEmitProps,\n} from \"../shared/workbench/WorkbenchTree.js\";\nimport { WorkbenchTreeContext } from \"../shared/workbench/WorkbenchTreeContext.js\";\nimport { deepMatch } from \"../utils/deepMatch.js\";\nimport treeStyleText from \"./WorkbenchTree.shadow.css\";\nimport actionStyleText from \"../shared/workbench-mini-action-bar/WorkbenchMiniActionBar.shadow.css\";\nimport \"@next-core/theme\";\n\nfunction defaultGetCollapsedId(node: WorkbenchNodeData): string | number {\n return node.key;\n}\n\nconst { defineElement, property, event } = createDecorators();\n\n/**\n * @id next-builder.workbench-tree\n * @author steve\n * @history\n * 1.x.0: 新增构件 `next-builder.workbench-tree`\n * @docKind brick\n * @noInheritDoc\n * @insider\n */\n@defineElement(\"visual-builder.workbench-tree\", {\n styleTexts: [treeStyleText, actionStyleText],\n})\nclass WorkbenchTreeElement extends ReactNextElement {\n @property({ attribute: false })\n accessor nodes: WorkbenchNodeData[];\n\n @property({ attribute: false })\n accessor actions: WorkbenchTreeAction[];\n\n @property({ type: Boolean })\n accessor actionsHidden: boolean;\n\n @property()\n accessor placeholder: string;\n\n @property({ type: Boolean })\n accessor isTransformName: boolean;\n\n @property()\n accessor searchPlaceholder: string;\n\n @property({ type: Boolean })\n accessor noSearch: boolean;\n\n @property({ attribute: false })\n accessor activeKey: string | number;\n\n @property({ type: Boolean })\n accessor showMatchedNodeOnly: boolean;\n\n @property({ attribute: false })\n accessor matchNodeDataFields: string | string[];\n\n @property({ attribute: false })\n accessor fixedActionsFor: Record<string, unknown> | Record<string, unknown>[];\n\n @property({ type: Boolean })\n accessor collapsible: boolean;\n\n @property({ attribute: false })\n accessor collapsedNodes: string[];\n\n @property({ type: Boolean })\n accessor allowDrag: boolean;\n\n @property({ type: Boolean })\n accessor allowDragToRoot: boolean;\n\n @property({ type: Boolean })\n accessor allowDragToInside: boolean;\n\n @property({ type: String })\n accessor nodeKey: string;\n\n @property({ type: Boolean })\n accessor skipNotify: boolean;\n\n @event({ type: \"action.click\" })\n accessor #actionClickEvent!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail): void => {\n this.#actionClickEvent.emit(detail);\n };\n\n @event({ type: \"node.click\" })\n accessor #nodeClickEvent: EventEmitter<unknown>;\n\n #nodeClickFactory = (node: WorkbenchNodeData) => () => {\n this.#nodeClickEvent.emit(node.data);\n };\n\n @event({ type: \"node.drop\" })\n accessor #nodeDropEvent: EventEmitter<any>;\n\n #handleNodeDrop = (detail: dropEmitProps): void => {\n this.#nodeDropEvent.emit(detail);\n };\n\n @event({ type: \"context.menu\" })\n accessor #nodeContextMenuEvent: EventEmitter<unknown>;\n\n #contextMenuFactory = (node: WorkbenchNodeData) => (e: React.MouseEvent) => {\n e.preventDefault();\n this.#nodeContextMenuEvent.emit({\n active: true,\n node: node?.data,\n x: e.clientX,\n y: e.clientY,\n });\n };\n\n @event({ type: \"node.toggle\" })\n accessor #nodeToggleEvent: EventEmitter<{\n nodeId: string;\n collapsed: boolean;\n }>;\n\n #handleNodeToggle = (nodeId: string, collapsed: boolean): void => {\n this.#nodeToggleEvent.emit({ nodeId, collapsed });\n };\n\n render() {\n return (\n <WorkbenchActionsContext.Provider\n value={{\n actions: this.actions,\n actionsHidden: this.actionsHidden,\n onActionClick: this.#handleActionClick,\n }}\n >\n <WorkbenchTreeContext.Provider\n value={{\n activeKey: this.activeKey,\n basePaddingLeft: 5,\n showMatchedNodeOnly: this.showMatchedNodeOnly,\n isTransformName: this.isTransformName,\n fixedActionsFor: this.fixedActionsFor,\n nodeKey: this.nodeKey,\n collapsible: this.collapsible,\n collapsedNodes: this.collapsedNodes,\n getCollapsedId: defaultGetCollapsedId,\n onNodeToggle: this.#handleNodeToggle,\n skipNotify: this.skipNotify,\n clickFactory: this.#nodeClickFactory,\n contextMenuFactory: this.#contextMenuFactory,\n matchNode: (node, lowerTrimmedQuery) =>\n deepMatch(node.name, lowerTrimmedQuery) ||\n (!!this.matchNodeDataFields?.length &&\n deepMatch(\n this.matchNodeDataFields === \"*\"\n ? node.data\n : pick(node.data, this.matchNodeDataFields),\n lowerTrimmedQuery\n )),\n }}\n >\n <WorkbenchTree\n nodes={this.nodes}\n placeholder={this.placeholder}\n searchPlaceholder={this.searchPlaceholder}\n noSearch={this.noSearch}\n dropEmit={this.#handleNodeDrop}\n allowDrag={this.allowDrag}\n allowDragToInside={this.allowDragToInside}\n allowDragToRoot={this.allowDragToRoot}\n />\n </WorkbenchTreeContext.Provider>\n </WorkbenchActionsContext.Provider>\n );\n }\n}\n\nexport { WorkbenchTreeElement };\n","export enum K {\n LOAD_MORE = \"LOAD_MORE\",\n LOADING = \"LOADING\",\n NO_DATA = \"NO_DATA\",\n NODE = \"NODE\",\n // action\n ADD = \"ADD\",\n EDIT = \"EDIT\",\n DELETE = \"DELETE\",\n IMPORT = \"IMPORT\",\n CLONE = \"CLONE\",\n APPEND_RELATION = \"APPEND_RELATION\",\n UPDATE_RELATION = \"UPDATE_RELATION\",\n REMOVE_RELATION = \"REMOVE_RELATION\",\n ROLLBACK = \"ROLLBACK\",\n ROLLBACK_ALL = \"ROLLBACK_ALL\",\n ADD_FULL = \"ADD_FULL\",\n EDIT_FULL = \"EDIT_FULL\",\n DELETE_FULL = \"DELETE_FULL\",\n IMPORT_FULL = \"IMPORT_FULL\",\n CLONE_FULL = \"CLONE_FULL\",\n APPEND_RELATION_FULL = \"APPEND_RELATION_FULL\",\n UPDATE_RELATION_FULL = \"UPDATE_RELATION_FULL\",\n REMOVE_RELATION_FULL = \"REMOVE_RELATION_FULL\",\n ROLLBACK_FULL = \"ROLLBACK_FULL\",\n ROLLBACK_ALL_FULL = \"ROLLBACK_ALL_FULL\",\n // category\n PROJECT = \"PROJECT\",\n USER = \"USER\",\n PERMISSION = \"PERMISSION\",\n BRICK = \"BRICK\",\n ROUTE = \"ROUTE\",\n TEMPLATE = \"TEMPLATE\",\n SNIPPET = \"SNIPPET\",\n I18N = \"I18N\",\n IMAGE = \"IMAGE\",\n FUNCTION = \"FUNCTION\",\n MENU = \"MENU\",\n MENU_ITEM = \"MENU_ITEM\",\n WORKFLOW = \"WORKFLOW\",\n}\n\nconst en: Locale = {\n LOAD_MORE: \"Load more\",\n LOADING: \"Loading\",\n NO_DATA: \"No data\",\n NODE: \"{{ nodes }}\",\n NODE_ellipsis: \"{{ nodes }} etc., a total of {{ count }} items\",\n // action\n ADD: \"Add node\",\n EDIT: \"Edit node\",\n DELETE: \"Delete node\",\n IMPORT: \"Batch import node\",\n CLONE: \"Clone node\",\n APPEND_RELATION: \"Append Relation\",\n UPDATE_RELATION: \"Update Relation\",\n REMOVE_RELATION: \"Remove Relation\",\n ROLLBACK: \"Rollback\",\n ROLLBACK_ALL: \"Rollback all operations\",\n ADD_FULL: \"Add {{ category }} ({{ nodes }})\",\n EDIT_FULL: \"Edit {{ nodeChanges }} of {{ category }} ({{ nodes }})\",\n DELETE_FULL: \"Delete {{ category }} ({{ nodes }})\",\n IMPORT_FULL: \"Batch Import {{ category }} ({{ nodes }})\",\n CLONE_FULL: \"Clone {{ category }} ({{ nodes }})\",\n APPEND_RELATION_FULL:\n \"Append the relation between {{ leftObjectId }} ({{ leftNodes }}) and {{ rightObjectId }} ({{ rightNodes }})\",\n UPDATE_RELATION_FULL:\n \"Update the relation between {{ leftObjectId }} ({{ leftNodes }}) and {{ rightObjectId }} ({{ rightNodes }})\",\n REMOVE_RELATION_FULL:\n \"Remove the relation between {{ leftObjectId }} ({{ leftNodes }}) and {{ rightObjectId }} ({{ rightNodes }})\",\n ROLLBACK_FULL: \"Rollback to [{{ rollbackAbstract }}]\",\n ROLLBACK_ALL_FULL: \"Rollback all operations\",\n // category\n PROJECT: \"Project\",\n USER: \"User Group\",\n PERMISSION: \"Permission\",\n BRICK: \"Brick\",\n ROUTE: \"Route\",\n TEMPLATE: \"Template\",\n SNIPPET: \"Snippet\",\n I18N: \"I18N\",\n IMAGE: \"Image\",\n FUNCTION: \"Function\",\n MENU: \"Menu\",\n MENU_ITEM: \"Menu item\",\n WORKFLOW: \"Workflow\",\n};\n\nconst zh: Locale = {\n LOAD_MORE: \"加载更多\",\n LOADING: \"加载中\",\n NO_DATA: \"没有数据\",\n NODE: \"{{ nodes }}\",\n NODE_ellipsis: \"{{ nodes }}等共{{ count }}项\",\n // action\n ADD: \"新增节点\",\n EDIT: \"编辑节点\",\n DELETE: \"删除节点\",\n IMPORT: \"批量导入节点\",\n CLONE: \"克隆节点\",\n APPEND_RELATION: \"添加关系\",\n UPDATE_RELATION: \"更新关系\",\n REMOVE_RELATION: \"移除关系\",\n ROLLBACK: \"回滚\",\n ROLLBACK_ALL: \"回滚全部操作\",\n ADD_FULL: \"新增{{ category }}({{ nodes }})\",\n EDIT_FULL: \"编辑{{ category }}({{ nodes }})的 {{ nodeChanges }}\",\n DELETE_FULL: \"删除{{ category }}({{ nodes }})\",\n IMPORT_FULL: \"批量导入{{ category }}({{ nodes }})\",\n CLONE_FULL: \"克隆{{ category }}({{ nodes }})\",\n APPEND_RELATION_FULL:\n \"添加{{ leftObjectId }}({{ leftNodes }})和{{ rightObjectId }}({{ rightNodes }})的关系\",\n UPDATE_RELATION_FULL:\n \"更新{{ leftObjectId }}({{ leftNodes }})和{{ rightObjectId }}({{ rightNodes }})的关系\",\n REMOVE_RELATION_FULL:\n \"移除{{ leftObjectId }}({{ leftNodes }})和{{ rightObjectId }}({{ rightNodes }})的关系\",\n ROLLBACK_FULL: \"回滚到【{{ rollbackAbstract }}】\",\n ROLLBACK_ALL_FULL: \"回滚全部操作\",\n // category\n PROJECT: \"项目\",\n USER: \"用户组\",\n PERMISSION: \"权限点\",\n BRICK: \"构件\",\n ROUTE: \"路由\",\n TEMPLATE: \"模版\",\n SNIPPET: \"片段\",\n I18N: \"国际化\",\n IMAGE: \"图片\",\n FUNCTION: \"函数\",\n MENU: \"菜单\",\n MENU_ITEM: \"菜单项\",\n WORKFLOW: \"工作流\",\n};\n\nexport const NS = \"bricks/visual-builder/workbench-history-action\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n} & { NODE_ellipsis: string };\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 获取变更历史(从上一次commit开始)\n * @endpoint GET /api/v1/next-builder/workspace/:appId/changes\n */\nexport var WorkspaceApi_getChangeHistory = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (appId, params, options) {\n return (/**! @contract easyops.api.next_builder.workspace.GetChangeHistory@1.0.0 */(yield http.get(\"api/gateway/next_builder.workspace.GetChangeHistory/api/v1/next-builder/workspace/\".concat(appId, \"/changes\"), _objectSpread(_objectSpread({}, options), {}, {\n params\n }))).data\n );\n });\n return function WorkspaceApi_getChangeHistory(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=getChangeHistory.js.map","import { NS, K } from \"./i18n.js\";\nimport { i18n } from \"@next-core/i18n\";\nimport { NextBuilderModels } from \"@next-api-sdk/next-builder-sdk\";\n\nconst actionI18nKeyMap: Record<string, string> = {\n add: `${NS}:${K.ADD}`,\n edit: `${NS}:${K.EDIT}`,\n delete: `${NS}:${K.DELETE}`,\n batch_delete: `${NS}:${K.DELETE}`,\n import: `${NS}:${K.IMPORT}`,\n clone: `${NS}:${K.CLONE}`,\n append_relation: `${NS}:${K.APPEND_RELATION}`,\n update_relation: `${NS}:${K.UPDATE_RELATION}`,\n remove_relation: `${NS}:${K.REMOVE_RELATION}`,\n rollback: `${NS}:${K.ROLLBACK}`,\n rollback_all: `${NS}:${K.ROLLBACK_ALL}`,\n};\n\nconst fullActionI18nKeyMap: Record<string, string> = {\n add: `${NS}:${K.ADD_FULL}`,\n edit: `${NS}:${K.EDIT_FULL}`,\n delete: `${NS}:${K.DELETE_FULL}`,\n batch_delete: `${NS}:${K.DELETE_FULL}`,\n import: `${NS}:${K.IMPORT_FULL}`,\n clone: `${NS}:${K.CLONE_FULL}`,\n append_relation: `${NS}:${K.APPEND_RELATION_FULL}`,\n update_relation: `${NS}:${K.UPDATE_RELATION_FULL}`,\n remove_relation: `${NS}:${K.REMOVE_RELATION_FULL}`,\n rollback: `${NS}:${K.ROLLBACK_FULL}`,\n rollback_all: `${NS}:${K.ROLLBACK_ALL_FULL}`,\n};\n\nconst categoryI18nKeyMap: Record<string, string> = {\n project: `${NS}:${K.PROJECT}`,\n userGroup: `${NS}:${K.USER}`,\n permission: `${NS}:${K.PERMISSION}`,\n brick: `${NS}:${K.BRICK}`,\n route: `${NS}:${K.ROUTE}`,\n template: `${NS}:${K.TEMPLATE}`,\n snippet: `${NS}:${K.SNIPPET}`,\n i18n: `${NS}:${K.I18N}`,\n image: `${NS}:${K.IMAGE}`,\n function: `${NS}:${K.FUNCTION}`,\n menu: `${NS}:${K.MENU}`,\n menuItem: `${NS}:${K.MENU_ITEM}`,\n workflow: `${NS}:${K.WORKFLOW}`,\n};\n\nconst modelI18nKeyMap: Record<string, string> = {\n PROJECT_MICRO_APP: `${NS}:${K.PROJECT}`,\n \"MICRO_APP_USER_GROUP@EASYOPS\": `${NS}:${K.USER}`,\n MICRO_APP_RESOURCE_PERMISSION: `${NS}:${K.PERMISSION}`,\n STORYBOARD_BRICK: `${NS}:${K.BRICK}`,\n STORYBOARD_ROUTE: `${NS}:${K.ROUTE}`,\n STORYBOARD_TEMPLATE: `${NS}:${K.TEMPLATE}`,\n STORYBOARD_SNIPPET: `${NS}:${K.SNIPPET}`,\n STORYBOARD_I18N: `${NS}:${K.I18N}`,\n MICRO_APP_RESOURCE_IMAGE: `${NS}:${K.IMAGE}`,\n STORYBOARD_FUNCTION: `${NS}:${K.FUNCTION}`,\n MICRO_APP_RESOURCE_MENU: `${NS}:${K.MENU}`,\n MICRO_APP_RESOURCE_MENU_ITEM: `${NS}:${K.MENU_ITEM}`,\n \"WORKFLOW_DEF@EASYOPS\": `${NS}:${K.WORKFLOW}`,\n};\n\nexport function translateHistory(\n history: Partial<NextBuilderModels.ModelWorkspaceChangeHistory>\n): Record<string, string> {\n const historyAction =\n history.action === \"rollback\" && !history.rollBackIdInfo\n ? \"rollback_all\"\n : history.action;\n\n const category = i18n.t(\n categoryI18nKeyMap[history.category] ?? history.category\n );\n const action = i18n.t(actionI18nKeyMap[historyAction] ?? historyAction);\n const leftObjectId = i18n.t(\n modelI18nKeyMap[history.abstract?.leftObjectId] ??\n history.abstract?.leftObjectId\n );\n const rightObjectId = i18n.t(\n modelI18nKeyMap[history.abstract?.rightObjectId] ??\n history.abstract?.rightObjectId\n );\n const nodes = translateNodes(\n history.abstract?.nodes,\n history.abstract?.nodesCount\n );\n const leftNodes = translateNodes(\n history.abstract?.leftNodes,\n history.abstract?.leftNodesCount\n );\n const rightNodes = translateNodes(\n history.abstract?.rightNodes,\n history.abstract?.rightNodesCount\n );\n const rollbackAbstract =\n historyAction === \"rollback\"\n ? translateHistory(history.rollBackIdInfo).abstract\n : null;\n\n const abstract = i18n.t(\n fullActionI18nKeyMap[historyAction] ?? historyAction,\n {\n category,\n nodes,\n leftNodes,\n rightNodes,\n nodeChanges: history.abstract?.nodeChanges?.join(\", \"),\n relationChanges: history.abstract?.relationChanges?.join(\", \"),\n leftObjectId,\n rightObjectId,\n rollbackAbstract,\n }\n );\n\n return {\n category,\n action,\n leftObjectId,\n rightObjectId,\n nodes,\n leftNodes,\n rightNodes,\n abstract,\n rollbackAbstract,\n };\n}\n\nfunction translateNodes(nodes: string[] = [], total: number, separator = \", \") {\n return i18n.t(`${NS}:${K.NODE}`, {\n nodes: nodes.join(separator),\n context: total > nodes.length ? \"ellipsis\" : undefined,\n count: total,\n });\n}\n","import React, { useRef, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport type {\n EoEasyopsAvatar,\n EoEasyopsAvatarProps,\n} from \"@next-bricks/basic/easyops-avatar\";\nimport type {\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping,\n} from \"@next-bricks/basic/popover\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport \"@next-core/theme\";\nimport moment from \"moment\";\nimport styleText from \"./styles.shadow.css\";\nimport { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport {\n WorkspaceApi_getChangeHistory,\n NextBuilderModels,\n} from \"@next-api-sdk/next-builder-sdk\";\nimport { translateHistory } from \"./utils.js\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedEasyopsAvatar = wrapBrick<EoEasyopsAvatar, EoEasyopsAvatarProps>(\n \"eo-easyops-avatar\"\n);\nconst WrappedPopover = wrapBrick<\n Popover,\n PopoverProps,\n PopoverEvents,\n PopoverEventsMapping\n>(\"eo-popover\", {\n onVisibleChange: \"visible.change\",\n onBeforeVisibleChange: \"before.visible.change\",\n});\n\ninterface HistoryData\n extends Partial<NextBuilderModels.ModelWorkspaceChangeHistory> {\n translation: Record<string, string>;\n}\n\nexport interface WorkbenchHistoryActionProps {\n appId: string;\n projectId: string;\n}\n\n/**\n * 项目变更历史\n * @insider\n */\nexport\n@defineElement(\"visual-builder.workbench-history-action\", {\n styleTexts: [styleText],\n})\nclass WorkbenchHistoryAction\n extends ReactNextElement\n implements WorkbenchHistoryActionProps\n{\n @property()\n accessor appId: string;\n\n @property()\n accessor projectId: string;\n\n /**\n * 点击历史项标题触发\n */\n @event({ type: \"history.item.click\" })\n accessor #historyItemClickEvent!: EventEmitter<\n HistoryData & { enableRollback: boolean }\n >;\n #handleHistoryItemClick = (\n data: HistoryData & { enableRollback: boolean }\n ): void => {\n this.#historyItemClickEvent.emit(data);\n };\n\n /**\n * 点击回滚触发\n */\n @event({ type: \"rollback\" })\n accessor #rollbackEvent!: EventEmitter<HistoryData>;\n #handleRollback = (data: HistoryData): void => {\n this.#rollbackEvent.emit(data);\n };\n\n /**\n * 回滚全部\n */\n @event({ type: \"rollback.all\" })\n accessor #rollbackAllEvent!: EventEmitter<void>;\n #handleRollbackAll = (): void => {\n this.#rollbackAllEvent.emit();\n };\n\n render() {\n return (\n <WorkbenchHistoryActionComponent\n appId={this.appId}\n projectId={this.projectId}\n onHistoryItemClick={this.#handleHistoryItemClick}\n onRollback={this.#handleRollback}\n onRollbackAll={this.#handleRollbackAll}\n />\n );\n }\n}\n\ninterface WorkbenchHistoryActionComponentProps\n extends WorkbenchHistoryActionProps {\n onHistoryItemClick?: (\n data: HistoryData & { enableRollback: boolean }\n ) => void;\n onRollback?: (data: HistoryData) => void;\n onRollbackAll?: () => void;\n}\n\nexport function WorkbenchHistoryActionComponent(\n props: WorkbenchHistoryActionComponentProps\n) {\n const { appId, onHistoryItemClick, onRollback, onRollbackAll } = props;\n const { t } = useTranslation(NS);\n\n const [loading, setLoading] = useState(false);\n const [hideLoadMore, setHideLoadMore] = useState(true);\n const [allLoaded, setAllLoaded] = useState(false);\n const [historyList, setHistoryList] = useState<HistoryData[]>([]);\n const lastTs = useRef<string>(\"\");\n\n const handleLoadList = (isFirst?: boolean) => {\n setLoading(true);\n WorkspaceApi_getChangeHistory(appId, { ts: lastTs.current, limit: 20 })\n .then((result) => {\n setHistoryList((pre) => {\n const list = result.list.map((v) => ({\n ...v,\n translation: translateHistory(v),\n }));\n return isFirst ? list : pre.concat(list);\n });\n lastTs.current = result.ts;\n setAllLoaded(result.list.length < 20);\n setHideLoadMore(result.list.length < 20);\n })\n .catch((error) => {\n handleHttpError(error);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const handleBeforeVisibleChange = (e: CustomEvent<boolean>) => {\n if (e.detail) {\n setHideLoadMore(true);\n setAllLoaded(false);\n setHistoryList([]);\n lastTs.current = \"\";\n handleLoadList(true);\n }\n };\n\n return (\n <WrappedPopover\n placement=\"bottom\"\n trigger=\"click\"\n arrow={true}\n arrowColor=\"var(--color-fill-bg-container-4)\"\n onBeforeVisibleChange={handleBeforeVisibleChange}\n >\n <WrappedButton\n slot=\"anchor\"\n shape=\"circle\"\n className=\"history-action\"\n icon={{\n lib: \"antd\",\n icon: \"history\",\n theme: \"outlined\",\n }}\n />\n <div>\n <div className=\"history-title\">History</div>\n <div className=\"history-list\">\n {historyList.length ? (\n <>\n {historyList.map((v, i) => {\n return (\n <HistoryItem\n key={`${v.uniqueKey}-${v.ts}`}\n data={v}\n enableRollback={i !== 0 && v.action !== \"rollback\"}\n current={i === 0}\n onHistoryItemClick={onHistoryItemClick}\n onRollback={onRollback}\n />\n );\n })}\n {!hideLoadMore && (\n <span className=\"load-more-container\">\n <WrappedLink\n className=\"load-more\"\n disabled={loading}\n onClick={() => handleLoadList()}\n >\n {t(K.LOAD_MORE)}\n </WrappedLink>\n </span>\n )}\n {allLoaded && (\n <span className=\"end-container\">\n The End\n <WrappedIcon\n className=\"rollback-all\"\n lib=\"antd\"\n icon=\"rollback\"\n theme=\"outlined\"\n onClick={() => onRollbackAll()}\n />\n </span>\n )}\n </>\n ) : (\n <div className=\"empty\">{loading ? t(K.LOADING) : t(K.NO_DATA)}</div>\n )}\n </div>\n {/* 点击历史详情会打开 modal 来展示,这里提供一个 slot,编排将 modal 放置在这里,使其成为 popover 的 children,才能防止用户在操作 modal 过程中意外关闭 popover */}\n <slot />\n </div>\n </WrappedPopover>\n );\n}\n\ninterface HistoryItemProps {\n data: HistoryData;\n enableRollback?: boolean;\n current?: boolean;\n onHistoryItemClick?: (\n data: HistoryData & { enableRollback: boolean }\n ) => void;\n onRollback?: (data: HistoryData) => void;\n}\n\nfunction HistoryItem(props: HistoryItemProps) {\n const { data, enableRollback, current, onHistoryItemClick, onRollback } =\n props;\n\n const ts = moment(Number(data.ts) / 1000000);\n const duration = moment.duration(ts.diff(moment()));\n const humanizedTime =\n duration.days() <= -1\n ? ts.format(\"YYYY-MM-DD HH:mm:ss\")\n : duration.humanize(true, { ss: 0, s: 60, m: 60, h: 24 });\n\n return (\n <div className=\"item-container\">\n <div className=\"item-title\">\n <div\n className=\"title-left\"\n onClick={() => onHistoryItemClick({ ...data, enableRollback })}\n >\n <div className=\"topic\" title={data.translation.abstract}>\n {data.translation.abstract}\n </div>\n {current && <div className=\"branch\">(current)</div>}\n </div>\n <div className=\"title-right\">\n {enableRollback && (\n <WrappedIcon\n className=\"rollback\"\n lib=\"antd\"\n icon=\"rollback\"\n theme=\"outlined\"\n onClick={() => onRollback(data)}\n />\n )}\n </div>\n </div>\n <div className=\"item-info\">\n <WrappedEasyopsAvatar\n className=\"avatar\"\n nameOrInstanceId={data.user}\n size=\"xs\"\n />\n <div className=\"time\">{humanizedTime}</div>\n <div className=\"operator\">{data.user}</div>\n </div>\n </div>\n );\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport classNames from \"classnames\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\nconst autoFocusedSets = new Set<string>();\n\nexport interface PageArchNodeProps {\n label?: string;\n type?: PageArchNodeType;\n active?: boolean;\n external?: ExtraNodeData;\n subNodes?: ExtraNodeData[];\n autoFocusOnce?: string;\n notSynced?: boolean;\n disableChildAppend?: boolean;\n}\n\nexport interface ExtraNodeData {\n label: string;\n id: string;\n}\n\nexport interface SubNodeContextMenuData extends ContextMenuDetail {\n node: ExtraNodeData;\n}\n\nexport interface ContextMenuDetail {\n clientX: number;\n clientY: number;\n}\n\nexport type PageArchNodeType = \"page\" | \"board\";\n\n/**\n * 构件 `visual-builder.page-arch-node`\n */\nexport\n@defineElement(\"visual-builder.page-arch-node\", {\n styleTexts: [styleText],\n})\nclass PageArchNode extends ReactNextElement implements PageArchNodeProps {\n @property()\n accessor label: string | undefined;\n\n @property()\n accessor type: PageArchNodeType | undefined;\n\n @property({ attribute: false })\n accessor external: ExtraNodeData | undefined;\n\n @property({ attribute: false })\n accessor subNodes: ExtraNodeData[] | undefined;\n\n // @property()\n // accessor thumbnail: string | undefined;\n\n @property({ type: Boolean, render: false })\n accessor active: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor notSynced: boolean | undefined;\n\n @property({ type: Boolean, render: false })\n accessor disableChildAppend: boolean | undefined;\n\n @property()\n accessor autoFocusOnce: string | undefined;\n\n @event({ type: \"label.editing.change\" })\n accessor #labelEditingChange: EventEmitter<boolean>;\n\n #handleLabelEditingChange = (value: boolean) => {\n this.#labelEditingChange.emit(value);\n };\n\n @event({ type: \"label.change\" })\n accessor #labelChange: EventEmitter<string>;\n\n #handleLabelChange = (value: string) => {\n this.#labelChange.emit(value);\n };\n\n @event({ type: \"node.click\" })\n accessor #nodeClick: EventEmitter<void>;\n\n #handleNodeClick = () => {\n this.#nodeClick.emit();\n };\n\n @event({ type: \"node.dblclick\" })\n accessor #nodeDoubleClick: EventEmitter<void>;\n\n #handleNodeDoubleClick = () => {\n this.#nodeDoubleClick.emit();\n };\n\n @event({ type: \"node.contextmenu\" })\n accessor #nodeContextMenu: EventEmitter<ContextMenuDetail>;\n\n #handleNodeContextMenu = (data: ContextMenuDetail) => {\n this.#nodeContextMenu.emit(data);\n };\n\n @event({ type: \"child.append\" })\n accessor #childAppend: EventEmitter<void>;\n\n #handleChildAppend = () => {\n this.#childAppend.emit();\n };\n\n @event({ type: \"external.click\" })\n accessor #externalClick: EventEmitter<ExtraNodeData>;\n\n #handleExternalClick = (data: ExtraNodeData) => {\n this.#externalClick.emit(data);\n };\n\n @event({ type: \"subNode.dblclick\" })\n accessor #subNodeDoubleClick: EventEmitter<ExtraNodeData>;\n\n #handleSubNodeDoubleClick = (data: ExtraNodeData) => {\n this.#subNodeDoubleClick.emit(data);\n };\n\n @event({ type: \"subNode.contextmenu\" })\n accessor #subNodeContextMenu: EventEmitter<SubNodeContextMenuData>;\n\n #handleSubNodeContextMenu = (data: SubNodeContextMenuData) => {\n this.#subNodeContextMenu.emit(data);\n };\n\n render() {\n return (\n <PageArchNodeComponent\n label={this.label}\n type={this.type}\n external={this.external}\n subNodes={this.subNodes}\n autoFocusOnce={this.autoFocusOnce}\n onLabelEditingChange={this.#handleLabelEditingChange}\n onLabelChange={this.#handleLabelChange}\n onNodeClick={this.#handleNodeClick}\n onNodeDoubleClick={this.#handleNodeDoubleClick}\n onNodeContextMenu={this.#handleNodeContextMenu}\n onChildAppend={this.#handleChildAppend}\n onExternalClick={this.#handleExternalClick}\n onSubNodeDoubleClick={this.#handleSubNodeDoubleClick}\n onSubNodeContextMenu={this.#handleSubNodeContextMenu}\n />\n );\n }\n}\n\nexport interface PageArchNodeComponentProps extends PageArchNodeProps {\n onLabelEditingChange?(value: boolean): void;\n onLabelChange?(value: string): void;\n onNodeClick?(): void;\n onNodeDoubleClick?(): void;\n onNodeContextMenu?(data: ContextMenuDetail): void;\n onChildAppend?(): void;\n onExternalClick?(data: ExtraNodeData): void;\n onSubNodeDoubleClick?(data: ExtraNodeData): void;\n onSubNodeContextMenu?(data: SubNodeContextMenuData): void;\n}\n\nexport function PageArchNodeComponent({\n label,\n type: _type,\n external,\n subNodes,\n autoFocusOnce,\n onLabelEditingChange,\n onLabelChange,\n onNodeClick,\n onNodeDoubleClick,\n onNodeContextMenu,\n onChildAppend,\n onExternalClick,\n onSubNodeDoubleClick,\n onSubNodeContextMenu,\n}: PageArchNodeComponentProps) {\n const type = _type === \"board\" ? \"board\" : \"page\";\n const [currentLabel, setCurrentLabel] = useState(label);\n const [editingLabel, setEditingLabel] = useState(false);\n const editingLabelInitialized = useRef(false);\n const [shouldEmitLabelChange, setShouldEmitLabelChange] = useState(false);\n const labelInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setCurrentLabel(label);\n }, [label]);\n\n const handleEditLabel = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n setEditingLabel(true);\n }, []);\n\n useEffect(() => {\n if (autoFocusOnce && !autoFocusedSets.has(autoFocusOnce)) {\n autoFocusedSets.add(autoFocusOnce);\n setTimeout(() => {\n setEditingLabel(true);\n }, 1);\n }\n }, [autoFocusOnce]);\n\n useEffect(() => {\n if (editingLabel) {\n // Prevent scroll when focusing.\n // Otherwise the diagram svg may be clipped in Chrome.\n labelInputRef.current?.focus({ preventScroll: true });\n labelInputRef.current?.select();\n }\n }, [editingLabel]);\n\n useEffect(() => {\n if (editingLabelInitialized.current) {\n onLabelEditingChange?.(editingLabel);\n } else {\n editingLabelInitialized.current = true;\n }\n }, [editingLabel, onLabelEditingChange]);\n\n const handleInputChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n setCurrentLabel(event.target.value);\n },\n []\n );\n\n const handleInputKeydown = useCallback((event: React.KeyboardEvent) => {\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n if (key === \"Enter\" || key === 13) {\n labelInputRef.current?.blur();\n }\n }, []);\n\n const handleInputBlur = useCallback(() => {\n setEditingLabel(false);\n setShouldEmitLabelChange(true);\n }, []);\n\n useEffect(() => {\n if (shouldEmitLabelChange) {\n onLabelChange?.(currentLabel);\n setShouldEmitLabelChange(false);\n }\n }, [currentLabel, onLabelChange, shouldEmitLabelChange]);\n\n const handleChildAppend = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onChildAppend?.();\n },\n [onChildAppend]\n );\n\n const handleExternalClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onExternalClick?.(external);\n },\n [external, onExternalClick]\n );\n\n const stopPropagation = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n // 32 + 8\n const extraHeight = Math.max(0, Math.floor((subNodes?.length ?? 0) - 3)) * 38;\n\n return (\n <>\n <div\n className={classNames(\"node\", type, { \"editing-label\": editingLabel })}\n style={{ height: type === \"board\" ? 70 : 130 + extraHeight }}\n onClick={onNodeClick}\n onDoubleClick={onNodeDoubleClick}\n onContextMenu={(e) => {\n e.stopPropagation();\n e.preventDefault();\n onNodeContextMenu?.({\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }}\n >\n <input\n className=\"label-input\"\n value={currentLabel}\n ref={labelInputRef}\n onChange={handleInputChange}\n onKeyDown={handleInputKeydown}\n onBlur={handleInputBlur}\n onDoubleClick={stopPropagation}\n onContextMenu={stopPropagation}\n onMouseDown={stopPropagation}\n />\n <div\n className=\"label\"\n onDoubleClick={handleEditLabel}\n onMouseDown={stopPropagation}\n >\n {currentLabel}\n </div>\n {type === \"board\" ? (\n <div className=\"icon-container\">\n <WrappedIcon lib=\"antd\" icon=\"unordered-list\" />\n </div>\n ) : (\n <div\n className=\"thumbnail-container\"\n style={{\n height: 98 + extraHeight,\n }}\n >\n <div className=\"thumbnail-placeholder\">\n <WrappedIcon lib=\"antd\" icon=\"ellipsis\" />\n </div>\n {external && (\n <div\n className=\"external\"\n onClick={handleExternalClick}\n onDoubleClick={stopPropagation}\n onMouseDown={stopPropagation}\n >\n <WrappedIcon lib=\"antd\" icon=\"desktop\" />\n <span className=\"external-label\">{external.label}</span>\n </div>\n )}\n {subNodes?.length ? (\n <div className=\"sub-nodes\">\n {subNodes.map((subNode) => (\n <SubNode\n key={subNode.id}\n subNode={subNode}\n onSubNodeDoubleClick={onSubNodeDoubleClick}\n onSubNodeContextMenu={onSubNodeContextMenu}\n />\n ))}\n </div>\n ) : null}\n </div>\n )}\n </div>\n <div\n className=\"add-button\"\n role=\"button\"\n onClick={handleChildAppend}\n onMouseDown={stopPropagation}\n >\n <WrappedIcon lib=\"fa\" icon=\"plus\" />\n </div>\n </>\n );\n}\n\nexport interface SubNodeProps {\n subNode: ExtraNodeData;\n onSubNodeDoubleClick?(data: ExtraNodeData): void;\n onSubNodeContextMenu?(data: SubNodeContextMenuData): void;\n}\n\nfunction SubNode({\n subNode,\n onSubNodeDoubleClick,\n onSubNodeContextMenu,\n}: SubNodeProps) {\n return (\n <WrappedTooltip key={subNode.id} content={subNode.label}>\n <div\n className=\"sub-node\"\n onDoubleClick={(e) => {\n e.stopPropagation();\n onSubNodeDoubleClick?.(subNode);\n }}\n onContextMenu={(e) => {\n e.stopPropagation();\n e.preventDefault();\n onSubNodeContextMenu?.({\n node: subNode,\n clientX: e.clientX,\n clientY: e.clientY,\n });\n }}\n >\n <div className=\"sub-node-skeleton-title\"></div>\n <div className=\"sub-node-skeleton-content\"></div>\n <div className=\"sub-node-skeleton-button\"></div>\n </div>\n </WrappedTooltip>\n );\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateSetter(s, r, a, t) {\n return r(assertClassBrand(s, a), t), t;\n}","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm, ColProps } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelCol: ColProps | undefined;\n\n @property({\n attribute: false,\n })\n accessor wrapperCol: ColProps | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 契约搜索\n * @endpoint POST /api/v1/contract/search\n */\nexport var ContractCenterApi_searchContract = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (/**! @contract easyops.api.next_builder.contract_center.SearchContract@1.0.0 */(yield http.post(\"api/gateway/next_builder.contract_center.SearchContract/api/v1/contract/search\", data, options)).data\n );\n });\n return function ContractCenterApi_searchContract(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=searchContract.js.map","export enum K {\n CONTRACT_OPTIONS_TIPS_PREFIX = \"CONTRACT_OPTIONS_TIPS_PREFIX\",\n CONTRACT_OPTIONS_TIPS_SUFFIX = \"CONTRACT_OPTIONS_TIPS_SUFFIX\",\n CONTRACT_VALIDATE_MESSAGE = \"CONTRACT_VALIDATE_MESSAGE\",\n}\n\nconst en: Locale = {\n CONTRACT_OPTIONS_TIPS_PREFIX: \"Only the first\",\n CONTRACT_OPTIONS_TIPS_SUFFIX:\n \"items are displayed, please search for more results\",\n CONTRACT_VALIDATE_MESSAGE: \"Please fill in the correct contract name \",\n};\n\nconst zh: Locale = {\n CONTRACT_OPTIONS_TIPS_PREFIX: \"仅展示前\",\n CONTRACT_OPTIONS_TIPS_SUFFIX: \"项,更多结果请搜索\",\n CONTRACT_VALIDATE_MESSAGE: \"请填写正确的契约名称\",\n};\n\nexport const NS = \"bricks/visual-builder/contract-select\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import React, { useState } from \"react\";\nimport { K, NS, locales } from \"../i18n.js\";\nimport { initializeReactI18n, useTranslation } from \"@next-core/i18n/react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport {\n Input,\n InputEvents,\n InputEventsMap,\n InputProps,\n} from \"@next-bricks/form/input\";\n\ninitializeReactI18n(NS, locales);\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedInput = wrapBrick<Input, InputProps, InputEvents, InputEventsMap>(\n \"eo-input\",\n {\n onChange: \"change\",\n }\n);\n\nexport interface MoreOptionProps {\n slot?: string;\n itemsCount?: number;\n onBlur?(itemsCount: number): void;\n}\n\nexport function MoreOption(props: MoreOptionProps): React.ReactElement {\n const { itemsCount = 20, onBlur } = props;\n const [count, setCount] = useState(itemsCount);\n const { t } = useTranslation(NS);\n const [edit, setEdit] = useState(false);\n\n const handleChange = (e: CustomEvent<string>): void => {\n setCount(Number(e.detail));\n };\n\n const handleClick = (): void => {\n setEdit(true);\n };\n\n const handleBlur = (): void => {\n setEdit(false);\n onBlur?.(count);\n };\n\n return (\n <div className=\"options-tips\" slot={props.slot}>\n {t(K.CONTRACT_OPTIONS_TIPS_PREFIX)}{\" \"}\n {edit ? (\n <WrappedInput\n autoFocus={true}\n inputStyle={{ width: 65 }}\n value={String(count)}\n onBlur={handleBlur}\n onChange={handleChange as any}\n />\n ) : (\n <span>\n {count} <WrappedIcon icon=\"edit\" lib=\"antd\" onClick={handleClick} />\n </span>\n )}{\" \"}\n {t(K.CONTRACT_OPTIONS_TIPS_SUFFIX)}\n </div>\n );\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport type {\n AutoComplete,\n AutoCompleteProps,\n AutoCompleteEvents,\n AutoCompleteEventsMap,\n} from \"@next-bricks/form/auto-complete\";\nimport { debounce, isNil } from \"lodash\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport { useContractList } from \"./useContractList.js\";\nimport { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { K, NS, locales } from \"./i18n.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport { i18n } from \"@next-core/i18n\";\nimport { MoreOption } from \"./more-option/MoreOption\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nconst WrappedAutoComplete = wrapBrick<\n AutoComplete,\n AutoCompleteProps,\n AutoCompleteEvents,\n AutoCompleteEventsMap\n>(\"eo-auto-complete\", {\n onChange: \"change\",\n});\n\n/**\n * 契约选择构件\n */\nexport\n@defineElement(\"visual-builder.contract-select\", {\n styleTexts: [styleText],\n})\nclass EoContractSelect extends FormItemElementBase {\n @property()\n accessor name: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({\n attribute: false,\n })\n accessor value: any | undefined;\n\n @property({\n attribute: false,\n })\n accessor suffix:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent: EventEmitter<string>;\n\n handleChange = (v: string) => {\n this.#changeEvent.emit(v);\n };\n\n render() {\n return (\n <WrappedFormItem\n exportparts=\"message\"\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n labelBrick={this.labelBrick}\n helpBrick={this.helpBrick}\n notRender={this.notRender}\n trigger=\"handleChange\"\n validator={checkContractRule}\n >\n <EoContractSelectComponent\n value={this.value}\n suffix={this.suffix}\n validateState={this.validateState}\n onChange={this.handleChange}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport interface EoContractSelectProps {\n value?: string;\n validateState?: string;\n placeholder?: string;\n inputStyle?: React.CSSProperties;\n suffix?: { useBrick: UseSingleBrickConf | UseSingleBrickConf[] };\n onChange?(value: string): void;\n}\n\ninterface ProcessedContractField {\n name: string;\n version: string;\n}\n\nfunction splitContract(value: string): ProcessedContractField {\n if (typeof value !== \"string\")\n return {\n name: \"\",\n version: \"\",\n };\n const [name, version] = value.split(\":\");\n return {\n name,\n version,\n };\n}\n\nfunction isContractApi(name: string): boolean {\n return /.*@.*:\\d+\\.\\d+\\.\\d+/.test(name);\n}\n\nexport function checkContractRule(value: any): string {\n if (!isNil(value) && !isContractApi(value)) {\n return i18n.t(`${NS}:${K.CONTRACT_VALIDATE_MESSAGE}`);\n }\n return \"\";\n}\n\nexport function EoContractSelectComponent({\n value,\n inputStyle,\n validateState,\n suffix,\n onChange,\n}: EoContractSelectProps) {\n const [q, setQ] = useState<string>();\n const [pageSize, setPageSize] = useState(20);\n const contractList = useContractList({ q, pageSize });\n const [mixedValue, setMixedValue] = useState(splitContract(value));\n const [versionOptions, setVersionOptions] = useState([]);\n\n useEffect(() => {\n setMixedValue(splitContract(value));\n }, [value]);\n\n const handlerSearch = useMemo(\n () =>\n debounce((value) => {\n setQ(value);\n }, 200),\n []\n );\n\n const handlerNameChange = (event: CustomEvent<string>): void => {\n const name = event.detail;\n // 直接 copy 契约全名\n if (isContractApi(name)) {\n setMixedValue(splitContract(name));\n onChange?.(name);\n } else {\n const versionList = contractList.find(\n (item) => item.fullContractName === name\n )?.version;\n\n const autofillVersion = versionList?.[0] ?? \"\";\n setVersionOptions(versionList);\n setMixedValue({\n name,\n version: autofillVersion,\n });\n onChange?.(`${name}:${autofillVersion}`);\n }\n handlerSearch(name);\n };\n\n const handleVersionChange = (event: CustomEvent<string>): void => {\n const version = event.detail;\n setMixedValue({\n name: mixedValue.name,\n version,\n });\n\n onChange?.(`${mixedValue.name}:${version}`);\n };\n\n return (\n <div className=\"contract-wrapper\">\n <WrappedAutoComplete\n className=\"contract-selector\"\n options={contractList?.map((item) => ({\n value: item.fullContractName,\n label: item.fullContractName,\n }))}\n value={mixedValue.name}\n inputStyle={inputStyle}\n validateState={validateState}\n onChange={handlerNameChange as any}\n >\n <MoreOption\n onBlur={(pageSize) => setPageSize(pageSize)}\n slot=\"options-toolbar\"\n />\n </WrappedAutoComplete>\n <WrappedAutoComplete\n className=\"version-selector\"\n value={mixedValue.version}\n validateState={validateState}\n options={versionOptions?.map((v) => ({ value: v, label: v }))}\n onChange={handleVersionChange as any}\n ></WrappedAutoComplete>\n {suffix?.useBrick ? (\n <ReactUseMultipleBricks {...suffix}></ReactUseMultipleBricks>\n ) : null}\n </div>\n );\n}\n","import { useEffect, useState } from \"react\";\nimport { ContractCenterApi_searchContract } from \"@next-api-sdk/next-builder-sdk\";\n\ninterface ContractParams {\n pageSize?: number;\n q?: string;\n}\n\ninterface ContractField {\n fullContractName?: string;\n version: string[];\n}\n\nexport function useContractList({\n pageSize = 20,\n q = \"\",\n}: ContractParams): ContractField[] {\n const [contractList, setContractList] = useState<ContractField[]>([]);\n const [query, setQ] = useState<string>(q);\n const [count, setCount] = useState(pageSize);\n\n useEffect(() => {\n setQ(q);\n }, [q]);\n\n useEffect(() => {\n setCount(pageSize);\n }, [pageSize]);\n\n useEffect(() => {\n (async () => {\n try {\n const { list } = await ContractCenterApi_searchContract(\n {\n page: 1,\n pageSize: count,\n fullContractName: query,\n },\n {\n interceptorParams: { ignoreLoadingBar: true },\n }\n );\n\n setContractList(list as ContractField[]);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(err);\n setContractList([]);\n }\n })();\n }, [query, count]);\n\n return contractList;\n}\n","import React, { useState, useCallback, useRef, useEffect } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport { unwrapProvider } from \"@next-core/utils/general\";\nimport \"@next-core/theme\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\nimport { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { Menu } from \"@next-bricks/basic/menu\";\nimport { MenuItem, MenuComponentProps } from \"@next-bricks/basic/menu-item\";\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport type { lockBodyScroll as _lockBodyScroll } from \"@next-bricks/basic/data-providers/lock-body-scroll/lock-body-scroll\";\n\nconst WrappedMenu = wrapBrick<Menu, unknown>(\"eo-menu\");\nconst WrappedMenuItem = wrapBrick<MenuItem, MenuComponentProps>(\"eo-menu-item\");\nconst WrappedTooltip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\nconst lockBodyScroll = unwrapProvider<typeof _lockBodyScroll>(\n \"basic.lock-body-scroll\"\n);\n\nimport { NS, locales } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\ninitializeReactI18n(NS, locales);\n\nconst { defineElement, property, event, method } = createDecorators();\n\nconst MINIMAL_PADDING = 8;\n\nexport type Position = [x: number, y: number];\n\nexport interface OpenInfo {\n /**\n * 通常设为 `[EVENT.clientX, EVENT.clientY]`\n */\n position: Position;\n}\n\nexport interface SnippetItem {\n text: string;\n icon?: GeneralIconProps;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n dragConf?: {\n format: string;\n data: unknown;\n };\n}\n\nexport interface SnippetOption {\n title?: string;\n children?: SnippetItem[];\n}\n\n/**\n * 构件 `visual-builder.generate-snippets-context-menu`\n */\nexport\n@defineElement(\"visual-builder.generate-snippets-context-menu\", {\n styleTexts: [styleText],\n})\nclass GenerateSnippetsContextMenu extends ReactNextElement {\n @property({\n attribute: false,\n })\n accessor options: SnippetOption[] | undefined;\n\n @property({\n type: Boolean,\n })\n accessor active: boolean | undefined;\n\n @property({ attribute: false })\n accessor position: Position | undefined;\n\n @event({ type: \"item.drag.start\" })\n accessor #itemDragStartEvent!: EventEmitter<SnippetItem>;\n\n @event({ type: \"item.drag.end\" })\n accessor #itemDragEndEvent!: EventEmitter<SnippetItem>;\n\n @method()\n open({ position }: OpenInfo) {\n this.active = true;\n this.position = position;\n }\n\n @method()\n close() {\n this.active = false;\n this.position = undefined;\n }\n\n #handleItemDragStart = (action: SnippetItem): void => {\n this.#itemDragStartEvent.emit(action);\n };\n\n #handleItemDragEnd = (action: SnippetItem): void => {\n this.#itemDragEndEvent.emit(action);\n };\n\n disconnectedCallback() {\n super.disconnectedCallback();\n lockBodyScroll(this, false);\n }\n\n render() {\n return (\n <GenerateSnippetsContextMenuComponent\n active={this.active}\n element={this}\n position={this.position}\n onItemDragStart={this.#handleItemDragStart}\n onItemDragEnd={this.#handleItemDragEnd}\n options={this.options}\n />\n );\n }\n}\n\nexport interface GenerateSnippetsContextMenuProps {\n options?: SnippetOption[];\n active?: boolean;\n position?: Position;\n element?: GenerateSnippetsContextMenu;\n onItemDragStart?: (data: SnippetItem) => void;\n onItemDragEnd?: (data: SnippetItem) => void;\n}\n\nexport function GenerateSnippetsContextMenuComponent({\n element,\n active,\n onItemDragEnd,\n onItemDragStart,\n options,\n position,\n}: GenerateSnippetsContextMenuProps) {\n const [dragging, setDragging] = useState(false);\n const containerRef = useRef<any>(null);\n const [fixedPosition, setFixedPosition] = useState<Position | null>(null);\n\n const handleMaskClick = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n element?.close();\n },\n [element]\n );\n\n const handleItemStart = useCallback(\n (e: React.DragEvent, data: SnippetItem) => {\n setDragging(true);\n\n if (data.dragConf) {\n e.dataTransfer?.setData(\n data.dragConf.format,\n JSON.stringify(data.dragConf.data)\n );\n }\n (e.target as HTMLElement).classList.add(\"dragging\");\n onItemDragStart?.(data);\n },\n [onItemDragStart]\n );\n\n const handleItemDragEnd = useCallback(\n (e: React.DragEvent, data: SnippetItem) => {\n setDragging(false);\n (e.target as HTMLElement).classList.remove(\"dragging\");\n element?.close();\n onItemDragEnd?.(data);\n },\n [element, onItemDragEnd]\n );\n\n useEffect(() => {\n lockBodyScroll(element!, active);\n }, [active, element]);\n\n useEffect(() => {\n if (active && containerRef.current && position) {\n const rect = containerRef.current.getBoundingClientRect();\n const width = rect.width + MINIMAL_PADDING;\n const height = rect.height + MINIMAL_PADDING;\n const { clientWidth, clientHeight } = document.documentElement;\n const fixed = [...position] as Position;\n if (clientWidth > width && position[0] + width > clientWidth) {\n fixed[0] = position[0] - width;\n }\n if (clientHeight > height && position[1] + height > clientHeight) {\n fixed[1] = clientHeight - height;\n }\n setFixedPosition(fixed);\n } else {\n setFixedPosition(null);\n }\n }, [active, position]);\n\n return (\n <>\n {!dragging && (\n <div\n className=\"mask\"\n onClick={handleMaskClick}\n onContextMenu={handleMaskClick}\n />\n )}\n <div\n className=\"container\"\n ref={containerRef}\n style={{\n left: (fixedPosition ?? position)?.[0],\n top: (fixedPosition ?? position)?.[1],\n visibility: fixedPosition ? \"visible\" : \"hidden\",\n }}\n >\n {options?.map((op, index) => (\n <div key={index}>\n <div className=\"title\">{op.title}</div>\n {op.children?.length && (\n <WrappedMenu>\n {op.children?.map((item, itemIndex) => {\n return (\n <WrappedTooltip\n content={item.tooltip}\n hoist\n placement=\"left\"\n key={itemIndex}\n >\n <WrappedMenuItem\n disabled={item.disabled}\n icon={item.icon}\n draggable={!item.disabled}\n onDragStart={(e: React.DragEvent) =>\n handleItemStart(e, item)\n }\n onDragEnd={(e: React.DragEvent) =>\n handleItemDragEnd(e, item)\n }\n >\n {item.text}\n </WrappedMenuItem>\n </WrappedTooltip>\n );\n })}\n </WrappedMenu>\n )}\n </div>\n ))}\n </div>\n </>\n );\n}\n","export enum K {}\n\nconst en: Locale = {};\n\nconst zh: Locale = {};\n\nexport const NS = \"bricks/visual-builder/generate-snippets-context-menu\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","import { visit } from \"unist-util-visit\";\nimport { toString } from \"hast-util-to-string\";\nimport { refractor, type RefractorElement } from \"refractor\";\n\n// Reference https://github.com/mapbox/rehype-prism\nexport function rehypePrism() {\n function visitor(\n node: RefractorElement,\n _index: number | undefined,\n parent: RefractorElement | undefined\n ) {\n if (!parent || parent.tagName !== \"pre\" || node.tagName !== \"code\") {\n return;\n }\n\n const lang = getLanguage(node);\n\n if (lang === null) {\n return;\n }\n\n let result;\n try {\n parent.properties.className = (\n (parent.properties.className as string[]) || []\n ).concat(\"language-\" + lang);\n result = refractor.highlight(toString(node), lang);\n } catch {\n return;\n }\n\n node.children = result.children;\n }\n return (tree: RefractorElement) => {\n visit(tree, \"element\", visitor);\n };\n}\n\nfunction getLanguage(node: RefractorElement) {\n const className = (node.properties.className as string[]) || [];\n\n for (const classListItem of className) {\n if (classListItem.slice(0, 9) === \"language-\") {\n return classListItem.slice(9).toLowerCase();\n }\n }\n\n return null;\n}\n","import { useEffect, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport { unified } from \"unified\";\nimport remarkParse from \"remark-parse\";\nimport remarkToRehype from \"remark-rehype\";\nimport rehypeReact, { Options as RehypeReactOptions } from \"rehype-react\";\nimport { rehypePrism } from \"./rehypePrism.js\";\n\nconst production = { Fragment, jsx, jsxs };\n\nexport interface MarkdownComponentProps {\n content?: string;\n}\n\n// Reference https://github.com/remarkjs/react-remark/blob/39553e5f5c9e9b903bebf261788ff45130668de0/src/index.ts\nexport function MarkdownComponent({ content }: MarkdownComponentProps) {\n const [reactContent, setReactContent] = useState<JSX.Element | null>(null);\n\n useEffect(() => {\n let ignore = false;\n unified()\n .use(remarkParse)\n .use(remarkToRehype)\n .use([rehypePrism])\n .use(rehypeReact, production as RehypeReactOptions)\n .process(content)\n .then((vFile) => {\n if (!ignore) {\n setReactContent(vFile.result);\n }\n })\n .catch((error) => {\n if (!ignore) {\n // eslint-disable-next-line no-console\n console.error(\"Convert markdown failed:\", error);\n setReactContent(null);\n }\n });\n return () => {\n ignore = true;\n };\n }, [content]);\n\n return reactContent;\n}\n","import React, { useEffect, useMemo, useRef } from \"react\";\nimport classNames from \"classnames\";\nimport { MarkdownComponent } from \"@next-shared/markdown\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { AvatarProps, EoAvatar } from \"@next-bricks/basic/avatar\";\nimport type { Message } from \"./index\";\n\nconst WrappedAvatar = wrapBrick<EoAvatar, AvatarProps>(\"eo-avatar\");\n\nexport interface MessageComponentProps {\n message: Message;\n}\n\ntype MessageChunk =\n | MessageChunkPlain\n | MessageChunkMarkdown\n | MessageChunkCommand;\n\ninterface MessageChunkPlain {\n type: \"plain\";\n content: string;\n}\n\ninterface MessageChunkMarkdown {\n type: \"markdown\";\n content: string;\n}\n\ninterface MessageChunkCommand {\n type: \"command\";\n command: string;\n content: string;\n raw: string;\n}\n\nexport function MessageComponent({ message }: MessageComponentProps) {\n const messageChunks = useMemo(() => {\n const chunks: MessageChunk[] = [];\n\n if (message.role === \"assistant\") {\n const chunkRegExp =\n /(?:^|\\n)```(easy_cmd_\\S+)\\n([\\s\\S]*?)\\n```(?:$|\\n)/gm;\n\n let match: RegExpExecArray | null;\n let lastIndex = 0;\n while ((match = chunkRegExp.exec(message.content))) {\n const [fullMatch, command, content] = match;\n const start = match.index;\n const previousText = message.content.slice(lastIndex, start).trim();\n if (previousText.length > 0) {\n chunks.push({\n type: \"markdown\",\n content: previousText,\n });\n }\n chunks.push({\n type: \"command\",\n command,\n content: content.trim(),\n raw: fullMatch,\n });\n lastIndex = chunkRegExp.lastIndex;\n }\n const lastText = message.content.slice(lastIndex).trim();\n if (lastText.length > 0) {\n chunks.push({\n type: \"markdown\",\n content: lastText,\n });\n }\n } else {\n chunks.push({\n type: \"plain\",\n content: message.content,\n });\n }\n\n return chunks;\n }, [message.content, message.role]);\n\n const contentRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n const contentElement = contentRef.current;\n if (!contentElement) {\n return;\n }\n setTimeout(() => {\n const textingElements =\n contentElement.parentElement.querySelectorAll(\".texting\");\n for (const element of textingElements) {\n element.classList.remove(\"texting\");\n }\n if (!message.partial) {\n return;\n }\n // Find the last text element descendant of the message element,\n // and apply a texting effect to it.\n let current = contentElement as HTMLElement;\n while (current) {\n const lastChild = current.lastChild;\n if (\n lastChild?.nodeType === Node.ELEMENT_NODE &&\n ((lastChild as HTMLElement)?.tagName !== \"DETAILS\" ||\n (lastChild as HTMLDetailsElement).open)\n ) {\n current = lastChild as HTMLElement;\n } else {\n // Handle a special case: the last child is a text node without any\n // non-whitespace content. In such case, we should apply the texting\n // effect to the previous sibling element.\n if (\n lastChild?.nodeType === Node.TEXT_NODE &&\n lastChild.textContent.trim().length === 0 &&\n lastChild.previousSibling?.nodeType === Node.ELEMENT_NODE\n ) {\n current = lastChild.previousSibling as HTMLElement;\n } else {\n break;\n }\n }\n }\n current.classList.add(\"texting\");\n }, 1);\n }, [message.partial, message.content]);\n\n return (\n <div className={classNames(\"message\", { failed: message.failed })}>\n <div className=\"avatar\">\n <WrappedAvatar\n icon={{\n lib: \"easyops\",\n icon: message.role === \"assistant\" ? \"robot\" : \"account\",\n }}\n size=\"small\"\n className={`role-${message.role}`}\n />\n </div>\n <div className=\"main\">\n <div className=\"label\">\n {message.role === \"assistant\" ? \"Assistant\" : \"You\"}\n </div>\n <div className=\"content\" ref={contentRef}>\n {messageChunks.map((chunk, index) => (\n <MessageChunkComponent key={index} chunk={chunk} />\n ))}\n </div>\n </div>\n </div>\n );\n}\n\nfunction MessageChunkComponent({ chunk }: { chunk: MessageChunk }) {\n return (\n <>\n {chunk.type === \"markdown\" ? (\n <div className=\"markdown\">\n <MarkdownComponent content={chunk.content} />\n </div>\n ) : chunk.type === \"command\" ? (\n <>\n <details className=\"command\">\n <summary>```{chunk.command}</summary>\n <pre>\n <code>{chunk.content}</code>\n </pre>\n </details>\n </>\n ) : (\n <div className=\"plain\">{chunk.content}</div>\n )}\n </>\n );\n}\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf } from \"@next-core/types\";\nimport { MessageComponent } from \"./MessageComponent\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface Message {\n role: \"user\" | \"assistant\";\n content: string;\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface ChatConversationProps {\n messages?: Message[];\n errorBoundary?: boolean;\n}\n\ntype StoryboardChunk = StoryboardChunkBlock | StoryboardChunkBlockItem;\n\ninterface StoryboardChunkBlock {\n type: \"block\";\n uuid: string;\n children: string[];\n name: string;\n seq: number;\n hasContainer?: boolean;\n}\n\ninterface StoryboardChunkBlockItem {\n type: \"item\";\n uuid: string;\n storyboard?: BrickConf;\n}\n\n/**\n * 用于 Visual Builder 的智能聊天对话列表\n */\nexport\n@defineElement(\"visual-builder.chat-conversation\", {\n styleTexts: [styleText],\n})\nclass ChatConversation\n extends ReactNextElement\n implements ChatConversationProps\n{\n @property({ attribute: false })\n accessor messages: Message[] | undefined;\n\n @property({ type: Boolean })\n accessor errorBoundary: boolean | undefined;\n\n @event({ type: \"storyboard.update\" })\n accessor #storyboardUpdate!: EventEmitter<BrickConf[]>;\n\n #handleStoryboardUpdate = (storyboard: BrickConf[]) => {\n this.#storyboardUpdate.emit(storyboard);\n };\n\n render() {\n return (\n <ChatConversationComponent\n host={this}\n messages={this.messages}\n errorBoundary={this.errorBoundary}\n onStoryboardUpdate={this.#handleStoryboardUpdate}\n />\n );\n }\n}\n\nexport interface ChatConversationComponentProps extends ChatConversationProps {\n host: Element;\n onStoryboardUpdate?: (storyboard: BrickConf[]) => void;\n}\n\nexport function ChatConversationComponent({\n messages,\n host,\n errorBoundary,\n onStoryboardUpdate,\n}: ChatConversationComponentProps) {\n const chunkRegExp = useMemo(\n () =>\n /(?:^|\\n)```easy_cmd_vb_block_(page|storyboard)\\n([\\s\\S]*?)\\n```(?:$|\\n)/gm,\n []\n );\n const lastIndexMapRef = useRef(new Map<number, number>());\n const [chunks, setChunks] = useState<StoryboardChunk[]>([]);\n const manualScrolledRef = useRef(false);\n\n useEffect(() => {\n for (const message of messages ?? []) {\n if (message.role !== \"assistant\") {\n continue;\n }\n chunkRegExp.lastIndex = lastIndexMapRef.current.get(message.key) ?? 0;\n let match: RegExpExecArray | null;\n const newChunks: StoryboardChunk[] = [];\n let newPage = false;\n while ((match = chunkRegExp.exec(message.content))) {\n lastIndexMapRef.current.set(message.key, chunkRegExp.lastIndex);\n const [, type, content] = match;\n try {\n const parsed = JSON.parse(content) as unknown;\n if (type === \"page\") {\n newPage = true;\n newChunks.push(\n ...(parsed as (StoryboardChunkBlock | StoryboardChunkBlockItem)[])\n );\n } else {\n newChunks.push({\n ...(parsed as StoryboardChunkBlockItem),\n type: \"item\",\n });\n }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"parse storyboard failed:\", e);\n }\n }\n if (newPage) {\n setChunks(newChunks);\n } else if (newChunks.length > 0) {\n setChunks((prev) => [...prev, ...newChunks]);\n }\n }\n }, [chunkRegExp, messages]);\n\n const [storyboard, setStoryboard] = useState<BrickConf[]>([]);\n\n useEffect(() => {\n const blocks = [];\n const storyboardMap = new Map<string, BrickConf>();\n for (const chunk of chunks) {\n if (chunk.type === \"block\") {\n blocks.push(chunk);\n } else if (chunk.storyboard) {\n storyboardMap.set(chunk.uuid, chunk.storyboard);\n }\n }\n\n // Sort by seq ascent\n blocks.sort((a, b) => a.seq - b.seq);\n\n const contentLayout: BrickConf = {\n brick: \"eo-content-layout\",\n children: [],\n };\n const main: BrickConf = {\n brick: \"eo-main-view\",\n children: [\n {\n brick: \"eo-page-title\",\n slot: \"pageTitle\",\n properties: {\n pageTitle: \"测试页面\",\n },\n },\n ],\n };\n\n let hasContent = false;\n for (const block of blocks) {\n // No container\n if (block.name === \"全局操作区\") {\n for (const child of block.children) {\n const childBrick = storyboardMap.get(child);\n if (childBrick) {\n main.children.push({\n ...childBrick,\n properties: {\n ...childBrick.properties,\n slot: undefined,\n },\n errorBoundary,\n slot: \"toolbar\",\n iid: `item:${child}`,\n meta: {\n type: \"item\",\n uuid: child,\n block: {\n uuid: block.uuid,\n name: block.name,\n },\n },\n } as BrickConf);\n hasContent = true;\n }\n }\n } else {\n const rawBrick = storyboardMap.get(block.uuid);\n if (rawBrick) {\n const brick: BrickConf = {\n ...rawBrick,\n children: [],\n errorBoundary,\n iid: `block:${block.uuid}`,\n meta: {\n type: \"block\",\n uuid: block.uuid,\n name: block.name,\n },\n } as BrickConf;\n hasContent = true;\n contentLayout.children.push(brick);\n for (const child of block.children) {\n const childBrick = storyboardMap.get(child);\n if (childBrick) {\n brick.children.push({\n ...childBrick,\n errorBoundary,\n iid: `item:${child}`,\n meta: {\n type: \"item\",\n uuid: child,\n },\n } as BrickConf);\n }\n }\n } else if (!block.hasContainer) {\n for (const child of block.children) {\n const childBrick = storyboardMap.get(child);\n if (childBrick) {\n contentLayout.children.push({\n ...childBrick,\n errorBoundary,\n iid: `item:${child}`,\n meta: {\n type: \"item\",\n uuid: child,\n },\n } as BrickConf);\n hasContent = true;\n }\n }\n }\n }\n }\n\n main.children.push(contentLayout);\n\n setStoryboard((prev) =>\n hasContent ? [main] : prev.length === 0 ? prev : []\n );\n }, [chunks, errorBoundary]);\n\n useEffect(() => {\n onStoryboardUpdate?.(storyboard);\n }, [onStoryboardUpdate, storyboard]);\n\n const verticalScrollParent = useMemo(() => {\n // Lookup the nearest scrollable parent (on axis y)\n let current = host;\n while (current) {\n const overflowY = getComputedStyle(current, null).getPropertyValue(\n \"overflow-y\"\n );\n if (overflowY === \"auto\" || overflowY === \"scroll\") {\n return current;\n }\n if (current.parentNode instanceof ShadowRoot) {\n current = current.parentNode.host;\n } else if (current.parentNode instanceof Element) {\n current = current.parentNode;\n } else {\n break;\n }\n }\n return document.scrollingElement || document.documentElement;\n }, [host]);\n\n useEffect(() => {\n if (manualScrolledRef.current) {\n return;\n }\n setTimeout(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n verticalScrollParent.scrollTo(0, verticalScrollParent.scrollHeight!);\n }, 1);\n }, [messages, verticalScrollParent]);\n\n useEffect(() => {\n const handleScroll = () => {\n manualScrolledRef.current =\n verticalScrollParent.scrollTop +\n verticalScrollParent.clientHeight! +\n 6 <\n verticalScrollParent.scrollHeight;\n };\n verticalScrollParent.addEventListener(\"scroll\", handleScroll);\n return () => {\n verticalScrollParent.removeEventListener(\"scroll\", handleScroll);\n };\n }, [verticalScrollParent]);\n\n return (\n <>\n {messages?.map((message, index) => (\n <MessageComponent\n key={message.key ?? `index-${index}`}\n message={message}\n />\n ))}\n </>\n );\n}\n","import React from \"react\";\nimport { InspectOutline } from \"../data-providers/chat-preview/interfaces.js\";\n\nexport interface InspectOutlineComponentProps extends InspectOutline {\n variant: \"hover\" | \"active\";\n}\n\nexport function InspectOutlineComponent({\n variant,\n width,\n height,\n left,\n top,\n label,\n}: InspectOutlineComponentProps): React.ReactElement {\n const borderWidth = 4;\n return (\n <div\n className={\"outline \" + variant}\n style={{\n width: width + borderWidth * 2,\n height: height + borderWidth * 2,\n left: left - borderWidth,\n top: top - borderWidth,\n }}\n >\n <div className=\"label\">{label}</div>\n </div>\n );\n}\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { __secret_internals, getBasePath } from \"@next-core/runtime\";\nimport type { BrickConf, MicroApp } from \"@next-core/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport classNames from \"classnames\";\nimport type {\n InspectOutline,\n InspectSelector,\n} from \"../data-providers/chat-preview/interfaces\";\nimport { InspectOutlineComponent } from \"./InspectOutlineComponent\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatPreviewProps {\n storyboard?: BrickConf | BrickConf[];\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n inspecting?: boolean;\n}\n\n/**\n * 构件 `visual-builder.chat-preview`\n */\nexport\n@defineElement(\"visual-builder.chat-preview\", {\n styleTexts: [styleText],\n})\nclass ChatPreview extends ReactNextElement {\n @property({ attribute: false })\n accessor storyboard: BrickConf | BrickConf[] | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n @property({ type: Boolean })\n accessor inspecting: boolean | undefined;\n\n @event({ type: \"activeTarget.change\" })\n accessor #activeTargetChangeEvent!: EventEmitter<InspectSelector | undefined>;\n #handleActiveTargetChange = (target: InspectSelector | undefined) => {\n this.#activeTargetChangeEvent.emit(target);\n };\n\n @method()\n select(payload: InspectSelector) {\n const iframeWin = this.shadowRoot?.querySelector(\"iframe\")?.contentWindow;\n iframeWin?.postMessage(\n {\n channel: \"chat-preview\",\n type: \"select\",\n payload,\n },\n location.origin\n );\n }\n\n render() {\n return (\n <ChatPreviewComponent\n storyboard={this.storyboard}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n inspecting={this.inspecting}\n onActiveTargetChange={this.#handleActiveTargetChange}\n />\n );\n }\n}\n\nexport interface ChatPreviewComponentProps extends ChatPreviewProps {\n onActiveTargetChange?(target: InspectSelector | undefined): void;\n}\n\nexport function ChatPreviewComponent({\n storyboard,\n theme,\n uiVersion,\n app,\n inspecting,\n onActiveTargetChange,\n}: ChatPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [initialized, setInitialized] = useState(false);\n const [scroll, setScroll] = useState({ x: 0, y: 0 });\n const [hoverOutlines, setHoverOutlines] = useState<InspectOutline[]>([]);\n const [activeOutlines, setActiveOutlines] = useState<InspectOutline[]>([]);\n const [adjustedHoverOutlines, setAdjustedHoverOutlines] = useState<\n InspectOutline[]\n >([]);\n const [adjustedActiveOutlines, setAdjustedActiveOutlines] = useState<\n InspectOutline[]\n >([]);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __secret_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_inject;\n inject(\"visual-builder.inject-chat-preview-agent\", {\n ...pkg,\n filePath: `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n });\n }, [ready]);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n render(\n \"yaml\",\n {\n yaml: safeDump(storyboard, {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }),\n },\n {\n app,\n theme,\n uiVersion,\n }\n );\n }, [app, ready, storyboard, theme, uiVersion]);\n\n const handleMouseOut = useMemo(() => {\n if (!initialized) {\n return;\n }\n return () => {\n // Delay posting message to allow iframe inner hovering message be sent before\n // mouse out from iframe itself.\n setTimeout(() => {\n window.postMessage({\n channel: \"chat-preview\",\n type: \"inspect-hover\",\n payload: { outlines: [] },\n });\n }, 100);\n };\n }, [initialized]);\n\n useEffect(() => {\n const listener = (event: MessageEvent) => {\n if (event.data?.channel === \"chat-preview\") {\n switch (event.data.type) {\n case \"initialized\":\n setInitialized(true);\n break;\n case \"inspect-hover\":\n setHoverOutlines(event.data.payload.outlines);\n break;\n case \"scroll\":\n setScroll(event.data.payload);\n break;\n case \"inspect-active\":\n setActiveOutlines(event.data.payload.outlines);\n break;\n }\n }\n };\n window.addEventListener(\"message\", listener);\n return () => {\n window.removeEventListener(\"message\", listener);\n };\n }, []);\n\n useEffect(() => {\n if (!initialized) {\n return;\n }\n iframeRef.current?.contentWindow?.postMessage(\n {\n channel: \"chat-preview\",\n type: \"toggle-inspecting\",\n payload: {\n inspecting,\n },\n },\n location.origin\n );\n }, [initialized, inspecting]);\n\n const adjustOutlines = useCallback(\n (outlines: InspectOutline[]): InspectOutline[] => {\n return outlines.map((outline) => {\n const minScale = 1;\n const offsetLeft = iframeRef?.current?.offsetLeft ?? 0;\n const offsetTop = iframeRef?.current?.offsetTop ?? 0;\n const { width, height, left, top, ...rest } = outline;\n return {\n width: width * minScale,\n height: height * minScale,\n left: (left - scroll.x) * minScale + offsetLeft,\n top: (top - scroll.y) * minScale + offsetTop,\n ...rest,\n };\n });\n },\n [scroll.x, scroll.y]\n );\n\n useEffect(() => {\n onActiveTargetChange(activeOutlines[0]);\n }, [activeOutlines, onActiveTargetChange]);\n\n useEffect(() => {\n setAdjustedActiveOutlines(adjustOutlines(activeOutlines));\n }, [activeOutlines, adjustOutlines]);\n\n useEffect(() => {\n setAdjustedHoverOutlines(adjustOutlines(hoverOutlines));\n }, [hoverOutlines, adjustOutlines]);\n\n return (\n <div className={classNames(\"container\", { inspecting })}>\n <iframe\n ref={iframeRef}\n src={`${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n onMouseOut={handleMouseOut}\n />\n {adjustedHoverOutlines.map((outline, index) => (\n <InspectOutlineComponent key={index} variant=\"hover\" {...outline} />\n ))}\n {adjustedActiveOutlines.map((outline, index) => (\n <InspectOutlineComponent key={index} variant=\"active\" {...outline} />\n ))}\n </div>\n );\n}\n","// istanbul ignore file: working in progress\n// https://github.com/facebook/react/blob/cae635054e17a6f107a39d328649137b83f25972/packages/react-devtools-shared/src/backend/views/Highlighter/index.js\nimport { debounce } from \"lodash\";\nimport type {\n InspectOutline,\n InspectSelector,\n InspectTarget,\n} from \"./interfaces.js\";\n\nlet isInspecting = false;\nconst IID_ITEM_PREFIX = \"item:\";\nlet currentHoverElement: Element | null = null;\n\nexport function toggleInspecting(inspecting: boolean): void {\n if (isInspecting === inspecting) {\n return;\n }\n isInspecting = inspecting;\n\n const method = inspecting ? \"addEventListener\" : \"removeEventListener\";\n\n window[method](\"click\", onClick as EventListener, true);\n window[method](\"mousedown\", onMouseEvent as EventListener, true);\n window[method](\"mouseover\", onMouseEvent as EventListener, true);\n window[method](\"mouseup\", onMouseEvent as EventListener, true);\n window[method](\"pointerdown\", onMouseEvent as EventListener, true);\n window[method](\"pointerover\", onMouseEvent as EventListener, true);\n window[method](\"pointerup\", onMouseEvent as EventListener, true);\n window[method](\"pointerleave\", onPointerLeave as EventListener, true);\n window[method](\"pointermove\", onPointerMove as EventListener, true);\n}\n\nfunction getElementsIncludingInShadowDOM(\n iid: string,\n isRoot?: boolean\n): HTMLElement[] {\n const elements: HTMLElement[] = [];\n\n function walk(root: Document | ShadowRoot) {\n const candidates = root.querySelectorAll<HTMLElement>(\n isRoot ? iid : `[data-iid=\"${iid}\"]`\n );\n elements.push(...candidates);\n\n // If elements are found in the document, we should stop searching in shadow DOM.\n if (root === document && candidates.length > 0) {\n return;\n }\n\n // These useBrick in v3 bricks will be inside shadow DOM.\n for (const item of root.querySelectorAll(\"*\")) {\n if (item.shadowRoot) {\n walk(item.shadowRoot);\n }\n }\n }\n\n walk(document);\n\n return elements;\n}\n\nexport function select(selector: InspectSelector) {\n const iid = `${selector.type}:${selector.uuid}`;\n const elements = getElementsIncludingInShadowDOM(iid);\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-active\",\n payload: {\n outlines: elements.map((element) =>\n getTargetOutline({ ...selector, element, label: getLabel(element) })\n ),\n },\n },\n location.origin\n );\n}\n\nfunction onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n selectByClick(event);\n}\n\nfunction onMouseEvent(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n}\n\nconst hoverOnTarget = debounce(\n (eventTargets: EventTarget[], clientX: number, clientY: number) => {\n let targets = getPossibleBrickTargets(eventTargets);\n if (targets.length === 0) {\n for (const element of eventTargets) {\n if (element instanceof HTMLElement && element.shadowRoot) {\n targets = getPossibleBrickTargets(\n element.shadowRoot.elementsFromPoint(clientX, clientY)\n );\n break;\n }\n }\n }\n const hoverElement = targets.length > 0 ? targets[0].element : null;\n if (hoverElement !== currentHoverElement) {\n currentHoverElement = hoverElement;\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-hover\",\n payload: {\n outlines: targets.map(getTargetOutline),\n },\n },\n location.origin\n );\n }\n },\n 20,\n { leading: true }\n);\n\nfunction onPointerMove(event: MouseEvent): void {\n // `event.composedPath()` will be unavailable in debounced callback\n hoverOnTarget(event.composedPath(), event.clientX, event.clientY);\n}\n\nfunction onPointerLeave(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n currentHoverElement = null;\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-hover\",\n payload: { outlines: [] },\n },\n location.origin\n );\n}\n\nfunction selectByClick(event: MouseEvent): void {\n const targets = getPossibleBrickTargets(event.composedPath());\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n type: \"inspect-active\",\n payload: {\n outlines: targets.map(getTargetOutline),\n },\n },\n location.origin\n );\n}\n\nfunction getPossibleBrickTargets(eventTargets: EventTarget[]) {\n const inspectTargets: InspectTarget[] = [];\n eventTargets.forEach((item) => {\n let iid: string | undefined;\n if (\n (item as Node).nodeType === Node.ELEMENT_NODE &&\n item instanceof HTMLElement &&\n (iid = item.dataset.iid) &&\n iid.startsWith(IID_ITEM_PREFIX)\n ) {\n const uuid = iid.substring(IID_ITEM_PREFIX.length);\n inspectTargets.push({\n type: \"item\",\n uuid,\n label: getLabel(item),\n element: item,\n });\n }\n });\n return inspectTargets;\n}\n\nfunction getTargetOutline(target: InspectTarget): InspectOutline {\n const { element, type, uuid, label } = target;\n const { width, height, left, top } = element.getBoundingClientRect();\n return {\n width,\n height,\n left: left + window.scrollX,\n top: top + window.scrollY,\n type,\n uuid,\n label,\n };\n}\n\nfunction getLabel(element: Element) {\n return element.tagName.toLowerCase().split(\".\").pop();\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport { select, toggleInspecting } from \"./chat-preview/inspector\";\n\nlet injected = false;\n\nexport async function injectChatPreviewAgent(): Promise<unknown> {\n if (injected) {\n return;\n }\n injected = true;\n import(\"./chat-preview/styles.css\");\n\n sendMessage({ type: \"initialized\" });\n\n window.addEventListener(\"message\", (e) => {\n if (e.data?.channel === \"chat-preview\") {\n switch (e.data.type) {\n case \"toggle-inspecting\":\n toggleInspecting(e.data.payload.inspecting);\n break;\n case \"select\":\n select(e.data.payload);\n break;\n }\n }\n });\n\n window.addEventListener(\"scroll\", () => {\n sendMessage({\n type: \"scroll\",\n payload: {\n x: window.scrollX,\n y: window.scrollY,\n },\n });\n });\n}\n\nfunction sendMessage(message: object) {\n window.parent.postMessage(\n {\n channel: \"chat-preview\",\n ...message,\n },\n location.origin\n );\n}\n\ncustomElements.define(\n \"visual-builder.inject-chat-preview-agent\",\n createProviderClass(injectChatPreviewAgent)\n);\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf, MicroApp } from \"@next-core/types\";\nimport classNames from \"classnames\";\nimport { __secret_internals, getBasePath } from \"@next-core/runtime\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport { isObject } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\nimport previewStyleText from \"./preview.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface PreGeneratedPreviewProps {\n generations?: AttributeGeneration[];\n category?: PreviewCategory;\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n}\n\nexport interface AttributeGeneration {\n instanceId: string;\n objectId: string;\n propertyId: string;\n propertyName: string;\n displayLevel: number;\n rwType: string;\n category: PreviewCategory;\n storyboard: BrickConf | BrickConf[];\n mockData: unknown[];\n}\n\nexport type PreviewCategory =\n | \"detail-item\"\n | \"form-item\"\n | \"table-column\"\n | \"card-item\"\n | \"metric-item\"\n | \"value\";\n\n/**\n * 构件 `visual-builder.pre-generated-preview`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.pre-generated-preview\", {\n styleTexts: [styleText],\n})\nclass PreGeneratedPreview extends ReactNextElement {\n @property({ attribute: false })\n accessor generations: AttributeGeneration[] | undefined;\n\n /**\n * @default \"value\"\n */\n @property()\n accessor category: PreviewCategory | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n render() {\n return (\n <PreGeneratedPreviewComponent\n generations={this.generations}\n category={this.category}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n />\n );\n }\n}\n\nexport interface PreGeneratedPreviewComponentProps\n extends PreGeneratedPreviewProps {\n //\n}\n\nexport function PreGeneratedPreviewComponent({\n generations,\n category,\n theme,\n uiVersion,\n app,\n}: PreGeneratedPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [injected, setInjected] = useState(false);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __secret_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current!.contentWindow as PreviewWindow)!\n ._preview_only_inject;\n\n const fixedPkg = {\n ...pkg,\n filePath: `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n };\n\n Promise.allSettled(\n [\n \"visual-builder.pre-generated-table-view\",\n \"visual-builder.pre-generated-container\",\n ].map((brick) => inject(brick, fixedPkg, undefined, true))\n ).then(() => {\n setInjected(true);\n });\n }, [ready]);\n\n useEffect(() => {\n if (!injected) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n\n const candidatesMap = new Map<\n string,\n Map<string, Map<number, AttributeGeneration>>\n >();\n const mocksMap = new Map<string, unknown[]>();\n\n for (const generation of generations) {\n let candidatesByReadWriteType = candidatesMap.get(generation.propertyId);\n if (!candidatesByReadWriteType) {\n candidatesMap.set(\n generation.propertyId,\n (candidatesByReadWriteType = new Map())\n );\n }\n let candidatesByDisplayLevel = candidatesByReadWriteType.get(\n generation.rwType\n );\n if (!candidatesByDisplayLevel) {\n candidatesByReadWriteType.set(\n generation.rwType,\n (candidatesByDisplayLevel = new Map())\n );\n }\n candidatesByDisplayLevel.set(generation.displayLevel ?? 0, generation);\n\n mocksMap.set(generation.propertyId, generation.mockData);\n }\n\n const tableChildren: BrickConf[] = [\n {\n brick: \"div\",\n properties: {\n textContent: \"属性\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"类别\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"展示等级\",\n className: \"head-cell last-col-cell\",\n style: {\n gridColumn: \"span 5\",\n textAlign: \"center\",\n },\n },\n },\n ];\n const table: BrickConf = {\n brick: \"visual-builder.pre-generated-table-view\",\n properties: {\n style: {\n gridTemplateColumns: \"120px 80px repeat(5, 1fr)\",\n },\n },\n children: tableChildren,\n };\n\n let propertyIndex = 0;\n for (const [propertyId, candidatesByReadWriteType] of candidatesMap) {\n let readWriteTypeIndex = 0;\n const isLastProperty = propertyIndex === candidatesMap.size - 1;\n for (const [rwType, candidates] of candidatesByReadWriteType) {\n if (readWriteTypeIndex === 0) {\n let propertyName: string | undefined;\n\n for (const candidate of candidates.values()) {\n propertyName = candidate.propertyName ?? propertyId;\n break;\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n textContent: propertyName,\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastProperty,\n }),\n style: {\n gridRow: `span ${candidatesByReadWriteType.size}`,\n },\n },\n });\n }\n\n const isLastRow =\n isLastProperty &&\n readWriteTypeIndex === candidatesByReadWriteType.size - 1;\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n textContent: rwType,\n className: classNames(\"body-cell\", { \"last-row-cell\": isLastRow }),\n },\n });\n\n for (let i = -2; i < 3; i++) {\n const candidate = candidates.get(i);\n const candidateCategory = candidate?.category ?? category;\n\n let dataSource: unknown;\n if (candidate?.mockData?.length) {\n const mockValue =\n candidate.mockData[\n Math.floor(Math.random() * candidate.mockData.length)\n ];\n switch (candidateCategory) {\n case \"detail-item\":\n case \"form-item\":\n case \"card-item\":\n dataSource = {\n [propertyId]: mockValue,\n };\n break;\n case \"table-column\":\n dataSource = {\n cellData: mockValue,\n };\n }\n }\n\n const candidateChildren = []\n .concat(candidate?.storyboard ?? [])\n .filter((brick) => {\n if (!isObject(brick)) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected type of storyboard:\", typeof brick);\n return false;\n }\n return true;\n });\n candidateChildren.forEach(fixBrickConf);\n\n let container: BrickConf;\n switch (candidateCategory) {\n case \"form-item\":\n container = {\n brick: \"eo-form\",\n properties: {\n layout: \"inline\",\n values: dataSource,\n className: \"form-container\",\n },\n children: candidateChildren.map((child) => ({\n ...child,\n errorBoundary: true,\n })),\n };\n break;\n case \"card-item\":\n container = {\n brick: \":forEach\",\n dataSource: [dataSource],\n children: candidateChildren.map((child) => ({\n ...child,\n errorBoundary: true,\n })),\n };\n break;\n default:\n container = {\n brick: \"visual-builder.pre-generated-container\",\n properties: {\n useBrick: candidateChildren,\n dataSource,\n },\n errorBoundary: true,\n };\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-col-cell\": i === 2,\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n ...container,\n errorBoundary: true,\n },\n ],\n });\n }\n\n readWriteTypeIndex++;\n }\n\n propertyIndex++;\n }\n\n // const tbodyChildren: BrickConf[] = [];\n // const table: BrickConf = {\n // brick: \"table\",\n // properties: {\n // className: \"preview-table\",\n // },\n // children: [\n // {\n // brick: \"thead\",\n // children: [\n // {\n // brick: \"tr\",\n // slot: \"head\",\n // children: [\n // {\n // brick: \"th\",\n // properties: {\n // textContent: \"属性\",\n // },\n // },\n // {\n // brick: \"th\",\n // properties: {\n // textContent: \"类别\",\n // },\n // },\n // {\n // brick: \"th\",\n // properties: {\n // textContent: \"展示等级\",\n // colSpan: 5,\n // style: {\n // textAlign: \"center\",\n // }\n // },\n // },\n // ],\n // }\n // ]\n // },\n // {\n // brick: \"tbody\",\n // children: tbodyChildren,\n // },\n // ],\n // };\n\n // for (const [propertyId, candidatesByReadWriteType] of candidatesMap) {\n // let readWriteTypeIndex = 0;\n // for (const [rwType, candidates] of candidatesByReadWriteType) {\n\n // const row: BrickConf[] = []\n\n // if (readWriteTypeIndex === 0) {\n // let propertyName: string | undefined;\n\n // for (const candidate of candidates.values()) {\n // propertyName = candidate.propertyName ?? propertyId;\n // break;\n // }\n\n // row.push({\n // brick: \"td\",\n // properties: {\n // textContent: propertyName,\n // rowSpan: candidatesByReadWriteType.size,\n // },\n // })\n // }\n\n // row.push({\n // brick: \"td\",\n // properties: {\n // textContent: rwType,\n // },\n // });\n\n // for (let i = -2; i < 3; i++) {\n // const candidate = candidates.get(i);\n\n // let dataSource: unknown;\n // if (candidate?.mockData?.length) {\n // const mockValue = candidate.mockData[\n // Math.floor(Math.random() * candidate.mockData.length)\n // ];\n // switch (candidate.category ?? category) {\n // case \"detail-item\":\n // dataSource = {\n // [propertyId]: mockValue\n // };\n // break;\n // case \"table-column\":\n // dataSource = {\n // cellData: mockValue\n // };\n // }\n // }\n\n // row.push({\n // brick: \"td\",\n // children: [\n // {\n // brick: \"visual-builder.pre-generated-container\",\n // properties: {\n // useBrick: candidate?.storyboard ?? [],\n // dataSource,\n // }\n // }\n // ],\n // });\n // }\n // tbodyChildren.push({\n // brick: \"tr\",\n // children: row,\n // });\n\n // readWriteTypeIndex++;\n // }\n // }\n\n render(\n \"yaml\",\n {\n yaml: safeDump(table, {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }),\n },\n {\n app,\n theme,\n uiVersion,\n styleText: previewStyleText,\n }\n );\n }, [app, injected, generations, theme, uiVersion, category]);\n\n // useEffect(() => {\n // if (!injected) {\n // return;\n // }\n // const render = (iframeRef.current?.contentWindow as PreviewWindow)\n // ?._preview_only_render;\n // if (!render) {\n // return;\n // }\n\n // const candidatesMap = new Map<string, AttributeCandidate[]>();\n // const mocksMap = new Map<string, unknown[]>();\n // let maxCandidatesCount = 0;\n\n // for (const generation of generations) {\n // candidatesMap.set(generation.id, generation.candidates);\n // mocksMap.set(generation.id, generation.mocks);\n // maxCandidatesCount = Math.max(\n // maxCandidatesCount,\n // generation.candidates.length\n // );\n // }\n\n // const storyboards: BrickConf[] = [];\n\n // for (let i = 0; i < maxCandidatesCount; i++) {\n // const brick: BrickConf = {\n // brick: \"eo-descriptions\",\n // properties: {\n // column: 1,\n // dataSource: Object.fromEntries(\n // Array.from(mocksMap.entries()).map(([id, mocks]) => [\n // id,\n // mocks[\n // i < mocks.length ? i : Math.floor(Math.random() * mocks.length)\n // ],\n // ])\n // ),\n // list: generations.map((generation) => ({\n // label: generation.name,\n // useChildren: `[${generation.id}]`,\n // })),\n // },\n // children: Array.from(candidatesMap.entries()).flatMap(\n // ([id, candidates]) => {\n // const children = ([] as BrickConf[]).concat(\n // candidates[\n // i < candidates.length\n // ? i\n // : Math.floor(Math.random() * candidates.length)\n // ].storyboard\n // );\n // return children.map((child) => ({\n // ...child,\n // slot: `[${id}]`,\n // }));\n // }\n // ),\n // };\n // storyboards.push(brick);\n // }\n\n // render(\n // \"yaml\",\n // {\n // yaml: safeDump(storyboards, {\n // schema: JSON_SCHEMA,\n // skipInvalid: true,\n // noRefs: true,\n // noCompatMode: true,\n // }),\n // },\n // {\n // app,\n // theme,\n // uiVersion,\n // styleText: `#preview-root { display: flex; flex-wrap: wrap; gap: 2em; }`,\n // }\n // );\n // }, [app, injected, generations, theme, uiVersion]);\n\n return (\n <div className={classNames(\"container\")}>\n <iframe\n ref={iframeRef}\n src={`${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n />\n </div>\n );\n}\n\nfunction fixBrickConf(brick: BrickConf) {\n if (brick.properties?.prefix) {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected readonly property of 'prefix' in:\", brick);\n delete brick.properties.prefix;\n }\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement } = createDecorators();\n\n/**\n * 构件 `visual-builder.pre-generated-table-view`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.pre-generated-table-view\", {\n styleTexts: [styleText],\n})\nclass PreGeneratedTableView extends ReactNextElement {\n render() {\n return <PreGeneratedTableViewComponent />;\n }\n}\n\nexport function PreGeneratedTableViewComponent() {\n return <slot />;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { UseBrickConf } from \"@next-core/types\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * 构件 `visual-builder.pre-generated-container`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.pre-generated-container\", {\n styleTexts: [styleText],\n})\nclass PreGeneratedContainer extends ReactNextElement {\n @property({ attribute: false })\n accessor useBrick: UseBrickConf | undefined;\n\n @property({ attribute: false })\n accessor dataSource: unknown | undefined;\n\n render() {\n return (\n <PreGeneratedContainerComponent\n useBrick={this.useBrick}\n dataSource={this.dataSource}\n />\n );\n }\n}\n\nexport interface PreGeneratedContainerProps {\n useBrick?: UseBrickConf;\n dataSource?: unknown;\n}\n\nexport function PreGeneratedContainerComponent({\n useBrick,\n dataSource,\n}: PreGeneratedContainerProps) {\n return (\n <ReactUseMultipleBricks\n useBrick={useBrick}\n data={dataSource}\n errorBoundary\n />\n );\n}\n","import { __secret_internals, customEditors } from \"@next-core/runtime\";\nimport { createProviderClass } from \"@next-core/utils/general\";\n\nexport async function checkEditorByName(name: string): Promise<boolean> {\n try {\n await __secret_internals.loadEditors([name]);\n } catch {\n return false;\n }\n const editor = customEditors.get(name);\n\n return !!editor;\n}\n\ncustomElements.define(\n \"visual-builder.check-editor-by-name\",\n createProviderClass(checkEditorByName)\n);\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport { collectMemberUsage, MemberUsage } from \"@next-core/utils/storyboard\";\nimport { ContextConf } from \"@next-core/types\";\n\nexport function getDataDependency(\n contextConfs: ContextConf[],\n keyword: string\n): Map<ContextConf, MemberUsage> {\n const depsMap = new Map<ContextConf, MemberUsage>();\n\n for (const contextConf of contextConfs) {\n const stats = collectMemberUsage(\n [contextConf.if, contextConf.value, contextConf.resolve],\n keyword\n );\n depsMap.set(contextConf, stats);\n }\n\n return depsMap;\n}\n\ncustomElements.define(\n \"visual-builder.get-data-deps\",\n createProviderClass(getDataDependency)\n);\n","import { ContextConf } from \"@next-core/types\";\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport { MenuIcon } from \"@next-shared/general/types\";\nimport { getDataDependency } from \"./get-data-dependency\";\nimport { cloneDeep } from \"lodash\";\n\ninterface DataItem extends ContextConf {\n $key?: string;\n path?: string;\n}\n\ninterface NodeItem {\n name: string;\n key: string;\n path?: string;\n icon?: MenuIcon;\n data?: DataItem;\n unreachable?: boolean;\n children?: NodeItem[];\n}\n\ninterface DepsItem {\n deps: string[];\n node: NodeItem;\n}\n\ninterface DepsOptions {\n nodeList?: NodeItem[];\n dependencyList: DepsItem[];\n parents?: NodeItem[];\n result?: NodeItem[];\n}\n\nfunction processNodeList(nodeList: NodeItem[], options: DepsOptions) {\n nodeList.forEach((node) => {\n processNodeItem(node, { ...options, nodeList });\n });\n}\n\nfunction processNodeItem(nodeItem: NodeItem, options: DepsOptions) {\n const { dependencyList, nodeList, parents, result } = options;\n\n const data = cloneDeep(nodeItem);\n result.push(data);\n\n const find = dependencyList.find((dep) => dep.node.key === data.key);\n\n if (find.deps?.length && !parents.some((item) => item.key === data.key)) {\n const children = (data.children = []) as NodeItem[];\n processDataDeps(find, {\n dependencyList,\n nodeList,\n parents: [...parents, data],\n result: children,\n });\n }\n}\n\nfunction processDataDeps(depsData: DepsItem, options: DepsOptions) {\n const collects = [] as NodeItem[];\n\n depsData.deps.forEach((name) => {\n // 有可能存在同名的两个数据,一起展示\n const matches = options.nodeList.filter((item) => item.name === name);\n collects.push(...matches);\n });\n\n processNodeList(collects, options);\n}\n\nexport function getDependencyTree(\n nodeDataList: NodeItem[],\n options: {\n dataType: string;\n }\n): NodeItem[] {\n const nodeList = nodeDataList;\n const dependencyMap = getDataDependency(\n nodeList.map((item) => item.data),\n options.dataType\n );\n\n const dependencyList = [] as DepsItem[];\n for (const [curData, value] of dependencyMap) {\n dependencyList.push({\n deps: Array.from(value.usedProperties),\n node: nodeList.find((node) => node.data === curData),\n });\n }\n\n const result = [] as NodeItem[];\n\n processNodeList(nodeList, {\n result,\n dependencyList,\n parents: [],\n });\n\n return result;\n}\n\ncustomElements.define(\n \"visual-builder.get-dependency-tree\",\n createProviderClass(getDependencyTree)\n);\n","import type { BrickConf } from \"@next-core/types\";\nimport { pick } from \"lodash\";\nimport type { CSSProperties } from \"react\";\nimport type { VisualConfig, VisualStyle } from \"./raw-data-interfaces\";\n\nexport function convertToStoryboard(\n config: VisualConfig,\n attr: string\n): BrickConf | null {\n const attrAccessor = `[${JSON.stringify(attr)}]`;\n let brickItem: BrickConf;\n\n switch (config.display) {\n case \"link\":\n case \"text\": {\n brickItem = getPlainBrick(config, attrAccessor);\n if (config.type === \"struct-list\" && !config.countOnly) {\n brickItem = {\n brick: \"eo-tag\",\n errorBoundary: true,\n children: [brickItem],\n };\n } else if (config.display === \"link\") {\n brickItem = {\n brick: \"eo-link\",\n errorBoundary: true,\n children: [brickItem],\n };\n }\n break;\n }\n case \"tag\": {\n const colorSuffix =\n config.style?.variant === \"background\" ? \"-inverse\" : \"\";\n const valueAccessor = getValueAccessor(config, attrAccessor);\n brickItem = {\n brick: \"eo-tag\",\n errorBoundary: true,\n properties: {\n textContent: `<% ${valueAccessor} %>`,\n size: getTagSize(config.style?.size),\n color: config.style?.background\n ? `${config.style.background}${colorSuffix}`\n : config.style?.palette\n ? `<% \\`\\${(${JSON.stringify(config.style.palette)})[${valueAccessor}] ?? \"gray\"}${colorSuffix}\\` %>`\n : `gray${colorSuffix}`,\n outline: config.style?.variant === \"outline\",\n },\n };\n break;\n }\n case \"icon\": {\n brickItem = getIconBrick(config, attrAccessor);\n break;\n }\n case \"icon+text\": {\n const iconBrick = getIconBrick(config, attrAccessor);\n const textBrick = getPlainBrick(config, attrAccessor);\n brickItem = {\n brick: \"span\",\n errorBoundary: true,\n properties: {\n style: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.5em\",\n },\n },\n children: [iconBrick, textBrick],\n };\n break;\n }\n default:\n return null;\n }\n\n if (config.type !== \"struct-list\" || config.countOnly) {\n return brickItem;\n }\n\n const maxItems = Number(config.maxItems) || 3;\n return {\n brick: \"span\",\n errorBoundary: true,\n properties: {\n style: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.5em\",\n },\n },\n children: [\n {\n brick: \":forEach\",\n dataSource: `<% DATA${attrAccessor}.slice(0, ${maxItems}) %>`,\n children: [brickItem],\n },\n {\n brick: \"eo-link\",\n if: `<% DATA${attrAccessor}.length > ${maxItems} %>`,\n properties: {\n textContent: `<% \\`+ \\${DATA${attrAccessor}.length - ${maxItems}}\\` %>`,\n },\n },\n ],\n };\n}\n\nfunction getIconBrick(config: VisualConfig, attrAccessor: string): BrickConf {\n if (config.type === \"boolean\") {\n const valueAccessor = getValueAccessor(config, attrAccessor);\n const trueIcon = config.true?.icon ?? \"check\";\n const falseIcon = config.false?.icon ?? \"xmark\";\n const trueStyle = getPlainStyle(config.true?.style);\n const falseStyle = getPlainStyle(config.false?.style);\n return {\n brick: \"eo-icon\",\n errorBoundary: true,\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: `<% ${valueAccessor} ? ${JSON.stringify(trueIcon)} : ${JSON.stringify(falseIcon)} %>`,\n style: `<% ${valueAccessor} ? ${JSON.stringify(trueStyle)} : ${JSON.stringify(falseStyle)} %>`,\n },\n };\n }\n return {\n brick: \"eo-icon\",\n errorBoundary: true,\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: config.icon,\n style: getPlainStyle(config.style),\n },\n };\n}\n\nfunction getPlainBrick(config: VisualConfig, attrAccessor: string): BrickConf {\n if (config.type === \"struct-list\" && config.countOnly) {\n return {\n brick: \"span\",\n properties: {\n textContent: `<% \\`\\${DATA${attrAccessor}.length}\\` %>`,\n },\n };\n }\n\n const valueAccessor = getValueAccessor(config, attrAccessor);\n const value = `<% ${valueAccessor} %>`;\n switch (config.formatter?.type) {\n case \"number\":\n return {\n brick: \"eo-formatter-number\",\n errorBoundary: true,\n properties: {\n value,\n type: config.formatter.format,\n ...pick(config.formatter, [\n \"currency\",\n // \"unit\",\n \"originalUnit\",\n \"decimals\",\n \"thousandsSeparator\",\n ]),\n style: getPlainStyle(config.style),\n },\n };\n case \"date\":\n case \"date-time\":\n return {\n brick: \"eo-humanize-time\",\n errorBoundary: true,\n properties: {\n value,\n type: config.type === \"date\" ? \"date\" : undefined,\n formatter: config.formatter.format,\n style: getPlainStyle(config.style),\n },\n };\n case \"cost-time\":\n return {\n brick: \"eo-humanize-time\",\n errorBoundary: true,\n properties: {\n value,\n isCostTime: true,\n style: getPlainStyle(config.style),\n },\n };\n default: {\n let textContent: string | undefined;\n let style: CSSProperties | string | undefined;\n if (config.type === \"boolean\") {\n const trueContent = config.true?.text ?? \"Yes\";\n const falseContent = config.false?.text ?? \"No\";\n const trueStyle = getPlainStyle(config.true?.style);\n const falseStyle = getPlainStyle(config.false?.style);\n textContent = `<% ${valueAccessor} ? ${JSON.stringify(trueContent)} : ${JSON.stringify(falseContent)} %>`;\n style = `<% ${valueAccessor} ? ${JSON.stringify(trueStyle)} : ${JSON.stringify(falseStyle)} %>`;\n } else {\n textContent = value;\n style = getPlainStyle(config.style);\n }\n return {\n brick: \"span\",\n errorBoundary: true,\n properties: {\n textContent,\n style,\n },\n };\n }\n }\n}\n\nfunction getValueAccessor(config: VisualConfig, attrAccessor: string): string {\n if (\n (config.type === \"struct\" || config.type === \"struct-list\") &&\n config.field\n ) {\n return `${config.type === \"struct\" ? `DATA${attrAccessor}` : \"ITEM\"}[${JSON.stringify(config.field)}]`;\n }\n return `DATA${attrAccessor}`;\n}\n\nfunction getTagSize(size: VisualStyle[\"size\"]): string | undefined {\n switch (size) {\n case \"large\":\n case \"medium\":\n case \"small\":\n return size;\n case \"x-large\":\n return \"large\";\n // case \"x-small\":\n // return \"xs\";\n }\n}\n\nfunction getPlainStyle(\n configStyle: VisualStyle | undefined\n): CSSProperties | undefined {\n if (!configStyle) {\n return;\n }\n const style: CSSProperties = {};\n switch (configStyle.size) {\n // case \"x-small\":\n case \"small\":\n style.fontSize = \"var(--sub-title-font-size-small)\";\n break;\n case \"medium\":\n style.fontSize = \"var(--normal-font-size)\";\n break;\n case \"large\":\n style.fontSize = \"var(--card-title-font-size)\";\n break;\n case \"x-large\":\n style.fontSize = \"var(--title-font-size-larger)\";\n break;\n }\n switch (configStyle.fontWeight) {\n case \"bold\":\n case \"normal\":\n style.fontWeight = configStyle.fontWeight;\n }\n if (configStyle.color) {\n style.color = configStyle.color;\n }\n return style;\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport type { BrickConf, ContextConf, MicroApp } from \"@next-core/types\";\nimport classNames from \"classnames\";\nimport { __secret_internals, getBasePath } from \"@next-core/runtime\";\nimport type { PreviewWindow } from \"@next-core/preview/types\";\nimport { JSON_SCHEMA, safeDump } from \"js-yaml\";\nimport type { VisualConfig } from \"./raw-data-interfaces\";\nimport { convertToStoryboard } from \"./convert\";\nimport styleText from \"./styles.shadow.css\";\nimport previewStyleText from \"./preview.shadow.css\";\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface RawPreviewProps {\n previewUrl?: string;\n generations?: AttributeGeneration[];\n mocks?: Record<string, unknown>[];\n busy?: boolean;\n category?: PreviewCategory;\n theme?: string;\n uiVersion?: string;\n app?: MicroApp;\n}\n\nexport interface AttributeGeneration {\n generationId?: string;\n objectId: string;\n objectName: string;\n propertyId: string;\n propertyName: string;\n propertyType?: string;\n propertyValues?: unknown[];\n propertyInstanceId?: string;\n comment?: string;\n approved?: boolean;\n candidates: VisualConfig[] | null;\n mockData: Record<string, unknown>[];\n}\n\nexport interface CommentDetail {\n comment: string;\n propertyInstanceId?: string;\n}\n\nexport interface ApproveDetail {\n approved: boolean;\n propertyInstanceId?: string;\n}\n\ninterface BasePreviewMessage {\n channel: \"raw-data-preview\";\n}\n\ninterface CommentMessage extends BasePreviewMessage {\n type: \"comment\";\n payload: CommentDetail;\n}\n\ninterface ApproveMessage extends BasePreviewMessage {\n type: \"approve\";\n payload: ApproveDetail;\n}\n\ninterface ViewAttrPromptMessage extends BasePreviewMessage {\n type: \"viewAttrPrompt\";\n payload: AttributeGeneration;\n}\n\ninterface UpdatePropertyToggleStateMessage extends BasePreviewMessage {\n type: \"updatePropertyToggleState\";\n payload: string[];\n}\n\ninterface UpdatePropertyExpandStateMessage extends BasePreviewMessage {\n type: \"updatePropertyExpandState\";\n payload: string[];\n}\n\ninterface UpdatePropertyApproveStateMessage extends BasePreviewMessage {\n type: \"updatePropertyApproveState\";\n payload: string[];\n}\n\ntype PreviewMessage =\n | CommentMessage\n | ApproveMessage\n | ViewAttrPromptMessage\n | UpdatePropertyToggleStateMessage\n | UpdatePropertyExpandStateMessage\n | UpdatePropertyApproveStateMessage;\n\nexport type PreviewCategory =\n | \"detail-item\"\n | \"form-item\"\n | \"table-column\"\n | \"card-item\"\n | \"metric-item\"\n | \"value\";\n\n/**\n * 构件 `visual-builder.raw-data-preview`\n *\n * @internal\n */\nexport\n@defineElement(\"visual-builder.raw-data-preview\", {\n styleTexts: [styleText],\n})\nclass RawDataPreview extends ReactNextElement {\n @property()\n accessor previewUrl: string | undefined;\n\n @property({ attribute: false })\n accessor generations: AttributeGeneration[] | undefined;\n\n @property({ attribute: false })\n accessor mocks: Record<string, unknown>[] | undefined;\n\n @property({ type: Boolean })\n accessor busy: boolean | undefined;\n\n /**\n * @default \"value\"\n */\n @property()\n accessor category: PreviewCategory | undefined;\n\n @property()\n accessor theme: string | undefined;\n\n @property()\n accessor uiVersion: string | undefined;\n\n @property()\n accessor app: MicroApp | undefined;\n\n @event({ type: \"comment\" })\n accessor #commentEvent: EventEmitter<CommentDetail>;\n\n #handleComment = (detail: CommentDetail) => {\n this.#commentEvent.emit(detail);\n };\n\n @event({ type: \"approve\" })\n accessor #approveEvent: EventEmitter<ApproveDetail>;\n\n #handleApprove = (detail: ApproveDetail) => {\n this.#approveEvent.emit(detail);\n };\n\n @event({ type: \"view.attr.prompt\" })\n accessor #viewAttrPromptEvent: EventEmitter<AttributeGeneration>;\n\n #handleViewAttrPrompt = (detail: AttributeGeneration) => {\n this.#viewAttrPromptEvent.emit(detail);\n };\n\n render() {\n return (\n <RawDataPreviewComponent\n previewUrl={this.previewUrl}\n generations={this.generations}\n mocks={this.mocks}\n busy={this.busy}\n category={this.category}\n theme={this.theme}\n uiVersion={this.uiVersion}\n app={this.app}\n onComment={this.#handleComment}\n onApprove={this.#handleApprove}\n onViewAttrPrompt={this.#handleViewAttrPrompt}\n />\n );\n }\n}\n\nexport interface RawDataPreviewComponentProps extends RawPreviewProps {\n onComment: (detail: CommentDetail) => void;\n onApprove: (detail: ApproveDetail) => void;\n onViewAttrPrompt: (detail: AttributeGeneration) => void;\n}\n\nexport function RawDataPreviewComponent({\n previewUrl,\n generations,\n mocks,\n busy,\n category,\n theme,\n uiVersion,\n app,\n onComment,\n onApprove,\n onViewAttrPrompt,\n}: RawDataPreviewComponentProps) {\n const iframeRef = useRef<HTMLIFrameElement>();\n const [ready, setReady] = useState(false);\n const [injected, setInjected] = useState(false);\n const propertyToggleStateRef = useRef<string[]>([]);\n const propertyExpandStateRef = useRef<string[]>([]);\n const propertyApproveStateRef = useRef<string[]>([]);\n\n useEffect(() => {\n propertyApproveStateRef.current =\n generations\n ?.filter((generation) => generation.approved)\n .map((generation) => generation.propertyId) ?? [];\n }, [generations]);\n\n const handleIframeLoad = useCallback(() => {\n const check = () => {\n const iframeWin = iframeRef.current?.contentWindow as PreviewWindow;\n if (iframeWin?._preview_only_render) {\n setReady(true);\n } else {\n setTimeout(check, 100);\n }\n };\n check();\n }, []);\n\n useEffect(() => {\n if (ready) {\n const iframeWin = iframeRef.current!.contentWindow as PreviewWindow;\n iframeWin.postMessage(\n {\n channel: \"raw-data-preview\",\n type: \"busy\",\n payload: busy,\n },\n location.origin\n );\n }\n }, [busy, ready]);\n\n useEffect(() => {\n if (ready) {\n const iframeWin = iframeRef.current!.contentWindow as PreviewWindow;\n const onMessage = ({ data }: MessageEvent<PreviewMessage>) => {\n if (data?.channel === \"raw-data-preview\") {\n switch (data.type) {\n case \"comment\":\n onComment(data.payload);\n break;\n case \"approve\":\n onApprove(data.payload);\n break;\n case \"viewAttrPrompt\":\n onViewAttrPrompt(data.payload);\n break;\n case \"updatePropertyToggleState\":\n propertyToggleStateRef.current = data.payload;\n break;\n case \"updatePropertyExpandState\":\n propertyExpandStateRef.current = data.payload;\n break;\n case \"updatePropertyApproveState\":\n propertyApproveStateRef.current = data.payload;\n break;\n }\n }\n };\n iframeWin.addEventListener(\"message\", onMessage);\n return () => {\n iframeWin.removeEventListener(\"message\", onMessage);\n };\n }\n }, [onApprove, onComment, ready]);\n\n useEffect(() => {\n if (!ready) {\n return;\n }\n const pkg = __secret_internals.getBrickPackagesById(\n \"bricks/visual-builder\"\n );\n if (!pkg) {\n throw new Error(\n \"Cannot find preview agent package: bricks/visual-builder\"\n );\n }\n const inject = (iframeRef.current!.contentWindow as PreviewWindow)!\n ._preview_only_inject;\n\n const fixedPkg = {\n ...pkg,\n filePath: previewUrl\n ? new URL(pkg.filePath, new URL(previewUrl, location.origin)).toString()\n : `${location.origin}${getBasePath()}${\n window.PUBLIC_ROOT ?? \"\"\n }${pkg.filePath}`,\n };\n\n Promise.allSettled(\n [\n \"visual-builder.pre-generated-table-view\",\n \"visual-builder.pre-generated-container\",\n ].map((brick) => inject(brick, fixedPkg, undefined, true))\n ).then(() => {\n setInjected(true);\n });\n }, [previewUrl, ready]);\n\n useEffect(() => {\n if (!injected) {\n return;\n }\n const render = (iframeRef.current?.contentWindow as PreviewWindow)\n ?._preview_only_render;\n if (!render) {\n return;\n }\n\n const tableChildren: BrickConf[] = [\n {\n brick: \"div\",\n properties: {\n textContent: \"属性\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"类型\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"原始数据\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"视觉重量 (由低至高)\",\n className: \"head-cell\",\n style: {\n gridColumn: \"span 4\",\n textAlign: \"center\",\n },\n },\n },\n {\n brick: \"div\",\n properties: {\n textContent: \"确认\",\n className: \"head-cell\",\n },\n },\n {\n brick: \"div\",\n properties: {\n className: \"head-cell last-col-cell\",\n },\n children: [\n {\n brick: \"span\",\n properties: {\n textContent: \"批注\",\n },\n },\n {\n brick: \"span\",\n properties: {\n className: \"tips\",\n textContent: \"(补充提示词,按住 ⌘ 或 ctrl + 回车提交)\",\n },\n },\n ],\n },\n ];\n const table: BrickConf & { context?: ContextConf[] } = {\n brick: \"visual-builder.pre-generated-table-view\",\n context: [\n {\n name: \"propertyToggleState\",\n value: propertyToggleStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyToggleState\",\n payload: \"<% CTX.propertyToggleState %>\",\n },\n ],\n },\n },\n {\n name: \"propertyExpandState\",\n value: propertyExpandStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyExpandState\",\n payload: \"<% CTX.propertyExpandState %>\",\n },\n ],\n },\n },\n {\n name: \"propertyApproveState\",\n value: propertyApproveStateRef.current,\n onChange: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"updatePropertyApproveState\",\n payload: \"<% CTX.propertyApproveState %>\",\n },\n ],\n },\n },\n {\n name: \"busy\",\n },\n ],\n properties: {\n style: {\n gridTemplateColumns:\n \"minmax(120px, 0.5fr) 32px auto repeat(5, 1fr) auto 1fr\",\n },\n },\n children: tableChildren,\n };\n\n for (let i = 0, size = generations.length; i < size; i++) {\n const generation = generations[i];\n const isLastRow = i === size - 1;\n\n const candidatesByVisualWeight = new Map<number, VisualConfig>();\n for (const candidate of generation.candidates ?? []) {\n candidatesByVisualWeight.set(candidate.visualWeight ?? 0, candidate);\n }\n\n tableChildren.push(\n {\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"span\",\n properties: {\n textContent: `${generation.propertyName ?? generation.propertyId}`,\n },\n },\n {\n // 多个示例的展开/收起按钮\n brick: \"eo-button\",\n properties: {\n className: \"btn-toggle\",\n type: \"text\",\n icon: `<%=\n {\n lib: \"fa\",\n prefix: \"fas\",\n icon: CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) ? \"chevron-up\" : \"chevron-down\",\n }\n %>`,\n },\n events: {\n click: {\n action: \"context.replace\",\n args: [\n \"propertyToggleState\",\n `<%\n CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)})\n ? CTX.propertyToggleState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n : CTX.propertyToggleState.concat(${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n },\n },\n ],\n },\n {\n // 绿色圆点表示已生成\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates?.length\n ? [\n {\n brick: \"eo-icon\",\n properties: {\n lib: \"fa\",\n prefix: \"fas\",\n icon: \"circle\",\n style: {\n color: generation.generationId\n ? \"var(--palette-green-6)\"\n : \"var(--palette-gray-6)\",\n transformOrigin: \"center center\",\n transform: \"scale(0.5)\",\n },\n },\n },\n ]\n : undefined,\n },\n {\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"eo-link\",\n properties: {\n type: \"text\",\n textContent: generation.propertyType,\n },\n events: {\n click: {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"viewAttrPrompt\",\n payload: generation,\n },\n ],\n },\n },\n },\n ],\n }\n );\n\n let values = generation.propertyValues;\n if (!values) {\n const mockList = (generation.mockData ?? mocks ?? []).slice();\n mockList.sort((ma, mb) => {\n const a = ma?.[generation.propertyId];\n const b = mb?.[generation.propertyId];\n const aIsArray = Array.isArray(a);\n const bIsArray = Array.isArray(b);\n if (aIsArray || bIsArray) {\n return (bIsArray ? b.length : -1) - (aIsArray ? a.length : -1);\n }\n const aIsNil = a == null;\n const bIsNil = b == null;\n if (aIsNil || bIsNil) {\n return (bIsNil ? 0 : 1) - (aIsNil ? 0 : 1);\n }\n\n const aIsEmpty = typeof a === \"string\" && a.length === 0;\n const bIsEmpty = typeof b === \"string\" && b.length === 0;\n if (aIsEmpty || bIsEmpty) {\n return (bIsEmpty ? 0 : 1) - (aIsEmpty ? 0 : 1);\n }\n return 0;\n });\n values = mockList.map((mock) => mock[generation.propertyId]);\n }\n\n // 原始数据\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"div\",\n properties: {\n className: \"list\",\n },\n children: values.map((mock, index) => ({\n brick: \"div\",\n if:\n index === 0\n ? true\n : `<%= CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n properties: {\n className: `<%= \\`raw-content\\${ CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)}) ? \" expand\" : \"\" }\\` %>`,\n textContent:\n mock === undefined\n ? \"\"\n : typeof mock === \"string\"\n ? mock\n : JSON.stringify(mock, null, 2),\n },\n })),\n },\n {\n // 原始数据的展开/收起按钮\n brick: \"eo-button\",\n properties: {\n className: \"btn-toggle\",\n type: \"text\",\n icon: `<%=\n {\n lib: \"fa\",\n prefix: \"fas\",\n icon: CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)}) ? \"chevron-up\" : \"chevron-down\",\n }\n %>`,\n },\n events: {\n click: {\n action: \"context.replace\",\n args: [\n \"propertyExpandState\",\n `<%\n CTX.propertyExpandState.includes(${JSON.stringify(generation.propertyId)})\n ? CTX.propertyExpandState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n : CTX.propertyExpandState.concat(${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n },\n },\n ],\n });\n\n // 生成的编排\n for (let i = -1; i < 3; i++) {\n const candidate = candidatesByVisualWeight.get(i);\n\n let brick: BrickConf;\n if (candidate) {\n brick = convertToStoryboard(candidate, generation.propertyId);\n }\n\n tableChildren.push({\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: [\n {\n brick: \"div\",\n properties: {\n className: \"list\",\n },\n children: brick\n ? values.map((mock, index) => ({\n brick: \"visual-builder.pre-generated-container\",\n if:\n index === 0\n ? true\n : `<%= CTX.propertyToggleState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n properties: {\n useBrick: [brick],\n dataSource: {\n [generation.propertyId]: mock,\n },\n },\n errorBoundary: true,\n }))\n : undefined,\n },\n ],\n });\n }\n\n tableChildren.push(\n {\n // 确认 checkbox\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates\n ? [\n {\n brick: \"eo-checkbox\",\n properties: {\n value: `<%= CTX.propertyApproveState.includes(${JSON.stringify(generation.propertyId)}) ? [\"approved\"] : [] %>`,\n options: [{ label: \"\", value: \"approved\" }],\n disabled: \"<%= CTX.busy %>\",\n },\n events: {\n change: [\n {\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"approve\",\n payload: {\n approved: \"<% EVENT.detail.length > 0 %>\",\n propertyInstanceId: generation.propertyInstanceId,\n },\n },\n ],\n },\n {\n action: \"context.replace\",\n args: [\n \"propertyApproveState\",\n `<%\n EVENT.detail.length > 0\n ? CTX.propertyApproveState.concat(${JSON.stringify(generation.propertyId)})\n : CTX.propertyApproveState.filter((id) => id !== ${JSON.stringify(generation.propertyId)})\n %>`,\n ],\n },\n ],\n },\n },\n ]\n : undefined,\n },\n {\n // 批注 textarea\n brick: \"div\",\n properties: {\n className: classNames(\"body-cell\", {\n \"last-col-cell\": true,\n \"last-row-cell\": isLastRow,\n }),\n },\n children: generation.candidates\n ? [\n {\n brick: \"eo-textarea\",\n properties: {\n value: generation.comment\n ? `<% ${JSON.stringify(generation.comment)} %>`\n : undefined,\n autoSize: true,\n style: {\n width: \"100%\",\n },\n disabled: `<%= CTX.busy || CTX.propertyApproveState.includes(${JSON.stringify(generation.propertyId)}) %>`,\n },\n events: {\n keydown: {\n if: \"<% EVENT.code === 'Enter' && (EVENT.metaKey || EVENT.ctrlKey) %>\",\n action: \"window.postMessage\",\n args: [\n {\n channel: \"raw-data-preview\",\n type: \"comment\",\n payload: {\n comment: \"<% EVENT.target.value %>\",\n propertyInstanceId: generation.propertyInstanceId,\n },\n },\n ],\n },\n },\n },\n ]\n : undefined,\n }\n );\n }\n\n render(\n \"yaml\",\n {\n yaml: safeDump(\n [\n table,\n {\n brick: \"eo-message-listener\",\n properties: {\n sameOrigin: true,\n },\n events: {\n message: {\n if: \"<% EVENT.detail.data?.channel === 'raw-data-preview' && EVENT.detail.data.type === 'busy' %>\",\n action: \"context.replace\",\n args: [\"busy\", \"<% EVENT.detail.data.payload %>\"],\n },\n },\n portal: true,\n errorBoundary: true,\n },\n ],\n {\n schema: JSON_SCHEMA,\n skipInvalid: true,\n noRefs: true,\n noCompatMode: true,\n }\n ),\n },\n {\n app,\n theme,\n uiVersion,\n styleText: previewStyleText,\n }\n );\n }, [app, injected, generations, theme, uiVersion, category, mocks]);\n\n return (\n <div className={classNames(\"container\")}>\n <iframe\n ref={iframeRef}\n src={previewUrl ?? `${getBasePath()}_brick-preview-v3_/preview/`}\n loading=\"lazy\"\n onLoad={handleIframeLoad}\n />\n </div>\n );\n}\n","import { createProviderClass } from \"@next-core/utils/general\";\nimport { defaults } from \"lodash\";\nimport { pathToRegexp, Key } from \"path-to-regexp\";\n\ninterface Option {\n end?: boolean;\n strict?: boolean;\n sensitive?: boolean;\n}\n\nexport async function parsePath(path: string, options?: Option) {\n const defaultParams = { end: false, strict: false, sensitive: true };\n\n const keys: Key[] = [];\n const regexp = pathToRegexp(path, keys, defaults(options, defaultParams));\n\n return {\n regexp,\n keys,\n };\n}\n\ncustomElements.define(\n \"visual-builder.parse-path\",\n createProviderClass(parsePath)\n);\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n\n/** 创建实例 */\n\n/**\n * @description 创建实例 (body为实例信息,字段限制参考模型定义,支持关系创建)\n * @endpoint POST /v2/object/:objectId/instance\n */\nexport var InstanceApi_createInstance = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.CreateInstance@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.CreateInstance/v2/object/\".concat(objectId, \"/instance\"), data, options)).data\n );\n });\n return function InstanceApi_createInstance(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=createInstance.js.map","import { createProviderClass } from \"@next-core/utils/general\";\nimport { InstanceApi_createInstance } from \"@next-api-sdk/cmdb-sdk\";\n\nexport interface GeneratedView {\n attrInstanceId: string;\n input: string;\n output: string;\n list: unknown[];\n defaultVisualWeight?: number;\n systemPromptVersion?: string;\n}\n\nexport async function batchUpdateRawDataGeneratedView(\n generations: GeneratedView[]\n): Promise<unknown> {\n return Promise.allSettled(\n generations.map(({ attrInstanceId, ...props }) =>\n InstanceApi_createInstance(\"RAW_DATA_GENERATED_VIEW@EASYOPS\", {\n ...props,\n attr: [attrInstanceId],\n })\n )\n );\n}\n\ncustomElements.define(\n \"visual-builder.batch-update-raw-data-generated-view\",\n createProviderClass(batchUpdateRawDataGeneratedView)\n);\n","// istanbul ignore file\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport promptOfBoolean from \"./prompts/raw-data-boolean.md\";\nimport promptOfDateTime from \"./prompts/raw-data-date-time.md\";\nimport promptOfEnum from \"./prompts/raw-data-enum.md\";\nimport promptOfNumber from \"./prompts/raw-data-number.md\";\nimport promptOfOthers from \"./prompts/raw-data-others.md\";\nimport promptOfStructList from \"./prompts/raw-data-struct-list.md\";\nimport promptOfStruct from \"./prompts/raw-data-struct.md\";\n\nexport function getRawDataSystemPrompts(): Record<string, string> {\n return {\n boolean: promptOfBoolean,\n \"date-time\": promptOfDateTime,\n enum: promptOfEnum,\n number: promptOfNumber,\n others: promptOfOthers,\n \"struct-list\": promptOfStructList,\n struct: promptOfStruct,\n };\n}\n\ncustomElements.define(\n \"visual-builder.get-raw-data-system-prompts\",\n createProviderClass(getRawDataSystemPrompts)\n);\n","import React, {\n useEffect,\n useImperativeHandle,\n useMemo,\n createRef,\n useState,\n useCallback,\n useRef,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport {\n createForm,\n Form,\n onFieldValueChange,\n onFieldInit,\n onFieldInitialValueChange,\n onFormInitialValuesChange,\n onFormValidateSuccess,\n onFormValuesChange,\n createEffectHook,\n} from \"@formily/core\";\nimport { createSchemaField, FormProvider } from \"@formily/react\";\nimport { ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport {\n FormCollapse,\n FormItem,\n FormLayout,\n Input,\n NumberPicker,\n Radio,\n Select,\n Switch,\n} from \"@formily/antd-v5\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport {\n EditorComponentProps,\n DataItem,\n SelectOptions,\n} from \"@next-shared/property-editor\";\nimport { CategoryTitle } from \"./components/CategoryTitle\";\nimport { AdvancedFormItem } from \"./components/AdvancedFormItem\";\nimport { CodeEditorComponent } from \"./components/common/CodeEditorComponent\";\nimport { IconSelectComponent } from \"./components/common/IconSelectComponent\";\nimport { ColorPickerComponent } from \"./components/common/ColorPickerComponent\";\nimport { InputWithUrlComponent } from \"./components/common/InputWithUrlComponent\";\nimport { TextAlignRadioComponent } from \"./components/common/TextAlignRadioComponent\";\nimport { InputWithUnitComponent } from \"./components/common/InputWithUnitComponent\";\nimport { UseChildrenSelectComponent } from \"./components/common/UseChildrenSelectComponent\";\nimport { BoxSizeComponent } from \"./components/common/BoxSizeComponent\";\nimport { CustomOptionsComponent } from \"./components/common/CustomOptionsComponent\";\nimport { CustomTab } from \"./components/common/CustomTab\";\nimport { __secret_internals, customEditors } from \"@next-core/runtime\";\nimport {\n ADVANCED_FORM_KEY,\n DataNode,\n formilySchemaFormatter,\n} from \"./utils/formilySchemaFormatter\";\nimport \"./style.css\";\nimport _, { isEmpty, omit } from \"lodash\";\nimport { BrickPackage } from \"@next-core/types\";\nimport { NORMAL_FORM_KEY } from \"./utils/formilySchemaFormatter\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\nconst PropertyEditorComponent = React.forwardRef(LegacyPropertyEditor);\n\nexport const BEFORE_SUBMIT_KEY = \"before_submit\";\nexport const ADVANCED_CHANGE_KEY = \"on_advanced_change\";\n\nexport const SchemaField = createSchemaField({\n components: {\n FormLayout,\n Input,\n FormItem: AdvancedFormItem,\n FormItemWithoutAdvanced: FormItem,\n FormCollapse,\n NumberPicker,\n Radio,\n Select,\n Switch,\n CategoryTitle,\n CodeEditor: CodeEditorComponent,\n IconSelect: IconSelectComponent,\n ColorPicker: ColorPickerComponent,\n UseChildrenSelect: UseChildrenSelectComponent,\n InputWithUrl: InputWithUrlComponent,\n InputWithUnit: InputWithUnitComponent,\n TextAlignRadio: TextAlignRadioComponent,\n CustomOptions: CustomOptionsComponent,\n BoxSize: BoxSizeComponent,\n CustomTab,\n },\n});\n\nexport type { DataNode };\n\nlet cacheCustomEditor: Function;\n\n/**\n * 构件 `visual-builder.property-editor`\n */\nexport\n@defineElement(\"visual-builder.property-editor\", {\n // styleTexts: [styleText],\n // 因为有使用 vs.code-editor,需要把 shadowOptions 设置成 false\n shadowOptions: false,\n dependencies: [\"eo-icon-select\", \"vs.code-editor\", \"eo-tooltip\"],\n})\nclass PropertyEditor extends ReactNextElement {\n #formRef = createRef<any>();\n\n /** 构件名称 */\n @property()\n accessor editorName: string | undefined;\n\n /** 值 */\n @property({\n attribute: false,\n })\n accessor values: any | undefined;\n\n /** 高级模式 */\n @property({\n type: Boolean,\n })\n accessor advancedMode: boolean | undefined;\n\n @property({\n attribute: false,\n })\n accessor dataList: DataItem[];\n\n @property({\n attribute: false,\n })\n accessor editorPackages: BrickPackage[];\n\n @property({\n attribute: false,\n })\n accessor links: any;\n\n @property({\n attribute: false,\n })\n accessor extraLibs: SelectOptions;\n\n @property({\n attribute: false,\n })\n accessor childSlots: SelectOptions;\n\n /**\n * 表单验证成功时触发事件\n */\n @event({ type: \"validate.success\" }) accessor #successEvent!: EventEmitter<\n Record<string, unknown>\n >;\n /**\n * 表单验证报错时触发事件\n */\n @event({ type: \"validate.error\" }) accessor #errorEvent!: EventEmitter<any[]>;\n\n @method()\n validate() {\n const form: Form = this.#formRef.current?.getFormInstance();\n this.#submitValue = null;\n\n form\n .validate()\n .then(() => {\n if (this.advancedMode) {\n // 高级模式直接输出 form.values[ADVANCED_FORM_KEY]\n this.#successEvent.emit(form.values[ADVANCED_FORM_KEY]);\n } else {\n const value = _.omit(form.values, [ADVANCED_FORM_KEY]);\n form.notify(BEFORE_SUBMIT_KEY, value);\n this.#successEvent.emit(this.#submitValue ?? value);\n }\n })\n .catch((err: any[]) => {\n this.#errorEvent.emit(err);\n });\n }\n\n @event({ type: \"values.change\" })\n accessor #valuesChangeEvent!: EventEmitter<any>;\n\n #handleValuesChange = (value: any) => {\n this.#valuesChangeEvent.emit(value);\n };\n\n @event({ type: \"token.click\" })\n accessor #tokenClick!: EventEmitter<string>;\n\n #handleTokenClick = (value: string): void => {\n this.#tokenClick.emit(value);\n };\n\n #submitValue: any;\n\n #onSubmitEffect = createEffectHook(\n BEFORE_SUBMIT_KEY,\n (values, form) => (listener) => {\n this.#submitValue = listener(values, form);\n }\n );\n\n @event({ type: \"trigger.action\" })\n accessor #triggerActionEvent!: EventEmitter<string>;\n\n #handleTriggerAction = (action: string) => {\n this.#triggerActionEvent.emit(action);\n };\n\n #filterData = (data?: Record<string, any> | string) => {\n const transformData =\n typeof data === \"string\" && data === \"undefined\"\n ? undefined\n : omit(data as any, [\"dataset.testid\"]);\n const shouldFilterFields = [];\n isEmpty(transformData?.dataset) && shouldFilterFields.push(\"dataset\");\n isEmpty(transformData?.style) && shouldFilterFields.push(\"style\");\n\n const filterData = omit(transformData, shouldFilterFields);\n if (isEmpty(filterData)) {\n return undefined;\n }\n return filterData;\n };\n\n render() {\n return (\n <PropertyEditorComponent\n ref={this.#formRef}\n editorName={this.editorName}\n values={this.#filterData(this.values)}\n advancedMode={this.advancedMode}\n dataList={this.dataList}\n extraLibs={this.extraLibs}\n links={this.links}\n childSlots={this.childSlots}\n editorPackages={this.editorPackages}\n handleValuesChange={this.#handleValuesChange}\n handleTokenClick={this.#handleTokenClick}\n handleTriggerAction={this.#handleTriggerAction}\n onSubmitEffect={this.#onSubmitEffect}\n />\n );\n }\n}\n\nexport interface PropertyEditorProps {\n values: any;\n editorName: string;\n advancedMode?: boolean;\n childSlots?: SelectOptions;\n extraLibs: SelectOptions;\n dataList: DataItem[];\n links: any;\n editorPackages: BrickPackage[];\n handleValuesChange: (value: any) => void;\n handleTokenClick: (token: string) => void;\n handleTriggerAction: (action: string) => void;\n onSubmitEffect: (listener: (value: any, form: Form) => any) => void;\n}\n\nexport function LegacyPropertyEditor(\n {\n advancedMode,\n values,\n editorName,\n dataList,\n editorPackages,\n extraLibs,\n childSlots,\n links,\n handleValuesChange,\n handleTokenClick,\n handleTriggerAction,\n onSubmitEffect,\n }: PropertyEditorProps,\n ref: any\n) {\n const [Editor, setEditor] = useState<\n (props: EditorComponentProps<typeof SchemaField>) => React.ReactElement\n >(cacheCustomEditor as any);\n const currentTheme = useCurrentTheme();\n const cache = useMemo(() => createCache(), []);\n // should update form instance when Editor change\n const form = useMemo(() => createForm(), [Editor]);\n const transformValueRef = useRef<any>(null);\n const advancedChangeRef = useRef<boolean>(false);\n\n const onAdvancedChangeEffect = useMemo(\n () =>\n createEffectHook(\n ADVANCED_CHANGE_KEY,\n (advancedMode, form) => (listener) => {\n const values =\n !advancedMode && form.values[ADVANCED_FORM_KEY]\n ? form.values[ADVANCED_FORM_KEY]\n : form.values;\n transformValueRef.current = listener(advancedMode, form, values);\n }\n ),\n []\n );\n\n useImperativeHandle(ref, () => ({\n getFormInstance: () => form,\n }));\n\n const load = useCallback(async () => {\n // TODO: cache editors\n if (customEditors.get(editorName)) {\n setEditor(() => customEditors.get(editorName)?.(React) as any);\n return;\n }\n await __secret_internals.loadEditors([editorName], editorPackages);\n cacheCustomEditor = () => customEditors.get(editorName)?.(React);\n setEditor(cacheCustomEditor as any);\n }, [editorName, editorPackages]);\n\n const defaultTransform = useCallback((values: any, advancedMode: boolean) => {\n if (advancedMode) {\n const filterValue = _.omit(values, [ADVANCED_FORM_KEY]);\n return {\n [ADVANCED_FORM_KEY]: _.isEmpty(filterValue) ? \"\" : filterValue,\n };\n }\n return values[ADVANCED_FORM_KEY] ?? values;\n }, []);\n\n useEffect(() => {\n load();\n }, [load]);\n\n useEffect(() => {\n if (Editor) {\n form.setInitialValues(values, \"overwrite\");\n }\n }, [Editor, form]);\n\n useEffect(() => {\n advancedChangeRef.current = true;\n transformValueRef.current = null;\n\n form.notify(ADVANCED_CHANGE_KEY, advancedMode);\n\n form.query(NORMAL_FORM_KEY).take((field) => {\n field.display = !advancedMode ? \"visible\" : \"hidden\";\n });\n form.query(ADVANCED_FORM_KEY).take((field) => {\n field.display = advancedMode ? \"visible\" : \"hidden\";\n });\n\n const formValues = form.getState().values;\n const formData = defaultTransform(\n transformValueRef.current ?? formValues,\n advancedMode\n );\n\n form.setValues(formData, \"overwrite\");\n advancedChangeRef.current = false;\n }, [advancedMode, form, defaultTransform, Editor]);\n\n useEffect(() => {\n form.addEffects(\"onValueChange\", () => {\n onFormValuesChange((form) => {\n if (advancedChangeRef.current) return;\n handleValuesChange(form.values);\n });\n });\n }, [form, handleValuesChange]);\n\n if (!Editor) return null;\n\n return (\n <div className=\"property-form-wrapper\">\n <ConfigProvider\n prefixCls=\"antdV5\"\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n components: {\n // Form: {\n // not work\n // itemMarginBottom: 10,\n // }\n InputNumber: {\n handleVisible: true,\n },\n },\n }}\n getPopupContainer={(trigger) => trigger!}\n >\n <StyleProvider cache={cache}>\n <FormProvider form={form}>\n <Editor\n advancedMode={advancedMode}\n SchemaFieldComponent={SchemaField}\n form={form}\n scope={{\n dataList,\n advancedMode,\n childSlots,\n extraLibs,\n links,\n tokenClick: (event: CustomEvent<string>) =>\n handleTokenClick(event.detail),\n triggerAction: handleTriggerAction,\n }}\n effects={{\n onFieldInit,\n onFieldValueChange,\n onFieldInitialValueChange,\n onFormInitialValuesChange,\n onFormValidateSuccess,\n onFormValuesChange,\n onSubmit: onSubmitEffect,\n onAdvancedChange: onAdvancedChangeEffect,\n }}\n formilySchemaFormatter={formilySchemaFormatter}\n />\n </FormProvider>\n </StyleProvider>\n </ConfigProvider>\n </div>\n );\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, `:root{--vb-workbench-action-list-background:#f8f8f8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--vb-workbench-action-list-background:#323237}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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, `:root{--vb-workbench-action-color:#616161;--vb-workbench-action-active-color:#1f1f1f;--vb-workbench-action-active-border-color:#005fb8}html[data-theme=\"dark\"],\nhtml[data-theme=\"dark-v2\"]{--vb-workbench-action-color:rgba(255,255,255,0.4);--vb-workbench-action-active-color:#fff;--vb-workbench-action-active-border-color:#fff}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../shared/markdown/dist/esm/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}.message{display:flex;gap:8px}.main{flex:1;min-width:0}.label{font-weight:bold;line-height:28px}.message:not(:last-child){margin-bottom:2em}.invisible-dots{opacity:0}.failed .content{color:var(--color-error)}.command:not(:first-child){margin-top:1em}.command:not(:last-child){margin-bottom:1em}pre{white-space:pre-wrap;background-color:var(--palette-gray-3);border-radius:6px;padding:1em}.markdown > :first-child{margin-top:0}.markdown > :last-child{margin-bottom:0}.avatar{align-self:flex-start;display:flex;align-items:center;justify-content:center}.texting::after{content:\" \";animation:texting 2s infinite;white-space:pre}@keyframes texting{0%{content:\" \"}25%{content:\". \"}50%{content:\".. \"}75%{content:\"...\"}100%{content:\" \"}}pre[class*=\"language-\"]{overflow:visible}pre[class*=\"language-\"],\ncode[class*=\"language-\"]{white-space:pre-wrap}eo-avatar.role-assistant::part(avatar-icon){background-color:var(--palette-blue-5)}.content{word-wrap:break-word}.plain{white-space:pre-wrap}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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}:host([hidden]){display:none}*{box-sizing:border-box}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative;box-shadow:rgba(204,204,204,0.2) 0px 0px 0px 1px}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select:none}.outline{position:absolute;border-style:solid;border-width:2px;border-radius:0 4px 4px;pointer-events:none}.label{position:absolute;left:-2px;top:-20px;height:18px;line-height:16px;padding:2px 5px 0;font-size:12px;border-radius:4px 4px 0 0;white-space:nowrap}.outline.hover{border-color:rgba(var(--palette-blue-6-channel),0.3)}.outline.hover .label{background:rgba(var(--palette-blue-6-channel),0.3)}.outline.active{border-color:var(--palette-blue-6)}.outline.active .label{background:var(--palette-blue-6)}.container:not(.inspecting) .outline{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block}:host([hidden]){display:none}.contract-wrapper{display:flex;gap:4px}.contract-selector{flex:1}.version-selector{width:100px}.options-tips{padding:0px 10px;font-weight:400;color:#999;white-space:nowrap;font-style:italic}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block}:host([hidden]){display:none}.mask,\n.container{display:none;position:fixed;z-index:1}.mask{top:0;bottom:0;left:0;right:0;z-index:1}:host([active]) .mask,\n:host([active]) .container{display:block}.container{background:var(--antd-dropdown-menu-bg);border-radius:var(--medius-border-radius);padding:5px}.container .title{padding:5px 12px;cursor:default;color:var(--color-secondary-text);border-bottom:1px solid var(--color-text-divider-line)}.container eo-menu{border:none;padding:5px 0}.container eo-menu eo-menu-item:not([disabled]):hover::part(menu-item){background-color:var(--left-sidebar-item-hover-bg)}.container eo-menu eo-menu-item[disabled]::part(menu-item){cursor:not-allowed}.container eo-menu eo-menu-item::part(menu-item){cursor:grab;padding:5px 12px;border-radius:var(--medius-border-radius);min-width:max-content}.container eo-menu eo-menu-item.dragging{opacity:0.5}.container eo-menu eo-tooltip{display:block}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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{--local-node-outline-style:solid;display:block}:host([hidden]){display:none}:host([not-synced]){--local-node-outline-style:dashed}*{box-sizing:border-box}.node{width:168px;max-width:none;height:130px;position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.node.board{height:70px;max-width:168px;width:-moz-fit-content;width:fit-content;padding-bottom:4px}.label,\n.label-input{width:100%;height:24px;padding:3px;border:none;line-height:18px;font-size:var(--sub-title-font-size-small);color:var(--color-header-text);font-weight:var(--font-weight-500);text-align:center;font-family:inherit;cursor:text;-webkit-user-select:text;user-select:text}.label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.node.editing-label .label{height:0}.node:not(.editing-label) .label-input{display:none}.add-button,\n.icon-container,\n.thumbnail-container,\n.thumbnail-placeholder{display:flex;align-items:center;justify-content:center}.thumbnail-container{height:98px;outline:1px var(--local-node-outline-style) var(--palette-gray-4);opacity:1;border:4px solid transparent;border-radius:4px;width:100%;position:relative;flex-direction:column}.thumbnail-placeholder{color:var(--palette-gray-5);font-size:36px;flex:1}.icon-container{font-size:20px;background-color:var(--palette-teal-6);color:var(--palette-gray-4);width:36px;height:36px;border-radius:50%;outline-offset:4px}:host([active]) .thumbnail-container,\n:host([active]) .icon-container{outline:2px var(--local-node-outline-style) var(--palette-blue-3)}:host(:not([active])) .node:hover .thumbnail-container,\n:host(:not([active])) .node:hover .icon-container{outline:1px var(--local-node-outline-style) var(--palette-blue-3)}.add-button{position:absolute;bottom:-26px;left:calc(50% - 12px);width:24px;height:24px;background:var(--palette-gray-3);color:var(--palette-gray-6);border-radius:50%;cursor:pointer}:host([not-synced]) .add-button,\n:host([disable-child-append]) .add-button,\n:host(:not([active])) .add-button{display:none}.add-button:hover{background:var(--palette-blue-5);color:var(--palette-gray-2)}.external{position:absolute;top:4px;left:4px;padding:0 10px;display:flex;align-items:center;gap:6px;background:var(--palette-purple-4);font-size:12px;line-height:20px;height:22px;cursor:pointer;color:var(--palette-gray-1);border-radius:9999px;right:4px;max-width:-moz-fit-content;max-width:fit-content}.external-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.external:hover{background:var(--palette-purple-5)}.sub-nodes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;width:100%}.sub-node{background-color:var(--palette-gray-2);border-radius:4px;padding:6px;display:flex;flex-direction:column;justify-content:space-between;height:32px}.sub-node-skeleton-title{width:18px;height:4px;border-radius:2px;align-self:flex-start;background-color:var(--palette-gray-4)}.sub-node-skeleton-content{width:100%;height:4px;border-radius:2px;background-color:var(--palette-gray-4)}.sub-node-skeleton-button{width:18px;height:4px;border-radius:2px;align-self:flex-end;background-color:var(--palette-blue-3)}.sub-node:hover{background-color:var(--palette-gray-3)}.sub-node:hover .sub-node-skeleton-title,\n.sub-node:hover .sub-node-skeleton-content{background-color:var(--palette-gray-5)}.sub-node:hover .sub-node-skeleton-button{background-color:var(--palette-blue-4)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `body{background-color:transparent}#preview-root{padding:0;height:auto;max-height:100vh;overflow-y:auto;border:1px solid var(--theme-gray-border-color);border-radius:4px;background:var(--body-background)}.head-cell{position:sticky;top:0;z-index:1;font-weight:bold}.head-cell,\n.body-cell{background:var(--body-background)}.last-col-cell{border-right-color:transparent}.last-row-cell{border-bottom-color:transparent}.form-container > ::part(message){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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}:host([hidden]){display:none}*{box-sizing:border-box}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:grid;width:100%}:host([hidden]){display:none}::slotted(*){padding:4px 8px;border:1px solid var(--theme-gray-border-color);border-left-color:transparent;border-top-color:transparent;min-width:0;word-break:break-word}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `body{background-color:transparent}#preview-root{padding:0;height:auto;max-height:100vh;overflow-y:auto;border:1px solid var(--theme-gray-border-color);border-radius:4px;background:var(--body-background)}.head-cell{position:sticky;top:0;z-index:1;font-weight:bold}.head-cell,\n.body-cell{background:var(--body-background)}.body-cell{display:flex;align-items:center;justify-content:space-between}.last-col-cell{border-right-color:transparent}.last-row-cell{border-bottom-color:transparent}.form-container > ::part(message){display:none}.list{display:flex;flex-direction:column;gap:8px;overflow:hidden}.raw-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-color-secondary)}.raw-content.expand{white-space:pre-wrap}.tips{color:var(--text-color-secondary);font-weight:normal}.body-cell:not(:hover) .btn-toggle{visibility:hidden}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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}:host([hidden]){display:none}*{box-sizing:border-box}.container,\niframe{width:100%;height:100%;border-radius:4px}.container{position:relative}iframe{display:block;border:none;margin:0;padding:0;transform-origin:0% 0%;-webkit-user-select:none;user-select:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `.custom-scrollbar-container{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) rgba(255,255,255,0.03)}.custom-scrollbar-container::-webkit-scrollbar{width:8px;height:8px;background-color:transparent;position:absolute}.custom-scrollbar-container::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,0);border-radius:4px}.custom-scrollbar-container:hover::-webkit-scrollbar-track{background-color:rgba(255,255,255,0.03)}.custom-scrollbar-container:hover::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,0.15)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:flex;flex-direction:column;height:100%;overflow-y:auto;scrollbar-width:none;background-color:var(--vb-workbench-action-list-background)}:host([hidden]){display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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, `.action::part(link){display:flex;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;color:var(--vb-workbench-action-color);position:relative;transition:none}.action.active::part(link)::before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:var(--vb-workbench-action-active-border-color)}.action.active::part(link),\n.action::part(link):hover{color:var(--vb-workbench-active-color)}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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:inline-block}:host([hidden]){display:none}eo-popover::part(popup){width:800px;max-width:60vw;padding:10px;background:var(--color-fill-bg-container-4);border-radius:var(--medius-border-radius);box-shadow:var(--feedback-container-shadow);z-index:1000}.history-title{font-size:var(--title-font-size);font-weight:var(--font-weight-500);color:var(--color-strong-text);margin-bottom:5px}.history-list{max-height:500px;overflow-y:auto}.item-container{padding:10px 0;display:flex;flex-direction:column;gap:5px}.empty{padding:5px 0 10px 0;font-size:14px;color:var(--text-color-secondary);text-align:center}.item-container:not(:last-of-type){border-bottom:1px solid var(--color-border-divider-line)}.item-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.title-left,\n.title-right{display:flex;align-items:center}.title-left{cursor:pointer;overflow:hidden;gap:5px}.topic{font-size:14px;color:var(--text-color-title);font-weight:var(--font-weight-500);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.branch{font-size:14px;color:var(--text-color-secondary)}.rollback{margin-right:5px;font-size:14px;color:var(--text-color-secondary);cursor:pointer}.rollback:hover{color:var(--color-brand)}.item-info{display:flex;align-items:center;gap:5px}.time,\n.operator{font-size:14px;color:var(--text-color-secondary)}.load-more-container{display:block;text-align:center}.end-container{display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px;color:var(--color-brand)}.rollback-all{cursor:pointer}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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;--pane-color:#595959}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context([data-override-theme=\"dark-v2\"]){--pane-color:#ccc}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.pane{display:flex;flex-direction:column;color:var(--pane-color);height:100%}.pane-header{display:flex;align-items:center;cursor:pointer;border-top:1px solid transparent;position:relative}.pane-header:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:#007fd4}:host(:not(:first-child)) .pane-header{border-top-color:rgba(204,204,204,0.2)}.pane-scroll-shadow{display:none;position:absolute;bottom:-3px;left:0;right:0;height:3px;box-shadow:#000000 0 6px 6px -6px inset;z-index:1}.scrolled .pane-scroll-shadow{display:block}.pane-title{display:flex;align-items:center;font-size:13px;line-height:24px;height:25px;min-width:0;flex:1}.title-icon{display:flex;justify-content:center;align-items:center;width:24px;padding-right:2px;line-height:1;flex-shrink:0}.title-label{text-transform:uppercase;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-body{flex-grow:1;min-height:0;display:none;overflow:hidden;overflow-y:auto;overflow-y:overlay}:host([active]) .pane-body{display:initial}:host(:not(:hover)) ::slotted([slot=\"actions\"]){display:none}.badge{background-color:rgb(77,77,77);color:rgb(255,255,255);border-radius:11px;height:18px;padding:3px 6px;line-height:13px;margin:0 3px;font-size:12px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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{--sidebar-background:#fff;--title-container-background:#fff;--title-container-color:#595959;display:block;outline-color:rgba(83,89,93,0.5);background-color:var(--sidebar-background);height:100%}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context([data-override-theme=\"dark-v2\"]){--sidebar-background:#181818;--title-container-background:#181818;--title-container-color:rgb(187,187,187);background-color:var(--sidebar-background)}:host([hidden]){display:none}*,\n*::before,\n*::after{box-sizing:border-box}.sidebar{display:flex;flex-direction:column;height:100%}.title-container{display:flex;padding:0 8px 8px 8px;color:var(--title-container-color);background:var(--title-container-background)}.title-label{font-weight:300;line-height:44px;padding-left:12px;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-container{flex-grow:1;min-height:0;display:flex;flex-direction:column}::slotted([slot=\"panes\"]){transition:flex 0.2s;min-height:25px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_0___ from \"-!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[0]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../node_modules/prismjs/themes/prism-tomorrow.css\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \".concat(i));\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \".concat(j));\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \".concat(j));\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \".concat(i));\n if (!pattern)\n throw new TypeError(\"Missing pattern at \".concat(i));\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a, _b = options.delimiter, delimiter = _b === void 0 ? \"/#?\" : _b;\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \".concat(nextType, \" at \").concat(index, \", expected \").concat(type));\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n var isSafe = function (value) {\n for (var _i = 0, delimiter_1 = delimiter; _i < delimiter_1.length; _i++) {\n var char = delimiter_1[_i];\n if (value.indexOf(char) > -1)\n return true;\n }\n return false;\n };\n var safePattern = function (prefix) {\n var prev = result[result.length - 1];\n var prevText = prefix || (prev && typeof prev === \"string\" ? prev : \"\");\n if (prev && !prevText) {\n throw new TypeError(\"Must have text between two parameters, missing text after \\\"\".concat(prev.name, \"\\\"\"));\n }\n if (!prevText || isSafe(prevText))\n return \"[^\".concat(escapeString(delimiter), \"]+?\");\n return \"(?:(?!\".concat(escapeString(prevText), \")[^\").concat(escapeString(delimiter), \"])+?\");\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || safePattern(prefix),\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? safePattern(prefix) : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\",\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\".concat(token.pattern, \")$\"), reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not repeat, but got an array\"));\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to not be empty\"));\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to match \\\"\").concat(token.pattern, \"\\\", but got \\\"\").concat(segment, \"\\\"\"));\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\".concat(token.name, \"\\\" to be \").concat(typeOfMessage));\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n var groupsRegex = /\\((?:\\?<(.*?)>)?(?!\\?)/g;\n var index = 0;\n var execResult = groupsRegex.exec(path.source);\n while (execResult) {\n keys.push({\n // Use parenthesized substring match if available, index otherwise\n name: execResult[1] || index++,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\",\n });\n execResult = groupsRegex.exec(path.source);\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\".concat(parts.join(\"|\"), \")\"), flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d, _e = options.delimiter, delimiter = _e === void 0 ? \"/#?\" : _e, _f = options.endsWith, endsWith = _f === void 0 ? \"\" : _f;\n var endsWithRe = \"[\".concat(escapeString(endsWith), \"]|$\");\n var delimiterRe = \"[\".concat(escapeString(delimiter), \"]\");\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\".concat(prefix, \"((?:\").concat(token.pattern, \")(?:\").concat(suffix).concat(prefix, \"(?:\").concat(token.pattern, \"))*)\").concat(suffix, \")\").concat(mod);\n }\n else {\n route += \"(?:\".concat(prefix, \"(\").concat(token.pattern, \")\").concat(suffix, \")\").concat(token.modifier);\n }\n }\n else {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n throw new TypeError(\"Can not repeat \\\"\".concat(token.name, \"\\\" without a prefix and suffix\"));\n }\n route += \"(\".concat(token.pattern, \")\").concat(token.modifier);\n }\n }\n else {\n route += \"(?:\".concat(prefix).concat(suffix, \")\").concat(token.modifier);\n }\n }\n }\n if (end) {\n if (!strict)\n route += \"\".concat(delimiterRe, \"?\");\n route += !options.endsWith ? \"$\" : \"(?=\".concat(endsWithRe, \")\");\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiterRe.indexOf(endToken[endToken.length - 1]) > -1\n : endToken === undefined;\n if (!strict) {\n route += \"(?:\".concat(delimiterRe, \"(?=\").concat(endsWithRe, \"))?\");\n }\n if (!isEndDelimited) {\n route += \"(?=\".concat(delimiterRe, \"|\").concat(endsWithRe, \")\");\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map"],"names":["WrappedIcon","wrapBrick","defineElement","property","event","createDecorators","_WorkbenchPane","_A","WeakMap","_B","_C","_D","_WorkbenchPane_brand","WeakSet","_handleActiveChange","_E","_handleActiveFirstActivated","WorkbenchPane","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_titleLabel","_init_extra_titleLabel","_init_active","_init_extra_active","_init_badge","_init_extra_badge","_init_activeChangeEvent","_init_extra_activeChangeEvent","active","this","_classPrivateGetter","_get_activeChangeEvent","emit","_init_activeFirstActivatedEvent","_init_extra_activeFirstActivatedEvent","_get_activeFirstActivatedEvent","titleLabel","_classPrivateFieldGet","v","_classPrivateFieldSet","badge","render","React","WorkbenchPaneComponent","onActiveChange","onFirstActivated","_ref","internalActive","setInternalActive","useState","activatedOnce","setActivatedOnce","useEffect","handleClick","useCallback","previousActive","scrollBodyRef","useRef","scrolled","setScrolled","handleScroll","useMemo","fn","frame","cancel","cancelAnimationFrame","func","_len","length","params","Array","_key","requestAnimationFrame","current","scrollTop","debounceByAnimationFrame","className","classNames","tabIndex","onClick","lib","theme","icon","name","onScroll","ref","style","padding","color","_WorkbenchPane2","e","_set_activeChangeEvent","_set_activeFirstActivatedEvent","c","_initClass","_applyDecs","styleTexts","styleText","sharedStyle","type","Boolean","Number","o","_","has","_checkInRHS","_WorkbenchSidebar","_getPaneSlot","_reflowPanes","_onPanesSlotChange","WorkbenchSidebar","_this$shadowRoot","shadowRoot","querySelector","panes","call","assignedNodes","pane","_pane$activeFlex","flex","String","activeFlex","target","addEventListener","_defineProperty","panesSlots","WorkbenchSidebarComponent","refCallback","_WorkbenchSidebar2","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","WrapLink","WrappedTooltip","_WorkbenchAction","_F","WorkbenchAction","_init_icon","_init_extra_icon","_init_to","_init_extra_to","_init_href","_init_extra_href","_init_target","_init_extra_target","_init_tooltip","_init_extra_tooltip","to","href","tooltip","WorkbenchActionComponent","content","placement","url","_WorkbenchAction2","attribute","initMenuItemAndMatchCurrentPathKeys","menuItems","pathname","search","parentCursor","selectedKeys","openedKeys","matchedKeys","cursor","forEach","item","key","isGroup","groupAsSubMenu","isSubMenu","tmp","items","push","defaultExpanded","parsePath","escapedPath","replace","match","matchPath","path","exact","activeMatchSearch","getMatchOfSearch","isArray","activeIncludes","include","paths","isObject","_parsedPath","parsedPath","hasSearch","includes","activeExcludes","parsedPathWithSearch","matchMenuItem","keyPath","split","i","slice","join","currentSearch","toSearch","URLSearchParams","value","entries","_current$get","get","WrapperWorkbenchAction","_WorkbenchActionList","WorkbenchActionList","_init_appId","_init_extra_appId","_init_menu","_init_extra_menu","appId","menu","WorkbenchActionListComponent","currentAppId","_WorkbenchActionList2","historyMap","Map","_menu$menuItems2","history","getHistory","activeIndex","setActiveIndex","location","setLocation","unlisten","listen","clear","_menu$menuItems","map","index","isSimpleMenuItem","text","set","handleLinkClick","filter","defaultGetCollapsedId","node","_WorkbenchTreeElement","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_WorkbenchTreeElement_brand","_handleActionClick","_T","_nodeClickFactory","_U","_handleNodeDrop","_V","_contextMenuFactory","_W","_handleNodeToggle","WorkbenchTreeElement","_init_nodes","_init_extra_nodes","_init_actions","_init_extra_actions","_init_actionsHidden","_init_extra_actionsHidden","_init_placeholder","_init_extra_placeholder","_init_isTransformName","_init_extra_isTransformName","_init_searchPlaceholder","_init_extra_searchPlaceholder","_init_noSearch","_init_extra_noSearch","_init_activeKey","_init_extra_activeKey","_init_showMatchedNodeOnly","_init_extra_showMatchedNodeOnly","_init_matchNodeDataFields","_init_extra_matchNodeDataFields","_init_fixedActionsFor","_init_extra_fixedActionsFor","_init_collapsible","_init_extra_collapsible","_init_collapsedNodes","_init_extra_collapsedNodes","_init_allowDrag","_init_extra_allowDrag","_init_allowDragToRoot","_init_extra_allowDragToRoot","_init_allowDragToInside","_init_extra_allowDragToInside","_init_nodeKey","_init_extra_nodeKey","_init_skipNotify","_init_extra_skipNotify","_init_actionClickEvent","_init_extra_actionClickEvent","detail","_get_actionClickEvent","_init_nodeClickEvent","_init_extra_nodeClickEvent","_get_nodeClickEvent","data","_init_nodeDropEvent","_init_extra_nodeDropEvent","_get_nodeDropEvent","_init_nodeContextMenuEvent","_init_extra_nodeContextMenuEvent","preventDefault","_get_nodeContextMenuEvent","x","clientX","y","clientY","_init_nodeToggleEvent","_init_extra_nodeToggleEvent","nodeId","collapsed","_get_nodeToggleEvent","nodes","actions","actionsHidden","placeholder","isTransformName","searchPlaceholder","noSearch","activeKey","showMatchedNodeOnly","matchNodeDataFields","fixedActionsFor","collapsible","collapsedNodes","allowDrag","allowDragToRoot","allowDragToInside","nodeKey","skipNotify","WorkbenchActionsContext","Provider","onActionClick","WorkbenchTreeContext","basePaddingLeft","getCollapsedId","onNodeToggle","clickFactory","contextMenuFactory","matchNode","lowerTrimmedQuery","_this$matchNodeDataFi","deepMatch","pick","WorkbenchTree","dropEmit","_WorkbenchTreeElement2","_set_actionClickEvent","_set_nodeClickEvent","_set_nodeDropEvent","_set_nodeContextMenuEvent","_set_nodeToggleEvent","treeStyleText","actionStyleText","K","NS","WorkspaceApi_getChangeHistory","http","concat","_x","_x2","_x3","apply","actionI18nKeyMap","add","ADD","edit","EDIT","delete","DELETE","batch_delete","import","IMPORT","clone","CLONE","append_relation","APPEND_RELATION","update_relation","UPDATE_RELATION","remove_relation","REMOVE_RELATION","rollback","ROLLBACK","rollback_all","ROLLBACK_ALL","fullActionI18nKeyMap","ADD_FULL","EDIT_FULL","DELETE_FULL","IMPORT_FULL","CLONE_FULL","APPEND_RELATION_FULL","UPDATE_RELATION_FULL","REMOVE_RELATION_FULL","ROLLBACK_FULL","ROLLBACK_ALL_FULL","categoryI18nKeyMap","project","PROJECT","userGroup","USER","permission","PERMISSION","brick","BRICK","route","ROUTE","template","TEMPLATE","snippet","SNIPPET","i18n","I18N","image","IMAGE","function","FUNCTION","MENU","menuItem","MENU_ITEM","workflow","WORKFLOW","modelI18nKeyMap","PROJECT_MICRO_APP","MICRO_APP_RESOURCE_PERMISSION","STORYBOARD_BRICK","STORYBOARD_ROUTE","STORYBOARD_TEMPLATE","STORYBOARD_SNIPPET","STORYBOARD_I18N","MICRO_APP_RESOURCE_IMAGE","STORYBOARD_FUNCTION","MICRO_APP_RESOURCE_MENU","MICRO_APP_RESOURCE_MENU_ITEM","translateHistory","_categoryI18nKeyMap$h","_actionI18nKeyMap$his","_modelI18nKeyMap$hist","_history$abstract","_history$abstract2","_modelI18nKeyMap$hist2","_history$abstract3","_history$abstract4","_history$abstract5","_history$abstract6","_history$abstract7","_history$abstract8","_history$abstract9","_history$abstract10","_fullActionI18nKeyMap","_history$abstract11","_history$abstract12","historyAction","action","rollBackIdInfo","category","t","leftObjectId","abstract","rightObjectId","translateNodes","nodesCount","leftNodes","leftNodesCount","rightNodes","rightNodesCount","rollbackAbstract","nodeChanges","relationChanges","undefined","total","separator","NODE","context","count","initializeReactI18n","en","LOAD_MORE","LOADING","NO_DATA","NODE_ellipsis","zh","WrappedButton","WrappedLink","WrappedEasyopsAvatar","WrappedPopover","onVisibleChange","onBeforeVisibleChange","_WorkbenchHistoryActi","_WorkbenchHistoryAction_brand","_handleHistoryItemClick","_handleRollback","_handleRollbackAll","WorkbenchHistoryAction","_init_projectId","_init_extra_projectId","_init_historyItemClickEvent","_init_extra_historyItemClickEvent","_get_historyItemClickEvent","_init_rollbackEvent","_init_extra_rollbackEvent","_get_rollbackEvent","_init_rollbackAllEvent","_init_extra_rollbackAllEvent","_get_rollbackAllEvent","projectId","WorkbenchHistoryActionComponent","onHistoryItemClick","onRollback","onRollbackAll","props","useTranslation","loading","setLoading","hideLoadMore","setHideLoadMore","allLoaded","setAllLoaded","historyList","setHistoryList","lastTs","handleLoadList","isFirst","ts","limit","then","result","pre","list","translation","catch","error","handleHttpError","finally","trigger","arrow","arrowColor","slot","shape","HistoryItem","uniqueKey","enableRollback","disabled","moment","duration","diff","humanizedTime","days","format","humanize","ss","s","m","h","title","nameOrInstanceId","user","size","_WorkbenchHistoryAction","_set_historyItemClickEvent","_set_rollbackEvent","_set_rollbackAllEvent","autoFocusedSets","Set","_PageArchNode","_PageArchNode_brand","_handleLabelEditingChange","_handleLabelChange","_handleNodeClick","_handleNodeDoubleClick","_handleNodeContextMenu","_handleChildAppend","_handleExternalClick","_handleSubNodeDoubleClick","_handleSubNodeContextMenu","PageArchNode","_init_label","_init_extra_label","_init_type","_init_extra_type","_init_external","_init_extra_external","_init_subNodes","_init_extra_subNodes","_init_notSynced","_init_extra_notSynced","_init_disableChildAppend","_init_extra_disableChildAppend","_init_autoFocusOnce","_init_extra_autoFocusOnce","_init_labelEditingChange","_init_extra_labelEditingChange","_get_labelEditingChange","_init_labelChange","_init_extra_labelChange","_get_labelChange","_init_nodeClick","_init_extra_nodeClick","_get_nodeClick","_init_nodeDoubleClick","_init_extra_nodeDoubleClick","_get_nodeDoubleClick","_init_nodeContextMenu","_init_extra_nodeContextMenu","_get_nodeContextMenu","_init_childAppend","_init_extra_childAppend","_get_childAppend","_init_externalClick","_init_extra_externalClick","_get_externalClick","_init_subNodeDoubleClick","_init_extra_subNodeDoubleClick","_get_subNodeDoubleClick","_init_subNodeContextMenu","_init_extra_subNodeContextMenu","_get_subNodeContextMenu","label","external","subNodes","notSynced","disableChildAppend","autoFocusOnce","PageArchNodeComponent","onLabelEditingChange","onLabelChange","onNodeClick","onNodeDoubleClick","onNodeContextMenu","onChildAppend","onExternalClick","onSubNodeDoubleClick","onSubNodeContextMenu","_subNodes$length","_type","currentLabel","setCurrentLabel","editingLabel","setEditingLabel","editingLabelInitialized","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","handleEditLabel","stopPropagation","setTimeout","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","select","handleInputChange","handleInputKeydown","keyCode","which","_labelInputRef$curren3","blur","handleInputBlur","handleChildAppend","handleExternalClick","extraHeight","Math","max","floor","height","onDoubleClick","onContextMenu","onChange","onKeyDown","onBlur","onMouseDown","subNode","SubNode","id","role","_ref2","_PageArchNode2","_set_labelEditingChange","_set_labelChange","_set_nodeClick","_set_nodeDoubleClick","_set_nodeContextMenu","_set_childAppend","_set_externalClick","_set_subNodeDoubleClick","_set_subNodeContextMenu","_classPrivateSetter","r","a","assertClassBrand","method","_FormItemElementBase_brand","FormItemElementBase","_initProto","_init_helpBrick","_init_extra_helpBrick","_init_labelBrick","_init_extra_labelBrick","_init_labelCol","_init_extra_labelCol","_init_wrapperCol","_init_extra_wrapperCol","isFormItemElement","validateState","_set_validate","_render","_get_validate","notRender","hidden","_set__notRender","_get__notRender","$bindFormItem","_get_bindFormItem","_set_bindFormItem","helpBrick","labelBrick","labelCol","wrapperCol","setNotRender","getFormElement","element","parentNode","isFormElement","_this","_this2","_this3","_this4","_this5","_this6","_FormItemElementBase","ContractCenterApi_searchContract","post","locales","CONTRACT_OPTIONS_TIPS_PREFIX","CONTRACT_OPTIONS_TIPS_SUFFIX","CONTRACT_VALIDATE_MESSAGE","WrappedInput","MoreOption","itemsCount","setCount","setEdit","autoFocus","inputStyle","width","handleBlur","WrappedFormItem","WrappedAutoComplete","_EoContractSelect","_EoContractSelect_brand","splitContract","version","isContractApi","test","checkContractRule","isNil","EoContractSelectComponent","suffix","q","setQ","pageSize","setPageSize","contractList","setContractList","query","page","fullContractName","interceptorParams","ignoreLoadingBar","err","console","useContractList","mixedValue","setMixedValue","versionOptions","setVersionOptions","handlerSearch","debounce","_contractList$find","_versionList$","versionList","find","autofillVersion","useBrick","ReactUseMultipleBricks","_EoContractSelect2","_init_name","_init_extra_name","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_suffix","_init_extra_suffix","_init_changeEvent","_init_extra_changeEvent","_get_changeEvent","required","exportparts","curElement","formElement","validator","handleChange","_set_changeEvent","WrappedMenu","WrappedMenuItem","lockBodyScroll","unwrapProvider","_GenerateSnippetsCont","_GenerateSnippetsContextMenu_brand","_handleItemDragStart","_handleItemDragEnd","GenerateSnippetsContextMenu","_init_options","_init_extra_options","_init_position","_init_extra_position","_init_itemDragStartEvent","_init_extra_itemDragStartEvent","_init_itemDragEndEvent","_init_extra_itemDragEndEvent","_get_itemDragStartEvent","_get_itemDragEndEvent","position","open","close","disconnectedCallback","super","GenerateSnippetsContextMenuComponent","onItemDragStart","onItemDragEnd","_ref3","_ref4","dragging","setDragging","containerRef","fixedPosition","setFixedPosition","handleMaskClick","handleItemStart","_e$dataTransfer","dragConf","dataTransfer","setData","JSON","stringify","classList","handleItemDragEnd","remove","rect","getBoundingClientRect","clientWidth","clientHeight","document","documentElement","fixed","left","top","visibility","op","_op$children","_op$children2","children","itemIndex","hoist","draggable","onDragStart","onDragEnd","_GenerateSnippetsContextMenu","_set_itemDragStartEvent","_set_itemDragEndEvent","rehypePrism","visitor","_index","parent","tagName","lang","properties","classListItem","toLowerCase","getLanguage","refractor","highlight","toString","tree","visit","production","Fragment","jsx","jsxs","MarkdownComponent","reactContent","setReactContent","ignore","unified","use","remarkParse","remarkToRehype","rehypeReact","process","vFile","WrappedAvatar","MessageComponent","message","messageChunks","chunks","chunkRegExp","lastIndex","exec","fullMatch","command","start","previousText","trim","raw","lastText","contentRef","contentElement","textingElements","parentElement","querySelectorAll","partial","lastChild","nodeType","Node","ELEMENT_NODE","_lastChild$previousSi","TEXT_NODE","textContent","previousSibling","failed","chunk","MessageChunkComponent","_ChatConversation","_ChatConversation_brand","_handleStoryboardUpdate","ChatConversation","_init_messages","_init_extra_messages","_init_errorBoundary","_init_extra_errorBoundary","_init_storyboardUpdate","_init_extra_storyboardUpdate","storyboard","_get_storyboardUpdate","messages","errorBoundary","ChatConversationComponent","host","onStoryboardUpdate","lastIndexMapRef","setChunks","manualScrolledRef","_lastIndexMapRef$curr","newChunks","newPage","parsed","parse","prev","setStoryboard","blocks","storyboardMap","uuid","sort","b","seq","contentLayout","main","pageTitle","hasContent","block","child","childBrick","iid","meta","rawBrick","hasContainer","verticalScrollParent","overflowY","getComputedStyle","getPropertyValue","ShadowRoot","Element","scrollingElement","scrollTo","scrollHeight","removeEventListener","_message$key","_ChatConversation2","_set_storyboardUpdate","InspectOutlineComponent","variant","borderWidth","_ChatPreview","_ChatPreview_brand","_handleActiveTargetChange","ChatPreview","_init_storyboard","_init_extra_storyboard","_init_theme","_init_extra_theme","_init_uiVersion","_init_extra_uiVersion","_init_app","_init_extra_app","_init_inspecting","_init_extra_inspecting","_init_activeTargetChangeEvent","_init_extra_activeTargetChangeEvent","_get_activeTargetChangeEvent","uiVersion","app","inspecting","payload","iframeWin","contentWindow","postMessage","channel","origin","ChatPreviewComponent","onActiveTargetChange","iframeRef","ready","setReady","initialized","setInitialized","scroll","setScroll","hoverOutlines","setHoverOutlines","activeOutlines","setActiveOutlines","adjustedHoverOutlines","setAdjustedHoverOutlines","adjustedActiveOutlines","setAdjustedActiveOutlines","handleIframeLoad","check","_iframeRef$current","_preview_only_render","_iframeRef$current2","_window$PUBLIC_ROOT","pkg","__secret_internals","getBrickPackagesById","Error","_preview_only_inject","filePath","getBasePath","window","PUBLIC_ROOT","_iframeRef$current3","yaml","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","handleMouseOut","outlines","listener","_event$data","_iframeRef$current4","adjustOutlines","outline","_iframeRef$current$of","_iframeRef$current5","_iframeRef$current$of2","_iframeRef$current6","offsetLeft","offsetTop","rest","src","onLoad","onMouseOut","_extends","_ChatPreview2","_set_activeTargetChangeEvent","isInspecting","IID_ITEM_PREFIX","currentHoverElement","targets","getPossibleBrickTargets","composedPath","getTargetOutline","selectByClick","onMouseEvent","hoverOnTarget","eventTargets","HTMLElement","elementsFromPoint","hoverElement","leading","onPointerMove","onPointerLeave","inspectTargets","dataset","startsWith","substring","getLabel","scrollX","scrollY","pop","injected","sendMessage","customElements","define","createProviderClass","async","_e$data","toggleInspecting","selector","elements","isRoot","walk","root","candidates","getElementsIncludingInShadowDOM","_PreGeneratedPreview","PreGeneratedPreview","_init_generations","_init_extra_generations","_init_category","_init_extra_category","generations","PreGeneratedPreviewComponent","setInjected","inject","fixedPkg","Promise","allSettled","candidatesMap","mocksMap","generation","_generation$displayLe","candidatesByReadWriteType","propertyId","candidatesByDisplayLevel","rwType","displayLevel","mockData","tableChildren","gridColumn","textAlign","table","gridTemplateColumns","propertyIndex","readWriteTypeIndex","isLastProperty","propertyName","candidate","values","_candidate$propertyNa","gridRow","isLastRow","_candidate$category","_candidate$mockData","_candidate$storyboard","candidateCategory","dataSource","mockValue","random","cellData","candidateChildren","container","fixBrickConf","layout","previewStyleText","_brick$properties","prefix","_PreGeneratedPreview2","_PreGeneratedTableVie","PreGeneratedTableView","PreGeneratedTableViewComponent","_PreGeneratedTableView","_PreGeneratedContaine","PreGeneratedContainer","_init_useBrick","_init_extra_useBrick","_init_dataSource","_init_extra_dataSource","PreGeneratedContainerComponent","_PreGeneratedContainer","loadEditors","customEditors","getDataDependency","contextConfs","keyword","depsMap","contextConf","stats","collectMemberUsage","if","resolve","processNodeList","nodeList","nodeItem","_find$deps","dependencyList","parents","cloneDeep","dep","deps","some","depsData","collects","matches","processDataDeps","processNodeItem","convertToStoryboard","config","attr","attrAccessor","brickItem","display","getPlainBrick","countOnly","_config$style","_config$style2","_config$style3","_config$style4","_config$style5","colorSuffix","valueAccessor","getValueAccessor","getTagSize","background","palette","getIconBrick","alignItems","gap","maxItems","_config$true$icon","_config$true","_config$false$icon","_config$false","_config$true2","_config$false2","trueIcon","true","falseIcon","false","trueStyle","getPlainStyle","falseStyle","_config$formatter","formatter","isCostTime","_config$true$text","_config$true3","_config$false$text","_config$false3","_config$true4","_config$false4","trueContent","falseContent","field","configStyle","fontSize","fontWeight","nodeDataList","dependencyMap","dataType","curData","from","usedProperties","_RawDataPreview","_RawDataPreview_brand","_handleComment","_handleApprove","_handleViewAttrPrompt","RawDataPreview","_init_previewUrl","_init_extra_previewUrl","_init_mocks","_init_extra_mocks","_init_busy","_init_extra_busy","_init_commentEvent","_init_extra_commentEvent","_get_commentEvent","_init_approveEvent","_init_extra_approveEvent","_get_approveEvent","_init_viewAttrPromptEvent","_init_extra_viewAttrPromptEvent","_get_viewAttrPromptEvent","previewUrl","mocks","busy","RawDataPreviewComponent","onComment","onApprove","onViewAttrPrompt","propertyToggleStateRef","propertyExpandStateRef","propertyApproveStateRef","_generations$filter$m","approved","onMessage","URL","args","_generation$propertyN","_generation$candidate2","candidatesByVisualWeight","_generation$candidate","_candidate$visualWeig","visualWeight","events","click","generationId","transformOrigin","transform","propertyType","propertyValues","_generation$mockData","mockList","ma","mb","aIsArray","bIsArray","aIsNil","bIsNil","aIsEmpty","bIsEmpty","mock","change","propertyInstanceId","comment","autoSize","keydown","sameOrigin","portal","_RawDataPreview2","_set_commentEvent","_set_approveEvent","_set_viewAttrPromptEvent","keys","regexp","pathToRegexp","defaults","end","strict","sensitive","InstanceApi_createInstance","objectId","attrInstanceId","boolean","promptOfBoolean","promptOfDateTime","enum","promptOfEnum","number","promptOfNumber","others","promptOfOthers","promptOfStructList","struct","promptOfStruct","PropertyEditorComponent","LegacyPropertyEditor","BEFORE_SUBMIT_KEY","ADVANCED_CHANGE_KEY","SchemaField","createSchemaField","components","FormLayout","Input","FormItem","AdvancedFormItem","FormItemWithoutAdvanced","FormCollapse","NumberPicker","Radio","Select","Switch","CategoryTitle","CodeEditor","CodeEditorComponent","IconSelect","IconSelectComponent","ColorPicker","ColorPickerComponent","UseChildrenSelect","UseChildrenSelectComponent","InputWithUrl","InputWithUrlComponent","InputWithUnit","InputWithUnitComponent","TextAlignRadio","TextAlignRadioComponent","CustomOptions","CustomOptionsComponent","BoxSize","BoxSizeComponent","CustomTab","cacheCustomEditor","_PropertyEditor","_formRef","_PropertyEditor_brand","_handleValuesChange","_handleTokenClick","_submitValue","_onSubmitEffect","_handleTriggerAction","_filterData","PropertyEditor","createRef","_init_editorName","_init_extra_editorName","_init_values","_init_extra_values","_init_advancedMode","_init_extra_advancedMode","_init_dataList","_init_extra_dataList","_init_editorPackages","_init_extra_editorPackages","_init_links","_init_extra_links","_init_extraLibs","_init_extra_extraLibs","_init_childSlots","_init_extra_childSlots","_init_successEvent","_init_extra_successEvent","_init_errorEvent","_init_extra_errorEvent","_init_valuesChangeEvent","_init_extra_valuesChangeEvent","_get_valuesChangeEvent","_init_tokenClick","_init_extra_tokenClick","_get_tokenClick","createEffectHook","form","_init_triggerActionEvent","_init_extra_triggerActionEvent","_get_triggerActionEvent","transformData","omit","shouldFilterFields","isEmpty","filterData","editorName","advancedMode","dataList","editorPackages","links","extraLibs","childSlots","validate","_classPrivateFieldGet2","getFormInstance","_get_successEvent","ADVANCED_FORM_KEY","_classPrivateFieldGet3","notify","_get_errorEvent","handleValuesChange","handleTokenClick","handleTriggerAction","onSubmitEffect","Editor","setEditor","currentTheme","useCurrentTheme","cache","createCache","createForm","transformValueRef","advancedChangeRef","onAdvancedChangeEffect","useImperativeHandle","load","_customEditors$get","_customEditors$get2","defaultTransform","_values$ADVANCED_FORM","filterValue","setInitialValues","_transformValueRef$cu","NORMAL_FORM_KEY","take","formValues","getState","formData","setValues","addEffects","onFormValuesChange","ConfigProvider","prefixCls","algorithm","darkAlgorithm","defaultAlgorithm","InputNumber","handleVisible","getPopupContainer","StyleProvider","FormProvider","SchemaFieldComponent","scope","tokenClick","triggerAction","effects","onFieldInit","onFieldValueChange","onFieldInitialValueChange","onFormInitialValuesChange","onFormValidateSuccess","onSubmit","onAdvancedChange","formilySchemaFormatter","_PropertyEditor2","_set_successEvent","_set_errorEvent","_set_valuesChangeEvent","_set_tokenClick","_set_triggerActionEvent","shadowOptions","dependencies","___CSS_LOADER_EXPORT___","module","escapeString","str","flags","stringToRegexp","tokens","_a","_b","_c","_d","encode","_e","delimiter","_f","endsWith","endsWithRe","delimiterRe","_i","tokens_1","token","pattern","modifier","mod","TypeError","endToken","isEndDelimited","indexOf","RegExp","tokensToRegexp","char","j","code","charCodeAt","lexer","prefixes","tryConsume","mustConsume","nextType","consumeText","safePattern","prevText","delimiter_1","isSafe","name_1","pattern_1","groupsRegex","execResult","source","regexpToRegexp","parts","arrayToRegexp"],"sourceRoot":""}