{"version":3,"file":"ViewPanel.jsx","sourceRoot":"lib/","sources":["panels/ViewPanel.tsx"],"names":[],"mappings":";;;AAAA,sDAAgD;AAChD,kCAAgD;AAChD,4CAAwC;AACxC,qCAA0D;AAI1D,qCAAqC;AACrC,yBAAyB;AACzB,gBAAgB;AAChB,sBAAsB;AACtB,0CAA0C;AAC1C,4BAA4B;AAC5B,yBAAyB;AACzB,yCAAyC;AACzC,IAAI;AAEJ,IAAM,kBAAkB,GAAG,IAAA,0BAAe,EAAC;IACzC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;QAC5C,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;KACpC;IACD,KAAK,EAAL,UAAM,KAAK,EAAE,EAAS;YAAP,KAAK,WAAA;QAClB,4BAA4B;QAC5B,IAAM,YAAY,GAAG,IAAA,oBAAY,GAAE,CAAA;QACnC,IAAM,OAAO,GAAG,IAAA,eAAO,GAAE,CAAA;QAEzB,oBAAoB;QACpB,kDAAkD;QAClD,0BAA0B;QAC1B,sCAAsC;QACtC,+BAA+B;QAC/B,WAAW;QACX,SAAS;QACT,aAAa;QACb,4BAA4B;QAC5B,MAAM;QACN,KAAK;QAEL,OAAO;YACL,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAA;YAEvD,IAAM,MAAM,GAAG;;gBACb,OAAO,MAAA,KAAK,CAAC,OAAO,sDAAG,OAAO,CAAC,KAAK,EAAE,UAAC,OAAkB;oBACvD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAC3B,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;gBAC9B,CAAC,CAAC,CAAA;YACJ,CAAC,CAAA;YAED,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC5C,OAAO,CACL,CAAC,qBAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAC3D;YAAA,CAAC,MAAM,EAAE,CACX;UAAA,EAAE,qBAAQ,CAAC,CACZ,CAAA;aACF;YAED,OAAO,CACL,CAAC,GAAG,CACF,KAAK,CAAC,CAAC;oBACL,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACjD,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,MAAM;iBACnB,CAAC,CAEF;UAAA,CAAC,MAAM,EAAE,CACX;QAAA,EAAE,GAAG,CAAC,CACP,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AACW,QAAA,SAAS,GAAG,IAAA,uBAAQ,EAAC,kBAAkB,CAAC,CAAA","sourcesContent":["import { observer } from '@formily/reactive-vue'\nimport { useTree, useWorkbench } from '../hooks'\nimport { Viewport } from '../containers'\nimport { defineComponent, markRaw, toRaw } from 'vue-demi'\nimport { ITreeNode } from '@designable/core'\nimport { toJS } from '@formily/reactive'\n\n// export interface IViewPanelProps {\n//   type: WorkbenchTypes\n//   children: (\n//     tree: TreeNode,\n//     onChange: (tree: ITreeNode) => void\n//   ) => React.ReactElement\n//   scrollable?: boolean\n//   dragTipsDirection?: 'left' | 'right'\n// }\n\nconst ViewPanelComponent = defineComponent({\n  name: 'DnViewPanel',\n  props: {\n    type: String,\n    scrollable: { type: Boolean, default: true },\n    dragTipsDirection: { type: String },\n  },\n  setup(props, { slots }) {\n    // const visible = ref(true)\n    const workbenchRef = useWorkbench()\n    const treeRef = useTree()\n\n    // onMounted(() => {\n    //   if (workbenchRef.value.type === props.type) {\n    //     requestIdle(() => {\n    //       requestAnimationFrame(() => {\n    //         visible.value = true\n    //       })\n    //     })\n    //   } else {\n    //     visible.value = false\n    //   }\n    // })\n\n    return () => {\n      if (workbenchRef.value.type !== props.type) return null\n\n      const render = () => {\n        return slots.default?.(treeRef.value, (payload: ITreeNode) => {\n          treeRef.value.from(payload)\n          treeRef.value.takeSnapshot()\n        })\n      }\n\n      if (workbenchRef.value.type === 'DESIGNABLE') {\n        return (\n          <Viewport {...{ dragTipsDirection: props.dragTipsDirection }}>\n            {render()}\n          </Viewport>\n        )\n      }\n\n      return (\n        <div\n          style={{\n            overflow: props.scrollable ? 'overlay' : 'hidden',\n            height: '100%',\n            cursor: 'auto',\n            userSelect: 'text',\n          }}\n        >\n          {render()}\n        </div>\n      )\n    }\n  },\n})\nexport const ViewPanel = observer(ViewPanelComponent)\n"]}