本文整理汇总了TypeScript中aerial-common2.moveBounds函数的典型用法代码示例。如果您正苦于以下问题:TypeScript moveBounds函数的具体用法?TypeScript moveBounds怎么用?TypeScript moveBounds使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了moveBounds函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: weakMemo
export const convertAbsoluteBoundsToRelative = weakMemo((newBounds: Bounds, element: SyntheticElement, window: SyntheticWindow) => {
const { left, top } = getElementStartPosition(element, window);
const oldBounds = window.allComputedBounds[element.$id];
return moveBounds(newBounds, {
left: newBounds.left - left,
top: newBounds.top - top
});
});
开发者ID:cryptobuks,项目名称:tandem,代码行数:8,代码来源:synthetic-element-bounds.ts
示例2: moveBounds
const getBestWindowBounds = (browser: SyntheticBrowser, bounds: Bounds) => {
if (!browser.windows.length) return bounds;
const rightMostWindow = browser.windows.length > 1 ? browser.windows.reduce((a, b) => {
return a.bounds.right > b.bounds.right ? a : b;
}) : browser.windows[0];
return moveBounds(bounds, {
left: rightMostWindow.bounds.right + WINDOW_PADDING,
top: rightMostWindow.bounds.top
});
};
开发者ID:cryptobuks,项目名称:tandem,代码行数:11,代码来源:index.ts
示例3: switch
const stageReducer = (state: ApplicationState, event: BaseEvent) => {
switch(event.type) {
case VISUAL_EDITOR_WHEEL: {
const { workspaceId, metaKey, ctrlKey, deltaX, deltaY, canvasHeight, canvasWidth } = event as StageWheel;
const workspace = getWorkspaceById(state, workspaceId);
if (workspace.stage.fullScreen) {
return state;
}
let translate = getStageTranslate(workspace.stage);
if (metaKey || ctrlKey) {
translate = centerTransformZoom(translate, boundsFromRect({
width: canvasWidth,
height: canvasHeight
}), clamp(translate.zoom + translate.zoom * deltaY / ZOOM_SENSITIVITY, MIN_ZOOM, MAX_ZOOM), workspace.stage.mousePosition);
} else {
translate = {
...translate,
left: translate.left - deltaX,
top: translate.top - deltaY
};
}
return updateWorkspaceStage(state, workspace.$id, { smooth: false, translate });
}
case TOGGLE_TOOLS_SHORTCUT_PRESSED: {
const workspace = getSelectedWorkspace(state);
return updateWorkspaceStage(state, workspace.$id, {
showTools: workspace.stage.showTools == null ? false : !workspace.stage.showTools
})
}
case STAGE_TOOL_EDIT_TEXT_KEY_DOWN: {
const { sourceEvent, nodeId } = event as StageToolEditTextKeyDown;
if (sourceEvent.key === "Escape") {
// const workspace = getSyntheticNodeWorkspace(state, nodeId);
// state = setWorkspaceSelection(state, workspace.$id, getStructReference(getNestedObjectById(nodeId, getNodeArtboard(nodeId, state).document)));
// state = updateWorkspaceStage(state, workspace.$id, {
// secondarySelection: false
// });
}
return state;
}
case RESIZER_MOVED: {
const { point, workspaceId, point: newPoint } = event as ResizerMoved;
const workspace = getSelectedWorkspace(state);
state = updateWorkspaceStage(state, workspace.$id, {
movingOrResizing: true
});
const translate = getStageTranslate(workspace.stage);
const selectionBounds = getWorkspaceSelectionBounds(workspace);
for (const item of getBoundedWorkspaceSelection(workspace)) {
const itemBounds = getWorkspaceItemBounds(item, workspace);
// skip moving window if in full screen mode
if (workspace.stage.fullScreen && workspace.stage.fullScreen.artboardId === item.$id) {
break;
}
const newBounds = roundBounds(scaleInnerBounds(itemBounds, selectionBounds, moveBounds(selectionBounds, newPoint)));
if (item.$type === ARTBOARD) {
state = updateArtboard(state, item.$id, { bounds: newBounds });
}
}
return state;
}
case RESIZER_PATH_MOUSE_MOVED: {
let { workspaceId, anchor, originalBounds, newBounds, sourceEvent } = event as ResizerPathMoved;
const workspace = getSelectedWorkspace(state);
state = updateWorkspaceStage(state, workspace.$id, {
movingOrResizing: true
});
// TODO - possibly use BoundsStruct instead of Bounds since there are cases where bounds prop doesn't exist
const currentBounds = getWorkspaceSelectionBounds(workspace);
const keepAspectRatio = sourceEvent.shiftKey;
const keepCenter = sourceEvent.altKey;
if (keepCenter) {
// newBounds = keepBoundsCenter(newBounds, bounds, anchor);
}
if (keepAspectRatio) {
newBounds = keepBoundsAspectRatio(newBounds, originalBounds, anchor, keepCenter ? { left: 0.5, top: 0.5 } : anchor);
}
//.........这里部分代码省略.........
开发者ID:cryptobuks,项目名称:tandem,代码行数:101,代码来源:index.ts
示例4: createSyntheticBrowserRootState
export const syntheticBrowserReducer = <TRootState extends SyntheticBrowserRootState>(root: TRootState = createSyntheticBrowserRootState() as TRootState, event: BaseEvent): TRootState => {
switch(event.type) {
case SYNTHETIC_WINDOW_PROXY_OPENED: {
const { instance, parentWindowId } = event as SyntheticWindowOpened;
let syntheticBrowser: SyntheticBrowser;
syntheticBrowser = getSyntheticBrowser(root, instance.browserId);
if (!syntheticBrowser) {
console.warn(`Unable to find synthetic browser with ID ${instance.browserId}. It's likely that the app state was replaced.`);
return root;
}
return upsertSyntheticWindow(root, syntheticBrowser.$id, instance.struct);
}
case SYNTHETIC_WINDOW_SCROLLED: {
const { scrollPosition, syntheticWindowId } = event as SyntheticWindowScrolled;
return updateSyntheticWindow(root, syntheticWindowId, {
scrollPosition,
});
}
case FETCHED_CONTENT: {
const { publicPath, content, mtime } = event as FetchedContent;
return setFileCacheItem(publicPath, content, new Date(0), root);
}
case SYNTHETIC_WINDOW_RESIZED:
case SYNTHETIC_WINDOW_MOVED: {
const { instance: { $id, screenLeft, screenTop, innerWidth, innerHeight } } = event as SyntheticWindowChanged;
return updateSyntheticWindow(root, $id, {
bounds: {
left: screenLeft,
top: screenTop,
right: screenLeft + innerWidth,
bottom: screenTop + innerHeight,
}
});
}
case SYNTHETIC_WINDOW_CLOSED: {
const { instance: { $id } } = event as SyntheticWindowChanged;
return removeSyntheticWindow(root, $id);
}
case MOVED: {
const { itemId, itemType, point } = event as Moved;
if (itemType === SYNTHETIC_WINDOW) {
const window = getSyntheticWindow(root, itemId);
if (window) {
return updateSyntheticWindow(root, itemId, {
bounds: moveBounds(window.bounds, point)
});
}
break;
}
break;
}
case REMOVED: {
const { itemId, itemType } = event as Removed;
if (itemType === SYNTHETIC_WINDOW) {
return removeSyntheticWindow(root, itemId);
}
break;
}
case SYNTHETIC_WINDOW_LOADED:
case SYNTHETIC_WINDOW_CHANGED: {
const { instance } = event as SyntheticWindowLoaded;
return updateSyntheticWindow(root, instance.$id, instance.struct);
}
case SYNTHETIC_WINDOW_RECTS_UPDATED: {
const { rects, styles, syntheticWindowId } = event as SyntheticWindowRectsUpdated;
return updateSyntheticWindow(root, syntheticWindowId, {
allComputedBounds: rects,
allComputedStyles: styles
});
}
case SYNTHETIC_WINDOW_RESOURCE_LOADED: {
const { uri, syntheticWindowId } = event as SyntheticWindowResourceLoaded;
const window = getSyntheticWindow(root, syntheticWindowId);
return updateSyntheticWindow(root, syntheticWindowId, {
externalResourceUris: uniq(window.externalResourceUris, uri)
});
}
}
return root;
}
开发者ID:cryptobuks,项目名称:tandem,代码行数:92,代码来源:index.ts
注:本文中的aerial-common2.moveBounds函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论