Spaces:
Running
Running
| import forEachOwnProperties from 'tui-code-snippet/collection/forEachOwnProperties'; | |
| import commandFactory from '@/factory/command'; | |
| import { commandNames, rejectMessages } from '@/consts'; | |
| const command = { | |
| name: commandNames.SET_OBJECT_PROPERTIES, | |
| /** | |
| * Set object properties | |
| * @param {Graphics} graphics - Graphics instance | |
| * @param {number} id - object id | |
| * @param {Object} props - properties | |
| * @param {string} [props.fill] Color | |
| * @param {string} [props.fontFamily] Font type for text | |
| * @param {number} [props.fontSize] Size | |
| * @param {string} [props.fontStyle] Type of inclination (normal / italic) | |
| * @param {string} [props.fontWeight] Type of thicker or thinner looking (normal / bold) | |
| * @param {string} [props.textAlign] Type of text align (left / center / right) | |
| * @param {string} [props.textDecoration] Type of line (underline / line-through / overline) | |
| * @returns {Promise} | |
| */ | |
| execute(graphics, id, props) { | |
| const targetObj = graphics.getObject(id); | |
| if (!targetObj) { | |
| return Promise.reject(rejectMessages.noObject); | |
| } | |
| this.undoData.props = {}; | |
| forEachOwnProperties(props, (value, key) => { | |
| this.undoData.props[key] = targetObj[key]; | |
| }); | |
| graphics.setObjectProperties(id, props); | |
| return Promise.resolve(); | |
| }, | |
| /** | |
| * @param {Graphics} graphics - Graphics instance | |
| * @param {number} id - object id | |
| * @returns {Promise} | |
| */ | |
| undo(graphics, id) { | |
| const { props } = this.undoData; | |
| graphics.setObjectProperties(id, props); | |
| return Promise.resolve(); | |
| }, | |
| }; | |
| commandFactory.register(command); | |
| export default command; | |