{"version":3,"file":"index.jsx","sourceRoot":"lib/","sources":["widgets/OutlineWidget/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import cls from 'classnames'\nimport { useTree, usePrefix, useOutline, useWorkbench } from '../../hooks'\nimport { observer } from '@formily/reactive-vue'\nimport { OutlineTreeNode } from './OutlineNode'\nimport { Insertion } from './Insertion'\nimport { TreeNode, Viewport } from '@designable/core'\nimport { NodeSymbol } from './context'\nimport { CSSProperties, defineComponent, onMounted, provide, ref, unref, VNode, onBeforeUnmount } from 'vue-demi'\nimport { useStyle } from '@jeamn/formily-prototypes'\nimport { useEffect } from '../../shared'\n\nexport interface IOutlineTreeWidgetProps {\n  className?: string\n  style?: CSSProperties\n  onClose?: () => void\n  renderTitle?: (node: TreeNode) => VNode\n  renderActions?: (node: TreeNode) => VNode\n}\n\nexport const OutlineTreeWidget = observer(\n  defineComponent({\n    name: 'OutlineTreeWidget',\n    props: ['renderActions', 'renderTitle', 'onClose'],\n    setup(props, { attrs }) {\n      // { onClose, style, renderActions, renderTitle, className,\n      const refInstance = ref<HTMLDivElement>()\n      const prefixRef = usePrefix('outline-tree')\n      const workbenchRef = useWorkbench()\n      const current = workbenchRef.value?.activeWorkspace || workbenchRef.value?.currentWorkspace\n      const workspaceId = current?.id\n      const treeRef = useTree(workspaceId)\n      const outline = useOutline(workspaceId)\n      const outlineRef = ref<Viewport>()\n      const style = useStyle()\n\n      provide(\n        NodeSymbol,\n        ref({\n          renderActions: props.renderActions,\n          renderTitle: props.renderTitle,\n        })\n      )\n\n      useEffect(() => {\n        const _outline = outline.value\n        if (!workspaceId) return\n        if (outlineRef.value && outlineRef.value !== _outline) {\n          outlineRef.value.onUnmount()\n        }\n        if (refInstance.value && outline) {\n          _outline.onMount(refInstance.value, window)\n        }\n        outlineRef.value = _outline\n        return () => {\n          outlineRef.value?.onUnmount()\n        }\n      }, [refInstance, outlineRef, outline, () => workbenchRef.value?.activeWorkspace || workbenchRef.value?.currentWorkspace])\n      // outlineRef\n\n      return () => {\n        const prefix = unref(prefixRef)\n        const tree = unref(treeRef)\n        if (!outline.value || !workspaceId) return null\n        return (\n          <div {...attrs} class={cls(prefix + '-container')} style={style}>\n            <div class={prefix + '-content'} ref={refInstance}>\n              <OutlineTreeNode node={tree} workspaceId={workspaceId} />\n              <div\n                class={prefix + '-aux'}\n                style={{\n                  pointerEvents: 'none',\n                }}\n              >\n                <Insertion workspaceId={workspaceId} />\n              </div>\n            </div>\n          </div>\n        )\n      }\n    },\n  })\n)\n"]}