|
|
|
@ -3,7 +3,6 @@
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
|
|
|
|
|
|
|
|
import React from 'react';
|
|
|
|
import React from 'react';
|
|
|
|
import { ExtendedKeyMapOptions } from 'react-hotkeys';
|
|
|
|
|
|
|
|
import { Row, Col } from 'antd/lib/grid';
|
|
|
|
import { Row, Col } from 'antd/lib/grid';
|
|
|
|
import Icon from 'antd/lib/icon';
|
|
|
|
import Icon from 'antd/lib/icon';
|
|
|
|
import Select from 'antd/lib/select';
|
|
|
|
import Select from 'antd/lib/select';
|
|
|
|
@ -34,7 +33,6 @@ import {
|
|
|
|
|
|
|
|
|
|
|
|
import { ObjectType, ShapeType } from 'reducers/interfaces';
|
|
|
|
import { ObjectType, ShapeType } from 'reducers/interfaces';
|
|
|
|
import { clamp } from 'utils/math';
|
|
|
|
import { clamp } from 'utils/math';
|
|
|
|
import { formatShortcuts } from 'utils/shortcuts';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ItemMenu(
|
|
|
|
function ItemMenu(
|
|
|
|
serverID: number | undefined,
|
|
|
|
serverID: number | undefined,
|
|
|
|
@ -675,7 +673,7 @@ function ItemAttributesComponent(props: ItemAttributesComponentProps): JSX.Eleme
|
|
|
|
const ItemAttributes = React.memo(ItemAttributesComponent, attrAreTheSame);
|
|
|
|
const ItemAttributes = React.memo(ItemAttributesComponent, attrAreTheSame);
|
|
|
|
|
|
|
|
|
|
|
|
interface Props {
|
|
|
|
interface Props {
|
|
|
|
keyMap: Record<string, ExtendedKeyMapOptions>;
|
|
|
|
normalizedKeyMap: Record<string, string>;
|
|
|
|
activated: boolean;
|
|
|
|
activated: boolean;
|
|
|
|
objectType: ObjectType;
|
|
|
|
objectType: ObjectType;
|
|
|
|
shapeType: ShapeType;
|
|
|
|
shapeType: ShapeType;
|
|
|
|
@ -742,7 +740,7 @@ function objectItemsAreEqual(prevProps: Props, nextProps: Props): boolean {
|
|
|
|
&& nextProps.collapsed === prevProps.collapsed
|
|
|
|
&& nextProps.collapsed === prevProps.collapsed
|
|
|
|
&& nextProps.labels === prevProps.labels
|
|
|
|
&& nextProps.labels === prevProps.labels
|
|
|
|
&& nextProps.attributes === prevProps.attributes
|
|
|
|
&& nextProps.attributes === prevProps.attributes
|
|
|
|
&& nextProps.keyMap === prevProps.keyMap
|
|
|
|
&& nextProps.normalizedKeyMap === prevProps.normalizedKeyMap
|
|
|
|
&& nextProps.navigateFirstKeyframe === prevProps.navigateFirstKeyframe
|
|
|
|
&& nextProps.navigateFirstKeyframe === prevProps.navigateFirstKeyframe
|
|
|
|
&& nextProps.navigatePrevKeyframe === prevProps.navigatePrevKeyframe
|
|
|
|
&& nextProps.navigatePrevKeyframe === prevProps.navigatePrevKeyframe
|
|
|
|
&& nextProps.navigateNextKeyframe === prevProps.navigateNextKeyframe
|
|
|
|
&& nextProps.navigateNextKeyframe === prevProps.navigateNextKeyframe
|
|
|
|
@ -771,7 +769,7 @@ function ObjectItemComponent(props: Props): JSX.Element {
|
|
|
|
attributes,
|
|
|
|
attributes,
|
|
|
|
labels,
|
|
|
|
labels,
|
|
|
|
collapsed,
|
|
|
|
collapsed,
|
|
|
|
keyMap,
|
|
|
|
normalizedKeyMap,
|
|
|
|
navigateFirstKeyframe,
|
|
|
|
navigateFirstKeyframe,
|
|
|
|
navigatePrevKeyframe,
|
|
|
|
navigatePrevKeyframe,
|
|
|
|
navigateNextKeyframe,
|
|
|
|
navigateNextKeyframe,
|
|
|
|
@ -839,12 +837,12 @@ function ObjectItemComponent(props: Props): JSX.Element {
|
|
|
|
objectType={objectType}
|
|
|
|
objectType={objectType}
|
|
|
|
type={type}
|
|
|
|
type={type}
|
|
|
|
locked={locked}
|
|
|
|
locked={locked}
|
|
|
|
copyShortcut={formatShortcuts(keyMap.COPY_SHAPE)}
|
|
|
|
copyShortcut={normalizedKeyMap.COPY_SHAPE}
|
|
|
|
pasteShortcut={formatShortcuts(keyMap.PASTE_SHAPE)}
|
|
|
|
pasteShortcut={normalizedKeyMap.PASTE_SHAPE}
|
|
|
|
propagateShortcut={formatShortcuts(keyMap.PROPAGATE_OBJECT)}
|
|
|
|
propagateShortcut={normalizedKeyMap.PROPAGATE_OBJECT}
|
|
|
|
toBackgroundShortcut={formatShortcuts(keyMap.TO_BACKGROUND)}
|
|
|
|
toBackgroundShortcut={normalizedKeyMap.TO_BACKGROUND}
|
|
|
|
toForegroundShortcut={formatShortcuts(keyMap.TO_FOREGROUND)}
|
|
|
|
toForegroundShortcut={normalizedKeyMap.TO_FOREGROUND}
|
|
|
|
removeShortcut={formatShortcuts(keyMap.DELETE_OBJECT)}
|
|
|
|
removeShortcut={normalizedKeyMap.DELETE_OBJECT}
|
|
|
|
changeLabel={changeLabel}
|
|
|
|
changeLabel={changeLabel}
|
|
|
|
copy={copy}
|
|
|
|
copy={copy}
|
|
|
|
remove={remove}
|
|
|
|
remove={remove}
|
|
|
|
@ -862,13 +860,13 @@ function ObjectItemComponent(props: Props): JSX.Element {
|
|
|
|
pinned={pinned}
|
|
|
|
pinned={pinned}
|
|
|
|
hidden={hidden}
|
|
|
|
hidden={hidden}
|
|
|
|
keyframe={keyframe}
|
|
|
|
keyframe={keyframe}
|
|
|
|
switchOccludedShortcut={formatShortcuts(keyMap.SWITCH_OCCLUDED)}
|
|
|
|
switchOccludedShortcut={normalizedKeyMap.SWITCH_OCCLUDED}
|
|
|
|
switchOutsideShortcut={formatShortcuts(keyMap.SWITCH_OUTSIDE)}
|
|
|
|
switchOutsideShortcut={normalizedKeyMap.SWITCH_OUTSIDE}
|
|
|
|
switchLockShortcut={formatShortcuts(keyMap.SWITCH_LOCK)}
|
|
|
|
switchLockShortcut={normalizedKeyMap.SWITCH_LOCK}
|
|
|
|
switchHiddenShortcut={formatShortcuts(keyMap.SWITCH_HIDDEN)}
|
|
|
|
switchHiddenShortcut={normalizedKeyMap.SWITCH_HIDDEN}
|
|
|
|
switchKeyFrameShortcut={formatShortcuts(keyMap.SWITCH_KEYFRAME)}
|
|
|
|
switchKeyFrameShortcut={normalizedKeyMap.SWITCH_KEYFRAME}
|
|
|
|
nextKeyFrameShortcut={formatShortcuts(keyMap.NEXT_KEY_FRAME)}
|
|
|
|
nextKeyFrameShortcut={normalizedKeyMap.NEXT_KEY_FRAME}
|
|
|
|
prevKeyFrameShortcut={formatShortcuts(keyMap.PREV_KEY_FRAME)}
|
|
|
|
prevKeyFrameShortcut={normalizedKeyMap.PREV_KEY_FRAME}
|
|
|
|
navigateFirstKeyframe={navigateFirstKeyframe}
|
|
|
|
navigateFirstKeyframe={navigateFirstKeyframe}
|
|
|
|
navigatePrevKeyframe={navigatePrevKeyframe}
|
|
|
|
navigatePrevKeyframe={navigatePrevKeyframe}
|
|
|
|
navigateNextKeyframe={navigateNextKeyframe}
|
|
|
|
navigateNextKeyframe={navigateNextKeyframe}
|
|
|
|
|