UNPKG

@arudovwen/react-form-builder

Version:
109 lines (108 loc) 2.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _beedle = _interopRequireDefault(require("beedle")); var _requests = require("./requests"); let _saveUrl; let _onPost; let _onLoad; const store = new _beedle.default({ actions: { setData(context, data, saveData) { context.commit('setData', data); if (saveData) this.save(data); }, load(context, { loadUrl, saveUrl, data, saveAlways }) { _saveUrl = saveUrl; const saveA = saveAlways || saveAlways === undefined; context.commit('setSaveAlways', saveA); if (_onLoad) { _onLoad().then(x => { if (data && data.length > 0 && x.length === 0) { data.forEach(y => x.push(y)); } this.setData(context, x); }); } else if (loadUrl) { (0, _requests.get)(loadUrl).then(x => { if (data && data.length > 0 && x.length === 0) { data.forEach(y => x.push(y)); } this.setData(context, x); }); } else { this.setData(context, data); } }, create(context, element) { const { data, saveAlways } = context.state; data.push(element); this.setData(context, data, saveAlways); }, delete(context, element) { const { data, saveAlways } = context.state; data.splice(data.indexOf(element), 1); this.setData(context, data, saveAlways); }, post(context) { const { data } = context.state; this.setData(context, data, true); }, updateOrder(context, elements) { const { saveAlways } = context.state; const newData = elements.filter(x => x && !x.parentId); elements.filter(x => x && x.parentId).forEach(x => newData.push(x)); this.setData(context, newData, saveAlways); }, save(data) { if (_onPost) { _onPost({ task_data: data }); } else if (_saveUrl) { (0, _requests.post)(_saveUrl, { task_data: data }); } } }, mutations: { setData(state, payload) { // eslint-disable-next-line no-param-reassign state.data = payload; return state; }, setSaveAlways(state, payload) { // eslint-disable-next-line no-param-reassign state.saveAlways = payload; return state; } }, initialState: { data: [], saveAlways: true } }); store.setExternalHandler = (onLoad, onPost) => { _onLoad = onLoad; _onPost = onPost; }; var _default = exports.default = store;