@next-bricks/visual-builder 1.15.0 → 1.16.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.
- package/dist/bricks.json +14 -7
- package/dist/chunks/1822.b9d18634.js +3 -0
- package/dist/chunks/1822.b9d18634.js.map +1 -0
- package/dist/chunks/8097.5c42f68b.js +2 -0
- package/dist/chunks/{8097.2a833d82.js.map → 8097.5c42f68b.js.map} +1 -1
- package/dist/chunks/generate-snippets-context-menu.8c78ae9d.js +2 -0
- package/dist/chunks/generate-snippets-context-menu.8c78ae9d.js.map +1 -0
- package/dist/chunks/main.8e745868.js +2 -0
- package/dist/chunks/main.8e745868.js.map +1 -0
- package/dist/index.7e581c1e.js +2 -0
- package/dist/index.7e581c1e.js.map +1 -0
- package/dist/manifest.json +88 -37
- package/dist/types.json +296 -13
- package/dist-types/bootstrap.d.ts +1 -0
- package/dist-types/generate-snippets-context-menu/i18n.d.ts +13 -0
- package/dist-types/generate-snippets-context-menu/index.d.ts +48 -0
- package/dist-types/generate-snippets-context-menu/index.spec.d.ts +1 -0
- package/package.json +2 -2
- package/dist/chunks/478.7e1cd06e.js +0 -2
- package/dist/chunks/478.7e1cd06e.js.map +0 -1
- package/dist/chunks/8097.2a833d82.js +0 -2
- package/dist/chunks/8708.5248d51b.js +0 -3
- package/dist/chunks/8708.5248d51b.js.map +0 -1
- package/dist/chunks/main.9f17f184.js +0 -2
- package/dist/chunks/main.9f17f184.js.map +0 -1
- package/dist/index.36a4f2ac.js +0 -2
- package/dist/index.36a4f2ac.js.map +0 -1
- /package/dist/chunks/{8708.5248d51b.js.LICENSE.txt → 1822.b9d18634.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/1822.b9d18634.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/i18n.ts","webpack:///./src/generate-snippets-context-menu/index.tsx","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/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","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import React, {\n useEffect,\n useRef,\n useState,\n useCallback,\n useMemo,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport styleText from \"./workbench-pane.shadow.css\";\nimport sharedStyle from \"../shared/scrollbar.shadow.css\";\nimport { debounceByAnimationFrame } from \"@next-shared/general/debounceByAnimationFrame\";\nimport classNames from \"classnames\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface WorkbenchPaneProps {\n titleLabel?: string;\n active?: boolean;\n badge?: number;\n onActiveChange?(active: boolean): void;\n onFirstActivated?(): void;\n}\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-pane\", {\n styleTexts: [styleText, sharedStyle],\n})\nclass WorkbenchPane extends ReactNextElement {\n @property() accessor titleLabel: string | undefined;\n\n @property({ type: Boolean }) accessor active: boolean | undefined;\n\n @property({ type: Number }) accessor badge: number | undefined;\n\n @event({ type: \"active.change\" })\n accessor #activeChangeEvent: EventEmitter<boolean>;\n #handleActiveChange = (active: boolean): void => {\n if (active !== this.active) {\n this.active = active;\n this.#activeChangeEvent.emit(active);\n }\n };\n\n @event({ type: \"active.firstActivated\" })\n accessor #activeFirstActivatedEvent: EventEmitter<void>;\n\n #handleActiveFirstActivated = (): void => {\n this.#activeFirstActivatedEvent.emit();\n };\n\n render() {\n return (\n <WorkbenchPaneComponent\n titleLabel={this.titleLabel}\n active={this.active}\n badge={this.badge}\n onActiveChange={this.#handleActiveChange}\n onFirstActivated={this.#handleActiveFirstActivated}\n />\n );\n }\n}\n\nfunction WorkbenchPaneComponent({\n titleLabel,\n active,\n badge,\n onActiveChange,\n onFirstActivated,\n}: WorkbenchPaneProps) {\n const [internalActive, setInternalActive] = useState<boolean>(active);\n const [activatedOnce, setActivatedOnce] = useState(false);\n\n useEffect(() => {\n setInternalActive(active);\n }, [active]);\n\n useEffect(() => {\n onActiveChange?.(internalActive);\n }, [internalActive, onActiveChange]);\n\n const handleClick = useCallback(() => {\n setInternalActive((previousActive) => !previousActive);\n if (!activatedOnce && !internalActive) {\n setActivatedOnce(true);\n onFirstActivated?.();\n }\n }, [activatedOnce, internalActive, onFirstActivated]);\n\n const scrollBodyRef = useRef<HTMLDivElement>();\n\n const [scrolled, setScrolled] = useState(false);\n\n const handleScroll = useMemo(\n () =>\n debounceByAnimationFrame((): void => {\n setScrolled(scrollBodyRef.current.scrollTop > 0);\n }),\n []\n );\n\n return (\n <div\n className={classNames(\"pane\", {\n scrolled,\n })}\n >\n <div className=\"pane-header\" tabIndex={0} onClick={handleClick}>\n <div className=\"pane-title\">\n <span className=\"title-icon\">\n {internalActive ? (\n <WrappedIcon lib=\"antd\" theme=\"outlined\" icon=\"down\" />\n ) : (\n <WrappedIcon lib=\"antd\" theme=\"outlined\" icon=\"right\" />\n )}\n </span>\n <div className=\"title-label\">{titleLabel}</div>\n <slot name=\"title\" />\n </div>\n <slot name=\"actions\" />\n {badge && <div className=\"badge\">{badge}</div>}\n <div className=\"pane-scroll-shadow\"></div>\n </div>\n <div\n className=\"pane-body custom-scrollbar-container\"\n onScroll={handleScroll}\n ref={scrollBodyRef}\n >\n <slot>\n <div\n style={{\n padding: \"10px 20px\",\n color: \"var(--text-color-secondary)\",\n }}\n >\n No content\n </div>\n </slot>\n </div>\n </div>\n );\n}\n\nexport { WorkbenchPane };\n","export type SimpleFunction<P extends unknown[] = unknown[], R = unknown> = (\n ...args: P\n) => R;\n\n// The debounce function receives our function as a parameter\nexport function debounceByAnimationFrame<P extends unknown[]>(\n fn: SimpleFunction<P, void>\n): SimpleFunction<P, void> & { cancel: () => void } {\n // This holds the requestAnimationFrame reference, so we can cancel it if we wish\n let frame: number;\n\n const cancel = () => cancelAnimationFrame(frame);\n\n // The debounce function returns a new function that can receive a variable number of arguments\n const func = (...params: P) => {\n // If the frame variable has been defined, clear it now, and queue for next frame\n if (frame) {\n cancel();\n }\n\n // Queue our function call for the next frame\n frame = requestAnimationFrame(() => {\n // Call our function and pass any params we received\n fn(...params);\n });\n };\n\n func.cancel = cancel;\n\n return func;\n}\n","import React from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./workbench-sidebar.shadow.css\";\n\ninterface WorkbenchSidebarProps {\n titleLabel: string;\n refCallback: (element: HTMLDivElement) => void;\n}\ninterface WorkbenchSidebarChildElement extends HTMLElement {\n active?: boolean;\n activeFlex?: string;\n}\n\nconst { defineElement, property } = createDecorators();\n\n/**\n * @insider\n */\n@defineElement(\"visual-builder.workbench-sidebar\", {\n styleTexts: [styleText],\n})\nclass WorkbenchSidebar extends ReactNextElement {\n @property() accessor titleLabel: string | undefined;\n\n #getPaneSlot = (): HTMLSlotElement => {\n return this.shadowRoot?.querySelector(\"slot:not([name])\");\n };\n\n #reflowPanes = (): void => {\n const slot = this.#getPaneSlot();\n const panes = slot.assignedNodes() as WorkbenchSidebarChildElement[];\n\n for (const pane of panes) {\n if (pane.active) {\n pane.style.flex = String(pane.activeFlex ?? \"1\");\n } else {\n pane.style.flex = \"initial\";\n }\n }\n };\n\n #onPanesSlotChange = (event: Event): void => {\n const slot = event.target as HTMLSlotElement;\n const panes = slot.assignedNodes();\n for (const pane of panes) {\n pane.addEventListener(\"active.change\", this.#reflowPanes);\n }\n };\n\n refCallback = () => {\n this.#reflowPanes();\n const panesSlots = this.#getPaneSlot();\n\n panesSlots?.addEventListener(\"slotchange\", (e) => {\n this.#onPanesSlotChange(e);\n });\n };\n\n render() {\n return (\n <WorkbenchSidebarComponent\n titleLabel={this.titleLabel}\n refCallback={this.refCallback}\n />\n );\n }\n}\n\nfunction WorkbenchSidebarComponent({\n titleLabel,\n refCallback,\n}: WorkbenchSidebarProps) {\n return (\n <div className=\"sidebar\" ref={refCallback}>\n <div className=\"title-container\">\n <div className=\"title-label\">{titleLabel}</div>\n <slot name=\"titleToolbar\" />\n </div>\n <div className=\"pane-container\">\n <slot />\n </div>\n </div>\n );\n}\n\nexport { WorkbenchSidebar };\n","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.forEach((item) => {\n // key的格式最终为0,1,2,0.1,0.2,0.1.1,0.1.2\n item.key = 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","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 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","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","// 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;-moz-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:-webkit-grab;cursor:grab;padding:5px 12px;border-radius:var(--medius-border-radius);min-width:-webkit-max-content;min-width:-moz-max-content;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;-moz-user-select:none;user-select:none}.node.board{height:70px;max-width:168px;width:-webkit-fit-content;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;-moz-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:-webkit-fit-content;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;grid-gap:6px;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:-webkit-sticky;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;-moz-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:-webkit-min-content;width:-moz-min-content;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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["_WorkbenchPane","WrappedIcon","wrapBrick","defineElement","property","event","createDecorators","_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","debounceByAnimationFrame","fn","current","scrollTop","func","_len","length","params","Array","_key","frame","cancel","requestAnimationFrame","cancelAnimationFrame","className","classNames","tabIndex","onClick","lib","theme","icon","name","onScroll","ref","style","padding","color","_WorkbenchPane2","e","_set_activeChangeEvent","_set_activeFirstActivatedEvent","c","_initClass","_applyDecs","styleTexts","styleText","sharedStyle","type","Boolean","Number","o","_","has","_checkInRHS","_WorkbenchSidebar","_getPaneSlot","_reflowPanes","_onPanesSlotChange","WorkbenchSidebar","_this$shadowRoot","shadowRoot","querySelector","panes","call","assignedNodes","pane","_pane$activeFlex","flex","String","activeFlex","target","addEventListener","_defineProperty","panesSlots","WorkbenchSidebarComponent","refCallback","_WorkbenchSidebar2","_WorkbenchAction","WrapLink","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","concat","isGroup","groupAsSubMenu","isSubMenu","tmp","items","push","defaultExpanded","parsePath","escapedPath","replace","match","matchPath","path","exact","activeMatchSearch","getMatchOfSearch","isArray","activeIncludes","include","_parseInclude","parseInclude","hasSearch","includes","activeExcludes","_include","matchMenuItem","keyPath","split","i","slice","join","currentSearch","toSearch","URLSearchParams","value","entries","_current$get","get","_WorkbenchActionList","currentAppId","WrapperWorkbenchAction","WorkbenchActionList","_init_appId","_init_extra_appId","_init_menu","_init_extra_menu","appId","menu","WorkbenchActionListComponent","_WorkbenchActionList2","historyMap","Map","_menu$menuItems2","history","getHistory","activeIndex","setActiveIndex","location","setLocation","unlisten","listen","clear","_menu$menuItems","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","_x","_x2","_x3","apply","actionI18nKeyMap","add","ADD","edit","EDIT","delete","DELETE","batch_delete","import","IMPORT","clone","CLONE","append_relation","APPEND_RELATION","update_relation","UPDATE_RELATION","remove_relation","REMOVE_RELATION","rollback","ROLLBACK","rollback_all","ROLLBACK_ALL","fullActionI18nKeyMap","ADD_FULL","EDIT_FULL","DELETE_FULL","IMPORT_FULL","CLONE_FULL","APPEND_RELATION_FULL","UPDATE_RELATION_FULL","REMOVE_RELATION_FULL","ROLLBACK_FULL","ROLLBACK_ALL_FULL","categoryI18nKeyMap","project","PROJECT","userGroup","USER","permission","PERMISSION","brick","BRICK","route","ROUTE","template","TEMPLATE","snippet","SNIPPET","i18n","I18N","image","IMAGE","function","FUNCTION","MENU","menuItem","MENU_ITEM","workflow","WORKFLOW","modelI18nKeyMap","PROJECT_MICRO_APP","MICRO_APP_RESOURCE_PERMISSION","STORYBOARD_BRICK","STORYBOARD_ROUTE","STORYBOARD_TEMPLATE","STORYBOARD_SNIPPET","STORYBOARD_I18N","MICRO_APP_RESOURCE_IMAGE","STORYBOARD_FUNCTION","MICRO_APP_RESOURCE_MENU","MICRO_APP_RESOURCE_MENU_ITEM","translateHistory","_categoryI18nKeyMap$h","_actionI18nKeyMap$his","_modelI18nKeyMap$hist","_history$abstract","_history$abstract2","_modelI18nKeyMap$hist2","_history$abstract3","_history$abstract4","_history$abstract5","_history$abstract6","_history$abstract7","_history$abstract8","_history$abstract9","_history$abstract10","_fullActionI18nKeyMap","_history$abstract11","_history$abstract12","historyAction","action","rollBackIdInfo","category","t","leftObjectId","abstract","rightObjectId","translateNodes","nodesCount","leftNodes","leftNodesCount","rightNodes","rightNodesCount","rollbackAbstract","nodeChanges","relationChanges","undefined","total","separator","NODE","context","count","initializeReactI18n","en","LOAD_MORE","LOADING","NO_DATA","NODE_ellipsis","zh","_WorkbenchHistoryActi","WrappedButton","WrappedLink","WrappedEasyopsAvatar","WrappedPopover","onVisibleChange","beforeVisibleChange","_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","_objectSpread","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","_PageArchNode","WrappedTooltip","autoFocusedSets","Set","_PageArchNode_brand","_handleLabelEditingChange","_handleLabelChange","_handleNodeClick","_handleNodeDoubleClick","_handleNodeContextMenu","_handleChildAppend","_handleExternalClick","_handleSubNodeDoubleClick","_handleSubNodeContextMenu","PageArchNode","_init_label","_init_extra_label","_init_type","_init_extra_type","_init_external","_init_extra_external","_init_subNodes","_init_extra_subNodes","_init_notSynced","_init_extra_notSynced","_init_disableChildAppend","_init_extra_disableChildAppend","_init_autoFocusOnce","_init_extra_autoFocusOnce","_init_labelEditingChange","_init_extra_labelEditingChange","_get_labelEditingChange","_init_labelChange","_init_extra_labelChange","_get_labelChange","_init_nodeClick","_init_extra_nodeClick","_get_nodeClick","_init_nodeDoubleClick","_init_extra_nodeDoubleClick","_get_nodeDoubleClick","_init_nodeContextMenu","_init_extra_nodeContextMenu","_get_nodeContextMenu","_init_childAppend","_init_extra_childAppend","_get_childAppend","_init_externalClick","_init_extra_externalClick","_get_externalClick","_init_subNodeDoubleClick","_init_extra_subNodeDoubleClick","_get_subNodeDoubleClick","_init_subNodeContextMenu","_init_extra_subNodeContextMenu","_get_subNodeContextMenu","label","external","subNodes","notSynced","disableChildAppend","autoFocusOnce","PageArchNodeComponent","onLabelEditingChange","onLabelChange","onNodeClick","onNodeDoubleClick","onNodeContextMenu","onChildAppend","onExternalClick","onSubNodeDoubleClick","onSubNodeContextMenu","_subNodes$length","_type","currentLabel","setCurrentLabel","editingLabel","setEditingLabel","editingLabelInitialized","shouldEmitLabelChange","setShouldEmitLabelChange","labelInputRef","handleEditLabel","stopPropagation","setTimeout","_labelInputRef$curren","_labelInputRef$curren2","focus","preventScroll","select","handleInputChange","handleInputKeydown","_labelInputRef$curren3","keyCode","which","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","_EoContractSelect","WrappedFormItem","WrappedAutoComplete","_EoContractSelect_brand","splitContract","version","isContractApi","test","checkContractRule","isNil","EoContractSelectComponent","suffix","q","setQ","pageSize","setPageSize","contractList","setContractList","query","_asyncToGenerator","page","fullContractName","interceptorParams","ignoreLoadingBar","err","console","useContractList","mixedValue","setMixedValue","versionOptions","setVersionOptions","handlerSearch","debounce","_contractList$find","_versionList$","versionList","find","autofillVersion","useBrick","ReactUseMultipleBricks","_EoContractSelect2","_init_name","_init_extra_name","_init_required","_init_extra_required","_init_value","_init_extra_value","_init_suffix","_init_extra_suffix","_init_changeEvent","_init_extra_changeEvent","_get_changeEvent","required","exportparts","curElement","formElement","validator","handleChange","_set_changeEvent","WrappedMenu","WrappedMenuItem","lockBodyScroll","unwrapProvider","_GenerateSnippetsCont","_GenerateSnippetsContextMenu_brand","_handleItemDragStart","_handleItemDragEnd","GenerateSnippetsContextMenu","_init_options","_init_extra_options","_init_position","_init_extra_position","_init_itemDragStartEvent","_init_extra_itemDragStartEvent","_init_itemDragEndEvent","_init_extra_itemDragEndEvent","_get_itemDragStartEvent","_get_itemDragEndEvent","position","open","close","disconnectedCallback","super","GenerateSnippetsContextMenuComponent","onItemDragStart","onItemDragEnd","_ref3","_ref4","dragging","setDragging","containerRef","fixedPosition","setFixedPosition","handleMaskClick","handleItemStart","_e$dataTransfer","dragConf","dataTransfer","setData","JSON","stringify","classList","handleItemDragEnd","remove","rect","getBoundingClientRect","clientWidth","clientHeight","document","documentElement","fixed","left","top","visibility","op","_op$children","_op$children2","children","itemIndex","tooltip","hoist","draggable","onDragStart","onDragEnd","text","_GenerateSnippetsContextMenu","_set_itemDragStartEvent","_set_itemDragEndEvent","rehypePrism","visitor","_index","parent","tagName","lang","properties","classListItem","toLowerCase","getLanguage","refractor","highlight","toString","_unused","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","_loop","_lastIndexMapRef$curr","newChunks","newPage","parsed","parse","prev","setStoryboard","blocks","storyboardMap","uuid","sort","b","seq","contentLayout","main","pageTitle","hasContent","block","child","childBrick","iid","meta","rawBrick","hasContainer","verticalScrollParent","overflowY","getComputedStyle","getPropertyValue","ShadowRoot","Element","scrollingElement","scrollTo","scrollHeight","removeEventListener","_message$key","_ChatConversation2","_set_storyboardUpdate","InspectOutlineComponent","variant","borderWidth","_ChatPreview","_ChatPreview_brand","_handleActiveTargetChange","ChatPreview","_init_storyboard","_init_extra_storyboard","_init_theme","_init_extra_theme","_init_uiVersion","_init_extra_uiVersion","_init_app","_init_extra_app","_init_inspecting","_init_extra_inspecting","_init_activeTargetChangeEvent","_init_extra_activeTargetChangeEvent","_get_activeTargetChangeEvent","uiVersion","app","inspecting","payload","iframeWin","contentWindow","postMessage","channel","origin","ChatPreviewComponent","onActiveTargetChange","iframeRef","ready","setReady","initialized","setInitialized","scroll","setScroll","hoverOutlines","setHoverOutlines","activeOutlines","setActiveOutlines","adjustedHoverOutlines","setAdjustedHoverOutlines","adjustedActiveOutlines","setAdjustedActiveOutlines","handleIframeLoad","check","_iframeRef$current","_preview_only_render","_iframeRef$current2","_window$PUBLIC_ROOT","pkg","__secret_internals","getBrickPackagesById","Error","_preview_only_inject","filePath","getBasePath","window","PUBLIC_ROOT","_iframeRef$current3","yaml","safeDump","schema","JSON_SCHEMA","skipInvalid","noRefs","noCompatMode","handleMouseOut","outlines","listener","_event$data","_iframeRef$current4","adjustOutlines","outline","_iframeRef$current$of","_iframeRef$current5","_iframeRef$current$of2","_iframeRef$current6","offsetLeft","offsetTop","rest","_objectWithoutProperties","_excluded","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","_injectChatPreviewAgent","sendMessage","_e$data","selector","elements","toggleInspecting","getElementsIncludingInShadowDOM","_PreGeneratedPreview","PreGeneratedPreview","_init_generations","_init_extra_generations","_init_category","_init_extra_category","generations","PreGeneratedPreviewComponent","setInjected","inject","fixedPkg","Promise","allSettled","candidatesMap","mocksMap","generation","_generation$displayLe","candidatesByReadWriteType","propertyId","candidatesByDisplayLevel","rwType","displayLevel","mockData","tableChildren","gridColumn","textAlign","table","gridTemplateColumns","propertyIndex","readWriteTypeIndex","isLastProperty","candidates","propertyName","candidate","values","_candidate$propertyNa","gridRow","isLastRow","_candidate$mockData","_candidate$storyboard","dataSource","_candidate$category","mockValue","random","cellData","previewStyleText","_PreGeneratedPreview2","_PreGeneratedTableVie","PreGeneratedTableView","PreGeneratedTableViewComponent","_PreGeneratedTableView","_PreGeneratedContaine","PreGeneratedContainer","_init_useBrick","_init_extra_useBrick","_init_dataSource","_init_extra_dataSource","PreGeneratedContainerComponent","_PreGeneratedContainer","___CSS_LOADER_EXPORT___","module","source","excluded","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable"],"sourceRoot":""}
|