ukelli-ui
Version:
[](https://travis-ci.org/ukelli/ukelli-ui) [](https://packagephobia.now.sh/result?p=ukelli-ui)
108 lines (90 loc) • 4.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DefaultWindowManagerState = exports.windowManagerStore = exports.windowManagerActions = void 0;
var _unistore = _interopRequireDefault(require("unistore"));
var _basicHelper = require("basic-helper");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var DefaultWindowManagerState = {
minSecQueue: [],
sectionsQueue: [],
sectionsList: {}
};
exports.DefaultWindowManagerState = DefaultWindowManagerState;
var windowManagerStore = (0, _unistore.default)(DefaultWindowManagerState);
exports.windowManagerStore = windowManagerStore;
var windowManagerActions = function windowManagerActions(store) {
return {
closeWindow: function closeWindow(_ref, sectionId) {
var sectionsList = _ref.sectionsList,
sectionsQueue = _ref.sectionsQueue;
var nextSectionList = sectionsList;
var nextSectionQueue = (0, _basicHelper.RemoveArrayItem)(sectionsQueue, sectionId);
delete nextSectionList[sectionId];
store.setState({
sectionsList: nextSectionList,
sectionsQueue: nextSectionQueue
});
},
openWindow: function openWindow(_ref2, modalConfig) {
var sectionsList = _ref2.sectionsList,
sectionsQueue = _ref2.sectionsQueue;
var sectionId = modalConfig.id;
var nextState = Object.assign({}, sectionsList);
nextState[sectionId] = Object.assign({}, nextState[sectionId], modalConfig, {
isMinimize: false
});
store.setState({
sectionsList: nextState,
sectionsQueue: [sectionId].concat(_toConsumableArray(sectionsQueue))
});
},
selectWindow: function selectWindow(_ref3, sectionId) {
var sectionsQueue = _ref3.sectionsQueue,
sectionsList = _ref3.sectionsList;
var nextSectionQueue = sectionsQueue;
var nextSectionList = sectionsList;
var selectedCodeIdx = nextSectionQueue.indexOf(sectionId);
nextSectionList[sectionId] = Object.assign({}, nextSectionList[sectionId], {
isMinimize: false
});
var selectedCode = nextSectionQueue.splice(selectedCodeIdx, 1);
nextSectionQueue = selectedCode.concat(nextSectionQueue);
store.setState({
sectionsList: nextSectionList,
sectionsQueue: nextSectionQueue
});
},
minimizeWindow: function minimizeWindow(_ref4, sectionId) {
var minSecQueue = _ref4.minSecQueue,
sectionsQueue = _ref4.sectionsQueue,
sectionsList = _ref4.sectionsList;
var nextSectionQueue = _toConsumableArray(sectionsQueue);
var nextMinSecQueue = _toConsumableArray(minSecQueue);
var nextSectionList = sectionsList;
var displayingWindows = _toConsumableArray(nextSectionQueue);
var miniArr = [sectionId].concat(nextMinSecQueue);
nextSectionList[sectionId] = Object.assign({}, nextSectionList[sectionId], {
isMinimize: true
});
miniArr.forEach(function (minItem) {
var currIdx = displayingWindows.indexOf(minItem);
if (currIdx !== -1) displayingWindows.splice(currIdx, 1);
});
if (displayingWindows.length !== 0) {
this.selectWindow(displayingWindows[0]);
}
store.setState({
sectionsList: nextSectionList,
sectionsQueue: nextSectionQueue,
minSecQueue: nextMinSecQueue
});
}
};
};
exports.windowManagerActions = windowManagerActions;