UNPKG

react-planner-viewer

Version:

react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode

223 lines (188 loc) 15.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadProject = loadProject; exports.newProject = newProject; exports.saveProject = saveProject; exports.openCatalog = openCatalog; exports.changeCatalogPage = changeCatalogPage; exports.goBackToCatalogPage = goBackToCatalogPage; exports.selectToolEdit = selectToolEdit; exports.unselectAll = unselectAll; exports.setProperties = setProperties; exports.setItemsAttributes = setItemsAttributes; exports.setLinesAttributes = setLinesAttributes; exports.setHolesAttributes = setHolesAttributes; exports.remove = remove; exports.undo = undo; exports.rollback = rollback; exports.openProjectConfigurator = openProjectConfigurator; exports.setProjectProperties = setProjectProperties; exports.initCatalog = initCatalog; exports.updateMouseCoord = updateMouseCoord; exports.updateZoomScale = updateZoomScale; exports.toggleSnap = toggleSnap; exports.throwError = throwError; exports.throwWarning = throwWarning; exports.copyProperties = copyProperties; exports.pasteProperties = pasteProperties; exports.pushLastSelectedCatalogElementToHistory = pushLastSelectedCatalogElementToHistory; var _constants = require('../constants'); function loadProject(sceneJSON) { return { type: _constants.LOAD_PROJECT, sceneJSON: sceneJSON }; } function newProject() { return { type: _constants.NEW_PROJECT }; } function saveProject() { return { type: _constants.SAVE_PROJECT }; } function openCatalog() { return { type: _constants.OPEN_CATALOG }; } function changeCatalogPage(newPage, oldPage) { return { type: _constants.CHANGE_CATALOG_PAGE, newPage: newPage, oldPage: oldPage }; } function goBackToCatalogPage(newPage) { return { type: _constants.GO_BACK_TO_CATALOG_PAGE, newPage: newPage }; } function selectToolEdit() { return { type: _constants.SELECT_TOOL_EDIT }; } function unselectAll() { return { type: _constants.UNSELECT_ALL }; } function setProperties(properties) { return { type: _constants.SET_PROPERTIES, properties: properties }; } function setItemsAttributes(itemsAttributes) { itemsAttributes = itemsAttributes.set('rotation', parseFloat(itemsAttributes.get('rotation'))); return { type: _constants.SET_ITEMS_ATTRIBUTES, itemsAttributes: itemsAttributes }; } function setLinesAttributes(linesAttributes) { linesAttributes = linesAttributes.withMutations(function (attributes) { attributes.setIn(['vertexOne', 'x'], parseFloat(linesAttributes.getIn(['vertexOne', 'x']))); attributes.setIn(['vertexOne', 'y'], parseFloat(linesAttributes.getIn(['vertexOne', 'y']))); attributes.setIn(['vertexTwo', 'x'], parseFloat(linesAttributes.getIn(['vertexTwo', 'x']))); attributes.setIn(['vertexTwo', 'y'], parseFloat(linesAttributes.getIn(['vertexTwo', 'y']))); }); return { type: _constants.SET_LINES_ATTRIBUTES, linesAttributes: linesAttributes }; } function setHolesAttributes(holesAttributes) { holesAttributes = holesAttributes.set('offset', parseFloat(holesAttributes.get('offset'))); return { type: _constants.SET_HOLES_ATTRIBUTES, holesAttributes: holesAttributes }; } function remove() { return { type: _constants.REMOVE }; } function undo() { return { type: _constants.UNDO }; } function rollback() { return { type: _constants.ROLLBACK }; } function openProjectConfigurator() { return { type: _constants.OPEN_PROJECT_CONFIGURATOR }; } function setProjectProperties(properties) { return { type: _constants.SET_PROJECT_PROPERTIES, properties: properties }; } function initCatalog(catalog) { return { type: _constants.INIT_CATALOG, catalog: catalog }; } function updateMouseCoord() { var coords = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { x: x, y: y }; return { type: _constants.UPDATE_MOUSE_COORDS, coords: coords }; } function updateZoomScale(scale) { return { type: _constants.UPDATE_ZOOM_SCALE, scale: scale }; } function toggleSnap(mask) { return { type: _constants.TOGGLE_SNAP, mask: mask }; } function throwError(error) { return { type: _constants.THROW_ERROR, error: error }; } function throwWarning(warning) { return { type: _constants.THROW_WARNING, warning: warning }; } function copyProperties(properties) { return { type: _constants.COPY_PROPERTIES, properties: properties }; } function pasteProperties() { return { type: _constants.PASTE_PROPERTIES }; } function pushLastSelectedCatalogElementToHistory(element) { return { type: _constants.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY, element: element }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL3Byb2plY3QtYWN0aW9ucy5qcyJdLCJuYW1lcyI6WyJsb2FkUHJvamVjdCIsIm5ld1Byb2plY3QiLCJzYXZlUHJvamVjdCIsIm9wZW5DYXRhbG9nIiwiY2hhbmdlQ2F0YWxvZ1BhZ2UiLCJnb0JhY2tUb0NhdGFsb2dQYWdlIiwic2VsZWN0VG9vbEVkaXQiLCJ1bnNlbGVjdEFsbCIsInNldFByb3BlcnRpZXMiLCJzZXRJdGVtc0F0dHJpYnV0ZXMiLCJzZXRMaW5lc0F0dHJpYnV0ZXMiLCJzZXRIb2xlc0F0dHJpYnV0ZXMiLCJyZW1vdmUiLCJ1bmRvIiwicm9sbGJhY2siLCJvcGVuUHJvamVjdENvbmZpZ3VyYXRvciIsInNldFByb2plY3RQcm9wZXJ0aWVzIiwiaW5pdENhdGFsb2ciLCJ1cGRhdGVNb3VzZUNvb3JkIiwidXBkYXRlWm9vbVNjYWxlIiwidG9nZ2xlU25hcCIsInRocm93RXJyb3IiLCJ0aHJvd1dhcm5pbmciLCJjb3B5UHJvcGVydGllcyIsInBhc3RlUHJvcGVydGllcyIsInB1c2hMYXN0U2VsZWN0ZWRDYXRhbG9nRWxlbWVudFRvSGlzdG9yeSIsInNjZW5lSlNPTiIsInR5cGUiLCJuZXdQYWdlIiwib2xkUGFnZSIsInByb3BlcnRpZXMiLCJpdGVtc0F0dHJpYnV0ZXMiLCJzZXQiLCJwYXJzZUZsb2F0IiwiZ2V0IiwibGluZXNBdHRyaWJ1dGVzIiwid2l0aE11dGF0aW9ucyIsImF0dHJpYnV0ZXMiLCJzZXRJbiIsImdldEluIiwiaG9sZXNBdHRyaWJ1dGVzIiwiY2F0YWxvZyIsImNvb3JkcyIsIngiLCJ5Iiwic2NhbGUiLCJtYXNrIiwiZXJyb3IiLCJ3YXJuaW5nIiwiZWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUE2QmdCQSxXLEdBQUFBLFc7UUFPQUMsVSxHQUFBQSxVO1FBTUFDLFcsR0FBQUEsVztRQU1BQyxXLEdBQUFBLFc7UUFNQUMsaUIsR0FBQUEsaUI7UUFRQUMsbUIsR0FBQUEsbUI7UUFPQUMsYyxH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QUZLLEdBQVA7QUFJRDs7QUFFTSxTQUFTekIsWUFBVCxDQUFzQjBCLE9BQXRCLEVBQStCO0FBQ3BDLFNBQU87QUFDTHJCLGtDQURLO0FBRUxxQjtBQUZLLEdBQVA7QUFJRDs7QUFFTSxTQUFTekIsY0FBVCxDQUF3Qk8sVUFBeEIsRUFBb0M7QUFDekMsU0FBTztBQUNMSCxvQ0FESztBQUVMRztBQUZLLEdBQVA7QUFJRDs7QUFFTSxTQUFTTixlQUFULEdBQTJCO0FBQ2hDLFNBQU87QUFDTEc7QUFESyxHQUFQO0FBR0Q7O0FBRU0sU0FBU0YsdUNBQVQsQ0FBa0R3QixPQUFsRCxFQUE0RDtBQUNqRSxTQUFPO0FBQ0x0QixrRUFESztBQUVMc0I7QUFGSyxHQUFQO0FBSUQiLCJmaWxlIjoicHJvamVjdC1hY3Rpb25zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTkVXX1BST0pFQ1QsXG4gIExPQURfUFJPSkVDVCxcbiAgU0FWRV9QUk9KRUNULFxuICBPUEVOX0NBVEFMT0csXG4gIFNFTEVDVF9UT09MX0VESVQsXG4gIFVOU0VMRUNUX0FMTCxcbiAgU0VUX1BST1BFUlRJRVMsXG4gIFNFVF9JVEVNU19BVFRSSUJVVEVTLFxuICBTRVRfTElORVNfQVRUUklCVVRFUyxcbiAgU0VUX0hPTEVTX0FUVFJJQlVURVMsXG4gIFJFTU9WRSxcbiAgVU5ETyxcbiAgUk9MTEJBQ0ssXG4gIE9QRU5fUFJPSkVDVF9DT05GSUdVUkFUT1IsXG4gIFNFVF9QUk9KRUNUX1BST1BFUlRJRVMsXG4gIElOSVRfQ0FUQUxPRyxcbiAgVVBEQVRFX01PVVNFX0NPT1JEUyxcbiAgVVBEQVRFX1pPT01fU0NBTEUsXG4gIFRPR0dMRV9TTkFQLFxuICBDSEFOR0VfQ0FUQUxPR19QQUdFLFxuICBHT19CQUNLX1RPX0NBVEFMT0dfUEFHRSxcbiAgVEhST1dfRVJST1IsXG4gIFRIUk9XX1dBUk5JTkcsXG4gIENPUFlfUFJPUEVSVElFUyxcbiAgUEFTVEVfUFJPUEVSVElFUyxcbiAgUFVTSF9MQVNUX1NFTEVDVEVEX0NBVEFMT0dfRUxFTUVOVF9UT19ISVNUT1JZXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdChzY2VuZUpTT04pIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBMT0FEX1BST0pFQ1QsXG4gICAgc2NlbmVKU09OXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld1Byb2plY3QoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTkVXX1BST0pFQ1RcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZVByb2plY3QoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogU0FWRV9QUk9KRUNUXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5DYXRhbG9nKCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IE9QRU5fQ0FUQUxPR1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VDYXRhbG9nUGFnZShuZXdQYWdlLCBvbGRQYWdlKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQ0hBTkdFX0NBVEFMT0dfUEFHRSxcbiAgICBuZXdQYWdlLFxuICAgIG9sZFBhZ2VcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdvQmFja1RvQ2F0YWxvZ1BhZ2UobmV3UGFnZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IEdPX0JBQ0tfVE9fQ0FUQUxPR19QQUdFLFxuICAgIG5ld1BhZ2VcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdFRvb2xFZGl0KCkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFNFTEVDVF9UT09MX0VESVRcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zZWxlY3RBbGwoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVU5TRUxFQ1RfQUxMXG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gc2V0UHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogU0VUX1BST1BFUlRJRVMsXG4gICAgcHJvcGVydGllc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRJdGVtc0F0dHJpYnV0ZXMoaXRlbXNBdHRyaWJ1dGVzKSB7XG5cbiAgaXRlbXNBdHRyaWJ1dGVzID0gaXRlbXNBdHRyaWJ1dGVzLnNldCgncm90YXRpb24nLCBwYXJzZUZsb2F0KGl0ZW1zQXR0cmlidXRlcy5nZXQoJ3JvdGF0aW9uJykpKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6IFNFVF9JVEVNU19BVFRSSUJVVEVTLFxuICAgIGl0ZW1zQXR0cmlidXRlc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRMaW5lc0F0dHJpYnV0ZXMobGluZXNBdHRyaWJ1dGVzKSB7XG5cbiAgbGluZXNBdHRyaWJ1dGVzID0gbGluZXNBdHRyaWJ1dGVzLndpdGhNdXRhdGlvbnMoYXR0cmlidXRlcyA9PiB7XG4gICAgYXR0cmlidXRlcy5zZXRJbihbJ3ZlcnRleE9uZScsICd4J10sIHBhcnNlRmxvYXQobGluZXNBdHRyaWJ1dGVzLmdldEluKFsndmVydGV4T25lJywgJ3gnXSkpKTtcbiAgICBhdHRyaWJ1dGVzLnNldEluKFsndmVydGV4T25lJywgJ3knXSwgcGFyc2VGbG9hdChsaW5lc0F0dHJpYnV0ZXMuZ2V0SW4oWyd2ZXJ0ZXhPbmUnLCAneSddKSkpO1xuICAgIGF0dHJpYnV0ZXMuc2V0SW4oWyd2ZXJ0ZXhUd28nLCAneCddLCBwYXJzZUZsb2F0KGxpbmVzQXR0cmlidXRlcy5nZXRJbihbJ3ZlcnRleFR3bycsICd4J10pKSk7XG4gICAgYXR0cmlidXRlcy5zZXRJbihbJ3ZlcnRleFR3bycsICd5J10sIHBhcnNlRmxvYXQobGluZXNBdHRyaWJ1dGVzLmdldEluKFsndmVydGV4VHdvJywgJ3knXSkpKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBTRVRfTElORVNfQVRUUklCVVRFUyxcbiAgICBsaW5lc0F0dHJpYnV0ZXNcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0SG9sZXNBdHRyaWJ1dGVzKGhvbGVzQXR0cmlidXRlcykge1xuXG4gIGhvbGVzQXR0cmlidXRlcyA9IGhvbGVzQXR0cmlidXRlcy5zZXQoJ29mZnNldCcsIHBhcnNlRmxvYXQoaG9sZXNBdHRyaWJ1dGVzLmdldCgnb2Zmc2V0JykpKTtcblxuICByZXR1cm4ge1xuICAgIHR5cGU6IFNFVF9IT0xFU19BVFRSSUJVVEVTLFxuICAgIGhvbGVzQXR0cmlidXRlc1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmUoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogUkVNT1ZFXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuZG8oKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVU5ET1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByb2xsYmFjaygpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBST0xMQkFDS1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuUHJvamVjdENvbmZpZ3VyYXRvcigpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBPUEVOX1BST0pFQ1RfQ09ORklHVVJBVE9SXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFByb2plY3RQcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBTRVRfUFJPSkVDVF9QUk9QRVJUSUVTLFxuICAgIHByb3BlcnRpZXNcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdENhdGFsb2coY2F0YWxvZykge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IElOSVRfQ0FUQUxPRyxcbiAgICBjYXRhbG9nXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1vdXNlQ29vcmQoY29vcmRzID0ge3gsIHl9KSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVVBEQVRFX01PVVNFX0NPT1JEUyxcbiAgICBjb29yZHNcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVpvb21TY2FsZShzY2FsZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IFVQREFURV9aT09NX1NDQUxFLFxuICAgIHNjYWxlXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVTbmFwKG1hc2spIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBUT0dHTEVfU05BUCxcbiAgICBtYXNrXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0Vycm9yKGVycm9yKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVEhST1dfRVJST1IsXG4gICAgZXJyb3JcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93V2FybmluZyh3YXJuaW5nKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogVEhST1dfV0FSTklORyxcbiAgICB3YXJuaW5nXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3B5UHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogQ09QWV9QUk9QRVJUSUVTLFxuICAgIHByb3BlcnRpZXNcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhc3RlUHJvcGVydGllcygpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBQQVNURV9QUk9QRVJUSUVTXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwdXNoTGFzdFNlbGVjdGVkQ2F0YWxvZ0VsZW1lbnRUb0hpc3RvcnkoIGVsZW1lbnQgKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogUFVTSF9MQVNUX1NFTEVDVEVEX0NBVEFMT0dfRUxFTUVOVF9UT19ISVNUT1JZLFxuICAgIGVsZW1lbnRcbiAgfTtcbn1cbiJdfQ==