{"version":3,"file":"Insertion.jsx","sourceRoot":"lib/","sources":["widgets/AuxToolWidget/Insertion.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useDragon, 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 { isNum } from '@designable/shared'\n\nexport const InsertionComponent = observer(\n  defineComponent({\n    name: 'Insertion',\n    props: [],\n    setup() {\n      const viewportDragon = useDragon()\n      const prefix = usePrefix('aux-insertion')\n\n      return () => {\n        const createInsertionStyle = (): any => {\n          const closestDirection = viewportDragon.value.closestDirection\n          const closestRect = viewportDragon.value.closestOffsetRect\n          const isInlineLayout =\n            viewportDragon.value.getClosestLayout() === 'horizontal'\n          const baseStyle: any = {\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.Before ||\n            closestDirection === ClosestPosition.ForbidBefore\n          ) {\n            baseStyle.width = 2\n            baseStyle.height = closestRect.height\n            baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)`\n          } else if (\n            closestDirection === ClosestPosition.After ||\n            closestDirection === ClosestPosition.ForbidAfter\n          ) {\n            baseStyle.width = 2\n            baseStyle.height = closestRect.height\n            baseStyle.transform = `perspective(1px) translate3d(${closestRect.x + closestRect.width - 2\n              }px,${closestRect.y}px,0)`\n          } else if (\n            closestDirection === ClosestPosition.InnerAfter ||\n            closestDirection === ClosestPosition.Under ||\n            closestDirection === ClosestPosition.ForbidInnerAfter ||\n            closestDirection === ClosestPosition.ForbidUnder\n          ) {\n            if (isInlineLayout) {\n              baseStyle.width = 2\n              baseStyle.height = closestRect.height\n              baseStyle.transform = `perspective(1px) translate3d(${closestRect.x + closestRect.width - 2\n                }px,${closestRect.y}px,0)`\n            } else {\n              baseStyle.width = closestRect.width\n              baseStyle.height = 2\n              baseStyle.transform = `perspective(1px) translate3d(${closestRect.x\n                }px,${closestRect.y + closestRect.height - 2}px,0)`\n            }\n          } else if (\n            closestDirection === ClosestPosition.InnerBefore ||\n            closestDirection === ClosestPosition.Upper ||\n            closestDirection === ClosestPosition.ForbidInnerBefore ||\n            closestDirection === ClosestPosition.ForbidUpper\n          ) {\n            if (isInlineLayout) {\n              baseStyle.width = 2\n              baseStyle.height = closestRect.height\n              baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)`\n            } else {\n              baseStyle.width = closestRect.width\n              baseStyle.height = 2\n              baseStyle.transform = `perspective(1px) translate3d(${closestRect.x}px,${closestRect.y}px,0)`\n            }\n          }\n          if (closestDirection.includes('FORBID')) {\n            baseStyle.backgroundColor = 'red'\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        return <div class={prefix.value} style={createInsertionStyle()}></div>\n      }\n    },\n  })\n)\n\nexport const Insertion = composeExport(InsertionComponent, {\n  displayName: 'Insertion',\n})\n"]}