@next-bricks/visual-builder 1.20.1 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/bricks.json +17 -16
  2. package/dist/chunks/1122.a7519460.js +2 -0
  3. package/dist/chunks/1122.a7519460.js.map +1 -0
  4. package/dist/chunks/{114.257c9063.js → 114.63bf1208.js} +2 -2
  5. package/dist/chunks/{114.257c9063.js.map → 114.63bf1208.js.map} +1 -1
  6. package/dist/chunks/{1940.e4b5933d.js → 1940.5f0efc53.js} +2 -2
  7. package/dist/chunks/{1940.e4b5933d.js.map → 1940.5f0efc53.js.map} +1 -1
  8. package/dist/chunks/2252.043616c7.js +3 -0
  9. package/dist/chunks/2252.043616c7.js.map +1 -0
  10. package/dist/chunks/{2277.b9ac921f.js → 2277.06e20216.js} +2 -2
  11. package/dist/chunks/{2277.b9ac921f.js.map → 2277.06e20216.js.map} +1 -1
  12. package/dist/chunks/{2980.42265dd0.js → 2980.1f86c8c1.js} +2 -2
  13. package/dist/chunks/{2980.42265dd0.js.map → 2980.1f86c8c1.js.map} +1 -1
  14. package/dist/chunks/{3171.3bc8d41c.js → 3171.50ff3a26.js} +2 -2
  15. package/dist/chunks/{3171.3bc8d41c.js.map → 3171.50ff3a26.js.map} +1 -1
  16. package/dist/chunks/{3933.28d213df.js → 3933.970e4f69.js} +2 -2
  17. package/dist/chunks/{6314.0296f222.js.map → 3933.970e4f69.js.map} +1 -1
  18. package/dist/chunks/{4658.d9a35126.js → 4658.6f1f1b37.js} +2 -2
  19. package/dist/chunks/{4658.d9a35126.js.map → 4658.6f1f1b37.js.map} +1 -1
  20. package/dist/chunks/{4837.fa1b5c39.js → 4837.c11be2c0.js} +2 -2
  21. package/dist/chunks/{7218.649cad2f.js.map → 4837.c11be2c0.js.map} +1 -1
  22. package/dist/chunks/4947.0103ed62.js +3 -0
  23. package/dist/chunks/4947.0103ed62.js.map +1 -0
  24. package/dist/chunks/5399.d3b753b3.js +2 -0
  25. package/dist/chunks/5399.d3b753b3.js.map +1 -0
  26. package/dist/chunks/{5552.dbcb6e38.js → 5552.8c2ed047.js} +2 -2
  27. package/dist/chunks/{5552.dbcb6e38.js.map → 5552.8c2ed047.js.map} +1 -1
  28. package/dist/chunks/{5659.9000e441.js → 5659.c2b28502.js} +3 -3
  29. package/dist/chunks/{5659.9000e441.js.map → 5659.c2b28502.js.map} +1 -1
  30. package/dist/chunks/6233.18a64bb2.js +3 -0
  31. package/dist/chunks/6233.18a64bb2.js.map +1 -0
  32. package/dist/chunks/{6314.0296f222.js → 6314.86404a43.js} +2 -2
  33. package/dist/chunks/{3933.28d213df.js.map → 6314.86404a43.js.map} +1 -1
  34. package/dist/chunks/{7218.649cad2f.js → 7218.cf7baa8d.js} +2 -2
  35. package/dist/chunks/{4837.fa1b5c39.js.map → 7218.cf7baa8d.js.map} +1 -1
  36. package/dist/chunks/{7434.4ddb3aab.js → 7434.99b24ba5.js} +2 -2
  37. package/dist/chunks/{7434.4ddb3aab.js.map → 7434.99b24ba5.js.map} +1 -1
  38. package/dist/chunks/{7733.0ded6e62.js → 7733.6aaf0acb.js} +2 -2
  39. package/dist/chunks/{7733.0ded6e62.js.map → 7733.6aaf0acb.js.map} +1 -1
  40. package/dist/chunks/{790.52ca62ef.js → 790.d4f3b21c.js} +2 -2
  41. package/dist/chunks/{790.52ca62ef.js.map → 790.d4f3b21c.js.map} +1 -1
  42. package/dist/chunks/{8091.7b67daa4.js → 8091.c5adab63.js} +3 -3
  43. package/dist/chunks/8091.c5adab63.js.map +1 -0
  44. package/dist/chunks/{9027.fe4a7e3b.js → 9027.397f0c1f.js} +2 -2
  45. package/dist/chunks/{9027.fe4a7e3b.js.map → 9027.397f0c1f.js.map} +1 -1
  46. package/dist/chunks/{9515.80c4b472.js → 9515.7f8e4c58.js} +2 -2
  47. package/dist/chunks/{9515.80c4b472.js.map → 9515.7f8e4c58.js.map} +1 -1
  48. package/dist/chunks/{9559.769f4ba7.js → 9559.a7cc0fe6.js} +2 -2
  49. package/dist/chunks/{9559.769f4ba7.js.map → 9559.a7cc0fe6.js.map} +1 -1
  50. package/dist/chunks/{chat-conversation.719bc9ad.js → chat-conversation.064750a3.js} +3 -3
  51. package/dist/chunks/{chat-conversation.719bc9ad.js.map → chat-conversation.064750a3.js.map} +1 -1
  52. package/dist/chunks/{chat-preview.bef8e319.js → chat-preview.8de942c9.js} +3 -3
  53. package/dist/chunks/{chat-preview.bef8e319.js.map → chat-preview.8de942c9.js.map} +1 -1
  54. package/dist/chunks/{check-editor-by-name.2db94c99.js → check-editor-by-name.73728483.js} +2 -2
  55. package/dist/chunks/{check-editor-by-name.2db94c99.js.map → check-editor-by-name.73728483.js.map} +1 -1
  56. package/dist/chunks/contract-select.531ce760.js +3 -0
  57. package/dist/chunks/{contract-select.5d6a06a1.js.map → contract-select.531ce760.js.map} +1 -1
  58. package/dist/chunks/{generate-snippets-context-menu.bccdc97e.js → generate-snippets-context-menu.cec122bb.js} +2 -2
  59. package/dist/chunks/{generate-snippets-context-menu.bccdc97e.js.map → generate-snippets-context-menu.cec122bb.js.map} +1 -1
  60. package/dist/chunks/get-data-deps.03f2aae3.js +2 -0
  61. package/dist/chunks/get-data-deps.03f2aae3.js.map +1 -0
  62. package/dist/chunks/{inject-chat-preview-agent.22e7b4a4.js → inject-chat-preview-agent.75e178b0.js} +2 -2
  63. package/dist/chunks/{inject-chat-preview-agent.22e7b4a4.js.map → inject-chat-preview-agent.75e178b0.js.map} +1 -1
  64. package/dist/chunks/{inject-preview-agent.28aa1a07.js → inject-preview-agent.83ee9dfe.js} +2 -2
  65. package/dist/chunks/{inject-preview-agent.28aa1a07.js.map → inject-preview-agent.83ee9dfe.js.map} +1 -1
  66. package/dist/chunks/main.1c9f57b6.js +2 -0
  67. package/dist/chunks/main.1c9f57b6.js.map +1 -0
  68. package/dist/chunks/{page-arch-node.496da924.js → page-arch-node.50fe50b2.js} +3 -3
  69. package/dist/chunks/{page-arch-node.496da924.js.map → page-arch-node.50fe50b2.js.map} +1 -1
  70. package/dist/chunks/pre-generated-container.0e9e33dc.js +2 -0
  71. package/dist/chunks/{pre-generated-container.dde9a3e7.js.map → pre-generated-container.0e9e33dc.js.map} +1 -1
  72. package/dist/chunks/{pre-generated-preview.39862a2d.js → pre-generated-preview.da3f0cc6.js} +3 -3
  73. package/dist/chunks/{pre-generated-preview.39862a2d.js.map → pre-generated-preview.da3f0cc6.js.map} +1 -1
  74. package/dist/chunks/{pre-generated-table-view.7be02729.js → pre-generated-table-view.a76e65eb.js} +2 -2
  75. package/dist/chunks/{pre-generated-table-view.7be02729.js.map → pre-generated-table-view.a76e65eb.js.map} +1 -1
  76. package/dist/chunks/property-editor.81603794.js +2 -0
  77. package/dist/chunks/property-editor.81603794.js.map +1 -0
  78. package/dist/chunks/{workbench-action-list.9cda9ca0.js → workbench-action-list.06eae580.js} +2 -2
  79. package/dist/chunks/{workbench-action-list.9cda9ca0.js.map → workbench-action-list.06eae580.js.map} +1 -1
  80. package/dist/chunks/{workbench-action.1a44a90f.js → workbench-action.5cd875ea.js} +3 -3
  81. package/dist/chunks/{workbench-action.1a44a90f.js.map → workbench-action.5cd875ea.js.map} +1 -1
  82. package/dist/chunks/{workbench-history-action.a2e3d3de.js → workbench-history-action.81a1f9d8.js} +3 -3
  83. package/dist/chunks/{workbench-history-action.a2e3d3de.js.map → workbench-history-action.81a1f9d8.js.map} +1 -1
  84. package/dist/chunks/{workbench-pane.5636e95b.js → workbench-pane.9634f35a.js} +3 -3
  85. package/dist/chunks/{workbench-pane.5636e95b.js.map → workbench-pane.9634f35a.js.map} +1 -1
  86. package/dist/chunks/{workbench-sidebar.e66c6daa.js → workbench-sidebar.d9bc1d1a.js} +2 -2
  87. package/dist/chunks/{workbench-sidebar.e66c6daa.js.map → workbench-sidebar.d9bc1d1a.js.map} +1 -1
  88. package/dist/chunks/{workbench-tree.a03b7c9d.js → workbench-tree.c3469448.js} +3 -3
  89. package/dist/chunks/{workbench-tree.a03b7c9d.js.map → workbench-tree.c3469448.js.map} +1 -1
  90. package/dist/examples.json +1 -1
  91. package/dist/index.647b0e56.js +2 -0
  92. package/dist/index.647b0e56.js.map +1 -0
  93. package/dist/manifest.json +105 -97
  94. package/dist/types.json +117 -51
  95. package/dist-types/bootstrap.d.ts +1 -0
  96. package/dist-types/data-providers/get-data-dependency.d.ts +3 -0
  97. package/dist-types/data-providers/get-data-dependency.spec.d.ts +1 -0
  98. package/dist-types/interfaces.d.ts +0 -3
  99. package/dist-types/property-editor/index.d.ts +37 -30
  100. package/dist-types/shared/workbench/WorkbenchActionsContext.d.ts +0 -1
  101. package/dist-types/shared/workbench/WorkbenchTreeContext.d.ts +0 -1
  102. package/dist-types/shared/workbench/WorkbenchTreeDndContext.d.ts +0 -1
  103. package/dist-types/utils/setDragImage.d.ts +0 -1
  104. package/docs/property-editor.md +39 -8
  105. package/package.json +4 -4
  106. package/dist/chunks/1122.c725b007.js +0 -2
  107. package/dist/chunks/1122.c725b007.js.map +0 -1
  108. package/dist/chunks/2252.7d04d301.js +0 -3
  109. package/dist/chunks/2252.7d04d301.js.map +0 -1
  110. package/dist/chunks/4947.9b6a9cd0.js +0 -3
  111. package/dist/chunks/4947.9b6a9cd0.js.map +0 -1
  112. package/dist/chunks/5399.f7e42570.js +0 -2
  113. package/dist/chunks/5399.f7e42570.js.map +0 -1
  114. package/dist/chunks/8091.7b67daa4.js.map +0 -1
  115. package/dist/chunks/8275.dfcd99a8.js +0 -3
  116. package/dist/chunks/8275.dfcd99a8.js.map +0 -1
  117. package/dist/chunks/contract-select.5d6a06a1.js +0 -3
  118. package/dist/chunks/main.fb41bc3d.js +0 -2
  119. package/dist/chunks/main.fb41bc3d.js.map +0 -1
  120. package/dist/chunks/pre-generated-container.dde9a3e7.js +0 -2
  121. package/dist/chunks/property-editor.e0c3a0f1.js +0 -2
  122. package/dist/chunks/property-editor.e0c3a0f1.js.map +0 -1
  123. package/dist/index.76fe5dac.js +0 -2
  124. package/dist/index.76fe5dac.js.map +0 -1
  125. /package/dist/chunks/{2252.7d04d301.js.LICENSE.txt → 2252.043616c7.js.LICENSE.txt} +0 -0
  126. /package/dist/chunks/{4947.9b6a9cd0.js.LICENSE.txt → 4947.0103ed62.js.LICENSE.txt} +0 -0
  127. /package/dist/chunks/{5659.9000e441.js.LICENSE.txt → 5659.c2b28502.js.LICENSE.txt} +0 -0
  128. /package/dist/chunks/{8275.dfcd99a8.js.LICENSE.txt → 6233.18a64bb2.js.LICENSE.txt} +0 -0
  129. /package/dist/chunks/{8091.7b67daa4.js.LICENSE.txt → 8091.c5adab63.js.LICENSE.txt} +0 -0
  130. /package/dist/chunks/{chat-conversation.719bc9ad.js.LICENSE.txt → chat-conversation.064750a3.js.LICENSE.txt} +0 -0
  131. /package/dist/chunks/{chat-preview.bef8e319.js.LICENSE.txt → chat-preview.8de942c9.js.LICENSE.txt} +0 -0
  132. /package/dist/chunks/{contract-select.5d6a06a1.js.LICENSE.txt → contract-select.531ce760.js.LICENSE.txt} +0 -0
  133. /package/dist/chunks/{page-arch-node.496da924.js.LICENSE.txt → page-arch-node.50fe50b2.js.LICENSE.txt} +0 -0
  134. /package/dist/chunks/{pre-generated-preview.39862a2d.js.LICENSE.txt → pre-generated-preview.da3f0cc6.js.LICENSE.txt} +0 -0
  135. /package/dist/chunks/{workbench-action.1a44a90f.js.LICENSE.txt → workbench-action.5cd875ea.js.LICENSE.txt} +0 -0
  136. /package/dist/chunks/{workbench-history-action.a2e3d3de.js.LICENSE.txt → workbench-history-action.81a1f9d8.js.LICENSE.txt} +0 -0
  137. /package/dist/chunks/{workbench-pane.5636e95b.js.LICENSE.txt → workbench-pane.9634f35a.js.LICENSE.txt} +0 -0
  138. /package/dist/chunks/{workbench-tree.a03b7c9d.js.LICENSE.txt → workbench-tree.c3469448.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/8275.dfcd99a8.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/index.tsx","webpack:///../../src/menu.ts","webpack:///./src/workbench-action-list/index.tsx","webpack:///./src/workbench-tree/index.tsx","webpack:///./src/data-providers/inject-preview-agent.ts","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/property-editor/components/AdvancedFormItem/index.tsx","webpack:///./src/property-editor/components/common/CodeEditorComponent.tsx","webpack:///./src/property-editor/components/common/IconSelectComponent.tsx","webpack:///./src/property-editor/utils/formilySchemaFormatter.ts","webpack:///./src/property-editor/style.css?280e","webpack:///./src/property-editor/index.tsx","webpack:///./src/property-editor/components/CategoryTitle/index.tsx","webpack:///./src/data-providers/check-editor-by-name.ts","webpack:///./src/property-editor/components/AdvancedFormItem/AdvancedFormItem.shadow.css","webpack:///./src/property-editor/components/CategoryTitle/CategoryTitle.shadow.css","webpack:///./src/property-editor/style.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/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"],"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","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 { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./workbench-action.shadow.css\";\nimport classNames from \"classnames\";\n\nconst { defineElement, property } = createDecorators();\n\nconst WrapLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface WorkbenchActionProps {\n icon?: GeneralIconProps;\n to?: string;\n target?: string;\n active?: boolean;\n href?: 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 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 />\n );\n }\n}\n\nfunction WorkbenchActionComponent({\n icon,\n to,\n active,\n href,\n target,\n}: WorkbenchActionProps) {\n return (\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 );\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\";\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 parseInclude: Location | undefined;\n const hasSearch = include.includes(\"?\");\n\n if (hasSearch) {\n parseInclude = parsePath(include);\n }\n match = !!matchPath(pathname, {\n path: hasSearch ? parseInclude!.pathname : include,\n exact: true,\n });\n\n if (match && parseInclude?.search) {\n match = getMatchOfSearch(search, parseInclude.search);\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 match = !matchPath(pathname, {\n path: include,\n exact: true,\n });\n if (!match) {\n break;\n }\n }\n }\n\n return match;\n}\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 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 <div className=\"workBenchActionList\">\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 active={activeIndex === index}\n onClick={() => handleLinkClick(item)}\n />\n );\n }\n })\n .filter(Boolean)}\n </div>\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","// Merge bricks\n// istanbul ignore file\nimport { createProviderClass } from \"@next-core/utils/general\";\nimport connect from \"./preview/connect.js\";\nimport type { PreviewStartOptions } from \"./preview/interfaces.js\";\n// Todo: remove unnecessary provider below\nimport \"./collect-used-contracts.js\";\n\nexport function injectPreviewAgent(\n previewFromOrigin: string,\n options: PreviewStartOptions\n): Promise<unknown> {\n return connect(previewFromOrigin, options);\n}\n\ncustomElements.define(\n \"visual-builder.inject-preview-agent\",\n createProviderClass(injectPreviewAgent)\n);\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 beforeVisibleChange: \"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 beforeVisibleChange={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\";\nimport { getElementsIncludingInShadowDOM } from \"../preview/connect.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\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 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: isLastProperty ? \"last-row-cell\" : undefined,\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: isLastRow ? \"last-row-cell\" : undefined,\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 =\n 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 const classNames: string[] = [];\n\n if (i === 2) {\n classNames.push(\"last-col-cell\");\n }\n if (isLastRow) {\n classNames.push(\"last-row-cell\");\n }\n\n tableChildren.push({\n brick: \"div\",\n ...(classNames\n ? {\n properties: {\n className: classNames.join(\" \"),\n },\n }\n : null),\n children: [\n {\n brick: \"visual-builder.pre-generated-container\",\n properties: {\n useBrick: candidate?.storyboard ?? [],\n dataSource,\n },\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","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 React, { useCallback, useMemo, useState } from \"react\";\nimport { FormItem, IFormItemProps } from \"@formily/antd-v5\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { GeneralIcon, GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport { useField, useForm, useFormEffects } from \"@formily/react\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { EoTooltip, ToolTipProps } from \"@next-bricks/basic/src/tooltip\";\nimport classNames from \"classnames\";\nimport { isObject } from \"lodash\";\nimport { onFieldInitialValueChange } from \"@formily/core\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport yaml from \"js-yaml\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedToolTip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\ntype Mode = \"normal\" | \"advanced\";\n\ninterface AdvancedFormItemProps extends IFormItemProps {\n children: React.ReactElement;\n formEffect?: () => void;\n}\n\nexport function AdvancedFormItem(props: AdvancedFormItemProps) {\n const form = useForm();\n const field = useField();\n const [mode, setMode] = useState<Mode>(\n typeof (field as any).value === \"string\" &&\n isEvaluable((field as any).value)\n ? \"advanced\"\n : \"normal\"\n );\n const isAdvanced = useMemo(() => mode === \"advanced\", [mode]);\n const fieldOriginComponent = useMemo<any>(() => field.component, [field]);\n\n const handleModeCheck = useCallback(() => {\n const updateMode = isAdvanced ? \"normal\" : \"advanced\";\n const isAdvancedMode = updateMode === \"advanced\";\n setMode(updateMode);\n field.setComponent(\n isAdvancedMode ? \"CodeEditor\" : fieldOriginComponent[0],\n {\n ...(isAdvancedMode ? fieldOriginComponent[1] : {}),\n }\n );\n\n const value = form.getValuesIn(field.props.name);\n if (isAdvancedMode && isObject(value)) {\n form.setInitialValues({\n [field.props.name as string]: yaml.safeDump(value),\n });\n } else if (!isAdvancedMode && value && typeof value === \"string\") {\n let newValue: any;\n try {\n newValue = yaml.load(value);\n } catch {\n newValue = null;\n }\n form.setInitialValues(\n {\n [field.props.name as string]: newValue,\n },\n \"overwrite\"\n );\n }\n }, [form, field, isAdvanced, fieldOriginComponent]);\n\n useFormEffects(() => {\n onFieldInitialValueChange(field.props.name, ({ value }) => {\n if (typeof value === \"string\" && isEvaluable(value)) {\n setMode(\"advanced\");\n\n field.setComponent(\"CodeEditor\");\n }\n });\n });\n\n return (\n <div className=\"advanced-form-item\">\n <FormItem\n {...{\n ...props,\n layout: isAdvanced ? null : props.layout || \"vertical\",\n }}\n >\n {props.children}\n </FormItem>\n <div className=\"advanced-mode-check-wrapper\">\n <WrappedToolTip\n content={mode === \"normal\" ? \"使用表达式\" : \"关闭表达式\"}\n >\n <WrappedIcon\n className={classNames({\n isActive: isAdvanced,\n })}\n lib=\"fa\"\n icon=\"code\"\n onClick={handleModeCheck}\n />\n </WrappedToolTip>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { CodeEditor, CodeEditorProps } from \"@next-bricks/vs/code-editor\";\n\ninterface CodeEditorComponentProps extends CodeEditorProps {\n onChange?: (value?: any) => void;\n tokenClick?: (value?: any) => void;\n}\n\ninterface CodeEditorEvents {\n \"code.change\"?: (value?: any) => void;\n \"token.click\"?: (value?: any) => void;\n}\n\ninterface CodeEditorEventsMapping {\n onChange: \"code.change\";\n tokenClick: \"token.click\";\n}\n\nconst WrappedCodeEditor = wrapBrick<\n CodeEditor,\n CodeEditorProps,\n CodeEditorEvents,\n CodeEditorEventsMapping\n>(\"vs.code-editor\", {\n onChange: \"code.change\",\n tokenClick: \"token.click\",\n});\n\nexport function CodeEditorComponent(\n props: CodeEditorComponentProps\n): React.ReactElement {\n return (\n <WrappedCodeEditor\n minLines={5}\n automaticLayout=\"fit-content\"\n language={\"brick_next_yaml\"}\n theme={\"vs-dark\"}\n links={[\"CTX\"]}\n {...props}\n />\n );\n}\n","import React from \"react\";\nimport { IconSelect, IconSelectProps } from \"@next-bricks/form/icon-select\";\nimport { wrapBrick } from \"@next-core/react-element\";\ninterface IconSelectComponentProps extends IconSelectProps {\n onChange?: (value?: any) => void;\n}\ninterface IconSelectEvents {\n change?: (value?: any) => void;\n}\nexport interface IconSelectEventsMapping {\n onChange: \"change\";\n}\nconst WrappedIconSelect = wrapBrick<\n IconSelect,\n IconSelectProps,\n IconSelectEvents,\n IconSelectEventsMapping\n>(\"eo-icon-select\", {\n onChange: \"change\",\n});\nexport function IconSelectComponent(props: IconSelectComponentProps) {\n return <WrappedIconSelect {...props} />;\n}\n","import type { ISchema } from \"@formily/react\";\nimport { omit } from \"lodash\";\n\nexport const ADVANCED_FORM_KEY = \"#advanced_form\";\n\ntype ComponentType =\n | string\n | {\n name: string;\n props?: Record<string, any>;\n };\n\nexport interface DataNode {\n type: \"void\" | \"string\" | \"object\" | \"boolean\" | \"array\";\n name: string;\n title?: string;\n props?: Record<string, any>;\n decorator?: ComponentType;\n component?: ComponentType;\n children?: DataNode[];\n [k: string]: any;\n}\n\nfunction transformComponent(\n data: ComponentType,\n key: \"decorator\" | \"component\"\n): Record<string, any> {\n if (!data) return {};\n if (typeof data === \"string\") {\n return {\n [`x-${key}`]: data,\n };\n }\n return {\n [`x-${key}`]: data.name,\n [`x-${key}-props`]: data.props,\n };\n}\n\nexport function formilySchemaFormatter(\n data: DataNode,\n advancedMode = false\n): ISchema {\n if (advancedMode) {\n return {\n type: \"object\",\n properties: {\n layout: {\n type: \"void\",\n \"x-component\": \"FormLayout\",\n \"x-component-props\": {\n layout: \"vertical\",\n },\n properties: {\n [ADVANCED_FORM_KEY]: {\n title: \"属性\",\n type: \"string\",\n \"x-decorator\": \"FormItemWithoutAdvanced\",\n \"x-component\": \"CodeEditor\",\n },\n },\n },\n },\n };\n }\n\n const walk = (data: DataNode): Record<string, any> => {\n let children: Record<string, any>[] | undefined;\n let result: Record<string, any> = {};\n if (data.children) {\n children = data.children.map(walk);\n }\n const { name, type, component, decorator } = data;\n\n const defaultDecorator: Record<string, any> =\n type === \"string\"\n ? {\n name: \"FormItem\",\n }\n : type === \"boolean\"\n ? {\n name: \"FormItem\",\n props: {\n layout: \"horizontal\",\n },\n }\n : {};\n\n const defaultComponent: Record<string, any> =\n type === \"string\"\n ? {\n name: \"Input\",\n }\n : type === \"boolean\"\n ? {\n name: \"Switch\",\n props: {\n size: \"small\",\n },\n }\n : {};\n\n const childNode: Record<string, any> = {\n type: type ?? \"void\",\n ...omit(data, [\"children\", \"component\", \"decorator\"]),\n ...transformComponent(\n {\n ...defaultDecorator,\n ...(typeof decorator === \"string\" ? { name: decorator } : decorator),\n },\n \"decorator\"\n ),\n ...transformComponent(\n {\n ...defaultComponent,\n ...(typeof component === \"string\" ? { name: component } : component),\n },\n \"component\"\n ),\n };\n\n if (name) {\n result[name] = childNode;\n } else {\n result = childNode;\n }\n\n if (children) {\n childNode.properties = {};\n for (const item of children) {\n if (item.name) {\n childNode.properties[item.name] = item;\n } else {\n childNode.properties = {\n ...childNode.properties,\n ...item,\n };\n }\n }\n }\n return result;\n };\n\n return {\n type: \"object\",\n properties: walk(data),\n };\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]!./style.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]!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, {\n useEffect,\n useImperativeHandle,\n useMemo,\n createRef,\n useState,\n useCallback,\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 onFormValidateSuccess,\n onFormValuesChange,\n} from \"@formily/core\";\nimport { createSchemaField, FormProvider, ISchema } 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 { CategoryTitle } from \"./components/CategoryTitle\";\nimport { AdvancedFormItem } from \"./components/AdvancedFormItem\";\nimport { CodeEditorComponent } from \"./components/common/CodeEditorComponent\";\nimport { IconSelectComponent } from \"./components/common/IconSelectComponent\";\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 yaml from \"js-yaml\";\nimport _ from \"lodash\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\nconst PropertyEditorComponent = React.forwardRef(LegacyPropertyEditor);\n\nconst 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 },\n});\n\nexport interface EditorComponentProps {\n advancedMode?: boolean;\n SchemaFieldComponent: typeof SchemaField;\n formilySchemaFormatter: (data: DataNode, advancedMode: boolean) => ISchema;\n form: Form<any>;\n effects: {\n onFieldInit: typeof onFieldInit;\n onFieldValueChange: typeof onFieldValueChange;\n onFieldInitialValueChange: typeof onFieldInitialValueChange;\n onFormValidateSuccess: typeof onFormValidateSuccess;\n // support any effects\n };\n scope: {\n advancedMode: boolean;\n dataList: DataItem[];\n };\n}\n\nexport interface DefinitionItem {\n name: string;\n type: string;\n enum: string;\n fileds: DefinitionItem[];\n}\n\nexport interface DataItem {\n name: string;\n value: string;\n definition: DefinitionItem[];\n [k: string]: any;\n}\n\nexport { DataNode };\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 /**\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 = this.#formRef.current?.getFormInstance();\n\n form\n .validate()\n .then(() => {\n const realValue = this.advancedMode\n ? yaml.load(form.values[ADVANCED_FORM_KEY])\n : _.omit(form.values, [ADVANCED_FORM_KEY]);\n this.#successEvent.emit({ ...realValue });\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 render() {\n return (\n <PropertyEditorComponent\n ref={this.#formRef}\n editorName={this.editorName}\n values={this.values}\n advancedMode={this.advancedMode}\n dataList={this.dataList}\n handleValuesChange={this.#handleValuesChange}\n />\n );\n }\n}\n\nexport interface PropertyEditorProps {\n values: any;\n editorName: string;\n advancedMode?: boolean;\n dataList: DataItem[];\n handleValuesChange: (value: any) => void;\n}\n\nexport function LegacyPropertyEditor(\n {\n advancedMode,\n values,\n editorName,\n dataList,\n handleValuesChange,\n }: PropertyEditorProps,\n ref: any\n) {\n const currentTheme = useCurrentTheme();\n const cache = useMemo(() => createCache(), []);\n const form = useMemo(() => createForm(), []);\n const [Editor, setEditor] = useState<\n (props: EditorComponentProps) => React.ReactElement\n >(() => customEditors.get(editorName) as any);\n\n useImperativeHandle(ref, () => ({\n getFormInstance: () => form,\n }));\n\n const load = useCallback(async () => {\n // TODO: cache editors\n await __secret_internals.loadEditors([editorName]);\n setEditor(() => customEditors.get(editorName) as any);\n }, [editorName]);\n\n useEffect(() => {\n load();\n }, [load]);\n\n useEffect(() => {\n if (Editor) form.setInitialValues(values);\n }, [Editor]);\n\n useEffect(() => {\n const { values } = form.getState();\n if (advancedMode) {\n form.setInitialValues({\n [ADVANCED_FORM_KEY]: _.isEmpty(values)\n ? \"\"\n : yaml.safeDump(_.omit(values, [ADVANCED_FORM_KEY])),\n });\n } else {\n const realValue = values[ADVANCED_FORM_KEY];\n if (realValue) {\n form.setInitialValues(yaml.safeLoad(realValue));\n } else {\n form.setInitialValues(values);\n }\n }\n }, [advancedMode, form]);\n\n useEffect(() => {\n form.addEffects(\"onValueChange\", () => {\n onFormValuesChange((form) => {\n handleValuesChange(form.values);\n });\n });\n }, []);\n\n if (!Editor) return <div>无数据</div>;\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 }}\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 }}\n effects={{\n onFieldInit,\n onFieldValueChange,\n onFieldInitialValueChange,\n onFormValidateSuccess,\n }}\n formilySchemaFormatter={formilySchemaFormatter}\n />\n </FormProvider>\n </StyleProvider>\n </ConfigProvider>\n </div>\n );\n}\n","import React from \"react\";\n\ninterface categoryTitleProps {\n text: string;\n}\nexport function CategoryTitle(props: categoryTitleProps): React.ReactElement {\n return <div className=\"custom-category-title\">{props.text}</div>;\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","// 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, `.advanced-form-item{position:relative}.advanced-form-item .advanced-mode-check-wrapper{position:absolute;top:0;right:0}.advanced-form-item .advanced-mode-check-wrapper eo-icon[icon=\"code\"]{cursor:pointer;padding:2px 4px;background:var(--palette-gray-7);border-radius:6px}.advanced-form-item .advanced-mode-check-wrapper eo-icon.isActive[icon=\"code\"]{background:var(--color-brand);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\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.custom-category-title{font-size:14px;font-weight:600;line-height:14px;margin-bottom:12px;border-left:2px solid;padding-left:6px;border-color:#8d8d8d;margin-top:12px}.custom-category-title:first-child{margin-top:0}`, \"\"]);\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[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./components/AdvancedFormItem/AdvancedFormItem.shadow.css\";\nimport ___CSS_LOADER_AT_RULE_IMPORT_1___ 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]!./components/CategoryTitle/CategoryTitle.shadow.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___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\"]);\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, `#preview-root{padding:0;height:100vh;overflow-y:auto;border:1px solid var(--theme-gray-border-color);border-radius:4px}.head-cell{position:sticky;top:0;background:var(--body-background);z-index:1;font-weight:bold}.last-col-cell{border-right-color:transparent}.last-row-cell{border-bottom-color:transparent}`, \"\"]);\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, `.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, `.workBenchActionList{display:flex;flex-direction:column;width:min-content;height:100%;background-color:#4297ff}:host-context(html[data-theme=\"dark-v2\"]) .workBenchActionList,\n:host-context([data-override-theme=\"dark-v2\"]) .workBenchActionList{background-color:#323237}`, \"\"]);\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:rgba(255,255,255,0.4);position:relative;transition:none}.action.active::part(link)::before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:white}.action.active::part(link),\n.action::part(link):hover{color:white}`, \"\"]);\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"],"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","flex","String","activeFlex","target","addEventListener","_defineProperty","panesSlots","WorkbenchSidebarComponent","refCallback","_WorkbenchSidebar2","WrapLink","_WorkbenchAction","WorkbenchAction","_init_icon","_init_extra_icon","_init_to","_init_extra_to","_init_href","_init_extra_href","_init_target","_init_extra_target","to","href","WorkbenchActionComponent","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","_parseInclude","parseInclude","hasSearch","includes","activeExcludes","matchMenuItem","keyPath","split","i","slice","join","currentSearch","toSearch","URLSearchParams","value","entries","get","WrapperWorkbenchAction","_WorkbenchActionList","WorkbenchActionList","_init_appId","_init_extra_appId","_init_menu","_init_extra_menu","appId","menu","WorkbenchActionListComponent","currentAppId","_WorkbenchActionList2","historyMap","Map","_menu$menuItems","history","getHistory","activeIndex","setActiveIndex","location","setLocation","unlisten","listen","clear","map","index","isSimpleMenuItem","set","handleLinkClick","filter","defaultGetCollapsedId","node","_WorkbenchTreeElement","_F","_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","customElements","define","createProviderClass","previewFromOrigin","options","connect","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","_history$abstract","_history$abstract2","_history$abstract3","_history$abstract4","_history$abstract5","_history$abstract6","_history$abstract7","_history$abstract8","_history$abstract9","_history$abstract10","_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","beforeVisibleChange","_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","placement","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","WrappedTooltip","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","_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","content","_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","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","tooltip","hoist","draggable","onDragStart","onDragEnd","text","_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","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","_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","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$current5","_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","async","_e$data","toggleInspecting","selector","elements","getElementsIncludingInShadowDOM","_PreGeneratedPreview","PreGeneratedPreview","_init_generations","_init_extra_generations","_init_category","_init_extra_category","generations","PreGeneratedPreviewComponent","setInjected","inject","fixedPkg","Promise","allSettled","candidatesMap","mocksMap","generation","candidatesByReadWriteType","propertyId","candidatesByDisplayLevel","rwType","displayLevel","mockData","tableChildren","gridColumn","textAlign","table","gridTemplateColumns","propertyIndex","readWriteTypeIndex","isLastProperty","candidates","propertyName","candidate","values","gridRow","isLastRow","_candidate$mockData","dataSource","mockValue","random","cellData","previewStyleText","_PreGeneratedPreview2","_PreGeneratedTableVie","PreGeneratedTableView","PreGeneratedTableViewComponent","_PreGeneratedTableView","_PreGeneratedContaine","PreGeneratedContainer","_init_useBrick","_init_extra_useBrick","_init_dataSource","_init_extra_dataSource","PreGeneratedContainerComponent","_PreGeneratedContainer","WrappedToolTip","WrappedCodeEditor","tokenClick","WrappedIconSelect","ADVANCED_FORM_KEY","transformComponent","formilySchemaFormatter","layout","walk","component","decorator","defaultDecorator","defaultComponent","childNode","omit","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","PropertyEditorComponent","LegacyPropertyEditor","SchemaField","createSchemaField","components","FormLayout","Input","FormItem","form","useForm","field","useField","mode","setMode","isEvaluable","isAdvanced","fieldOriginComponent","handleModeCheck","updateMode","isAdvancedMode","setComponent","getValuesIn","isObject","setInitialValues","newValue","useFormEffects","onFieldInitialValueChange","isActive","FormItemWithoutAdvanced","FormCollapse","NumberPicker","Radio","Select","Switch","CategoryTitle","CodeEditor","minLines","automaticLayout","language","links","IconSelect","_PropertyEditor","_formRef","_PropertyEditor_brand","_handleValuesChange","PropertyEditor","createRef","_init_editorName","_init_extra_editorName","_init_values","_init_extra_values","_init_advancedMode","_init_extra_advancedMode","_init_dataList","_init_extra_dataList","_init_successEvent","_init_extra_successEvent","_init_errorEvent","_init_extra_errorEvent","_init_valuesChangeEvent","_init_extra_valuesChangeEvent","_get_valuesChangeEvent","editorName","advancedMode","dataList","validate","_classPrivateFieldGet2","getFormInstance","realValue","_get_successEvent","_get_errorEvent","handleValuesChange","currentTheme","useCurrentTheme","cache","createCache","createForm","Editor","setEditor","customEditors","useImperativeHandle","load","loadEditors","getState","addEffects","onFormValuesChange","ConfigProvider","prefixCls","algorithm","darkAlgorithm","defaultAlgorithm","getPopupContainer","StyleProvider","FormProvider","SchemaFieldComponent","scope","effects","onFieldInit","onFieldValueChange","onFormValidateSuccess","_PropertyEditor2","_set_successEvent","_set_errorEvent","_set_valuesChangeEvent","shadowOptions","dependencies","___CSS_LOADER_EXPORT___","module"],"sourceRoot":""}