UNPKG

react-annotation

Version:

React components for annotating SVG elements

99 lines (81 loc) 3.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; var _react = _interopRequireDefault(require("react")); var _Annotation = _interopRequireDefault(require("../Annotation")); var _EditableAnnotation = _interopRequireDefault(require("../EditableAnnotation")); var _ConnectorLine = _interopRequireDefault(require("../Connector/ConnectorLine")); var _ConnectorElbow = _interopRequireDefault(require("../Connector/ConnectorElbow")); var _ConnectorCurve = _interopRequireDefault(require("../Connector/ConnectorCurve")); var _ConnectorEndDot = _interopRequireDefault(require("../Connector/ConnectorEndDot")); var _ConnectorEndArrow = _interopRequireDefault(require("../Connector/ConnectorEndArrow")); var _Subject = _interopRequireDefault(require("../Subject/Subject")); var _Note = _interopRequireDefault(require("../Note/Note")); var _JSXNote = _interopRequireDefault(require("../Note/JSXNote")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var getAnnotationType = function getAnnotationType(editMode) { return editMode ? _EditableAnnotation.default : _Annotation.default; }; function _default(props, Connector) { var NoteDefaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var Subject = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _Subject.default; var SubjectDefaultProps = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; var NoteType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : _Note.default; var _props$disable = props.disable, disable = _props$disable === void 0 ? [] : _props$disable, connector = props.connector, note = props.note, subject = props.subject, x = props.x, y = props.y, dx = props.dx, dy = props.dy, nx = props.nx, ny = props.ny, color = props.color, className = props.className, onDrag = props.onDrag, onDragStart = props.onDragStart, onDragEnd = props.onDragEnd, editMode = props.editMode, events = props.events; var CONNECTORS = { type: { curve: _ConnectorCurve.default, line: _ConnectorLine.default, elbow: _ConnectorElbow.default }, end: { dot: _ConnectorEndDot.default, arrow: _ConnectorEndArrow.default } }; var ConnectorType, ConnectorEndType; if (disable.indexOf("connector") === -1) { ConnectorType = connector && CONNECTORS.type[connector.type] || Connector; ConnectorEndType = connector && CONNECTORS.end[connector.end]; } var AnnotationType = getAnnotationType(props.editMode); return _react.default.createElement(AnnotationType, _extends({ x: x, y: y, dx: dx, dy: dy, nx: nx, ny: ny, color: color, className: className, onDrag: onDrag, onDragStart: onDragStart, onDragEnd: onDragEnd, editMode: editMode }, SubjectDefaultProps, subject, { events: events }), ConnectorType && _react.default.createElement(ConnectorType, connector, ConnectorEndType && _react.default.createElement(ConnectorEndType, null)), Subject && disable.indexOf("subject") === -1 && _react.default.createElement(Subject, null), note && disable.indexOf("note") === -1 && (_react.default.isValidElement(note) || typeof note === "function" ? _react.default.createElement(_JSXNote.default, { noteDefaultProps: NoteDefaultProps, note: note }) : _react.default.createElement(NoteType, _extends({}, NoteDefaultProps, note)))); }