|
@@ -1,7 +1,7 @@
|
|
|
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 { defineComponent, onMounted, onUnmounted, ref, nextTick } from "vue";
|
|
|
import { useEditor } from "../../../..";
|
|
|
|
|
|
export const SelectTransfer = defineComponent({
|
|
@@ -25,31 +25,43 @@ export const SelectTransfer = defineComponent({
|
|
|
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";
|
|
|
+ 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";
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ const scaleFlagRef = ref();
|
|
|
|
|
|
- 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 () => {
|
|
|
+
|
|
|
+ if (selectCtrl.transferStyle.showOrthScale && !scaleFlagRef.value) {
|
|
|
+ scaleFlagRef.value = true
|
|
|
+ nextTick(()=>{
|
|
|
+ scaleRightRef.value.editable = "scaleright";
|
|
|
+ scaleLeftRef.value.editable = "scaleleft";
|
|
|
+ scaleTopRef.value.editable = "scaletop";
|
|
|
+ scaleBottomRef.value.editable = "scalebottom";
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
return (
|
|
|
- (
|
|
|
- <div
|
|
|
- class={["absolute transfer z-1001",transferStyle.showGizmo? showgizmo:hideGizmo]}
|
|
|
- >
|
|
|
- <div class="">
|
|
|
- {/* {toolbarOpts.map((item) => {
|
|
|
+ <div
|
|
|
+ class={[
|
|
|
+ "absolute transfer z-1001",
|
|
|
+ transferStyle.showGizmo ? showgizmo : hideGizmo,
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <div class="">
|
|
|
+ {/* {toolbarOpts.map((item) => {
|
|
|
return item.getVisible.call(editor, comp) ? (
|
|
|
<item.component
|
|
|
class="p-4px"
|
|
@@ -58,95 +70,95 @@ export const SelectTransfer = defineComponent({
|
|
|
/>
|
|
|
) : null;
|
|
|
})} */}
|
|
|
- </div>
|
|
|
-
|
|
|
- <div
|
|
|
- class={["absolute", selctRectStyle]}
|
|
|
- ref={selectRectRef}
|
|
|
+ </div>
|
|
|
|
|
|
- style={{
|
|
|
- width: transferStyle.width + "px",
|
|
|
- height: transferStyle.height + "px",
|
|
|
- transform: transferStyle.matrix,
|
|
|
- transformOrigin: `0 0`,
|
|
|
- }}
|
|
|
- >
|
|
|
+ <div
|
|
|
+ class={["absolute", selctRectStyle]}
|
|
|
+ ref={selectRectRef}
|
|
|
+ style={{
|
|
|
+ width: transferStyle.width + "px",
|
|
|
+ height: transferStyle.height + "px",
|
|
|
+ transform: transferStyle.matrix,
|
|
|
+ transformOrigin: `0 0`,
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <div class={borderStyle} />
|
|
|
+ <>
|
|
|
<div
|
|
|
- class={borderStyle}
|
|
|
+ class={[resizeStyle, scaleBottomRightStyle]}
|
|
|
+ style={{ transform: transferStyle.matrixInvert }}
|
|
|
+ ref={scaleBottomrightRef}
|
|
|
+ />
|
|
|
+ <div
|
|
|
+ class={[resizeStyle, scaleBottomLeftStyle]}
|
|
|
+ style={{ transform: transferStyle.matrixInvert }}
|
|
|
+ ref={scaleBottomLeftRef}
|
|
|
+ />
|
|
|
+ <div
|
|
|
+ class={[resizeStyle, scaleTopLeftStyle]}
|
|
|
+ style={{ transform: transferStyle.matrixInvert }}
|
|
|
+ ref={scaleTopLeftRef}
|
|
|
+ />
|
|
|
+
|
|
|
+ <div
|
|
|
+ class={[resizeStyle, scaleTopRightStyle]}
|
|
|
+ style={{ transform: transferStyle.matrixInvert }}
|
|
|
+ ref={scaleTopRightRef}
|
|
|
/>
|
|
|
- <>
|
|
|
- <div
|
|
|
- class={[resizeStyle, scaleBottomRightStyle]}
|
|
|
- style={{transform: transferStyle.matrixInvert}}
|
|
|
- ref={scaleBottomrightRef}
|
|
|
- />
|
|
|
- <div
|
|
|
- class={[resizeStyle, scaleBottomLeftStyle]}
|
|
|
- style={{transform: transferStyle.matrixInvert}}
|
|
|
- ref={scaleBottomLeftRef}
|
|
|
- />
|
|
|
- <div
|
|
|
- class={[resizeStyle, scaleTopLeftStyle]}
|
|
|
- style={{transform: transferStyle.matrixInvert}}
|
|
|
- ref={scaleTopLeftRef}
|
|
|
- />
|
|
|
-
|
|
|
-
|
|
|
- <div
|
|
|
- class={[resizeStyle, scaleTopRightStyle ]}
|
|
|
- style={{transform: transferStyle.matrixInvert}}
|
|
|
- ref={scaleTopRightRef}
|
|
|
- />
|
|
|
-
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- <div class={transformBtnsStyle} ref={rotateRef3}>
|
|
|
- <div class={transBtnStyle} ref={rotateRef} style={{transform: transferStyle.matrixInvert}} >
|
|
|
- <IconRotate ref={rotateRef2} />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
+ <div class={transformBtnsStyle} ref={rotateRef3}>
|
|
|
+ <div
|
|
|
+ class={transBtnStyle}
|
|
|
+ ref={rotateRef}
|
|
|
+ style={{ transform: transferStyle.matrixInvert }}
|
|
|
+ >
|
|
|
+ <IconRotate ref={rotateRef2} />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <div
|
|
|
+ {
|
|
|
+
|
|
|
+ transferStyle.showOrthScale && <div
|
|
|
class={[resizeHeightBtnCls, scaleTopCls]}
|
|
|
ref={scaleTopRef}
|
|
|
/>
|
|
|
-
|
|
|
- <div
|
|
|
- class={ [resizeHeightBtnCls, scaleBottomCls]}
|
|
|
+ }
|
|
|
+ {
|
|
|
+ transferStyle.showOrthScale && <div
|
|
|
+ class={[resizeHeightBtnCls, scaleBottomCls]}
|
|
|
ref={scaleBottomRef}
|
|
|
/>
|
|
|
-
|
|
|
- <div
|
|
|
- class={ [resizeWidthBtnCls, scaleRightCls]}
|
|
|
+ }
|
|
|
+ {
|
|
|
+ transferStyle.showOrthScale && <div
|
|
|
+ class={[resizeWidthBtnCls, scaleRightCls]}
|
|
|
ref={scaleRightRef}
|
|
|
/>
|
|
|
- <div
|
|
|
- class={ [resizeWidthBtnCls, scaleLeftCls]}
|
|
|
+ }
|
|
|
+ { transferStyle.showOrthScale && <div
|
|
|
+ class={[resizeWidthBtnCls, scaleLeftCls]}
|
|
|
ref={scaleLeftRef}
|
|
|
/>
|
|
|
-
|
|
|
- </>
|
|
|
- </div>
|
|
|
+ }
|
|
|
+ </>
|
|
|
</div>
|
|
|
- )
|
|
|
+ </div>
|
|
|
);
|
|
|
};
|
|
|
},
|
|
|
});
|
|
|
const selctRectStyle = css`
|
|
|
- pointer-events: none;
|
|
|
-`
|
|
|
+ pointer-events: none;
|
|
|
+`;
|
|
|
const showgizmo = css`
|
|
|
- display: block;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- /* pointer-events: none; */
|
|
|
-`
|
|
|
+ display: block;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ /* pointer-events: none; */
|
|
|
+`;
|
|
|
const hideGizmo = css`
|
|
|
- display: none;
|
|
|
-`
|
|
|
+ display: none;
|
|
|
+`;
|
|
|
|
|
|
const borderStyle = css`
|
|
|
position: absolute;
|
|
@@ -178,21 +190,21 @@ const resizeStyle = css`
|
|
|
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;
|
|
@@ -259,7 +271,6 @@ const scaleBottomCls = css`
|
|
|
transform: translate(-50%, 4px);
|
|
|
`;
|
|
|
|
|
|
-
|
|
|
const resizeWidthBtnCls = css`
|
|
|
position: absolute;
|
|
|
width: 8px;
|
|
@@ -276,9 +287,9 @@ const resizeWidthBtnCls = css`
|
|
|
`;
|
|
|
|
|
|
const scaleRightCls = css`
|
|
|
- right: 0;
|
|
|
- top: 50%;
|
|
|
- transform: translate(4px, -50%);
|
|
|
+ right: 0;
|
|
|
+ top: 50%;
|
|
|
+ transform: translate(4px, -50%);
|
|
|
`;
|
|
|
|
|
|
const scaleLeftCls = css`
|