{"version":3,"sources":["@Cyclope/original/helpers/functions.js","@Cyclope/core/store/axios.js","@Cyclope/core/store/db.ts","@Cyclope/core/store/models/index.d.ts","@Cyclope/core/store/effects/fnInitApp.js","@Cyclope/core/store/effects/fnLogin.js","@Cyclope/original/models/container.js","@Cyclope/core/store/effects/fnRedrawing.js","@Cyclope/core/store/effects/fnMainRedrawing.js","@Cyclope/core/store/effects/fnDestroy.js","@Cyclope/core/store/effects/fnUpdateParent.js","@Cyclope/core/store/effects/fnSetActiveTab.js","@Cyclope/core/store/models/state.js","@Cyclope/core/store/effects/fnComponentLoading.js","@Cyclope/core/store/models/handleForm.js","@Cyclope/core/store/models/setting.ts","@Cyclope/core/store/index.js","@Cyclope/manufacturing/screens/index.tsx","@Cyclope/core/index.ts","@Cyclope/original/index.js","@Cyclope/App.tsx","serviceWorker.ts","index.tsx","@Cyclope/core/store/extra/index.ts","@Cyclope/core/store/effects/extra/functions.js"],"names":["_","require","isFunction","functionToCheck","toString","call","handleChange","design","this","props","options","getFieldsValue","redrawing","isNull","change","isUndefined","console","warn","setTimeout","values","action","data","Object","assign","value_modification","map","keys","forEach","key","obj","get_class","concat","replace","result","undefined","constructor","prototype","_isAMomentObject","_f","local","format","clone_object","ovject","clone","JSON","stringify","parse","getMeta","metaName","metas","document","getElementsByTagName","i","length","getAttribute","get_fromat_file","filename","split","pop","is_dark","str","color","substring","rgb","parseInt","axios","printMessage","status","content","errors","isObject","index","className","notification","warning","message","description","defaults","headers","post","route","body","colback","then","response","isJson","catch","error","DB","destroy","window","location","reload","postGetData","api","postApi","e","appName","request","dataSource","a","caches","open","put","Response","ls","set","cache","match","json","value","delete","remove","save","retrieve","EnumAppTemplate","ExitButtonTemplate","fnInitApp","dispatch","token","menu","search","queryString","model","state","mainRedrawing","setting","initAuth","loginReceived","initialRoute","uuid","container","pid","title","id","loading","disabled","update","action_tab","trim","redrawingMessage","payload","Modal","type","text","modalType","onOk","onCancel","confirm","okText","cancelText","duration","fnRedrawing","storage","successfully","log","file","mime","XMLHttpRequest","setRequestHeader","responseType","onload","arrayBufferView","Uint8Array","Blob","urlCreator","URL","webkitURL","fileurl","createObjectURL","tempLink","createElement","href","setAttribute","name","click","revokeObjectURL","send","redrawingFile","print","printJS","push","draw","close","findById","storageDrawer","guiType","visible","width","containerDraw","drawer","reloadData","updateingObject","objectKey","Array","isArray","paths","findProperty","beenChanged","path","parentElement","elem","pathSplit","len","keyPid","redrawingUpdate","closeParent","callback","requestAllowed","answer","fnMainRedrawing","String","allowed","item","fnDestroy","Promise","resolve","splice","updateParent","sendToRedraind","component","fnUpdateParent","components","updateing","keyUpdate","componentLoading","fixedPath","element","flag","indexOf","val","fnSetActiveTab","tableFormDataValuses","placement","closable","reducers","setLoadding","tableFormSetValues","setDrawer","effects","initApp","rootState","login","user","defaultRoutes","filter","m","isDefault","fnLogin","forgotPassword","form","info","fnForgotPassword","registration","fnRegistration","logout","fnLogout","fnComponentLoading","setComponentLoading","fnSetComponentLoading","setActiveTab","tableFormGetValues","closeDrawer","handleForm","initialValue","confirmDestroy","check","initialState","showForgotPassword","isMobileDisplay","appTemplate","TitleBar","logoHidden","logoPath","exitButtonTemplate","Short","ready","builder","isMobile","init","cloneObject","entries","store","models","desktop","Login","React","lazy","Dashboard","mobile","connect","screens","Helmet","fallback","isEmpty","OriginalApp","loadProgressBar","locale","ruRU","Component","App","Boolean","hostname","initializeIcons","ReactDOM","render","getElementById","navigator","serviceWorker","unregister","findByFiled","array","findIndex","o","twoObjectsAreEqual","objectOne","objectTwo","any","valueExist","isBlank","test","propContentPart","maps","maximumDescent"],"mappings":"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","file":"static/js/main.765f424f.chunk.js","sourcesContent":["const _ = require('lodash');\n\n// Функция проверки что это функция\nexport function isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n// Функция срабатывает при Change в тэгах\nexport function handleChange(design) {\n const {options, getFieldsValue, redrawing} = this.props;\n if (\n !_.isNull(options.change) &&\n !_.isUndefined(options.change)\n ) {\n if (!_.isUndefined(getFieldsValue) && !_.isUndefined(redrawing)) {\n // Задержка чтобы данные обновились\n setTimeout(function () {\n const values = getFieldsValue();\n let action = options.change;\n action.data = Object.assign({}, action.data, value_modification(values));\n redrawing(action);\n }, 100)\n } else if (_.isUndefined(getFieldsValue)) {\n console.warn('Не найдена функция getFieldsValue в объекте', this);\n } else if (_.isUndefined(redrawing)) {\n console.warn('Не найдена функция redrawing в объекте', this);\n }\n }\n}\n// Получить сласс у переменной\nexport function get_class(obj){\n function get_class(obj){\n return \"\".concat(obj).replace(/^.*function\\s+([^\\s]*|[^\\(]*)\\([^\\x00]+$/, \"$1\") || \"anonymous\";\n };\n var result = \"\";\n if(obj === null)\n result = \"null\";\n else if(obj === undefined)\n result = \"undefined\";\n else {\n result = get_class(obj.constructor);\n if(result === \"Object\" && obj.constructor.prototype) {\n for(result in this) {\n if(typeof(this[result]) === \"function\" && obj instanceof this[result]) {\n result = get_class(this[result]);\n break;\n }\n }\n }\n };\n return result;\n};\n// Модификатор перед отправкой форм\nexport function value_modification(values) {\n var map = {};\n\n Object.keys(values).forEach((key) => {\n map[key] = values[key];\n if (get_class(values[key]) === \"Moment\" || (values[key] && values[key]._isAMomentObject)) {\n if (values[key]._f) map[key] = values[key].local().format(values[key]._f);\n else map[key] = values[key].local().format('YYYY-MM-DD HH:mm:ss');\n }\n });\n\n return map;\n}\n// Клонируем объект\nexport function clone_object(ovject) {\n var clone = JSON.stringify(ovject);\n return JSON.parse(clone);\n};\n// Получить meta\nexport function getMeta(metaName) {\n const metas = document.getElementsByTagName('meta');\n\n for (let i = 0; i < metas.length; i++) {\n if (metas[i].getAttribute('name') === metaName) {\n return metas[i].getAttribute('content');\n }\n }\n\n return '';\n}\n// Получить расширение файла\nexport function get_fromat_file(filename) {\n if (!_.isUndefined(filename) && !_.isNull(filename)) {\n return filename.split('.').pop();\n }\n return null;\n}\n\nexport function is_dark(str) {\n let color = str.substring(1); // strip #\n let rgb = parseInt(color, 16); // convert rrggbb to decimal\n let r = (rgb >> 16) & 0xff; // extract red\n let g = (rgb >> 8) & 0xff; // extract green\n let b = (rgb >> 0) & 0xff; // extract blue\n let luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; // per ITU-R BT.709\n return (luma < 40);\n}\n","import React from \"react\";\nimport {message, notification} from \"antd\";\nimport DB from \"@Cyclope/core/store/db\";\n\nconst _ = require(\"lodash\"),\naxios = require(\"axios\");\n\naxios.defaults.headers.post[\"Accept\"] = \"application/json\";\naxios.defaults.headers.post[\"Content-Type\"] = \"application/json\";\n\nfunction printMessage(data, status) {\n let content = \"Error code \" + status;\n\n if (!_.isUndefined(data.errors)) {\n content = data.errors;\n if (_.isObject(data.errors)) {\n content = Object.keys(data.errors).map(function (key, index) {\n return

{data.errors[key]}

;\n });\n }\n } else if (typeof data === \"string\") {\n content = data;\n }\n\n notification.warning({\n message: \"Oops...\",\n description: content,\n });\n}\n\nexport const post = (route, body, colback) => axios.post(route, JSON.stringify(body))\n .then(function (response) {\n if(colback && isJson(response.data)) {\n colback(JSON.parse(response.data), true);\n }\n })\n .catch(function (error) {\n if (error && error.response) {\n if (error.response.status===419 || error.response.status===401) {\n DB.destroy(\":auth\").then(() => {\n window.location.reload();\n })\n } else if (error.response.status!==422) {\n message.error(\"Ошибка сервера №\" + error.response.status);\n } else {\n printMessage(error.response.data, error.response.status)\n }\n }\n if (colback) colback(null, false);\n })\n .then(function () {\n // Всегда выполняется\n });\n\n// Для запросов update для component\nexport const postGetData = (api, body, colback) => axios.post(\"/tapi/worker/getdata\", JSON.stringify(body), {\n headers: { \"Authorization\": \"Bearer \" + api }\n})\n .then(function (response) {\n if(colback && isJson(response.data)){\n colback(JSON.parse(response.data), true);\n }\n })\n .catch(function (error) {\n if (error && error.response) {\n if (error.response.status===419 || error.response.status===401) {\n DB.destroy(\":auth\").then(() => {\n window.location.reload();\n })\n } else if (error.response.status!==422) {\n message.error(\"Ошибка сервера №\" + error.response.status);\n } else {\n printMessage(error.response.data, error.response.status)\n }\n }\n if (colback) colback(null, false);\n })\n .then(function () {\n // Всегда выполняется\n });\n\nexport const postApi = (api, route, data, colback) => axios.post(route, data, {\n headers: { \"Authorization\": \"Bearer \" + api }\n}).then(function (response) {\n if (colback && isJson(response.data)) {\n colback(JSON.parse(response.data), true);\n }\n})\n.catch(function (error) {\n if (error && error.response) {\n if (error.response.status===419 || error.response.status===401) {\n DB.destroy(\":auth\").then(() => {\n window.location.reload();\n })\n } else if (error.response.status!==422) {\n message.error(\"Ошибка сервера №\" + error.response.status);\n } else {\n printMessage(error.response.data, error.response.status)\n }\n }\n if (colback) colback(null, false);\n});\n\nfunction isJson(str) {\n try {\n JSON.parse(str);\n return true;\n } catch(e) {}\n return false;\n}\n","import ls from \"local-storage\";\nconst appName = \"@FrontendCyclope\";\n\nasync function save(request: string, dataSource: any) {\n const cacheAvailable = 'caches' in window;\n if (cacheAvailable) {\n const cache = await window.caches.open(appName);\n cache.put(request, new Response(JSON.stringify(dataSource)))\n } else {\n ls.set(`${appName}${request}`, dataSource);\n }\n}\n\nasync function retrieve(request: string) {\n const cacheAvailable = 'caches' in window;\n if (cacheAvailable) {\n const cache = await window.caches.open(appName),\n response = await cache.match(request);\n\n if (response && response.status === 200) {\n const json = await response.json();\n return json;\n }\n } else {\n const value = ls(`${appName}${request}`);\n if (value !== null) {\n return JSON.parse(value);\n }\n }\n return undefined;\n}\n\nasync function destroy(request: string) {\n const cacheAvailable = 'caches' in window;\n if (cacheAvailable) {\n const cache = await window.caches.open(appName);\n cache.delete(request);\n } else {\n ls.remove(`${appName}${request}`);\n }\n return true;\n}\n\nconst DB = {\n save,\n retrieve,\n destroy\n}\nexport default DB;\n","export interface IStoreSetting {\n appName: string,\n showForgotPassword: boolean,\n isMobileDisplay: boolean,\n appTemplate: EnumAppTemplate,\n exitButtonTemplate: ExitButtonTemplate,\n logoHidden: boolean,\n logoPath: string | null,\n ready: boolean,\n [index: string]: any\n}\n\nexport enum EnumAppTemplate {\n Sider = \"Sider\",\n TitleBar = \"TitleBar\"\n}\n\nexport enum ExitButtonTemplate {\n Short = \"Short\",\n Text = \"Text\"\n}\n","import DB from \"@Cyclope/core/store/db\";\nimport queryString from \"query-string\";\n\nconst fnInitApp = (dispatch) => {\n const dbRetrieve = DB.retrieve(\":auth\");\n dbRetrieve.then(response => {\n if (response && response.token && response.menu) {\n let search = queryString.parse(window.location.search);\n if (typeof search === \"object\" && Object.keys(search).length && search.model) {\n let data = {\n model: `Project.${search.model}, Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null`,\n action: search.action !== undefined ? search.action : \"Show\",\n data: {}\n }\n delete search.model;\n delete search.action;\n\n data.data = search;\n dispatch.state.mainRedrawing(data);\n dispatch.setting.initAuth({})\n }\n dispatch.state.loginReceived(response).then(() => {\n if (response.initialRoute) dispatch.state.mainRedrawing(response.initialRoute);\n dispatch.setting.initAuth({})\n })\n }\n });\n}\nexport default fnInitApp;","import {Modal} from \"antd\";\nimport {post, postApi} from '../axios';\nimport DB from \"@Cyclope/core/store/db\";\nimport queryString from \"query-string\";\nconst _ = require('lodash');\n\nconst fnLogin = (dispatch, payload) => {\n post('/tapi/auth', payload, (response) => {\n if (!_.isNull(response)) {\n if (response.user.token) {\n let initialRoute = null;\n if (Array.isArray(response.menu)) {\n const defaultRoutes = response.menu.filter(m => m.isDefault === true);\n if (defaultRoutes.length > 0 && defaultRoutes[0].route) {\n initialRoute = defaultRoutes[0].route;\n }\n }\n let payload = {\n token: response.user.token,\n menu: response.menu,\n initialRoute\n }\n DB.save(\":auth\", payload);\n let search = queryString.parse(window.location.search);\n if (typeof search === \"object\" && Object.keys(search).length && search.model) {\n let data = {\n model: `Project.${search.model}, Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null`,\n action: search.action !== undefined ? search.action : \"Show\",\n data: {}\n }\n delete search.model;\n delete search.action;\n \n data.data = search;\n dispatch.state.mainRedrawing(data);\n dispatch.setting.initAuth({})\n }\n dispatch.state.loginReceived(payload).then(() => {\n if (payload.initialRoute) dispatch.state.mainRedrawing(payload.initialRoute);\n dispatch.setting.initAuth({})\n })\n }\n }\n });\n}\n\nconst fnLogout = (dispatch, payload, state) => {\n const {token} = state;\n postApi(token, '/tapi/exit', {}, () => {\n DB.destroy(\":auth\").then(() => {\n window.location.reload();\n })\n });\n}\n\nconst fnForgotPassword = (dispatch, payload, state) => {\n const {form, callback} = payload;\n post('/tapi/auth/forgot', form.name, (response) => {\n if (!_.isNull(response)) {\n if (response.message) {\n Modal.info({\n title: response.message,\n onOk() {},\n });\n }\n callback(true);\n } else callback(false);\n });\n}\n\nconst fnRegistration = (dispatch, payload, state) => {\n const {form, callback} = payload;\n post('/tapi/auth/register', form, (response) => {\n if (!_.isNull(response)) {\n if (response.message) {\n Modal.info({\n title: response.message,\n onOk() {},\n });\n }\n callback(true);\n } else callback(false);\n });\n}\n\nexport {\n fnLogin,\n fnLogout,\n fnForgotPassword,\n fnRegistration\n};\n","const uuid = require('uuid/v4');\n\nexport const container = (pid, data, title = \"\") => {\n let obj = {}\n obj.guiType = \"tabs\";\n obj.id = uuid();\n obj.pid = pid;\n obj.title = title;\n obj.data = data;\n obj.loading = false;\n obj.disabled = false;\n obj.update = false;\n obj.action_tab = null;\n\n if (obj.title.trim() === \"\") {\n obj.title = \"Пустой title\";\n }\n\n return obj;\n}\n\nexport const containerDraw = (pid, response, storageDrawer, title = \"\") => {\n let obj = Object.assign({}, storageDrawer);\n obj.guiType = \"draw\";\n obj.id = uuid();\n obj.pid = pid;\n obj.title = title;\n obj.data = response.draw;\n obj.visible = true;\n obj.width = response.width?response.width:1000;\n obj.loading = false;\n obj.disabled = false;\n obj.update = false;\n obj.action_tab = null;\n\n if (obj.title.trim() === \"\") {\n obj.title = \"Пустой title\";\n }\n\n return obj;\n}\n","import React from 'react';\nimport {message, Modal, notification} from 'antd';\nimport printJS from \"print-js\"\n\nimport {postGetData} from '../axios';\nimport {findById, findProperty} from './extra/functions';\nimport {container, containerDraw} from \"../../../original/models/container\";\nimport {isFunction} from \"../../../original/helpers/functions\";\n\nconst _ = require('lodash');\nconst clone_object = (ovject) => {\n var clone = JSON.stringify(ovject);\n return JSON.parse(clone);\n};\n\nconst redrawingFile = (token, response) => {\n if (_.isObject(response.file) && response.file.id && response.file.mime && response.file.action) {\n var request = new XMLHttpRequest();\n request.open(\"GET\", response.file.action + \"?id=\" + response.file.id);\n request.setRequestHeader(\"Authorization\", \"Bearer \" + token);\n request.responseType = \"arraybuffer\";\n request.onload = (e) => {\n if (request.status === 200 && request.response) {\n var arrayBufferView = new Uint8Array(request.response);\n var file = new Blob([arrayBufferView], {type: response.file.mime});\n var urlCreator = window.URL || window.webkitURL;\n var fileurl = urlCreator.createObjectURL(file);\n\n let tempLink = document.createElement('a');\n tempLink.href = fileurl;\n tempLink.setAttribute('download', response.file.name?response.file.name:'filename');\n tempLink.click();\n\n urlCreator.revokeObjectURL(fileurl);\n } else {\n message.error(\"Ошибка сервера №\" + request.status);\n }\n };\n request.send();\n } else {\n window.open(response.file);\n }\n}\n\nexport const redrawingMessage = (dispatch, payload, response) => {\n if (typeof Modal[!_.isUndefined(response.message.type)?response.message.type:\"info\"] === 'function') {\n let content = \"\";\n if (!_.isUndefined(response.message.text)) {\n content = response.message.text;\n if (_.isObject(response.message.text)) {\n content = Object.keys(response.message.text).map(function (key, index) {\n return

{response.message.text[key]}

;\n });\n }\n }\n let modalType = Modal[response.message.type];\n if (response.message.onOk && response.message.onCancel) {\n modalType = Modal.confirm;\n }\n modalType({\n title: !_.isUndefined(response.message.title)?response.message.title:\"\",\n content: content,\n okText: !_.isUndefined(response.message.okText)?response.message.okText:\"Да\",\n cancelText: !_.isUndefined(response.message.cancelText)?response.message.cancelText:\"Отмена\",\n onOk() {\n if (!_.isUndefined(response.message.onOk) && !_.isNull(response.message.onOk)) {\n let action = clone_object(payload);\n action.action = response.message.onOk;\n dispatch.state.redrawing(action);\n }\n },\n onCancel() {\n if (!_.isUndefined(response.message.onCancel) && !_.isNull(response.message.onCancel)) {\n let action = clone_object(payload);\n action.action = response.message.onCancel;\n dispatch.state.redrawing(action);\n }\n }\n });\n } else {\n notification.error({\n message: 'Сообщение должно иметь тип: info, success, error, warning, confirm',\n description: 'Пришло ' + response.message.type,\n duration: 3000,\n });\n }\n}\n\nconst redrawingUpdate = (response, key, data) => {\n if (response.title && response.title.trim() !== \"\") {\n data[key].title = response.title;\n }\n\n const updateingObject = (dataSource) => {\n Object.keys(dataSource).forEach((objectKey, index) => {\n if (!Array.isArray(data[key].data) && data[key].data[objectKey]) {\n data[key].data[objectKey] = dataSource[objectKey];\n } else {\n const paths = findProperty(data[key].data, objectKey);\n\n if (paths.length) {\n let beenChanged = false;\n paths.forEach((path) => {\n var parentElement = null;\n var elem = data[key].data;\n var pathSplit = path.split('.');\n for (var i=0, len=pathSplit.length; i 0) {\n response.update.forEach(dataSource => {\n updateingObject(dataSource)\n });\n } else updateingObject(response.update)\n\n\n let keyPid = findById(data, data[key].pid);\n if (keyPid !== -1) {\n data[keyPid].update = true;\n if (data[key].guiType !== \"draw\") data[keyPid].loading = true;\n }\n return data;\n}\n\nconst fnRedrawing = (dispatch, payload, storage) => {\n const {token} = storage;\n let result = true;\n\n postGetData(token, payload.action, (response, successfully) => {\n console.log(response);\n if (!successfully) {\n if (isFunction(payload.callback)) {\n payload.callback(false);\n }\n } else if (!_.isUndefined(response) && !_.isNull(response)) {\n if (response.file) redrawingFile(token, response);\n if (response.print) printJS(response.print)\n if (response.message) {\n result = false;\n redrawingMessage(dispatch, payload, response)\n }\n if (response.replace || response.update || response.push || response.draw || response.close) {\n let data = Object.assign([], storage.data),\n key = findById(data, payload.id);\n\n if (key !== -1) {\n if (response.draw) {\n data.push(containerDraw(data[key].id, response, storage.drawer, response.title));\n dispatch.state.reloadData(data);\n }\n if (response.replace) {\n if (response.title && response.title.trim() !== \"\") {\n data[key].title = response.title;\n }\n data[key].data = response.replace;\n dispatch.state.reloadData(data);\n }\n if (response.push) {\n data[key].disabled = true;\n data.push(container(data[key].id, response.push, response.title));\n dispatch.state.reloadData(data);\n }\n if (response.update) {\n data = redrawingUpdate(response, key, data);\n dispatch.state.reloadData(data);\n }\n if (response.close) {\n let keyPid = findById(data, data[key].pid);\n if (keyPid !== -1) {\n data[keyPid].update = true;\n data[keyPid].loading = true;\n dispatch.state.reloadData(data).then(() => {\n dispatch.state.destroy(data[key].id);\n });\n } else {\n dispatch.state.destroy(data[key].id);\n }\n }\n if (response.closeParent) {\n let keyPid = findById(data, data[key].pid);\n if (keyPid !== -1) {\n dispatch.state.destroy(data[key].id).then(() => {\n let keyParentPid = findById(data, data[keyPid].pid);\n if (keyParentPid !== -1) {\n data[keyPid].update = true;\n data[keyPid].loading = true;\n dispatch.state.reloadData(data).then(() => {\n dispatch.state.destroy(data[keyPid].id);\n });\n } else dispatch.state.destroy(data[keyPid].id);\n });\n } else {\n dispatch.state.destroy(data[key].id);\n }\n }\n\n } else {\n console.error('В storage нет объекта с id = ' + payload.id);\n }\n }\n if (!response.message && payload.callback && typeof payload.callback !== 'object') {\n payload.callback(result);\n }\n }\n })\n}\nexport default fnRedrawing;\n","import {Modal, notification} from 'antd';\nimport {postApi} from '../axios';\nimport {container} from \"../../../original/models/container\";\nimport {redrawingMessage} from \"./fnRedrawing\";\n\nconst _ = require('lodash');\n\nconst requestAllowed = (dispatch, token, data) => {\n postApi(token, '/tapi/worker/getdata', data, (answer) => {\n let payload = [];\n console.log(answer);\n if(!_.isNull(answer)) {\n if (answer.file) {\n window.open(answer.file);\n }\n if (answer.message) {\n redrawingMessage(dispatch, data, answer)\n }\n if (answer.push) {\n payload.push(container(0, answer.push, answer.title));\n dispatch.state.reloadData(payload);\n }\n }\n });\n}\n\nconst fnMainRedrawing = (dispatch, payload, storage) => {\n const {token} = storage;\n\n let data = payload;\n if(typeof data === 'string' || data instanceof String){\n data = JSON.parse(data);\n }\n\n let allowed = true;\n storage.data.forEach((item) => {\n if (item.disabled) allowed = false;\n });\n\n if (allowed) requestAllowed(dispatch, token, data);\n else {\n Modal.confirm({\n title: 'Вы уверены что сохранили все изменения?',\n okText: 'Да',\n cancelText: 'Нет',\n onOk() {\n requestAllowed(dispatch, token, data);\n }\n })\n }\n}\nexport default fnMainRedrawing;\n","import {findById} from './extra/functions';\n\nconst fnDestroy = (dispatch, payload, storage) => {\n return new Promise((resolve) => {\n let data = Object.assign([], storage.data),\n key = findById(data, payload);\n\n if (key !== -1) {\n let keyPid = findById(data, data[key].pid);\n if (keyPid !== -1) {\n data[keyPid].disabled = false;\n if (!data[keyPid].update) {\n data[keyPid].update = false;\n data[keyPid].loading = false;\n }\n }\n data.splice(key, 1);\n dispatch.state.reloadData(data).then(() => {\n // Открываем для редактирования\n if (keyPid !== -1 && data[keyPid].update) {\n dispatch.state.updateParent(data[keyPid].id);\n resolve();\n } else resolve()\n });\n } else {\n console.error('Объект для удаление с id = ' + payload + ' не найден');\n resolve();\n }\n })\n}\n\nexport default fnDestroy;\n","import {findById, findProperty} from './extra/functions';\nconst _ = require('lodash');\n\nconst sendToRedraind = (dispatch, component, id, callback) => {\n dispatch.state.redrawing({\n action: component.update,\n id: id,\n callback: callback\n })\n}\n\nconst fnUpdateParent = (dispatch, payload, storage) => {\n let data = Object.assign([], storage.data),\n key = findById(data, payload);\n\n if (key !== -1) {\n const components = data[key].data;\n let updateing = 0;\n\n Object.keys(components).forEach((keyUpdate) => {\n if (components[keyUpdate].update) {\n updateing++;\n sendToRedraind(dispatch, components[keyUpdate], payload, () => {\n updateing--;\n if (updateing === 0) {\n dispatch.state.componentLoading({\n id: payload,\n type: false\n })\n }\n })\n } else if (data[key].action_tab) {\n let paths = findProperty(components[keyUpdate], data[key].action_tab);\n // Костыль #1\n let fixedPath = [];\n paths.forEach(element => {\n let flag = true;\n fixedPath.forEach(str => {\n if (element.indexOf(str) !== -1) flag = false;\n })\n if (flag) fixedPath.push(element)\n });\n paths = fixedPath;\n\n if (paths.length) {\n paths.forEach((val) => {\n let elem = components[keyUpdate],\n path = val.split('.');\n\n for (let i=0, len=path.length; i {\n updateing--;\n if (updateing === 0) {\n dispatch.state.componentLoading({\n id: payload,\n type: false\n })\n }\n })\n }\n })\n }\n } else {\n let paths = findProperty(components[keyUpdate], 'update');\n // Костыль\n let fixedPath = [];\n paths.forEach(element => {\n let flag = true;\n fixedPath.forEach(str => {\n if (element.indexOf(str) !== -1) flag = false;\n })\n if (flag) fixedPath.push(element)\n });\n paths = fixedPath;\n\n if (paths.length) {\n paths.forEach((val) => {\n let elem = components[keyUpdate],\n path = val.split('.');\n\n for (let i = 0, len = path.length; i < len; i++){\n elem = elem[path[i]];\n }\n\n if (!_.isUndefined(elem.update) && !_.isNull(elem.update)) {\n updateing++;\n\n sendToRedraind(dispatch, elem, payload, () => {\n updateing--;\n if (updateing === 0) {\n dispatch.state.componentLoading({\n id: payload,\n type: false\n })\n }\n })\n }\n })\n }\n }\n })\n\n if (updateing===0) {\n dispatch.state.componentLoading({\n id: payload,\n type: false\n })\n }\n } else {\n console.error('Объект для обновления с id = ' + payload + ' не найден')\n }\n}\nexport default fnUpdateParent;\n","import {findById} from './extra/functions';\n\nconst fnSetActiveTab = (dispatch, payload, storage) => {\n let data = Object.assign([], storage.data),\n key = findById(data, payload.id);\n\n if (key !== -1) {\n data[key].action_tab = payload.key;\n\n dispatch.state.reloadData(data);\n } else {\n console.error('Объект для обновления с id = ' + payload.id + ' не найден');\n }\n}\nexport default fnSetActiveTab;\n","import {findById} from '../effects/extra/functions';\nimport fnInitApp from '../effects/fnInitApp';\nimport {fnLogin, fnLogout, fnForgotPassword, fnRegistration} from '../effects/fnLogin';\nimport fnMainRedrawing from '../effects/fnMainRedrawing';\nimport fnRedrawing from '../effects/fnRedrawing';\nimport fnDestroy from '../effects/fnDestroy';\nimport fnUpdateParent from '../effects/fnUpdateParent';\nimport {fnComponentLoading, fnSetComponentLoading} from '../effects/fnComponentLoading';\nimport fnSetActiveTab from '../effects/fnSetActiveTab';\n\nconst initialState = {\n token: \"\",\n menu: [],\n data: [],\n initialRoute: null,\n loading: false,\n tableFormDataValuses: null,\n drawer: {\n pid: \"\",\n title: \"\",\n placement: \"right\",\n closable: false,\n visible: false,\n width: 500,\n dataSource: {}\n }\n}\n\nexport const state = {\n\tstate: initialState,\n\treducers: {\n setLoadding(state, payload) {\n return {...state, loading: payload}\n },\n loginReceived(state, payload) {\n return {...state, ...payload}\n },\n reloadData(state, payload) {\n return {...state, data: payload}\n },\n tableFormSetValues(state, payload) {\n return {...state, tableFormDataValuses: payload}\n },\n setDrawer(state, payload) {\n return {...state, drawer: payload}\n }\n\t},\n\teffects: dispatch => ({\n initApp(payload, rootState) {\n return fnInitApp(dispatch, payload, rootState.state)\n },\n login(payload, rootState) {\n return fnLogin(dispatch, payload, rootState.state)\n },\n forgotPassword(payload, rootState) {\n return fnForgotPassword(dispatch, payload, rootState.state)\n },\n registration(payload, rootState) {\n return fnRegistration(dispatch, payload, rootState.state)\n },\n logout(payload, rootState) {\n return fnLogout(dispatch, payload, rootState.state)\n },\n mainRedrawing(payload, rootState) {\n return fnMainRedrawing(dispatch, payload, rootState.state)\n },\n redrawing(payload, rootState) {\n return fnRedrawing(dispatch, payload, rootState.state)\n },\n destroy(payload, rootState) {\n return fnDestroy(dispatch, payload, rootState.state)\n },\n updateParent(payload, rootState) {\n return fnUpdateParent(dispatch, payload, rootState.state)\n },\n componentLoading(payload, rootState) {\n return fnComponentLoading(dispatch, payload, rootState.state)\n },\n setComponentLoading(payload, rootState) {\n return fnSetComponentLoading(dispatch, payload, rootState.state)\n },\n setActiveTab(payload, rootState) {\n return fnSetActiveTab(dispatch, payload, rootState.state)\n },\n tableFormGetValues(payload, rootState) {\n return rootState.state.tableFormDataValuses;\n },\n closeDrawer(payload, rootState) {\n let drawer = Object.assign({}, rootState.state.drawer);\n const pid = drawer.pid;\n\n drawer.pid = \"\";\n drawer.title = \"\";\n drawer.dataSource = {};\n drawer.visible = false;\n const promise = dispatch.state.setDrawer(drawer);\n promise.then(() => {\n let data = Object.assign([], rootState.state.data),\n keyPid = findById(data, pid);\n\n if (keyPid !== -1) {\n dispatch.state.updateParent(data[keyPid].id);\n }\n });\n }\n\t}),\n}\n","import {findById} from './extra/functions';\n\nconst fnComponentLoading = (dispatch, payload, storage) => {\n const {id, type} = payload;\n let data = Object.assign([], storage.data),\n key = findById(data, id);\n\n if (key !== -1) {\n data[key].update = type;\n data[key].loading = type;\n\n dispatch.state.reloadData(data);\n } else console.error('Объект для обновления с id = ' + id + ' не найден');\n}\n\nconst fnSetComponentLoading = (dispatch, payload, storage) => {\n const {id, flag} = payload;\n let data = Object.assign([], storage.data),\n key = findById(data, id);\n\n if (key !== -1) {\n data[key].loading = flag;\n\n dispatch.state.reloadData(data);\n } else console.error('Объект для обновления с id = ' + id + ' не найден');\n}\n\nexport {\n fnComponentLoading,\n fnSetComponentLoading\n}\n","const check = (value) => {\n\treturn JSON.stringify(value.initialValue) !== JSON.stringify(value.values)\n}\n\nconst handleForm = {\n\tstate: {},\n\treducers: {\n reloadData(state, payload) {\n return {...state, ...payload}\n },\n\t},\n\teffects: dispatch => ({\n reload(payload, rootState) {\n const {id, pid, type, values} = payload;\n let state = Object.assign({}, rootState.handleForm);\n\n if (id in state) {\n\t\t\t\tlet data = Object.assign({}, state[id]);\n\t\t\t\tdata[type] = values;\n state[id] = data\n } else {\n\t\t\t\tlet data = {\n values: {},\n initialValue: {}\n };\n\t\t\t\tdata[type] = values;\n state[id] = {\n pid: pid,\n ...data\n }\n }\n\t\t\tif (payload.callback) payload.callback();\n dispatch.handleForm.reloadData(state)\n },\n confirmDestroy(pid, rootState) {\n\t\t\tconst handleForm = Object.assign({}, rootState.handleForm);\n let response = false;\n\n\t\t\tObject.keys(handleForm).forEach(key => {\n\t\t\t\tconst value = handleForm[key];\n\t\t\t\tif (value.pid === pid && check(value)) {\n\t\t\t\t\tresponse = true;\n\t\t\t\t}\n\t\t\t});\n return response;\n }\n\t}),\n}\n\nexport default handleForm;\n","import {isMobile} from \"react-device-detect\";\nimport {post, postApi} from \"@Cyclope/core/store/axios\";\nimport {cloneObject, isObject} from \"@Cyclope/core/store/extra\";\nimport {IStoreSetting, EnumAppTemplate, ExitButtonTemplate} from \"./index.d\";\n\nconst initialState: IStoreSetting = {\n appName: \"Загрузка...\",\n showForgotPassword: false,\n isMobileDisplay: false,\n appTemplate: EnumAppTemplate.TitleBar,\n logoHidden: false,\n logoPath: null,\n exitButtonTemplate: ExitButtonTemplate.Short,\n ready: false\n}\n\nconst builder = (setting: IStoreSetting, response: any): IStoreSetting => {\n if (response) {\n Object.keys(setting).forEach((key: string) => {\n if (key === \"isMobileDisplay\") {\n if (isMobile && response[key]) setting[key] = response[key];\n } else if (response[key]) setting[key] = response[key];\n });\n }\n return setting;\n}\n\nconst setting = {\n\tstate: initialState,\n\treducers: {\n\t\tupdate(state: any, payload: any) {\n return {...state, ...payload}\n },\n },\n effects: (dispatch: any) => ({\n\t\tinit(payload: any, rootState: any) {\n post(\"/tapi/auth/config\", null, (response: any) => {\n const setting: IStoreSetting = builder(cloneObject(initialState), response);\n setting.ready = true;\n dispatch.setting.update(setting)\n })\n },\n\t\tinitAuth(payload: any, rootState: any) {\n const {state} = rootState;\n postApi(state.token, \"/tapi/worker/config\", null, (response: any) => {\n if (isObject(response) && Object.entries(response).length) {\n const setting: IStoreSetting = builder(cloneObject(rootState.setting), response);\n dispatch.setting.update(setting)\n }\n })\n },\n })\n}\n\nexport default setting;\n","import {init} from '@rematch/core'\nimport * as models from './models'\n\nconst store = init({\n models,\n})\n\nstore.dispatch.setting.init();\nstore.dispatch.state.initApp();\nexport default store\n","import React, {Suspense} from \"react\";\nimport {connect} from 'react-redux';\nimport {isMobile} from 'react-device-detect';\nimport {Helmet} from \"react-helmet\";\nimport {ScreensProps} from \"./index.d\";\n\nconst _ = require('lodash'),\ncomponents = {\n desktop: {\n Login: React.lazy(() => import(\"@Cyclope/original/layouts/login\")),\n Dashboard: React.lazy(() => import(\"@Cyclope/original/layouts/dashboard\"))\n },\n mobile: {\n Login: React.lazy(() => import(\"./components/login\")),\n Dashboard: React.lazy(() => import(\"./components/dashboard\"))\n }\n}\n\nconst Screens: React.FC = ({setting, token}) => {\n if (!setting.ready) return
Загрузка...
;\n else {\n let screens: any = components.desktop;\n if (setting.isMobileDisplay) {\n screens = components.mobile;\n }\n return (\n <>\n \n {setting.appName}\n \n
\n Загрузка...}>\n {(!_.isNull(token) && !_.isEmpty(token) && !_.isUndefined(token))?:}\n \n
\n \n )\n }\n}\n\nconst mapState = (state: any) => {\n return {\n token: state.state.token,\n setting: state.setting\n };\n};\n\nexport default connect(mapState)(Screens);\n","import \"@Cyclope/styles/app.scss\";\n\nimport OriginalApp from '../original';\n\nexport default OriginalApp;\n","import React, { Component } from 'react';\nimport {Provider} from 'react-redux';\nimport {loadProgressBar} from 'axios-progress-bar'\n\nimport {ConfigProvider} from 'antd';\nimport ruRU from 'antd/lib/locale-provider/ru_RU';\n\nimport store from '../core/store';\nimport LayoutController from '@Cyclope/manufacturing/screens';\n\nclass App extends Component {\n render() {\n loadProgressBar();\n return (\n \n \n \n \n \n );\n }\n}\n\nexport default App;\n","import React from 'react';\nimport Core from '@Cyclope/core';\n\nfunction App() {\n return (\n
\n \n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"@Cyclope/App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport {initializeIcons} from \"@fluentui/react/lib/Icons\"\n\ninitializeIcons();\nReactDOM.render(\n ,\n document.getElementById(\"root\")\n);\n\nserviceWorker.unregister();\n","const _ = require('lodash');\n\nexport const findById = (array: Array, id: number) => {\n return _.findIndex(array, function(o: any) { return o.id === id})\n}\n\nexport const findByFiled = (array: Array, name: string, value: any) => {\n return _.findIndex(array, function(o: any) { return o[name] === value})\n}\n\nexport const cloneObject = (ovject: any): any => {\n var clone = JSON.stringify(ovject);\n return JSON.parse(clone);\n};\n\nexport const parseBool = (str: any): boolean => {\n if(str === null) return false;\n\n if (typeof str === 'boolean') {\n return (str === true);\n }\n\n if(typeof str === 'string') {\n if(str === \"\") return false;\n\n str = str.replace(/^\\s+|\\s+$/g, '');\n if(str.toLowerCase() === 'true' || str.toLowerCase() === 'yes') return true;\n\n str = str.replace(/,/g, '.');\n str = str.replace(/^\\s*\\s*/g, '-');\n }\n\n if(!isNaN(str)) return (parseFloat(str) !== 0);\n\n return false;\n}\n\nexport const twoObjectsAreEqual = (objectOne: any, objectTwo: any): boolean => {\n try {\n return JSON.stringify(objectOne) === JSON.stringify(objectTwo);\n } catch (e) {\n return false;\n }\n}\n\nexport const isObject = (any: any): boolean => {\n return _.isObject(any);\n}\n\nexport const valueExist = (value: any): boolean => {\n return !_.isNull(value) && !_.isEmpty(value) && !_.isUndefined(value)\n}\n\nexport const isBlank = (str: any): boolean => {\n return (!str || /^\\s*$/.test(str));\n}\n","const _ = require('lodash');\n\nexport const findById = (array, id) => {\n return _.findIndex(array, function(o) { return o.id === id})\n}\n\nexport const findProperty = (obj, propContentPart, path=\"\", maps=[], maximumDescent = 30) => {\n var val;\n try {\n if (_.isObject(obj)) {\n Object.keys(obj).forEach((key, index) => {\n var value = obj[key];\n \n if (_.isObject(value)) {\n \n if (key === propContentPart) {\n val=(path==='')? key: path;\n return maps.push(val);\n }\n \n val=(path==='')? key: path+'.'+key;\n\n maximumDescent -= 1;\n\n if (maximumDescent > 0) findProperty(value, propContentPart, val, maps, maximumDescent);\n }\n });\n } else {\n console.warn(\"функция findProperty Ожидал object пришел\", obj);\n }\n } catch (error) {\n console.log(error);\n }\n return maps;\n};\n\nexport const twoObjectsAreEqual = (objectOne, objectTwo) => {\n try {\n return JSON.stringify(objectOne) === JSON.stringify(objectTwo);\n } catch (e) {\n return false;\n }\n}\n\nexport const cloneObject = (ovject) => {\n var clone = JSON.stringify(ovject);\n return JSON.parse(clone);\n};\n\nexport const isBlank = str => {\n return (!str || /^\\s*$/.test(str));\n}\n"],"sourceRoot":""}