{"version":3,"file":"Insertion.jsx","sourceRoot":"lib/","sources":["widgets/OutlineWidget/Insertion.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useOutlineDragon, usePrefix } from '../../hooks'\nimport { ClosestPosition } from '@designable/core'\nimport { observer } from '@formily/reactive-vue'\nimport { composeExport } from '@jeamn/formily-components/src/__builtins__'\nimport { defineComponent } from 'vue-demi'\nimport { CSSProperties } from '@vue/runtime-dom'\nimport { isNum } from '@designable/shared'\nexport interface IInsertionProps {\n  workspaceId?: string\n}\n\n// export const Insertion: React.FC<IInsertionProps> = observer(({ workspaceId }) => {\n//   const outlineDragon = useOutlineDragon(workspaceId)\n//   const prefix = usePrefix('outline-tree-insertion')\n//   const createInsertionStyle = (): React.CSSProperties => {\n//     const closestDirection = outlineDragon.closestDirection\n//     const closestRect = outlineDragon.closestOffsetRect\n//     const baseStyle: React.CSSProperties = {\n//       position: 'absolute',\n//       transform: 'perspective(1px) translate3d(0,0,0)',\n//       top: 0,\n//       left: 0,\n//     }\n//     if (!closestRect) return baseStyle\n//     if (\n//       closestDirection === ClosestPosition.After ||\n//       closestDirection === ClosestPosition.InnerAfter ||\n//       closestDirection === ClosestPosition.Under ||\n//       closestDirection === ClosestPosition.ForbidAfter ||\n//       closestDirection === ClosestPosition.ForbidInnerAfter ||\n//       closestDirection === ClosestPosition.ForbidUnder\n//     ) {\n//       baseStyle.width = closestRect.width\n//       baseStyle.height = 2\n//       baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y + closestRect.height - 2}px,0)`\n//     } else if (\n//       closestDirection === ClosestPosition.Before ||\n//       closestDirection === ClosestPosition.InnerBefore ||\n//       closestDirection === ClosestPosition.Upper ||\n//       closestDirection === ClosestPosition.ForbidBefore ||\n//       closestDirection === ClosestPosition.ForbidInnerBefore ||\n//       closestDirection === ClosestPosition.ForbidUpper\n//     ) {\n//       baseStyle.width = closestRect.width\n//       baseStyle.height = 2\n//       baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)`\n//     }\n//     if (closestDirection.includes('FORBID')) {\n//       baseStyle.backgroundColor = 'red'\n//     } else {\n//       baseStyle.backgroundColor = ''\n//     }\n//     return baseStyle\n//   }\n\n//   if (!outlineDragon?.closestNode) return null\n\n//   return <div className={prefix} style={createInsertionStyle()}></div>\n// })\nconst InsertionComponent = defineComponent({\n  props: ['workspaceId'],\n  setup(props) {\n    const outlineDragonRef = useOutlineDragon(props.workspaceId)\n    const prefixRef = usePrefix('outline-tree-insertion')\n    return () => {\n      const outlineDragon = outlineDragonRef.value\n      const prefix = prefixRef.value\n      const createInsertionStyle = (): CSSProperties => {\n        const closestDirection = outlineDragon.closestDirection\n        const closestRect = outlineDragon.closestOffsetRect\n        const baseStyle: CSSProperties = {\n          position: 'absolute',\n          transform: 'perspective(1px) translate3d(0,0,0)',\n          top: 0,\n          left: 0,\n        }\n        if (!closestRect) return baseStyle\n        if (\n          closestDirection === ClosestPosition.After ||\n          closestDirection === ClosestPosition.InnerAfter ||\n          closestDirection === ClosestPosition.Under ||\n          closestDirection === ClosestPosition.ForbidAfter ||\n          closestDirection === ClosestPosition.ForbidInnerAfter ||\n          closestDirection === ClosestPosition.ForbidUnder\n        ) {\n          baseStyle.width = closestRect.width\n          baseStyle.height = 2\n          baseStyle.transform = `perspective(1px) translate3d(${\n            closestRect.x\n          }px,${closestRect.y + closestRect.height - 2}px,0)`\n        } else if (\n          closestDirection === ClosestPosition.Before ||\n          closestDirection === ClosestPosition.InnerBefore ||\n          closestDirection === ClosestPosition.Upper ||\n          closestDirection === ClosestPosition.ForbidBefore ||\n          closestDirection === ClosestPosition.ForbidInnerBefore ||\n          closestDirection === ClosestPosition.ForbidUpper\n        ) {\n          baseStyle.width = closestRect.width\n          baseStyle.height = 2\n          baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)`\n        }\n        if (closestDirection.includes('FORBID')) {\n          baseStyle.backgroundColor = 'red'\n        } else {\n          baseStyle.backgroundColor = ''\n        }\n        Object.keys(baseStyle).forEach((key) => {\n          const value = baseStyle[key]\n          isNum(value) && (baseStyle[key] = value + 'px')\n        })\n        return baseStyle\n      }\n      if (!outlineDragon?.closestNode) return null\n\n      return <div class={prefix} style={createInsertionStyle()}></div>\n    }\n  },\n})\n\nexport const Insertion = composeExport(observer(InsertionComponent), {\n  displayName: 'Insertion',\n})\n"]}