UNPKG

ukelli-ui

Version:

Base on React's UI lib. Make frontend's dev simpler and faster.

111 lines (110 loc) 4.71 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; import createStore from 'unistore'; import { RemoveArrayItem } from 'basic-helper'; var DefaultWindowManagerState = { minSecQueue: [], sectionsQueue: [], sectionsList: {}, }; var windowManagerStore = createStore(DefaultWindowManagerState); var windowManagerActions = function (store) { return ({ closeAllWindow: function () { store.setState(__assign({}, DefaultWindowManagerState)); }, closeWindow: function (_a, sectionId) { var sectionsList = _a.sectionsList, sectionsQueue = _a.sectionsQueue, minSecQueue = _a.minSecQueue; if (!sectionId) return; var nextSectionList = sectionsList; var nextSectionQueue = RemoveArrayItem(sectionsQueue, sectionId); delete nextSectionList[sectionId]; store.setState({ sectionsList: nextSectionList, sectionsQueue: nextSectionQueue, minSecQueue: RemoveArrayItem(minSecQueue, sectionId) }); }, openWindow: function (_a, modalConfig) { var sectionsList = _a.sectionsList, sectionsQueue = _a.sectionsQueue, minSecQueue = _a.minSecQueue; var sectionId = modalConfig.id; var nextListState = Object.assign({}, sectionsList); var hasCurrSection = !!nextListState[sectionId]; nextListState[sectionId] = Object.assign({}, nextListState[sectionId], modalConfig, { isMinimize: false }); store.setState({ sectionsList: nextListState, sectionsQueue: hasCurrSection ? sectionsQueue : __spreadArrays([sectionId], sectionsQueue), minSecQueue: RemoveArrayItem(minSecQueue, sectionId) }); }, selectWindow: function (_a, sectionId) { var sectionsQueue = _a.sectionsQueue, sectionsList = _a.sectionsList, minSecQueue = _a.minSecQueue; if (!sectionId) return; var nextSectionQueue = __spreadArrays(sectionsQueue); var nextSectionList = sectionsList; var selectedCodeIdx = nextSectionQueue.indexOf(sectionId); var nextMinSecQueue = RemoveArrayItem(minSecQueue, sectionId); if (!nextSectionList[sectionId]) return; nextSectionList[sectionId] = Object.assign({}, nextSectionList[sectionId], { isMinimize: false }); nextSectionQueue.splice(selectedCodeIdx, 1); nextSectionQueue = [sectionId].concat(nextSectionQueue); store.setState({ sectionsList: nextSectionList, sectionsQueue: nextSectionQueue, minSecQueue: nextMinSecQueue }); }, minimizeWindow: function (_a, sectionId) { var minSecQueue = _a.minSecQueue, sectionsQueue = _a.sectionsQueue, sectionsList = _a.sectionsList; if (!sectionId) return; var nextSectionQueue = __spreadArrays(sectionsQueue); var nextMinSecQueue = __spreadArrays(minSecQueue); var nextSectionList = Object.assign({}, sectionsList); var displayingQueue = __spreadArrays(nextSectionQueue); var miniArr = [sectionId].concat(nextMinSecQueue); miniArr = miniArr.deduplication(); nextSectionList[sectionId] = Object.assign({}, nextSectionList[sectionId], { isMinimize: true, }); miniArr.forEach(function (minItem) { var currIdx = displayingQueue.indexOf(minItem); if (currIdx !== -1) displayingQueue.splice(currIdx, 1); }); // nextSectionQueue = displayingQueue; if (displayingQueue.length !== 0) { // this.selectWindow(displayingQueue[0]); // nextSectionList = } nextSectionQueue = RemoveArrayItem(nextSectionQueue, sectionId).concat(sectionId); store.setState({ sectionsList: nextSectionList, sectionsQueue: nextSectionQueue, minSecQueue: miniArr }); } }); }; export { windowManagerActions, windowManagerStore, DefaultWindowManagerState };