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
JavaScript
;
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==