UNPKG

plot-plan-designer

Version:

Design Editor Tools with React.js + ant.design + fabric.js

111 lines (110 loc) 5.11 kB
"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 i18next_1 = __importDefault(require("i18next")); const _1 = require("."); const FileUpload_1 = __importDefault(require("./FileUpload")); let SVGModal = /** @class */ (() => { class SVGModal extends react_1.Component { constructor() { super(...arguments); this.state = { loadType: 'file', visible: false, }; this.handleChangeSvgType = e => { this.props.form.resetFields(); this.setState({ loadType: e.target.value, }); }; this.handleOk = () => { const { form, onOk } = this.props; form.validateFields((err, values) => { if (err) { return; } if (values.svg instanceof Blob) { const reader = new FileReader(); reader.readAsDataURL(values.svg); reader.onload = () => { onOk(Object.assign(Object.assign({}, values), { svg: reader.result })); }; } else { onOk(values); } }); }; this.handleCancel = () => { const { onCancel } = this.props; if (onCancel) { onCancel(); return; } this.setState({ visible: false, }); }; } UNSAFE_componentWillReceiveProps(nextProps) { if (nextProps.visible !== this.props.visible) { this.setState({ visible: nextProps.visible, }); } } render() { const { form } = this.props; const { loadType, visible } = this.state; return (react_1.default.createElement(antd_1.Modal, { title: i18next_1.default.t('imagemap.svg.add-svg'), closable: true, onCancel: this.handleCancel, onOk: this.handleOk, visible: visible }, react_1.default.createElement(antd_1.Form, { colon: false }, react_1.default.createElement(antd_1.Form.Item, { label: i18next_1.default.t('common.type') }, form.getFieldDecorator('loadType', { initialValue: loadType, })(react_1.default.createElement(antd_1.Radio.Group, { onChange: this.handleChangeSvgType }, react_1.default.createElement(antd_1.Radio.Button, { value: "file" }, i18next_1.default.t('common.file')), react_1.default.createElement(antd_1.Radio.Button, { value: "svg" }, i18next_1.default.t('common.svg'))))), react_1.default.createElement(antd_1.Form.Item, { label: loadType === 'svg' ? i18next_1.default.t('common.svg') : i18next_1.default.t('common.file') }, form.getFieldDecorator('svg', { rules: [ { required: true, message: i18next_1.default.t('validation.enter-property', { arg: loadType === 'svg' ? i18next_1.default.t('common.svg') : i18next_1.default.t('common.file'), }), }, ], })(loadType === 'svg' ? react_1.default.createElement(_1.InputHtml, null) : react_1.default.createElement(FileUpload_1.default, { accept: ".svg" })))))); } } SVGModal.propTypes = { onOk: prop_types_1.default.func.isRequired, onCancel: prop_types_1.default.func, visible: prop_types_1.default.bool.isRequired, }; return SVGModal; })(); exports.default = antd_1.Form.create()(SVGModal);