fix: 同步 vision-polyfill 中对 resize 方向的控制逻辑

feat: 不再发布 editor-preset-general 的 npm 版本和 editor-preset-vision 的 cdn 版本
This commit is contained in:
力皓 2021-01-26 10:05:59 +08:00
parent 7b89ee27a0
commit 2aa596883d
5 changed files with 39 additions and 20 deletions

View File

@ -1,13 +1,6 @@
{
"plugins": [
[
"build-plugin-component",
{
"filename": "core",
"library": "LCECore",
"libraryTarget": "umd"
}
],
"build-plugin-component",
"build-plugin-fusion",
"./build.plugin.js"
]

View File

@ -3,6 +3,7 @@
"version": "1.0.32-beta.0",
"description": "Ali General Editor Preset",
"main": "lib/index.js",
"private": true,
"files": [
"dist",
"es",

View File

@ -160,7 +160,6 @@ export interface OldPrototypeConfig {
canDraging?: boolean; // => onDrag
canDragging?: boolean; // => ?
canHovering?: ((dragment: Node) => boolean) | boolean;
canSelecting?: boolean; // => onClickHook
canOperating?: boolean; // => disabledActions
canUseCondition?: boolean;
@ -771,7 +770,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
if (canResizing === true) {
return availableDirects;
}
return availableDirects.filter((d) => (canResizing as any)(currentNode, d));
return availableDirects.filter((d) => (canResizing as ResizeHandler)(currentNode, d));
};
}

View File

@ -99,11 +99,25 @@ export interface OldPropConfig {
liveTextEditing?: any;
}
type ResizeHandler = (dragment: any, triggerDirection: string) => boolean;
type ResizeCompositeHandler = { handle: ResizeHandler, availableDirects: string[] | undefined };
type CanResize =
| boolean
| ResizeHandler
| ResizeCompositeHandler;
function isResizeCompositeHandler(resize: CanResize): resize is ResizeCompositeHandler {
if ((resize as any).handle) {
return true;
}
return false;
}
// from vision 5.4
export interface OldPrototypeConfig {
packageName: string; // => npm.package
/**
* category display in the component pane
* category display in the component pane·
* component will be hidden while the value is: null
*/
category: string; // => tags
@ -138,6 +152,7 @@ export interface OldPrototypeConfig {
isContainer?: boolean; // => configure.component.isContainer
isAbsoluteLayoutContainer?: boolean; // => meta.experimental.isAbsoluteLayoutContainer 是否是绝对定位容器
hideSelectTools?: boolean; // => meta.experimental.hideSelectTools
isModal?: boolean; // => configure.component.isModal
isFloating?: boolean; // => configure.component.isFloating
descriptor?: string; // => configure.component.descriptor
@ -145,7 +160,7 @@ export interface OldPrototypeConfig {
// alias to canDragging
canDraging?: boolean; // => onDrag
canDragging?: boolean; // => ?
canHovering?: ((dragment: Node) => boolean) | boolean;
canSelecting?: boolean; // => onClickHook
canOperating?: boolean; // => disabledActions
canUseCondition?: boolean;
@ -168,7 +183,7 @@ export interface OldPrototypeConfig {
subtreeModified?(this: Node): any; // => ? hooks
// => ?
canResizing?: ((dragment: any, triggerDirection: string) => boolean) | boolean;
canResizing?: CanResize;
onResizeStart?: (e: MouseEvent, triggerDirection: string, dragment: Node) => void;
onResize?: (e: MouseEvent, triggerDirection: string, dragment: Node, moveX: number, moveY: number) => void;
onResizeEnd?: (e: MouseEvent, triggerDirection: string, dragment: Node) => void;
@ -597,6 +612,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
transducers,
isContainer,
isAbsoluteLayoutContainer,
hideSelectTools,
rectSelector,
isModal,
isFloating,
@ -615,12 +631,12 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
canDraging,
canDragging, // handleDragging
canSelecting, // onClickHook
canHovering,
// events
didDropOut, // onNodeRemove
didDropIn, // onNodeAdd
subtreeModified, // onSubtreeModified
canResizing, // resizing
onResizeStart, // onResizeStart
onResize, // onResize
onResizeEnd, // onResizeEnd
@ -628,6 +644,9 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
schema,
isTopFixed,
} = oldConfig;
let {
canResizing, // resizing
} = oldConfig;
const meta: any = {
componentName,
@ -687,6 +706,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
// 未考虑清楚的,放在实验性段落
const experimental: any = {
isAbsoluteLayoutContainer,
hideSelectTools,
};
if (context) {
// for prototype.getContextInfo
@ -742,13 +762,16 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
experimental.transducers = transducers;
}
if (canResizing) {
// TODO: enhance
let availableDirects = ['n', 'e', 's', 'w'];
if (isResizeCompositeHandler(canResizing)) {
availableDirects = canResizing.availableDirects || availableDirects;
canResizing = canResizing.handle;
}
experimental.getResizingHandlers = (currentNode: any) => {
const directs = ['n', 'w', 's', 'e'];
if (canResizing === true) {
return directs;
return availableDirects;
}
return directs.filter((d) => canResizing(currentNode, d));
return availableDirects.filter((d) => (canResizing as ResizeHandler)(currentNode, d));
};
}
@ -767,6 +790,9 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) {
}
callbacks.onClickHook = () => v;
}
if (canHovering != null) {
callbacks.onHoverHook = typeof canHovering === 'boolean' ? () => canHovering : canHovering;
}
if (didDropIn) {
callbacks.onNodeAdd = didDropIn;
}

View File

@ -24,7 +24,7 @@ mkdir packages
# cp -r $WORK_DIR/packages/demo packages/demo
cp -r $WORK_DIR/packages/react-simulator-renderer packages/react-simulator-renderer
cp -r $WORK_DIR/packages/rax-simulator-renderer packages/rax-simulator-renderer
cp -r $WORK_DIR/packages/editor-preset-vision packages/editor-preset-vision
#cp -r $WORK_DIR/packages/editor-preset-vision packages/editor-preset-vision
cp -r $WORK_DIR/packages/engine packages/engine
cp -r $WORK_DIR/packages/vision-polyfill packages/vision-polyfill
# cp -r $WORK_DIR/packages/editor-preset-general packages/editor-preset-general
@ -35,7 +35,7 @@ cd $WORK_DIR
# mv deploy-space/packages/demo/build $BUILD_DEST
mv deploy-space/packages/react-simulator-renderer/dist $BUILD_DEST
mv deploy-space/packages/rax-simulator-renderer/dist/* $BUILD_DEST
mv deploy-space/packages/editor-preset-vision/dist/* $BUILD_DEST
#mv deploy-space/packages/editor-preset-vision/dist/* $BUILD_DEST
mv deploy-space/packages/engine/dist/* $BUILD_DEST
mv deploy-space/packages/vision-polyfill/dist/* $BUILD_DEST
# mv deploy-space/packages/editor-preset-general/dist/* $BUILD_DEST