plot-plan-designer
Version:
Design Editor Tools with React.js + ant.design + fabric.js
108 lines (107 loc) • 5.91 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importStar(require("react"));
const prop_types_1 = __importDefault(require("prop-types"));
const antd_1 = require("antd");
const classnames_1 = __importDefault(require("classnames"));
const CommonButton_1 = __importDefault(require("../common/CommonButton"));
const FlowContext_1 = __importStar(require("../../contexts/FlowContext"));
const Icon_1 = __importDefault(require("../icon/Icon"));
const MapProperties_1 = __importDefault(require("./properties/MapProperties"));
const NodeProperties_1 = __importDefault(require("./properties/NodeProperties"));
const i18next_1 = __importDefault(require("i18next"));
let ImageMapConfigurations = /** @class */ (() => {
class ImageMapConfigurations extends react_1.Component {
constructor() {
super(...arguments);
this.state = {
activeKey: 'map',
};
this.handlers = {
onChangeTab: (activeKey) => {
this.setState({
activeKey,
});
},
onCollapse: () => {
this.setState({
collapse: !this.state.collapse,
});
},
};
}
render() {
const { onChange, selectedItem, canvasRef, animations, styles, dataSources, onChangeAnimations, onChangeStyles, onChangeDataSources, tabsDefinition, } = this.props;
const { collapse, activeKey } = this.state;
const { onChangeTab, onCollapse } = this.handlers;
const className = classnames_1.default('rde-editor-configurations', {
minimize: collapse,
});
return (react_1.default.createElement("div", { className: className },
react_1.default.createElement(CommonButton_1.default, { className: "rde-action-btn", shape: "circle", icon: collapse ? 'angle-double-left' : 'angle-double-right', onClick: onCollapse, style: { position: 'absolute', top: 16, right: 16, zIndex: 1000 }, tooltipTitle: i18next_1.default.t('action.collapse') }),
react_1.default.createElement(ContextTabs, { activeKey: activeKey, onChangeTab: onChangeTab, onChange: onChange, canvasRef: canvasRef, selectedItem: selectedItem, tabsDefinition: tabsDefinition })));
}
}
ImageMapConfigurations.propTypes = {
canvasRef: prop_types_1.default.any,
selectedItem: prop_types_1.default.object,
onChange: prop_types_1.default.func,
onChangeAnimations: prop_types_1.default.func,
onChangeStyles: prop_types_1.default.func,
onChangeDataSources: prop_types_1.default.func,
animations: prop_types_1.default.array,
styles: prop_types_1.default.array,
dataSources: prop_types_1.default.array,
tabsDefinition: prop_types_1.default.object,
};
return ImageMapConfigurations;
})();
const ContextTabs = (props) => {
var _a, _b;
const context = react_1.useContext(FlowContext_1.default);
const { activeKey, onChangeTab, onChange, canvasRef, selectedItem, tabsDefinition } = props;
react_1.useEffect(() => {
var _a;
if (tabsDefinition && tabsDefinition[context.editMode])
onChangeTab((_a = tabsDefinition[context.editMode]) === null || _a === void 0 ? void 0 : _a.selectedKey);
else
onChangeTab('map');
}, [context]);
return (react_1.default.createElement(antd_1.Tabs, { tabPosition: "right", style: { height: '100%' }, activeKey: activeKey, onChange: onChangeTab, tabBarStyle: { marginTop: 60 } },
context.editMode === FlowContext_1.EditMode.EDITING && (react_1.default.createElement(antd_1.Tabs.TabPane, { active: true, tab: react_1.default.createElement(Icon_1.default, { name: "cog" }), key: "map" },
react_1.default.createElement(MapProperties_1.default, { onChange: onChange, canvasRef: canvasRef }))),
context.editMode === FlowContext_1.EditMode.EDITING && (react_1.default.createElement(antd_1.Tabs.TabPane, { tab: react_1.default.createElement(Icon_1.default, { name: "cogs" }), key: "node" },
react_1.default.createElement(NodeProperties_1.default, { onChange: onChange, selectedItem: selectedItem, canvasRef: canvasRef }))),
tabsDefinition && ((_b = (_a = tabsDefinition[context.editMode]) === null || _a === void 0 ? void 0 : _a.tabs) === null || _b === void 0 ? void 0 : _b.map((tab) => tab.create(onChange, selectedItem, canvasRef)))));
};
ContextTabs.propTypes = {
activeKey: prop_types_1.default.string,
onChangeTab: prop_types_1.default.func,
onChange: prop_types_1.default.func,
canvasRef: prop_types_1.default.object,
selectedItem: prop_types_1.default.object,
tabsDefinition: prop_types_1.default.object,
};
exports.default = ImageMapConfigurations;