import { IconRotate } from "@/assets/icons"; import { CompToolbars } from "@/modules/editor/objects/Toolbars"; import { css } from "@linaria/core"; import { defineComponent, onMounted, onUnmounted, ref , nextTick} from "vue"; import { useEditor } from "../../../.."; export const SelectTransfer = defineComponent({ setup() { const editor = useEditor(); const { controls } = editor; const { selectCtrl } = controls; const { transferStyle } = selectCtrl; const selectRectRef = ref(); const rotateRef = ref(); const rotateRef2 = ref(); const rotateRef3 = ref(); const scaleBottomrightRef = ref(); const scaleBottomLeftRef = ref(); const scaleTopLeftRef = ref(); const scaleTopRightRef = ref(); const scaleRightRef = ref(); const scaleLeftRef = ref(); const scaleTopRef = ref(); const scaleBottomRef = ref(); onMounted(()=>{ nextTick(()=>{ selectRectRef.value.editable = "move"; rotateRef.value.editable = "rotate"; rotateRef2.value.editable = "rotate"; rotateRef3.value.editable = "rotate"; scaleBottomrightRef.value.editable = "scaleBottomright"; scaleBottomLeftRef.value.editable = "scaleBottomleft"; scaleTopLeftRef.value.editable = "scaleTopleft"; scaleTopRightRef.value.editable = "scaleTopright"; scaleRightRef.value.editable = "scaleright" scaleLeftRef.value.editable = "scaleleft" scaleTopRef.value.editable = "scaletop" scaleBottomRef.value.editable = "scalebottom" }) }) return () => { return ( (
{/* {toolbarOpts.map((item) => { return item.getVisible.call(editor, comp) ? ( item.onClick.call(editor, comp)} /> ) : null; })} */}
<>
) ); }; }, }); const selctRectStyle = css` pointer-events: none; ` const showgizmo = css` display: block; left: 0; top: 0; /* pointer-events: none; */ ` const hideGizmo = css` display: none; ` const borderStyle = css` position: absolute; top: 0; left: 0; width: 100%; height: 100%; outline: 2px solid @inf-primary-color; pointer-events: none; z-index: 999; `; const resizeStyle = css` position: absolute; width: 16px; height: 16px; border-radius: 50%; background-color: #fff; z-index: 999; transform: translate(50%, 50%); pointer-events: auto; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.2); cursor: nwse-resize; &:hover { border-color: @inf-primary-color; } `; const scaleBottomRightStyle = css` bottom: -8px; right: -8px; ` const scaleBottomLeftStyle = css` bottom: -8px; left: -8px; ` const scaleTopLeftStyle = css` top: -8px; left: -8px; ` const scaleTopRightStyle = css` top: -8px; right: -8px; ` const transformBtnsStyle = css` @apply space-x-10px whitespace-nowrap; position: absolute; bottom: 0; left: 50%; font-size: 16px; z-index: 999; transform: translate(-50%, 50px); pointer-events: auto; `; const transBtnStyle = css` display: inline-block; width: 36px; height: 36px; border-radius: 50%; background-color: #fff; text-align: center; line-height: 36px; font-size: 20px; color: #333; @apply shadow cursor-move; &:hover { color: #fff; background-color: @inf-primary-color; } `; const toolbarStyle = css` @apply bg-white shadow rounded space-x-4px p-4px whitespace-nowrap; position: absolute; top: 0; left: 50%; transform: translate(-50%, -60px); z-index: 999; `; const resizeHeightBtnCls = css` position: absolute; width: 30px; height: 8px; border-radius: 4px; left: 50%; transform: translate(-50%, -4px); pointer-events: auto; cursor: ns-resize; background: rgba(255, 255, 255, 0.3); &:hover { background: @inf-primary-color; } @apply shadow; z-index: 999; `; const scaleTopCls = css` top: 0; transform: translate(-50%, -4px); `; const scaleBottomCls = css` bottom: 0; transform: translate(-50%, 4px); `; const resizeWidthBtnCls = css` position: absolute; width: 8px; height: 30px; border-radius: 4px; pointer-events: auto; cursor: ew-resize; background: rgba(255, 255, 255, 0.3); &:hover { background: @inf-primary-color; } @apply shadow; z-index: 999; `; const scaleRightCls = css` right: 0; top: 50%; transform: translate(4px, -50%); `; const scaleLeftCls = css` left: 0; top: 50%; transform: translate(-4px, -50%); `;