{"version":3,"file":"Cover.jsx","sourceRoot":"lib/","sources":["widgets/AuxToolWidget/Cover.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,sBAAsB,EACtB,SAAS,GACV,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,GAAG,MAAM,YAAY,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,8BAA8B;AAC9B,mBAAmB;AACnB,uBAAuB;AACvB,uBAAuB;AACvB,IAAI;AAEJ,IAAM,SAAS,GAAG,eAAe,CAAC;IAChC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC;IACvC,KAAK,EAAL,UAAM,KAAK;QACT,IAAM,SAAS,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAC7C,IAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QAE5D,OAAO;YACL,IAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;YAC1B,IAAM,gBAAgB,GAAG;gBACvB,IAAM,SAAS,GAAQ;oBACrB,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,aAAa,EAAE,MAAM;iBACtB,CAAA;gBACD,IAAI,IAAI,EAAE;oBACR,SAAS,CAAC,SAAS,GAAG,uCAAgC,IAAI,CAAC,CAAC,gBAAM,IAAI,CAAC,CAAC,UAAO,CAAA;oBAC/E,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;wBACnC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI;wBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;oBACf,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;iBACrE;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC,CAAA;YACD,OAAO,CACL,CAAC,GAAG,CACF,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAC,CACH,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAC3B,EAAE,GAAG,CAAC,CACR,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA;AAEF,IAAM,cAAc,GAAG,QAAQ,CAC7B,eAAe,CAAC;IACd,IAAI,EAAE,gBAAgB;IACtB,KAAK;QACH,IAAM,iBAAiB,GAAG,SAAS,EAAE,CAAA;QACrC,IAAM,WAAW,GAAG,WAAW,EAAE,CAAA;QACjC,IAAM,SAAS,GAAG,SAAS,EAAE,CAAA;QAE7B,OAAO;YACL,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,YAAY,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAA;YAEjE,IAAM,eAAe,GAAG;;gBACtB,IACE,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW;oBACpC,CAAC,CAAA,MAAA,iBAAiB,CAAC,KAAK,CAAC,WAAW,0CAAE,WAAW,CAC/C,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAClC,CAAA;oBACD,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,KAAK,eAAe,CAAC,KAAK;oBAElE,OAAO,IAAI,CAAA;gBACb,OAAO,CACL,CAAC,SAAS,CACR,IAAI;oBACF,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,iBAAiB,CAAC,KAAK,CAAC,WAAW;iBAC1C,CAAC,EACF,CACH,CAAA;YACH,CAAC,CAAA;YAED,OAAO,CACL,EACE;YAAA,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,IAAI;oBAC1C,IAAI,CAAC,IAAI;wBAAE,OAAM;oBACjB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAAE,OAAM;oBACvD,OAAO,CACL,CAAC,SAAS,CACR,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EACnC,CACH,CAAA;gBACH,CAAC,CAAC,CACF;YAAA,CAAC,eAAe,EAAE,CACpB;UAAA,GAAG,CACJ,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CACH,CAAA;AAED,MAAM,CAAC,IAAM,KAAK,GAAG,aAAa,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAA","sourcesContent":["import {\n  useViewport,\n  useDragon,\n  useCursor,\n  useValidNodeOffsetRect,\n  usePrefix,\n} from '../../hooks'\nimport { observer } from '@formily/reactive-vue'\nimport { CursorStatus, ClosestPosition } from '@designable/core'\nimport cls from 'classnames'\nimport { defineComponent, toRef } from 'vue-demi'\nimport { FragmentComponent as Fragment } from '@formily/vue'\nimport { composeExport } from '@jeamn/formily-components/src/__builtins__'\nimport { isNum } from '@designable/shared'\n\n// interface ICoverRectProps {\n//   node: TreeNode\n//   dragging?: boolean\n//   dropping?: boolean\n// }\n\nconst CoverRect = defineComponent({\n  name: 'CoverRect',\n  props: ['dragging', 'dropping', 'node'],\n  setup(props) {\n    const prefixRef = usePrefix('aux-cover-rect')\n    const rectRef = useValidNodeOffsetRect(toRef(props, 'node'))\n\n    return () => {\n      const rect = rectRef.value\n      const createCoverStyle = () => {\n        const baseStyle: any = {\n          position: 'absolute',\n          top: 0,\n          left: 0,\n          pointerEvents: 'none',\n        }\n        if (rect) {\n          baseStyle.transform = `perspective(1px) translate3d(${rect.x}px,${rect.y}px,0)`\n          baseStyle.height = isNum(rect.height)\n            ? rect.height + 'px'\n            : rect.height\n          baseStyle.width = isNum(rect.width) ? rect.width + 'px' : rect.width\n        }\n        return baseStyle\n      }\n      return (\n        <div\n          class={cls(prefixRef.value, {\n            dragging: props.dragging,\n            dropping: props.dropping,\n          })}\n          style={createCoverStyle()}\n        ></div>\n      )\n    }\n  },\n})\n\nconst CoverComponent = observer(\n  defineComponent({\n    name: 'CoverComponent',\n    setup() {\n      const viewportDragonRef = useDragon()\n      const viewportRef = useViewport()\n      const cursorRef = useCursor()\n\n      return () => {\n        if (cursorRef.value.status !== CursorStatus.Dragging) return null\n\n        const renderDropCover = () => {\n          if (\n            !viewportDragonRef.value.closestNode ||\n            !viewportDragonRef.value.closestNode?.allowAppend(\n              viewportDragonRef.value.dragNodes\n            ) ||\n            viewportDragonRef.value.closestDirection !== ClosestPosition.Inner\n          )\n            return null\n          return (\n            <CoverRect\n              {...{\n                dropping: true,\n                node: viewportDragonRef.value.closestNode,\n              }}\n            />\n          )\n        }\n\n        return (\n          <>\n            {viewportDragonRef.value.dragNodes.map((node) => {\n              if (!node) return\n              if (!viewportRef.value.findElementById(node.id)) return\n              return (\n                <CoverRect\n                  key={node.id}\n                  {...{ dragging: true, node: node }}\n                />\n              )\n            })}\n            {renderDropCover()}\n          </>\n        )\n      }\n    },\n  })\n)\n\nexport const Cover = composeExport(CoverComponent, { displayName: 'Cover' })\n"]}