react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
43 lines (38 loc) • 5.18 kB
JavaScript
export default function mergePlugins(plugins) {
var customActions = {};
var toolbarButtons = [];
var customContents = {};
var customReducer = [];
var actionsExtraArgument = {};
var onReady = [];
plugins.forEach(function (plugin) {
if (plugin.hasOwnProperty('actions')) Object.assign(customActions, plugin.actions);
if (plugin.hasOwnProperty('actionsExtraArgument')) Object.assign(actionsExtraArgument, plugin.actionsExtraArgument);
if (plugin.hasOwnProperty('toolbarButtons')) plugin.toolbarButtons.forEach(function (button) {
return toolbarButtons.push(button);
});
if (plugin.hasOwnProperty('contents')) Object.assign(customContents, plugin.contents);
if (plugin.hasOwnProperty('reducer')) customReducer.push(plugin.reducer);
if (plugin.hasOwnProperty('onReady')) onReady.push(plugin.onReady);
});
var onReadyFunc = function onReadyFunc(store) {
onReady.forEach(function (f) {
return f(store);
});
};
var customReducerFunc = function customReducerFunc(state, action) {
customReducer.forEach(function (f) {
return state = f(state, action);
});
return state;
};
return {
customActions: customActions,
toolbarButtons: toolbarButtons,
customContents: customContents,
customReducer: customReducerFunc,
actionsExtraArgument: actionsExtraArgument,
onReady: onReadyFunc
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9tZXJnZS1wbHVnaW5zLmpzIl0sIm5hbWVzIjpbIm1lcmdlUGx1Z2lucyIsInBsdWdpbnMiLCJjdXN0b21BY3Rpb25zIiwidG9vbGJhckJ1dHRvbnMiLCJjdXN0b21Db250ZW50cyIsImN1c3RvbVJlZHVjZXIiLCJhY3Rpb25zRXh0cmFBcmd1bWVudCIsIm9uUmVhZHkiLCJmb3JFYWNoIiwicGx1Z2luIiwiaGFzT3duUHJvcGVydHkiLCJPYmplY3QiLCJhc3NpZ24iLCJhY3Rpb25zIiwicHVzaCIsImJ1dHRvbiIsImNvbnRlbnRzIiwicmVkdWNlciIsIm9uUmVhZHlGdW5jIiwiZiIsInN0b3JlIiwiY3VzdG9tUmVkdWNlckZ1bmMiLCJzdGF0ZSIsImFjdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxTQUFTQSxZQUFULENBQXNCQyxPQUF0QixFQUErQjs7QUFFNUMsTUFBSUMsZ0JBQWdCLEVBQXBCO0FBQ0EsTUFBSUMsaUJBQWlCLEVBQXJCO0FBQ0EsTUFBSUMsaUJBQWlCLEVBQXJCO0FBQ0EsTUFBSUMsZ0JBQWdCLEVBQXBCO0FBQ0EsTUFBSUMsdUJBQXVCLEVBQTNCO0FBQ0EsTUFBSUMsVUFBVSxFQUFkOztBQUVBTixVQUFRTyxPQUFSLENBQWdCLGtCQUFVO0FBQ3hCLFFBQUlDLE9BQU9DLGNBQVAsQ0FBc0IsU0FBdEIsQ0FBSixFQUFzQ0MsT0FBT0MsTUFBUCxDQUFjVixhQUFkLEVBQTZCTyxPQUFPSSxPQUFwQztBQUN0QyxRQUFJSixPQUFPQyxjQUFQLENBQXNCLHNCQUF0QixDQUFKLEVBQW1EQyxPQUFPQyxNQUFQLENBQWNOLG9CQUFkLEVBQW9DRyxPQUFPSCxvQkFBM0M7QUFDbkQsUUFBSUcsT0FBT0MsY0FBUCxDQUFzQixnQkFBdEIsQ0FBSixFQUE2Q0QsT0FBT04sY0FBUCxDQUFzQkssT0FBdEIsQ0FBOEI7QUFBQSxhQUFVTCxlQUFlVyxJQUFmLENBQW9CQyxNQUFwQixDQUFWO0FBQUEsS0FBOUI7QUFDN0MsUUFBSU4sT0FBT0MsY0FBUCxDQUFzQixVQUF0QixDQUFKLEVBQXVDQyxPQUFPQyxNQUFQLENBQWNSLGNBQWQsRUFBOEJLLE9BQU9PLFFBQXJDO0FBQ3ZDLFFBQUlQLE9BQU9DLGNBQVAsQ0FBc0IsU0FBdEIsQ0FBSixFQUFzQ0wsY0FBY1MsSUFBZCxDQUFtQkwsT0FBT1EsT0FBMUI7QUFDdEMsUUFBSVIsT0FBT0MsY0FBUCxDQUFzQixTQUF0QixDQUFKLEVBQXNDSCxRQUFRTyxJQUFSLENBQWFMLE9BQU9GLE9BQXBCO0FBQ3ZDLEdBUEQ7O0FBU0EsTUFBSVcsY0FBYyxTQUFkQSxXQUFjLFFBQVM7QUFDekJYLFlBQVFDLE9BQVIsQ0FBZ0I7QUFBQSxhQUFLVyxFQUFFQyxLQUFGLENBQUw7QUFBQSxLQUFoQjtBQUNELEdBRkQ7O0FBSUEsTUFBSUMsb0JBQW9CLFNBQXBCQSxpQkFBb0IsQ0FBQ0MsS0FBRCxFQUFRQyxNQUFSLEVBQW1CO0FBQ3pDbEIsa0JBQWNHLE9BQWQsQ0FBc0I7QUFBQSxhQUFLYyxRQUFRSCxFQUFFRyxLQUFGLEVBQVNDLE1BQVQsQ0FBYjtBQUFBLEtBQXRCO0FBQ0EsV0FBT0QsS0FBUDtBQUNELEdBSEQ7O0FBS0EsU0FBTztBQUNMcEIsZ0NBREs7QUFFTEMsa0NBRks7QUFHTEMsa0NBSEs7QUFJTEMsbUJBQWVnQixpQkFKVjtBQUtMZiw4Q0FMSztBQU1MQyxhQUFTVztBQU5KLEdBQVA7QUFRRCIsImZpbGUiOiJtZXJnZS1wbHVnaW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbWVyZ2VQbHVnaW5zKHBsdWdpbnMpIHtcblxuICBsZXQgY3VzdG9tQWN0aW9ucyA9IHt9O1xuICBsZXQgdG9vbGJhckJ1dHRvbnMgPSBbXTtcbiAgbGV0IGN1c3RvbUNvbnRlbnRzID0ge307XG4gIGxldCBjdXN0b21SZWR1Y2VyID0gW107XG4gIGxldCBhY3Rpb25zRXh0cmFBcmd1bWVudCA9IHt9O1xuICBsZXQgb25SZWFkeSA9IFtdO1xuXG4gIHBsdWdpbnMuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgIGlmIChwbHVnaW4uaGFzT3duUHJvcGVydHkoJ2FjdGlvbnMnKSkgT2JqZWN0LmFzc2lnbihjdXN0b21BY3Rpb25zLCBwbHVnaW4uYWN0aW9ucyk7XG4gICAgaWYgKHBsdWdpbi5oYXNPd25Qcm9wZXJ0eSgnYWN0aW9uc0V4dHJhQXJndW1lbnQnKSkgT2JqZWN0LmFzc2lnbihhY3Rpb25zRXh0cmFBcmd1bWVudCwgcGx1Z2luLmFjdGlvbnNFeHRyYUFyZ3VtZW50KTtcbiAgICBpZiAocGx1Z2luLmhhc093blByb3BlcnR5KCd0b29sYmFyQnV0dG9ucycpKSBwbHVnaW4udG9vbGJhckJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4gdG9vbGJhckJ1dHRvbnMucHVzaChidXR0b24pKTtcbiAgICBpZiAocGx1Z2luLmhhc093blByb3BlcnR5KCdjb250ZW50cycpKSBPYmplY3QuYXNzaWduKGN1c3RvbUNvbnRlbnRzLCBwbHVnaW4uY29udGVudHMpO1xuICAgIGlmIChwbHVnaW4uaGFzT3duUHJvcGVydHkoJ3JlZHVjZXInKSkgY3VzdG9tUmVkdWNlci5wdXNoKHBsdWdpbi5yZWR1Y2VyKTtcbiAgICBpZiAocGx1Z2luLmhhc093blByb3BlcnR5KCdvblJlYWR5JykpIG9uUmVhZHkucHVzaChwbHVnaW4ub25SZWFkeSk7XG4gIH0pO1xuXG4gIGxldCBvblJlYWR5RnVuYyA9IHN0b3JlID0+IHtcbiAgICBvblJlYWR5LmZvckVhY2goZiA9PiBmKHN0b3JlKSlcbiAgfTtcblxuICBsZXQgY3VzdG9tUmVkdWNlckZ1bmMgPSAoc3RhdGUsIGFjdGlvbikgPT4ge1xuICAgIGN1c3RvbVJlZHVjZXIuZm9yRWFjaChmID0+IHN0YXRlID0gZihzdGF0ZSwgYWN0aW9uKSk7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgY3VzdG9tQWN0aW9ucyxcbiAgICB0b29sYmFyQnV0dG9ucyxcbiAgICBjdXN0b21Db250ZW50cyxcbiAgICBjdXN0b21SZWR1Y2VyOiBjdXN0b21SZWR1Y2VyRnVuYyxcbiAgICBhY3Rpb25zRXh0cmFBcmd1bWVudCxcbiAgICBvblJlYWR5OiBvblJlYWR5RnVuY1xuICB9O1xufVxuIl19