{"version":3,"sources":["utils/constants.js","components/HttpError.js","components/HttpError.module.less","api/organization.js","features/tier1/home/userPLSlice.js","locales/zh-CN.js","locales/zh-CN/error.js","locales/zh-CN/menu.js","locales/zh-CN/pages.js","locales/zh-CN/change.js","locales/zh-CN/tpm.js","locales/zh-CN/inspection.js","locales/en-US.js","locales/en-US/error.js","locales/en-US/menu.js","locales/en-US/pages.js","locales/en-US/change.js","locales/en-US/tpm.js","api/account.js","features/auth/authSlice.js","api/job.js","features/TPM/Tools/DownloadDrawer.js","components/LayoutDefault.js","components/RedirectDefault.js","components/LayoutPlain.js","components/HomeDefault.js","components/TPMDefault.js","app/routes.js","app/router.js","App.js","app/store.js","serviceWorker.js","index.js","locales/index.js","api/http.js","api/auth.js","utils/md5.js","utils/utils.js","utils/cookie.js"],"names":["REQUEST_STATUS","IDLE","PENDING","SUCCEEDED","FAILED","COMMON_TYPES","GETLIST","GET","ADD","EDIT","VIEW","DELETE","DISCARD","TABLECHANGE","LSK_TIER4HOME_LANG","concat","process","ErrorContent","_ref","code","home","intl","useIntl","_jsxs","children","className","styles","wrapper","_jsx","title","formatMessage","id","link","Link","to","Button","type","ghost","icon","HomeOutlined","HttpError","props","authstatus","useSelector","selectStatus","layout","AUTH_STATUS","module","exports","getProductionLines","http","get","getAll","initialState","status","list","fetchList","createAsyncThunk","async","userPLArgs","rejectWithValue","error","userPLSlice","createSlice","name","reducers","selectPL","state","action","selected","payload","extraReducers","pending","fulfilled","rejected","actions","selectUserPLStatus","userPL","selectUserPLList","zhCN","enUS","getLoginInfo","NOTLOGGEDIN","LOGGINGIN","token","user","menus","permissions","errorcode","fetchToken","userArgs","response","authorizeCode","redirect_uri","refresh_token","refreshToken","message","fetchUser","signOut","removeRefreshToken","authSlice","auth","selectUser","selectUserEmail","email","selectName","selectPermission","selectMenus","GetMyTables","post","DownloadDrawer","listData","setListData","useState","loading","setLoading","selectedRowKeys","setselectedRowKeys","intlText","useEffect","then","ref","handDownload","item","key","finally","console","log","find","l","isDownLoad","rowSelection","onChange","selectedRowKey","hasSelected","length","columns","dataIndex","ellipsis","showTitle","render","fileName","Tooltip","placement","text","moment","format","with","toLowerCase","href","target","onClick","minwith","Drawer","width","Row","Col","span","Space","size","disabled","handClear","Modal","confirm","content","onOk","map","toString","delete","handRetry","Table","itemLayout","dataSource","LayoutDefault","menu","year","Date","getFullYear","dDV","setDDV","FormattedMessage","Navbar","currentMenu","Toolbar","dDVBtn","visible","onClose","_ref2","SubMenu","Menu","selectedKeys","mode","items","navItems","i","navitem","menuCode","label","menuName","j","x","navcitem","undefined","url","push","getNavItems","dispatch","useDispatch","DownloadOutlined","React","Fragment","Divider","UserOutlined","handleLogout","window","location","ENV_CFG","signout","ExportOutlined","RedirectDefault","getDefaultFromMenus","Redirect","LayoutPlain","HomeDefault","remark","indexOf","TPMDefault","style","routes","path","component","lazy","anonymous","standardize","exact","AppRoute","route","perms","useLocation","debugEnable","from","search","pathname","includes","subroutes","Route","Fallback","Spin","tip","AppSwitch","Switch","AppRouter","Router","Suspense","fallback","locale","messages","antdLocale","antdZHCN","App","document","dayjs","IntlProvider","ConfigProvider","componentSize","configureStore","reducer","authReducer","userPLReducer","middleware","getDefaultMiddleware","logger","Boolean","hostname","match","ReactDOM","StrictMode","Provider","store","getElementById","navigator","serviceWorker","ready","registration","unregister","LOCALE_KEY","instance","axios","create","baseURL","api_root","timeout","headers","_window$localStorage","localStorage","getItem","docCookies","language","browserLanguage","getLocale","interceptors","request","use","config","Promise","reject","data","isretry","res","JSON","parse","stringify","getRefreshToken","access_token","token_type","catch","e","params","setAuthorization","defaults","common","cookieKey","removeItem","getToken","grant_type","timestamp","client_id","parseInt","getTime","client_secret","string","md5_RotateLeft","lValue","iShiftBits","md5_AddUnsigned","lX","lY","lX4","lY4","lX8","lY8","lResult","md5_FF","a","b","c","d","s","ac","y","z","md5_F","md5_GG","md5_G","md5_HH","md5_H","md5_II","md5_I","md5_WordToHex","lCount","WordToHexValue","WordToHexValue_temp","substr","k","AA","BB","CC","DD","replace","utftext","n","charCodeAt","String","fromCharCode","md5_Utf8Encode","lWordCount","lMessageLength","lNumberOfWords_temp1","lNumberOfWords","lWordArray","Array","lBytePosition","lByteCount","md5_ConvertToWordArray","md5","slice","_res$data","setItem","resolve","showTableTotal","total","range","sKey","decodeURIComponent","cookie","RegExp","encodeURIComponent","sValue","vEnd","sPath","sDomain","bSecure","test","sExpires","constructor","Number","Infinity","toUTCString","this","hasItem","keys","aKeys","split","nIdx"],"mappings":"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","file":"static/js/main.cdeb2f0c.chunk.js","sourcesContent":["// 请求状态\r\nexport const REQUEST_STATUS = {\r\n IDLE: 'idle',\r\n PENDING: 'pending',\r\n SUCCEEDED: 'succeeded',\r\n FAILED: 'failed',\r\n};\r\n\r\n// 通用action类型\r\n// 其他自定义类型的值应使用小写(如'add_submenu'),避免与common types中的值重复\r\nexport const COMMON_TYPES = {\r\n GETLIST: 'GETLIST',\r\n GET: 'GETITEM',\r\n ADD: 'ADD',\r\n EDIT: 'EDIT',\r\n VIEW: 'VIEW',\r\n DELETE: 'DELETE',\r\n DISCARD: 'DISCARD',\r\n TABLECHANGE: 'TABLECHANGE',\r\n};\r\n\r\nexport const REGX_GUID = /^[A-Fa-f0-9]{8}(-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}$/;\r\n\r\nexport const APP_IGARID = process.env.REACT_APP_IGARID;\r\n// local storage keys\r\nexport const LSK_TIER4HOME_LANG = `${APP_IGARID}.tier4home.lang`\r\n","import React from 'react';\r\nimport { Button } from 'antd';\r\nimport { HomeOutlined } from '@ant-design/icons';\r\nimport { useIntl } from 'react-intl';\r\nimport { Link } from 'react-router-dom';\r\nimport styles from './HttpError.module.less';\r\nimport { useSelector } from 'react-redux';\r\nimport { AUTH_STATUS, selectStatus } from '@/features/auth/authSlice';\r\n\r\nconst ErrorContent = ({ code, home }) => {\r\n const intl = useIntl();\r\n return (\r\n
\r\n
\r\n
{code}
\r\n
\r\n {intl.formatMessage({ id: `p.errorpage.${code}` })}\r\n
\r\n
\r\n {home !== false && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst HttpError = props => {\r\n const authstatus = useSelector(selectStatus);\r\n if (props.layout && authstatus === AUTH_STATUS.SUCCEEDED) {\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n return ;\r\n }\r\n};\r\nexport default HttpError;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"HttpError_wrapper__2NTUX\",\"code\":\"HttpError_code__2Snz5\",\"title\":\"HttpError_title__iqSOo\",\"link\":\"HttpError_link__WMWBI\"};","import http from './http';\r\n\r\nexport function getProductionLines() {\r\n return http.get('/Organization/GetProductionLines');\r\n}\r\n\r\nexport function getAll() {\r\n return http.get('/Organization/GetAll');\r\n}\r\n","import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport { getProductionLines } from '@/api/organization';\r\nimport { REQUEST_STATUS } from '@/utils/constants';\r\n\r\nconst initialState = {\r\n status: REQUEST_STATUS.IDLE,\r\n list: [],\r\n};\r\n\r\n// async thunks\r\nexport const fetchList = createAsyncThunk(\r\n 'userPL/fetchList',\r\n async (userPLArgs, { rejectWithValue }) => {\r\n try {\r\n const response = await getProductionLines();\r\n return response;\r\n } catch (error) {\r\n return rejectWithValue(error);\r\n }\r\n }\r\n);\r\n\r\n// slice\r\nexport const userPLSlice = createSlice({\r\n name: 'userPL',\r\n initialState,\r\n reducers: {\r\n selectPL(state, action) {\r\n state.selected = action.payload;\r\n return state;\r\n },\r\n },\r\n extraReducers: {\r\n [fetchList.pending]: (state, action) => {\r\n state.status = REQUEST_STATUS.PENDING;\r\n },\r\n [fetchList.fulfilled]: (state, action) => {\r\n state.status = REQUEST_STATUS.SUCCEEDED;\r\n state.list = action.payload;\r\n },\r\n [fetchList.rejected]: (state, action) => {\r\n state.status = REQUEST_STATUS.FAILED;\r\n },\r\n },\r\n});\r\n\r\n// reducer\r\nexport default userPLSlice.reducer;\r\n\r\n// actions\r\nexport const { selectPL } = userPLSlice.actions;\r\n\r\n// selector\r\nexport const selectUserPLStatus = state => state.userPL.status;\r\nexport const selectUserPLList = state => state.userPL.list;\r\n","import error from './zh-CN/error';\r\nimport menu from './zh-CN/menu';\r\nimport pages from './zh-CN/pages';\r\nimport change from './zh-CN/change';\r\nimport tpm from './zh-CN/tpm';\r\nimport inspection from './zh-CN/inspection';\r\n\r\nconst zhCN = {\r\n 'common.loading': '加载中...',\r\n 'common.search': '查询',\r\n 'common.clear': '清除',\r\n 'common.add': '添加',\r\n 'common.edit': '编辑',\r\n 'common.delete': '删除',\r\n 'common.save': '保存',\r\n 'common.cancel': '取消',\r\n 'common.submit': '提交',\r\n 'common.reset': '重置',\r\n 'common.close': '关闭',\r\n 'common.delcfm': '确认要删除{value}吗?',\r\n 'common.thisitem': '这条记录',\r\n 'common.deleting': '正在删除...',\r\n 'common.yes': '是',\r\n 'common.no': '否',\r\n 'common.changeProductionLine': '切换产线',\r\n 'common.unknown': '未知',\r\n 'common.nocontent': '无内容',\r\n 'common.loadmore': '加载更多',\r\n 'common.success': '成功',\r\n 'common.finish': '完成',\r\n 'common.confirm': '确定',\r\n 'common.copy': '复制',\r\n 'common.invalid': '作废',\r\n 'common.fallback': '回退',\r\n 'common.reject': '拒绝',\r\n 'common.access': '接受',\r\n 'common.transfer': '移交',\r\n 'common.withdrawal': '撤回',\r\n 'common.back': '返回',\r\n 'common.handle': '处理',\r\n 'common.detail': '查看',\r\n 'common.action': '操作',\r\n 'common.keyword': '关键字',\r\n 'common.attachment': '请选择附件',\r\n 'common.exportexcel': '导出 Excel',\r\n 'common.obsolete': '确认要作废{value}吗?',\r\n 'common.example': '例如:{value}',\r\n 'layout.appname': 'CN PDP Digital Management Platform',\r\n 'layout.lang': '多语言',\r\n 'layout.signout': '退出',\r\n 'layout.download': '下载任务',\r\n 'common.applicant': '发起人',\r\n 'common.pleseSelect': '请选择',\r\n 'common.pleseInput': '请输入',\r\n ...error,\r\n ...menu,\r\n ...pages,\r\n ...change,\r\n ...tpm,\r\n ...inspection,\r\n};\r\nexport default zhCN;\r\n","const messages = {\r\n 'e.get': '获取{name}失败',\r\n 'e.getlist': '获取{name}列表失败',\r\n 'e.valfield': '验证{label}失败',\r\n 'e.exists': '{value}已存在',\r\n 'e.notexists': '{value}不存在',\r\n};\r\nexport default messages;\r\n","const messages = {\r\n 'menu.setting': '设置',\r\n 'menu.menu': '菜单',\r\n 'menu.role': '角色',\r\n 'menu.message': '邮件',\r\n 'menu.appconfig': '配置',\r\n 'menu.user': '用户',\r\n 'menu.home': '主页',\r\n};\r\nexport default messages;\r\n","const messages = {\r\n 'p.login.error': '登录失败,请重新登陆',\r\n 'p.login.welcome': '欢迎使用',\r\n 'p.login.employee': 'ABB 员工',\r\n 'p.login.employeetip': '使用ABB邮箱登录',\r\n 'p.login.customer': 'ABB 客户',\r\n 'p.login.customertip': '查询我的订单',\r\n 'p.errorpage.403': '访问受限',\r\n 'p.errorpage.404': '页面不存在',\r\n 'p.errorpage.home': '返回首页',\r\n 'p.role.name': '角色',\r\n 'p.role.plural': '角色',\r\n 'p.user.name': '用户',\r\n 'p.user.plural': '用户',\r\n 'p.user.f.email': '邮箱',\r\n 'p.user.f.name': '姓名',\r\n 'p.user.f.roles': '角色',\r\n 'p.user.s.kw': '姓名,邮箱...',\r\n 'p.user.s.roleph': '所有角色',\r\n 'p.user.s.allDepartment': '所有部门',\r\n 'p.orderpoint.pdpstart': 'PDP生产开始',\r\n 'p.orderpoint.pdpfinish': 'PDP生产完成',\r\n 'p.orderpoint.pdpbilling': 'PDP成品报关',\r\n 'p.orderpoint.blwarehouse': 'BL成品入库',\r\n 'p.orderpoint.bldeparture': 'BL成品运输(出发)',\r\n 'p.orderpoint.blarrival': 'BL成品运输(到达)',\r\n 'p.contact.pointph': '所有节点',\r\n 'p.contact.emailph': '邮箱...',\r\n 'p.contact.f.ContactPoint': '订单节点',\r\n 'p.contact.f.PlantCode': '工厂',\r\n 'p.contact.f.CompanyCode': '公司',\r\n 'p.contact.f.PhaseOwnerEmail': '节点联系人',\r\n 'p.contact.f.PhaseOwnerName': '联系人名称',\r\n 'p.contact.f.Escalation1': '1st Escalation Owner',\r\n 'p.so.s.customerph': '客户名称...',\r\n 'p.so.s.projectph': '项目编号...',\r\n 'p.so.s.robotph': '机器人型号...',\r\n 'p.so.noorder': '没有订单',\r\n 'p.so.nobtorder': '没有BT订单',\r\n 'p.so.selectorder': '请选择订单',\r\n 'p.so.sotitle': '合同详细数据',\r\n 'p.so.dntitle': '物流信息',\r\n 'p.so.createdate': '创建日期',\r\n 'p.so.releasedate': '发布日期',\r\n 'p.so.sales': '销售',\r\n 'p.so.pm': '项目经理',\r\n 'p.so.plandeparture': '计划出发',\r\n 'p.so.actualdeparture': '实际出发',\r\n 'p.so.planarrival': '计划到达',\r\n 'p.so.actualarrival': '实际到达',\r\n 'p.so.question': '提问',\r\n 'p.so.f.RobotType': '机器人型号',\r\n 'p.so.f.Quantity': '数量',\r\n 'p.so.f.SalesUnit': '单位',\r\n 'p.dn.tobedelivered': '待发货',\r\n 'p.dn.ondelivery': '运输中',\r\n 'p.dn.delivered': '已签收',\r\n 'p.dn.plandeparture': '计划出发',\r\n 'p.dn.actualdeparture': '实际出发',\r\n 'p.dn.planarrival': '计划到达',\r\n 'p.dn.actualarrival': '实际到达',\r\n 'p.dn.ActualGIDate': 'SAP发货时间',\r\n 'p.dn.tip': '系统仅显示6个月内的物流信息',\r\n 'p.dn.shipmentno': '物流单号',\r\n 'p.bt.notstart': '未开始',\r\n 'p.bt.inprod': '生产中',\r\n 'p.bt.delivered': '已交付',\r\n 'p.bt.ontime': 'On Time',\r\n 'p.bt.timegap': 'Time Gap',\r\n 'p.bt.delay': 'Delay',\r\n 'p.bt.plandate': '计划日期',\r\n 'p.bt.actualdate': '实际日期',\r\n 'p.commun.f.ProjectNumber': '项目',\r\n 'p.commun.f.QuestionType': '订单节点',\r\n 'p.commun.f.dnorder': '相关订单',\r\n 'p.commun.f.RobotType': '机器人型号',\r\n 'p.commun.f.PlannedDate': '计划日期',\r\n 'p.commun.f.ActualDate': '实际日期',\r\n 'p.commun.f.PhaseOwner': '联系人',\r\n 'p.commun.f.QuestionContent': '问题',\r\n 'p.commun.f.RequestUserName': '提问人',\r\n 'p.commun.f.RequestOn': '提问时间',\r\n 'p.commun.f.ClosedUserName': '关闭人',\r\n 'p.commun.f.ClosedOn': '关闭时间',\r\n 'p.commun.f.Answered': '答复状态',\r\n 'p.commun.dnhelp': '查询物流相关问题时请输入项目编号',\r\n 'p.commun.btlabel': 'BT订单',\r\n 'p.commun.dnlabel': '物流',\r\n 'p.commun.pendinglabel': '处理中',\r\n 'p.commun.closedlabel': '已关闭',\r\n 'p.commun.questiontitle': '问题',\r\n 'p.commun.answertitle': '答复',\r\n 'p.commun.addaction': 'Add Action',\r\n 'p.commun.closed': '已关闭',\r\n 'p.commun.closecfm': 'Are you sure to close this action?',\r\n 'p.answer.f.DelayReason': 'Delay Reason',\r\n 'p.answer.f.Description': 'Description',\r\n 'p.answer.f.UpdatePlanDate': 'Update Plan Date',\r\n 'p.answer.f.Actions': 'Actions',\r\n 'p.answer.f.ActionContent': 'Action',\r\n 'p.answer.f.ActionOwner': 'Owner',\r\n 'p.answer.f.TargetDate': 'Target Date',\r\n 'p.answer.f.ClosedTime': 'Closed On',\r\n 'p.customerorder.pagetitle': '订单查询',\r\n 'p.customerorder.s.customer': '客户代码',\r\n 'p.customerorder.s.project': '项目编号',\r\n 'p.customerorder.searchtip': '请输入客户代码和项目编号进行查询',\r\n 'p.customerorder.noorder': '找不到订单',\r\n 'p.actionworkflowlist.pagetitle': '行动及跟踪',\r\n 'p.actionworkflowlist.addissue': '添加 Issue',\r\n 'p.actionworkflowlist.mytask': '我的待办',\r\n 'p.actionworkflowlist.myissue': '我的Issue',\r\n 'p.actionworkflowlist.allissue': '全部',\r\n 'p.actionworkflowlist.mytask.pannel.issuetitle': '我的待办Issue',\r\n 'p.actionworkflowlist.mytask.pannel.actiontitle': '我的待办Action',\r\n 'p.actionworkflowlist.issue.columns.issuecreatedby': '发起人',\r\n 'p.actionworkflowlist.issue.columns.issuecreatedtime': '发起时间',\r\n 'p.actionworkflowlist.issue.columns.issuecontent': 'Issue内容',\r\n 'p.actionworkflowlist.issue.columns.issueowner': 'Issue Owner',\r\n 'p.actionworkflowlist.issue.columns.isrepeat': '重复发生',\r\n 'p.actionworkflowlist.issue.columns.priority': '优先级',\r\n 'p.actionworkflowlist.issue.columns.issuestatus': 'Issue状态',\r\n 'p.actionworkflowlist.issue.columns.istiermeeting': '是否Tier Meeting',\r\n 'p.actionworkflowlist.issue.columns.issuechanneltype': '问题处理渠道',\r\n 'p.actionworkflowlist.issue.columns.actioncontent': '应对措施',\r\n 'p.actionworkflowlist.issue.columns.actoinowner': 'Action Owner',\r\n 'p.actionworkflowlist.issue.columns.actoinstatus': 'Action状态',\r\n 'p.actionworkflowlist.issue.columns.actoinduedate': 'Due Date',\r\n 'p.actionworkflowlist.addissue.attachment.msg': '您未上传附件,是否确认提交?',\r\n 'p.actionworkflowlist.addissue.addaction.msg': '请添加Actions,谢谢。',\r\n 'p.actionworkflowlist.issue.reject.msg': '请输入拒绝原因!',\r\n 'p.actionworkflowlist.issue.transfer.reject.msg':\r\n '拒绝后,您将不需要复责跟踪Issue及Action,是否确认拒绝?',\r\n 'p.actionworkflowlist.issue.transfer.accept.msg':\r\n '接受后您将成为新的Issue Owner,将不可退回,是否确定接受?',\r\n 'p.actionworkflowlist.issue.transfer.withdraw.msg':\r\n '撤回后,Issue将保留原来的Issue Owner,是否确定撤回?',\r\n 'p.actionworkflowlist.issue.transfer.msg': '是否确定转移?',\r\n 'p.actionworkflowlist.issueform.title': '行动及跟踪',\r\n 'p.actionworkflowlist.issueform.issuepannel.title': 'Issue 信息',\r\n 'p.actionworkflowlist.issue.columns.beforeissueowner': '原Issue Owner',\r\n 'p.actionworkflowlist.issueform.attachment': 'Issue附件',\r\n 'p.actionworkflowlist.issueform.addaction.button': '新增措施',\r\n 'p.actionworkflowlist.issueform.obsolete.button': '作废',\r\n 'p.actionworkflowlist.issueform.issuetransferpannel.title': 'Issue移交记录',\r\n 'p.actionworkflowlist.issueform.issuetransferpannel.comments': '移交Comments',\r\n 'p.actionworkflowlist.issueform.issuetransferpannel.comments.placeholder':\r\n '请输入移交Comments',\r\n 'p.actionworkflowlist.issuetransferform.title': 'Issue转移',\r\n 'p.actionworkflowlist.action.columns.createdby': '创建人',\r\n 'p.actionworkflowlist.action.columns.createdtime': '创建时间',\r\n 'p.actionworkflowlist.action.columns.beforeduedate': '原Due Date',\r\n 'p.actionworkflowlist.actionform.actionrecordpannel.title':\r\n '应对措施跟踪记录',\r\n 'p.actionworkflowlist.actionform.obsolete.title': '作废原因',\r\n 'p.actionworkflowlist.actiondetail.fallback.msg': '是否确定回退?',\r\n 'p.actionworkflowlist.actiondetail.actionpanel.title': '应对措施信息',\r\n 'p.actionworkflowlist.actiondetail.actionrecordpanel.title':\r\n '应对措施跟踪记录',\r\n 'p.actionworkflowlist.actiondetail.actionfeedback.title': '应对措施执行反馈',\r\n 'p.actionworkflowlist.actiondetail.attachment': '反馈附件',\r\n 'p.actionworkflowlist.actiondetail.iscompleted': '是否已完成',\r\n 'p.actionworkflowlist.issueform.placeholder.issucontent': '请输入Issue内容',\r\n 'p.actionworkflowlist.actionform.placeholder.actioncontent':\r\n '请输入Action内容',\r\n 'p.actionworkflowlist.actionform.placeholder.actionowner':\r\n '请输入Action Owner',\r\n 'p.actionworkflowlist.actionform.placeholder.duedate': '请选择Due Date',\r\n 'p.actionworkflowlist.actionform.placeholder.obsolete': '请输入作废原因',\r\n 'p.actionworkflowlist.actiondetail.placeholder.content': '措施反馈',\r\n 'p.actionworkflowlist.actiondetail.placeholder.content.res': '结果反馈',\r\n 'p.actionworkflowlist.actionform.placeholder.obsoleteContents':\r\n '请输入作废原因',\r\n 'p.actionworkflowlist.issueform.placeholder.tierMeetting':\r\n '请选择tierMeetting',\r\n 'p.actionworkflowlist.actionlistworkflow.allisue.button.exptable': '全部展开',\r\n 'p.actionworkflowlist.actionlistworkflow.allisue.button.fold': '全部折叠',\r\n 'p.actionworkflowlist.actionlistworkflow.actiondetail.button.action': '执行',\r\n 'p.actionworkflowlist.issue.cancel.msg': '您还未保存的数据,是否确认取消?',\r\n 'p.actionworkflowlist.issue.columns.businessType': '问题来源',\r\n 'p.actionworkflowlist.issue.columns.workflow_issue': '行动及跟踪',\r\n 'p.actionworkflowlist.issue.columns.change_issue': '变更管理',\r\n 'p.actionworkflowlist.issue.columns.inspection_task': '检查任务',\r\n 'p.actionworkflowlist.issue.columns.tpm_defect_and_improvement':\r\n '微缺陷/焦点改善记录表',\r\n 'p.actionworkflowlist.table.pageinfomation': '共{value}条数据',\r\n 'p.actionworkflowlist.issue.columns.actionOverduty': '过期负责人',\r\n 'p.actionworkflowlist.issue.columns.overduDay': '过期天数',\r\n 'p.actionworkflowlist.actiondetail.placeholder.content.msg': '请输入反馈措施',\r\n\r\n 'p.downloadDrawer.title': '任务列表',\r\n 'p.downloadDrawer.btn': '下载任务',\r\n 'p.downloadDrawer.table.clear': '请确认是否清理任务列表',\r\n\r\n 'p.downloadDrawer.table.fileName': '文件名',\r\n 'p.downloadDrawer.table.status': '处理状态',\r\n 'p.downloadDrawer.table.status.loading': '处理中',\r\n 'p.downloadDrawer.table.status.success': '成功',\r\n 'p.downloadDrawer.table.status.failure': '失败',\r\n 'p.downloadDrawer.table.status.queue': '队列中',\r\n 'p.downloadDrawer.table.download': '下载数据',\r\n 'p.downloadDrawer.table.dataTooBig': '数据量太大',\r\n 'p.downloadDrawer.table.isDownload': '是否已下载',\r\n 'p.downloadDrawer.fileToBig': '上传文件不可大于10M,请检查附件大小。',\r\n 'p.downloadDrawer.fileToMore': '最多只能上传5个附件,请检查上传附件!',\r\n 'p.downloadDrawer.clear': '一键清理',\r\n 'p.downloadDrawer.retry': '重试',\r\n\r\n 'p.megafactory.dashboardtitle': 'ABB MEGA Factory Dashboard',\r\n 'p.megafactory.pagetitle': 'MEGA Factory Dashboard',\r\n 'p.megafactory.viewdashboard': 'Dashboard',\r\n 'p.megafactory.setting': '配置',\r\n 'p.megafactory.tier4home': 'Tier 4 首页',\r\n 'p.megafactory.andonstatus': 'Andon状态',\r\n 'p.tier4home.pagetitle': '配置 - Tier 4 首页',\r\n 'p.tier4home.covermap': '封面图',\r\n 'p.tier4home.covertips': '按下鼠标左键拖拽选择区域,区域中心为图标位置',\r\n 'p.tier4home.insidemap': '工厂内部',\r\n 'p.tier4home.maptips':\r\n '按下鼠标左键拖拽选择区域,区域中心为图标位置;双击区域可设置区域对应报表',\r\n 'p.tier4home.uploadimg': '上传图片',\r\n 'p.tier4home.cover': '封面',\r\n 'p.tier4home.inside': '内部',\r\n 'p.tier4home.title': '标题',\r\n 'p.tier4home.link': '链接',\r\n 'p.tier4home.area': '区域',\r\n 'p.tier4home.editingmsg': '正在编辑区域{area}',\r\n 'p.tier4home.report': '报表',\r\n 'p.tier4home.reportlinkEN': '报表地址(英文)',\r\n 'p.tier4home.reportlinkZH': '报表地址(中文)',\r\n 'p.tier4home.reportinterval': '刷新间隔',\r\n 'p.tier4home.bottomArea': '底部区域',\r\n 'p.tier4home.carouselPic': '走马灯',\r\n 'p.tier4home.employeePic': '员工风采',\r\n 'p.andonstatus.pagetitle': '配置 - Andon状态',\r\n 'p.andonstatus.refreshinterval': '刷新间隔',\r\n 'p.andonstatus.andonmap': 'Andon地图',\r\n 'p.andonstatus.maptips':\r\n '按下鼠标左键拖拽选择区域,区域中心为andon位置;双击区域可设置对应生产线',\r\n 'p.andonstatus.station': '工位',\r\n};\r\nexport default messages;\r\n","const messages = {\r\n 'p.change': '变更管理',\r\n 'p.change.myPending': '变更管理',\r\n 'p.change.myIssue': '我的变更申请',\r\n 'p.change.all': '全部',\r\n 'p.change.applicant': '发起人',\r\n 'p.change.submittedDate': '提交日期',\r\n 'p.change.productionLine': '产线',\r\n 'p.change.changeType': '变更形式',\r\n 'p.change.changeClarification': '6M变更分类',\r\n 'p.change.description': '变更内容',\r\n 'p.change.changeStatus': '变更单状态',\r\n 'p.change.owner': '责任部门主管',\r\n 'p.change.department': '部门',\r\n 'p.change.quality': '质量审批人',\r\n 'p.change.action': '操作',\r\n 'p.change.addchangeissue': '添加变更申请',\r\n 'p.change.date': '日期',\r\n 'p.change.changeType.placeholder': '请选择变更形式',\r\n 'p.change.issueAction': '应对措施',\r\n 'p.change.actionowner': '责任人',\r\n 'p.change.dueDate': '目标期限',\r\n 'p.change.actionStatus': '状态',\r\n 'p.change.actionStatusDone': '措施是否完成',\r\n 'p.change.pleseSelect': '请选择',\r\n 'p.change.pleseinput': '请选择',\r\n 'p.change.serial': '序号',\r\n};\r\nexport default messages;\r\n","const tpm = {\r\n 'p.tpm.pl.all': 'TPM产线汇总查询',\r\n 'p.tpm.search': '搜索',\r\n 'p.tpm.tpmActivity': 'TPM活动表',\r\n 'p.tpm.tpmActivity.detailTitle': 'TPM活动详情',\r\n 'p.tpm.tpmActivity.add': '新增TPM活动',\r\n 'p.tpm.tpmActivity.applicant': '发起人',\r\n 'p.tpm.tpmActivity.createdDate': '创建日期',\r\n 'p.tpm.tpmActivity.activityDate': '活动日期',\r\n 'p.tpm.tpmActivity.productionLine': '产线',\r\n 'p.tpm.tpmActivity.activityTime': '活动时间',\r\n 'p.tpm.tpmActivity.keyword': '关键字',\r\n 'p.tpm.tpmActivity.activityContent': '活动内容',\r\n 'p.tpm.tpmActivity.action': '操作',\r\n 'p.tpm.tpmActivity.persons': '人员名单',\r\n 'p.tpm.tpmActivity.comment': '备注',\r\n 'p.tpm.tpmActivity.status': '状态',\r\n 'p.tpm.tpmActivity.serial': '序号',\r\n 'p.tpm.tpmActivity.personsdetail': '人员名单列表',\r\n 'p.tpm.tpmActivity.attachment': '附件',\r\n\r\n 'p.tpm.status.Submitted': '已提交',\r\n 'p.tpm.status.Draft': '草稿',\r\n\r\n 'p.tpm.oplTraining': 'OPL培训记录表',\r\n 'p.tpm.oplTraining.detailTitle': 'OPL培训记录详情',\r\n 'p.tpm.oplTraining.add': '新增OPL培训记录',\r\n 'p.tpm.oplTraining.trainingDate': '培训日期',\r\n 'p.tpm.oplTraining.trainingContent': '培训内容',\r\n 'p.tpm.oplTraining.teacher': '讲师',\r\n 'p.tpm.oplTraining.student': '培训人员',\r\n\r\n 'p.tpm.glitchesTracking': '设备故障跟踪记录表',\r\n 'p.tpm.glitchesTracking.detailTitle': '设备故障跟踪记录详情',\r\n 'p.tpm.glitchesTracking.add': '新增设备故障记录',\r\n 'p.tpm.glitchesTracking.description': '故障描述',\r\n 'p.tpm.glitchesTracking.glitchDate': '故障日期',\r\n 'p.tpm.glitchesTracking.equipment': '设备',\r\n 'p.tpm.glitchesTracking.finder': '发现人',\r\n 'p.tpm.glitchesTracking.selfsolve': '自主解决',\r\n 'p.tpm.glitchesTracking.solution': '处理方式',\r\n 'p.tpm.glitchesTracking.confirmResult': '确认结果',\r\n\r\n 'p.tpm.defectAndImprovement': '微缺陷/焦点改善记录表',\r\n 'p.tpm.defectAndImprovement.add': '新增微缺陷/焦点改善记录',\r\n 'p.tpm.defectAndImprovement.detailTitle': '微缺陷/焦点改善记录详情',\r\n 'p.tpm.defectAndImprovement.photoExcel': '导出Excel(含图片)',\r\n 'p.tpm.defectAndImprovement.photoExcel.title': '确认生成excel带图片记录',\r\n 'p.tpm.defectAndImprovement.photoExcel.detail':\r\n '确认提交生成excel带图片记录吗?',\r\n 'p.tpm.defectAndImprovement.photoExcel.success':\r\n '任务已提交,请到下载任务中查看任务状态。任务完成后可下载文件。',\r\n 'p.tpm.defectAndImprovement.classification': '种类',\r\n 'p.tpm.defectAndImprovement.findDate': '发现日期',\r\n 'p.tpm.defectAndImprovement.description': '问题描述',\r\n 'p.tpm.defectAndImprovement.basicCard': '基础信息',\r\n\r\n 'p.tpm.defectAndImprovement.classification.Defect': '微缺陷',\r\n 'p.tpm.defectAndImprovement.classification.Improvement': '焦点改善',\r\n};\r\nexport default tpm;\r\n","const messages = {\r\n 'p.inspection': '检查活动',\r\n 'p.inspection.mypending': '我的待办',\r\n 'p.inspection.plan': '检查计划',\r\n 'p.inspection.task': '检查任务',\r\n 'p.inspection.template': '检查模板',\r\n 'p.inspection.template.view': '查看模板',\r\n\r\n 'p.inspection.tempType': '模板类型',\r\n 'p.inspection.tempType.name': '类型名称',\r\n 'p.inspection.tempType.createdName': '创建人',\r\n 'p.inspection.tempType.createdTime': '创建时间',\r\n\r\n 'p.inspection.position': '产线站位',\r\n 'p.inspection.position.name': '站位',\r\n 'p.inspection.position.addsub': '添加站位',\r\n 'p.inspection.position.delete.title': '是否要删除该站位',\r\n 'p.inspection.exists': '已存在',\r\n\r\n 'p.inspection.otherTier': '非生产检查区域主数据',\r\n 'p.inspection.otherTier.add': '添加非生产检查区域',\r\n 'p.inspection.otherTier.addsub': '添加子区域',\r\n 'p.inspection.otherTier.name': '名称',\r\n 'p.inspection.otherTier.delete.title': '是否要删除该区域',\r\n 'p.inspection.otherTier.exists': '已存在',\r\n\r\n 'p.inspection.template.createdBy': '制定者',\r\n 'p.inspection.template.name': '模板名称',\r\n 'p.inspection.template.frequency': '检查频次',\r\n 'p.inspection.template.frequency.day': '每天',\r\n 'p.inspection.template.frequency.week': '每周',\r\n 'p.inspection.template.frequency.month': '每月',\r\n 'p.inspection.template.frequency.towMonth': '每两月',\r\n 'p.inspection.template.frequency.quarter': '季度',\r\n 'p.inspection.template.frequency.single': '单次生效',\r\n 'p.inspection.template.createdTime': '制定时间',\r\n 'p.inspection.template.status': '状态',\r\n 'p.inspection.template.status.Invalid': '已作废',\r\n 'p.inspection.template.status.Draft': '草稿',\r\n 'p.inspection.template.status.Submitted': '已提交',\r\n\r\n 'p.inspection.template.add': '添加模板',\r\n 'p.inspection.template.isTierArea': '是否Tier级区域',\r\n 'p.inspection.template.areaParentLevel': '检查区域层级',\r\n 'p.inspection.template.areaParent': '检查区域父级',\r\n 'p.inspection.template.isAllChecked': '检查项是否必检',\r\n 'p.inspection.template.isScore': '检查项是否打分',\r\n 'p.inspection.template.ruleDescription': '使用规则',\r\n\r\n 'p.inspection.template.button.cancel.firm': '数据尚未保存,确定取消吗?',\r\n 'p.inspection.template.button.invalid.firm': '确认作废当前模板吗?',\r\n 'p.inspection.template.button.delete.firm': '确认删除当前草稿吗?',\r\n\r\n 'p.inspection.template.table': '检查项清单',\r\n 'p.inspection.template.table.serial': '序号',\r\n 'p.inspection.template.table.type': '条目类别',\r\n 'p.inspection.template.table.name': '条目名称',\r\n 'p.inspection.template.table.isException': '是否例外项',\r\n 'p.inspection.template.table.action': '操作',\r\n 'p.inspection.template.table.add': '添加条目',\r\n 'p.inspection.template.table.download': '下载导入模板',\r\n 'p.inspection.template.table.upload': '清单上传',\r\n 'p.inspection.template.table.info.undefined': '数据验证失败',\r\n\r\n 'p.inspection.template.check': '检查项目',\r\n 'p.inspection.template.isCheckAll': '是否全检',\r\n\r\n 'p.inspection.template.check.type': '检查项目类型',\r\n 'p.inspection.template.check.name': '检查项目名称',\r\n 'p.inspection.template.check.detail': '细则说明',\r\n\r\n 'p.inspection.plan.createdBy': '发起人',\r\n 'p.inspection.plan.createdTime': '发起时间',\r\n 'p.inspection.plan.serialNo': '计划序列号',\r\n 'p.inspection.plan.name': '计划名称',\r\n 'p.inspection.plan.templateName': '模板名称',\r\n 'p.inspection.plan.inspectionPerson': '检查人员',\r\n 'p.inspection.plan.startDate': '计划开始时间',\r\n 'p.inspection.plan.endDate': '计划结束时间',\r\n 'p.inspection.plan.task': '计划完成度',\r\n 'p.inspection.plan.status': '状态',\r\n 'p.inspection.plan.action': '操作',\r\n 'p.inspection.plan.inspectionArea': '计划检查区域',\r\n 'p.inspection.plan.comment': '备注',\r\n\r\n 'p.inspection.plan.add': '添加检查计划',\r\n\r\n 'p.inspection.plan.status.Draft': '草稿',\r\n 'p.inspection.plan.status.Wait': '待接受',\r\n 'p.inspection.plan.status.Accepted': '已接受',\r\n 'p.inspection.plan.status.Close': '已关闭',\r\n 'p.inspection.plan.status.Rejected': '拒绝',\r\n 'p.inspection.plan.status.Interrupt': '中断',\r\n 'p.inspection.plan.status.undefined': '',\r\n 'p.inspection.plan.action.task': '检查任务',\r\n 'p.inspection.plan.button.interrupt.firm': '是否中断该计划?',\r\n\r\n 'p.inspection.task.createdBy': '发起人',\r\n 'p.inspection.task.startDate': '检查开始时间',\r\n 'p.inspection.task.endDate': '检查结束时间',\r\n 'p.inspection.task.executionTime': '检查执行时间',\r\n 'p.inspection.task.breakOffOperator': '中断人',\r\n 'p.inspection.task.executionDate': '检查日期',\r\n\r\n 'p.inspection.task.createdTime': '发起时间',\r\n 'p.inspection.task.status': '状态',\r\n 'p.inspection.task.button.finally': '执行完成',\r\n 'p.inspection.task.button.finally.notification.title': '执行失败',\r\n 'p.inspection.task.button.finally.notification.havingNotCheck':\r\n '请完成所有检查条目检查!',\r\n 'p.inspection.task.button.finally.notification.havingNotIssue':\r\n '请添加有待改进检查条目发现项',\r\n 'p.inspection.task.button.finally.notification.havingNotScore':\r\n '请给检查条目打分!',\r\n 'p.inspection.task.heard': '执行检查任务',\r\n 'p.inspection.task.accompanyingPerson': '陪同检查者',\r\n 'p.inspection.task.heard.title': '基本信息',\r\n 'p.inspection.task.actualInspectionArea': '实际检查区域',\r\n 'p.inspection.task.taskCheckItem': '检查条目',\r\n 'p.inspection.task.table.result': '结果确认',\r\n 'p.inspection.task.table.score': '结果分数',\r\n 'p.inspection.task.table.explain': '说明',\r\n 'p.inspection.task.table.score.warning': '结果总分数不能大于100',\r\n\r\n 'p.inspection.task.table.footer.count': '发现项数量',\r\n 'p.inspection.task.table.footer.score': '检查结果总分',\r\n\r\n 'p.inspection.task.table.result.Unchecked': '未检查',\r\n 'p.inspection.task.table.result.Through': '满足要求',\r\n 'p.inspection.task.table.result.NoThrough': '有待改进',\r\n\r\n 'p.inspection.task.status.Wait': '待执行',\r\n 'p.inspection.task.status.ExWait': '超期待执行',\r\n 'p.inspection.task.status.Interrupt': '中断',\r\n 'p.inspection.task.status.Executed': '已执行',\r\n 'p.inspection.task.status.Close': '已关闭',\r\n\r\n 'p.inspection.task.find.titel': '发现项',\r\n 'p.inspection.task.find.Add': '添加发现项',\r\n 'p.inspection.task.find.table.description': '发现内容',\r\n 'p.inspection.task.find.table.files': '发现项图片',\r\n};\r\nexport default messages;\r\n","import error from './en-US/error';\r\nimport menu from './en-US/menu';\r\nimport pages from './en-US/pages';\r\nimport change from './en-US/change';\r\nimport tpm from './en-US/tpm';\r\n\r\nconst enUS = {\r\n 'common.loading': 'Loading...',\r\n 'common.search': 'Search',\r\n 'common.clear': 'Clear',\r\n 'common.add': 'Add',\r\n 'common.edit': 'Edit',\r\n 'common.delete': 'Delete',\r\n 'common.save': 'Save',\r\n 'common.cancel': 'Cancel',\r\n 'common.submit': 'Submit',\r\n 'common.reset': 'Reset',\r\n 'common.close': 'Close',\r\n 'common.delcfm': 'Are you sure to delete {value}?',\r\n 'common.thisitem': 'this item',\r\n 'common.deleting': 'Deleting...',\r\n 'common.yes': 'Yes',\r\n 'common.no': 'No',\r\n 'common.unknown': 'Unknown',\r\n 'common.nocontent': 'No Content',\r\n 'common.loadmore': 'Load More',\r\n 'common.success': 'Success',\r\n 'common.finish': 'Finish',\r\n 'common.confirm': 'Confirm',\r\n 'common.fallback': 'Fallback',\r\n 'common.reject': 'Reject',\r\n 'common.access': 'Access',\r\n 'common.transfer': 'Transfer',\r\n 'common.withdrawal': 'Withdrawal',\r\n 'common.back': 'Back',\r\n 'common.handle': 'Handle',\r\n 'common.detail': 'Detail',\r\n 'common.keyword': 'Keyword',\r\n 'common.attachment': 'Attachment',\r\n 'common.exportexcel': 'Export Excel',\r\n 'common.obsolete': 'Are you sure to obsolete {value}?',\r\n 'common.example': 'e.g. {value}',\r\n 'layout.appname': ' CN PDP Digital Management Platform',\r\n 'layout.lang': 'Languages',\r\n 'layout.signout': 'Sign Out',\r\n 'layout.download': 'Downloads',\r\n ...error,\r\n ...menu,\r\n ...pages,\r\n ...change,\r\n ...tpm,\r\n};\r\nexport default enUS;\r\n","const messages = {\r\n 'e.get': 'Failed to get {name}',\r\n 'e.getlist': 'Failed to get {name}',\r\n 'e.valfield': 'Failed to validate the {label}',\r\n 'e.exists': '{value} already exists.',\r\n 'e.notexists': '{value} does not exists.',\r\n};\r\nexport default messages;\r\n","const messages = {\r\n 'menu.setting': 'Settings',\r\n 'menu.menu': 'Menus',\r\n 'menu.role': 'Roles',\r\n 'menu.message': 'Mail Messages',\r\n 'menu.appconfig': 'Configurations',\r\n 'menu.user': 'Users',\r\n 'menu.home': 'Home',\r\n};\r\nexport default messages;\r\n","const messages = {\r\n 'p.login.error':\r\n \"Something went wrong and we can't sign you in right now. Please try again.\",\r\n 'p.login.welcome': 'Welcome to',\r\n 'p.login.employee': 'ABB Employee',\r\n 'p.login.employeetip': 'Sign in with ABB email',\r\n 'p.login.customer': 'ABB Customer',\r\n 'p.login.customertip': 'Query my orders',\r\n 'p.errorpage.403': 'FORBIDDEN',\r\n 'p.errorpage.404': 'PAGE NOT FOUND',\r\n 'p.errorpage.home': 'BACK TO HOME PAGE',\r\n 'p.role.name': 'role',\r\n 'p.role.plural': 'roles',\r\n 'p.user.name': 'user',\r\n 'p.user.plural': 'users',\r\n 'p.user.f.email': 'Email',\r\n 'p.user.f.name': 'Name',\r\n 'p.user.f.roles': 'Roles',\r\n 'p.user.s.kw': 'name, email...',\r\n 'p.user.s.roleph': 'All roles',\r\n 'p.orderpoint.pdpstart': 'Production Start',\r\n 'p.orderpoint.pdpfinish': 'Production Completed',\r\n 'p.orderpoint.pdpbilling': 'PDP Custom Clearance',\r\n 'p.orderpoint.blwarehouse': 'BL in-Warehouse',\r\n 'p.orderpoint.bldeparture': 'BL Delivery(Departure)',\r\n 'p.orderpoint.blarrival': 'BL Delivery(Arrival)',\r\n 'p.contact.pointph': 'All points',\r\n 'p.contact.emailph': 'email...',\r\n 'p.contact.f.ContactPoint': 'Contact Point',\r\n 'p.contact.f.PlantCode': 'Plant',\r\n 'p.contact.f.CompanyCode': 'Company',\r\n 'p.contact.f.PhaseOwnerEmail': 'Phase Owner Email',\r\n 'p.contact.f.PhaseOwnerName': 'Phase Owner Display Name',\r\n 'p.contact.f.Escalation1': '1st Escalation Owner',\r\n 'p.so.s.customerph': 'Customer Name...',\r\n 'p.so.s.projectph': 'Project Number...',\r\n 'p.so.s.robotph': 'Robot Type...',\r\n 'p.so.noorder': 'No Order',\r\n 'p.so.nobtorder': 'No bt orders',\r\n 'p.so.selectorder': 'PLEASE SELECT AN ORDER',\r\n 'p.so.sotitle': 'Contract Details',\r\n 'p.so.dntitle': 'Delivery Information',\r\n 'p.so.createdate': 'Created Date',\r\n 'p.so.releasedate': 'Release Date',\r\n 'p.so.sales': 'Sales',\r\n 'p.so.pm': 'PM',\r\n 'p.so.plandeparture': 'Planned Departure',\r\n 'p.so.actualdeparture': 'Actual Departure',\r\n 'p.so.planarrival': 'Planned Arrival',\r\n 'p.so.actualarrival': 'Actual Arrival',\r\n 'p.so.question': 'Question',\r\n 'p.so.f.RobotType': 'Robot Type',\r\n 'p.so.f.Quantity': 'Quantity',\r\n 'p.so.f.SalesUnit': 'Unit',\r\n 'p.dn.tobedelivered': 'To be delivered',\r\n 'p.dn.ondelivery': 'On delivery',\r\n 'p.dn.delivered': 'Delivered',\r\n 'p.dn.plandeparture': 'Planned Departure',\r\n 'p.dn.actualdeparture': 'Actual Departure',\r\n 'p.dn.planarrival': 'Planned Arrival',\r\n 'p.dn.actualarrival': 'Actual Arrival',\r\n 'p.dn.ActualGIDate': 'SAP Actual GI date',\r\n 'p.dn.tip': '系统仅显示6个月内的物流信息',\r\n 'p.dn.shipmentno': 'Shipement No.',\r\n 'p.bt.notstart': 'Not Started',\r\n 'p.bt.inprod': 'In Production',\r\n 'p.bt.delivered': 'Delivered',\r\n 'p.bt.ontime': 'On Time',\r\n 'p.bt.timegap': 'Time Gap',\r\n 'p.bt.delay': 'Delay',\r\n 'p.bt.plandate': 'Planned Date',\r\n 'p.bt.actualdate': 'Actual Date',\r\n 'p.commun.f.ProjectNumber': 'Project',\r\n 'p.commun.f.QuestionType': 'Order Point',\r\n 'p.commun.f.dnorder': 'Related Order',\r\n 'p.commun.f.RobotType': 'Robot Type',\r\n 'p.commun.f.PlannedDate': 'Planned Date',\r\n 'p.commun.f.ActualDate': 'Actual Date',\r\n 'p.commun.f.PhaseOwner': 'Send to',\r\n 'p.commun.f.QuestionContent': 'Question',\r\n 'p.commun.f.RequestUserName': 'Requested by',\r\n 'p.commun.f.RequestOn': 'Requested on',\r\n 'p.commun.f.ClosedUserName': 'Closed by',\r\n 'p.commun.f.ClosedOn': 'Closed on',\r\n 'p.commun.f.Answered': 'Answered',\r\n 'p.commun.dnhelp':\r\n 'Please enter project number when inquiring delivery questions',\r\n 'p.commun.btlabel': 'BT Order',\r\n 'p.commun.dnlabel': 'Delivery',\r\n 'p.commun.pendinglabel': 'Pending',\r\n 'p.commun.closedlabel': 'Closed',\r\n 'p.commun.questiontitle': 'Question',\r\n 'p.commun.answertitle': 'Answer',\r\n 'p.commun.addaction': 'Add Action',\r\n 'p.commun.closed': 'Closed',\r\n 'p.commun.closecfm': 'Are you sure to close this action?',\r\n 'p.answer.f.DelayReason': 'Delay Reason',\r\n 'p.answer.f.Description': 'Description',\r\n 'p.answer.f.UpdatePlanDate': 'Update Plan Date',\r\n 'p.answer.f.Actions': 'Actions',\r\n 'p.answer.f.ActionContent': 'Action',\r\n 'p.answer.f.ActionOwner': 'Action Owner',\r\n 'p.answer.f.TargetDate': 'Target Date',\r\n 'p.answer.f.ClosedTime': 'Closed On',\r\n 'p.customerorder.pagetitle': 'Orders',\r\n 'p.customerorder.s.customer': 'Customer Code',\r\n 'p.customerorder.s.project': 'Project Number',\r\n 'p.customerorder.searchtip':\r\n 'Please enter the customer code and project number to search ',\r\n 'p.customerorder.noorder': 'NO ORDER FOUND',\r\n 'p.actionworkflowlist.pagetitle': 'Action Workflow List',\r\n 'p.actionworkflowlist.addissue': 'Add Issue',\r\n 'p.actionworkflowlist.mytask': 'My Task',\r\n 'p.actionworkflowlist.myissue': 'My Issue',\r\n 'p.actionworkflowlist.allissue': 'All Issue',\r\n 'p.actionworkflowlist.mytask.pannel.issuetitle': 'My Issue Task',\r\n 'p.actionworkflowlist.mytask.pannel.actiontitle': 'My Action Task',\r\n 'p.actionworkflowlist.issue.columns.issuecreatedby': 'CreatedBy',\r\n 'p.actionworkflowlist.issue.columns.issuecreatedtime': 'CreatedTime',\r\n 'p.actionworkflowlist.issue.columns.issuecontent': 'Issue Content',\r\n 'p.actionworkflowlist.issue.columns.issueowner': 'Issue Owner',\r\n 'p.actionworkflowlist.issue.columns.isrepeat': 'IsRepeat',\r\n 'p.actionworkflowlist.issue.columns.priority': 'Priority',\r\n 'p.actionworkflowlist.issue.columns.issuestatus': 'Issue Status',\r\n 'p.actionworkflowlist.issue.columns.istiermeeting': 'Is Tier Meeting?',\r\n 'p.actionworkflowlist.issue.columns.issuechanneltype': 'Issue Channeltype',\r\n 'p.actionworkflowlist.issue.columns.actioncontent': 'Action Content',\r\n 'p.actionworkflowlist.issue.columns.actoinowner': 'Action Owner',\r\n 'p.actionworkflowlist.issue.columns.actoinstatus': 'Action Status',\r\n 'p.actionworkflowlist.issue.columns.actoinduedate': 'Due Date',\r\n 'p.actionworkflowlist.addissue.attachment.msg':\r\n 'You have not uploaded the attachment. Do you confirm the submission?',\r\n 'p.actionworkflowlist.addissue.addaction.msg':\r\n 'Please add Actions, thank you.',\r\n 'p.actionworkflowlist.issue.reject.msg':\r\n 'Please enter a reason for rejection!',\r\n 'p.actionworkflowlist.issue.transfer.reject.msg':\r\n 'After the rejection, you do not need to re-track the Issue and Action. Do you confirm the rejection?',\r\n 'p.actionworkflowlist.issue.transfer.accept.msg':\r\n 'After acceptance, you will become the new Issue Owner and will not be returnable. Are you sure to accept?',\r\n 'p.actionworkflowlist.issue.transfer.withdraw.msg':\r\n 'After withdrawal, the Issue will retain the original Issue Owner. Are you sure to withdraw?',\r\n 'p.actionworkflowlist.issue.transfer.msg': 'Confirm transfer?',\r\n 'p.actionworkflowlist.issueform.title': 'Action and tracking',\r\n 'p.actionworkflowlist.issueform.issuepannel.title': 'Issue Message',\r\n 'p.actionworkflowlist.issue.columns.beforeissueowner': 'Before Issue Owner',\r\n 'p.actionworkflowlist.issueform.attachment': 'Issue Attachment',\r\n 'p.actionworkflowlist.issueform.addaction.button': 'Add Action',\r\n 'p.actionworkflowlist.issueform.obsolete.button': 'Obsolete',\r\n 'p.actionworkflowlist.issueform.issuetransferpannel.title':\r\n 'Issue Handover Record',\r\n 'p.actionworkflowlist.issueform.issuetransferpannel.comments':\r\n 'Issue Handover Comments',\r\n 'p.actionworkflowlist.issueform.issuetransferpannel.comments.placeholder':\r\n 'Please input issue transfer comments',\r\n 'p.actionworkflowlist.issuetransferform.title': 'Transfer Issue',\r\n 'p.actionworkflowlist.action.columns.createdby': 'CreatedBy',\r\n 'p.actionworkflowlist.action.columns.createdtime': 'CreatedTime',\r\n 'p.actionworkflowlist.action.columns.beforeduedate': 'Before Due Date',\r\n 'p.actionworkflowlist.actionform.actionrecordpannel.title':\r\n 'Response tracking record',\r\n 'p.actionworkflowlist.actionform.obsolete.title': 'Invalid Reason',\r\n 'p.actionworkflowlist.actiondetail.fallback.msg': 'Are you sure to fallback?',\r\n 'p.actionworkflowlist.actiondetail.actionpanel.title': 'Action information',\r\n 'p.actionworkflowlist.actiondetail.actionrecordpanel.title':\r\n 'Response tracking record',\r\n 'p.actionworkflowlist.actiondetail.actionfeedback.title':\r\n 'Response action implementation feedback',\r\n 'p.actionworkflowlist.actiondetail.attachment': 'Feedback the attachment',\r\n 'p.actionworkflowlist.actiondetail.iscompleted': 'Is completed',\r\n 'p.actionworkflowlist.issueform.placeholder.issucontent':\r\n 'Please input issue content',\r\n 'p.actionworkflowlist.actionform.placeholder.actioncontent':\r\n 'Please input action content',\r\n 'p.actionworkflowlist.actionform.placeholder.actionowner':\r\n 'Please input Action Owner',\r\n 'p.actionworkflowlist.actionform.placeholder.duedate':\r\n 'Please select Due Date',\r\n 'p.actionworkflowlist.actionform.placeholder.obsolete':\r\n 'Please enter the reason for invalidation',\r\n 'p.actionworkflowlist.actiondetail.placeholder.content': 'Comments',\r\n 'p.actionworkflowlist.actiondetail.placeholder.content.res':\r\n 'Result Feedback',\r\n 'p.actionworkflowlist.actionform.placeholder.obsoleteContents':\r\n 'Please enter the reason for invalidation!',\r\n 'p.actionworkflowlist.issueform.placeholder.tierMeetting':\r\n 'Please select tierMeetting',\r\n 'p.actionworkflowlist.actionlistworkflow.allisue.button.exptable':\r\n 'Expand all',\r\n 'p.actionworkflowlist.actionlistworkflow.allisue.button.fold': 'All folding',\r\n 'p.actionworkflowlist.actionlistworkflow.actiondetail.button.action':\r\n 'Action',\r\n 'p.actionworkflowlist.issue.cancel.msg':\r\n 'You have not saved the data, whether to confirm to cancel?',\r\n 'p.actionworkflowlist.issue.columns.businessType': 'Problem Sources',\r\n 'p.actionworkflowlist.issue.columns.workflow_issue': 'Action Workflow',\r\n 'p.actionworkflowlist.issue.columns.change_issue': 'Change Management',\r\n 'p.actionworkflowlist.table.pageinfomation': 'Total {value} data ',\r\n 'p.actionworkflowlist.issue.columns.actionOverduty': 'Overdue Owner',\r\n 'p.actionworkflowlist.issue.columns.overduDay': 'Due Day',\r\n 'p.actionworkflowlist.actiondetail.placeholder.content.msg':\r\n 'Please input the comments',\r\n\r\n 'p.megafactory.dashboardtitle': 'ABB MEGA Factory Dashboard',\r\n 'p.megafactory.pagetitle': 'MEGA Factory Dashboard',\r\n 'p.megafactory.viewdashboard': 'Dashboard',\r\n 'p.megafactory.setting': 'Setting',\r\n 'p.megafactory.tier4home': 'Tier 4 Home',\r\n 'p.megafactory.andonstatus': 'Andon Status',\r\n 'p.tier4home.pagetitle': 'Setting - Tier 4 Home',\r\n 'p.tier4home.covermap': 'Cover',\r\n 'p.tier4home.covertips':\r\n 'Press the left mouse button and drag to select the area',\r\n 'p.tier4home.insidemap': 'Inside',\r\n 'p.tier4home.maptips':\r\n 'Press the left mouse button and drag to select the area, Double click to set the report',\r\n 'p.tier4home.uploadimg': 'Upload',\r\n 'p.tier4home.cover': 'Cover',\r\n 'p.tier4home.inside': 'Inside',\r\n 'p.tier4home.title': 'Title',\r\n 'p.tier4home.link': 'Link',\r\n 'p.tier4home.area': 'Area',\r\n 'p.tier4home.editingmsg': 'Editing area {area}',\r\n 'p.tier4home.report': 'Report',\r\n 'p.tier4home.reportlinkEN': 'Report Link(EN)',\r\n 'p.tier4home.reportlinkZH': 'Report Link(ZH)',\r\n 'p.tier4home.reportinterval': 'Report Interval',\r\n 'p.tier4home.bottomArea': 'Bottom Area',\r\n 'p.tier4home.carouselPic': 'Carousel',\r\n 'p.tier4home.employeePic': 'Employee Picture',\r\n 'p.andonstatus.pagetitle': 'Setting - Andon Status',\r\n 'p.andonstatus.refreshinterval': 'Refresh Interval',\r\n 'p.andonstatus.andonmap': 'Andon Map',\r\n 'p.andonstatus.maptips':\r\n 'Press the left mouse button and drag to select the area, and double click to set the station',\r\n 'p.andonstatus.station': 'Station',\r\n};\r\nexport default messages;\r\n","const messages = {\r\n 'p.change.applicant': '发起人',\r\n 'p.change.submittedDate': '提交日期',\r\n 'p.change.productionLine': '产线',\r\n 'p.change.changeType': '变更形式',\r\n 'p.change.changeClarification': '6M变更分类',\r\n 'p.change.description': '变更内容',\r\n 'p.change.changeStatus': '变更单状态',\r\n 'p.change.owner': '责任部门主管',\r\n 'p.change.quality': '质量审批人',\r\n 'p.change.action': '操作',\r\n 'p.change.addchangeissue': '添加变更申请',\r\n 'p.change.date': '日期',\r\n 'p.change.changeType.placeholder': '请选择变更形式',\r\n 'p.change.issueAction': '应对措施',\r\n 'p.change.actionowner': '责任人',\r\n 'p.change.dueDate': '目标期限',\r\n 'p.change.actionStatus': '状态',\r\n 'p.change.actionStatusDone': '措施是否完成',\r\n 'p.change.pleseSelect': '请选择',\r\n 'p.change.pleseinput': '请选择',\r\n 'p.change.serial': '序号',\r\n};\r\nexport default messages;\r\n","const tpm = {};\r\nexport default tpm;\r\n","import http from './http';\r\n\r\nexport function getLoginInfo() {\r\n return http.get('/Account/GetLoginWithMenus');\r\n}\r\n","import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';\r\nimport { getLoginInfo } from '@/api/account';\r\nimport { authorizeCode, refreshToken, removeRefreshToken } from '@/api/auth';\r\n\r\n// constants\r\nexport const AUTH_STATUS = {\r\n NOTLOGGEDIN: 'notloggedin',\r\n LOGGINGIN: 'loggingin',\r\n SUCCEEDED: 'succeeded',\r\n FAILED: 'failed',\r\n};\r\n\r\nconst initialState = {\r\n status: AUTH_STATUS.NOTLOGGEDIN,\r\n token: false,\r\n user: {},\r\n menus: [],\r\n permissions: [],\r\n error: '',\r\n errorcode: 0,\r\n};\r\n\r\n// async thunks\r\nexport const fetchToken = createAsyncThunk(\r\n 'auth/fetchToken',\r\n async (userArgs, { rejectWithValue }) => {\r\n try {\r\n let error = true;\r\n if (userArgs) {\r\n if (userArgs.code) {\r\n const response = await authorizeCode(\r\n userArgs.code,\r\n userArgs.redirect_uri\r\n );\r\n error = false;\r\n return response;\r\n } else if (userArgs.refresh_token) {\r\n const response = await refreshToken(userArgs.refresh_token);\r\n error = false;\r\n return response;\r\n }\r\n if (error) {\r\n return rejectWithValue({\r\n status: 400,\r\n message: 'userArgs is required',\r\n });\r\n }\r\n }\r\n } catch {\r\n return rejectWithValue();\r\n }\r\n }\r\n);\r\nexport const fetchUser = createAsyncThunk('auth/fetchUser', getLoginInfo);\r\n\r\nexport const signOut = createAsyncThunk('auth/signOut', async () => {\r\n removeRefreshToken();\r\n});\r\n\r\n// slice\r\nexport const authSlice = createSlice({\r\n name: 'auth',\r\n initialState,\r\n extraReducers: {\r\n [fetchToken.pending]: (state, action) => {\r\n state.status = AUTH_STATUS.LOGGINGIN;\r\n },\r\n [fetchToken.fulfilled]: (state, action) => {\r\n state.token = true;\r\n },\r\n [fetchToken.rejected]: (state, action) => {\r\n state.status = AUTH_STATUS.FAILED;\r\n },\r\n [fetchUser.fulfilled]: (state, action) => {\r\n const { menus, permissions, ...user } = action.payload;\r\n state.user = user;\r\n state.menus = menus;\r\n state.permissions = permissions;\r\n state.status = AUTH_STATUS.SUCCEEDED;\r\n },\r\n [fetchUser.rejected]: (state, action) => {\r\n state.status = AUTH_STATUS.FAILED;\r\n },\r\n // [signOut.fulfilled]: (state, action) => {\r\n // state.status = AUTH_STATUS.NOTLOGGEDIN;\r\n // state.token = false;\r\n // state.user = {};\r\n // state.menus = [];\r\n // state.permissions = [];\r\n // },\r\n },\r\n});\r\n\r\n// reducer\r\nexport default authSlice.reducer;\r\n\r\n// selector\r\nexport const selectStatus = state => state.auth.status;\r\nexport const selectUser = state => state.auth.user || '';\r\nexport const selectUserId = state => state.auth.user.id;\r\nexport const selectUserEmail = state => state.auth.user.email;\r\nexport const selectName = state => state.auth.user.name || '';\r\nexport const selectPermission = state => state.auth.permissions;\r\nexport const selectMenus = state => state.auth.menus;\r\n","import http from './http';\r\n\r\nexport function GetMyTables() {\r\n return http.post('/Job/GetTables');\r\n}\r\nexport function ClearJobDwonloads(id) {\r\n return http.delete('/Job/ClearJobDwonloads?id=' + id);\r\n}\r\nexport function RetryJobDwonloads(id) {\r\n return http.post('/Job/RetryJobDwonloads?id=' + id);\r\n}\r\n\r\nexport function UpdateDownLoad(id) {\r\n return http.post('/Job/UpdateDownLoad?id=' + id);\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Drawer, Tooltip, Modal, Space, Table, Row, Col, Button } from 'antd';\r\nimport { useIntl } from 'react-intl';\r\nimport {\r\n GetMyTables,\r\n ClearJobDwonloads,\r\n RetryJobDwonloads,\r\n UpdateDownLoad,\r\n} from '@/api/job';\r\nimport moment from 'moment';\r\n\r\nconst DownloadDrawer = props => {\r\n const [listData, setListData] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const [selectedRowKeys, setselectedRowKeys] = useState([]);\r\n\r\n //多语言\r\n const intl = useIntl();\r\n const intlText = id => {\r\n return intl.formatMessage({ id: id });\r\n };\r\n\r\n useEffect(() => {\r\n GetMyTables().then(ref => setListData(ref));\r\n setLoading(false);\r\n }, [props, loading]);\r\n\r\n const handClear = () => {\r\n Modal.confirm({\r\n title: intlText('p.downloadDrawer.title'),\r\n content: intlText('p.downloadDrawer.table.clear'),\r\n onOk() {\r\n selectedRowKeys.map(l => {\r\n ClearJobDwonloads(l.toString()).finally(() =>\r\n GetMyTables().then(ref => setListData(ref))\r\n );\r\n });\r\n },\r\n });\r\n };\r\n\r\n const handRetry = () => {\r\n selectedRowKeys.map(l => {\r\n RetryJobDwonloads(l.toString()).finally(() =>\r\n GetMyTables().then(ref => setListData(ref))\r\n );\r\n });\r\n };\r\n\r\n const handDownload = item => {\r\n UpdateDownLoad(item.key).finally(() => setLoading(true));\r\n\r\n console.log(listData.find(l => l.key == item.key));\r\n listData.find(l => l.key == item.key).isDownLoad = true;\r\n setListData(listData);\r\n };\r\n const onSelectChange = selectedRowKey => {\r\n setselectedRowKeys(selectedRowKey);\r\n };\r\n const rowSelection = {\r\n selectedRowKeys,\r\n onChange: onSelectChange,\r\n };\r\n const hasSelected = selectedRowKeys.length > 0;\r\n const columns = [\r\n {\r\n title: intlText('p.downloadDrawer.table.fileName'),\r\n dataIndex: 'fileName',\r\n ellipsis: {\r\n showTitle: false,\r\n },\r\n render: fileName => (\r\n \r\n {fileName}\r\n \r\n ),\r\n },\r\n {\r\n title: intlText('p.tpm.tpmActivity.createdDate'),\r\n dataIndex: 'createdDate',\r\n render: (text, item) => {\r\n return moment(text).format('YYYY-MM-DD HH:mm:ss');\r\n },\r\n with: '200',\r\n },\r\n {\r\n title: intlText('p.downloadDrawer.table.status'),\r\n dataIndex: 'status',\r\n render: (text, item) => {\r\n return intlText('p.downloadDrawer.table.status.' + text.toLowerCase());\r\n },\r\n with: '200',\r\n },\r\n {\r\n title: intlText('p.downloadDrawer.table.isDownload'),\r\n dataIndex: 'isDownLoad',\r\n render: (text, item) => {\r\n if (item.isDownLoad) {\r\n return intlText('common.yes');\r\n }\r\n if (!item.isDownLoad) {\r\n return intlText('common.no');\r\n }\r\n },\r\n with: '200',\r\n },\r\n {\r\n title: '',\r\n dataIndex: 'downloadLink',\r\n render: (text, item) => {\r\n if (item.status.toLowerCase() == 'failure')\r\n return intlText('p.downloadDrawer.table.dataTooBig');\r\n if (item.status.toLowerCase() == 'success')\r\n return (\r\n handDownload(item)}\r\n >\r\n {intlText('p.downloadDrawer.table.download')}\r\n \r\n );\r\n },\r\n minwith: '200',\r\n },\r\n ];\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {intlText('p.downloadDrawer.clear')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DownloadDrawer;\r\n","import React, { useState } from 'react';\r\nimport { Menu, Divider } from 'antd';\r\nimport {\r\n UserOutlined,\r\n ExportOutlined,\r\n DownloadOutlined,\r\n} from '@ant-design/icons';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { selectMenus, selectName, signOut } from '../features/auth/authSlice';\r\nimport { Link } from 'react-router-dom';\r\nimport './LayoutDefault.less';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport DownloadDrawer from '@/features/TPM/Tools/DownloadDrawer';\r\n//import LanguageSetting from './LanguageSetting';\r\n\r\nfunction LayoutDefault({ children, menu }) {\r\n let year = new Date().getFullYear();\r\n const [dDV, setDDV] = useState(false);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n setDDV(true)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {children}\r\n setDDV(false)} />\r\n
\r\n
\r\n
\r\n
© {year} ABB
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default LayoutDefault;\r\n\r\n// child component\r\nfunction Navbar({ currentMenu }) {\r\n // component\r\n const { SubMenu } = Menu;\r\n // selector\r\n const menus = useSelector(selectMenus);\r\n\r\n function getNavItems(items) {\r\n let navItems = [];\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n let navitem = {\r\n key: item.menuCode,\r\n label: item.menuName,\r\n };\r\n if (item.children && item.children.length > 0) {\r\n navitem.children = [];\r\n for (let j = 0; j < item.children.length; j++) {\r\n const x = item.children[j];\r\n let navcitem = {\r\n key: x.menuCode,\r\n label: (\r\n {x.menuName}\r\n ),\r\n };\r\n navitem.children.push(navcitem);\r\n }\r\n } else {\r\n navitem.label = {item.menuName};\r\n }\r\n navItems.push(navitem);\r\n }\r\n return navItems;\r\n // return items.map(x =>\r\n // x.children && x.children.length > 0 ? (\r\n // \r\n // {getNavItems(x.children)}\r\n // \r\n // ) : (\r\n // \r\n // {x.menuName}\r\n // \r\n // )\r\n // );\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction Toolbar(props) {\r\n const dispatch = useDispatch();\r\n const name = useSelector(selectName);\r\n const handleLogout = () => {\r\n dispatch(signOut());\r\n window.location.href = window.ENV_CFG.signout;\r\n };\r\n\r\n return (\r\n
\r\n {/*
\r\n \r\n
*/}\r\n {\r\n props.dDVBtn();\r\n }}\r\n >\r\n \r\n \r\n
\r\n {name && name.length > 0 && (\r\n \r\n \r\n
\r\n {name}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import { useSelector } from 'react-redux';\r\nimport {\r\n selectMenus,\r\n selectStatus,\r\n AUTH_STATUS,\r\n} from '../features/auth/authSlice';\r\nimport { Redirect } from 'react-router-dom';\r\nimport HttpError from './HttpError';\r\nimport LayoutDefault from './LayoutDefault';\r\n\r\n/*\r\n如果未登录,跳转至登录页面\r\n如果已登录,跳转至第一个菜单\r\n如果已登录,无菜单,显示403错误\r\n*/\r\nconst RedirectDefault = () => {\r\n const status = useSelector(selectStatus);\r\n const menus = useSelector(selectMenus);\r\n let url;\r\n if (status === AUTH_STATUS.SUCCEEDED) {\r\n if (menus.length > 0) {\r\n url = getDefaultFromMenus(menus);\r\n } else {\r\n return ;\r\n }\r\n } else {\r\n url = '/signin';\r\n }\r\n return ;\r\n};\r\nexport default RedirectDefault;\r\n\r\nfunction getDefaultFromMenus(menus) {\r\n let url;\r\n for (let menu of menus) {\r\n if (menu.url) {\r\n url = menu.url;\r\n break;\r\n } else if (menu.children && menu.children.length > 0) {\r\n url = getDefaultFromMenus(menu.children);\r\n if (url) {\r\n break;\r\n }\r\n }\r\n }\r\n return url;\r\n}\r\n","import React from 'react';\r\nimport './LayoutPlain.less';\r\nimport { FormattedMessage } from 'react-intl';\r\n\r\nfunction LayoutPlain({ children }) {\r\n let year = new Date().getFullYear();\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{children}
\r\n
\r\n
\r\n
© {year} ABB
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default LayoutPlain;\r\n","import React, { useState } from 'react';\r\nimport { Menu, Divider } from 'antd';\r\nimport {\r\n UserOutlined,\r\n ExportOutlined,\r\n DownloadOutlined,\r\n} from '@ant-design/icons';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { selectMenus, selectName, signOut } from '../features/auth/authSlice';\r\nimport { Link } from 'react-router-dom';\r\nimport './LayoutDefault.less';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport DownloadDrawer from '@/features/TPM/Tools/DownloadDrawer';\r\n//import LanguageSetting from './LanguageSetting';\r\n\r\nfunction HomeDefault({ children, menu }) {\r\n let year = new Date().getFullYear();\r\n const [dDV, setDDV] = useState(false);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n setDDV(true)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {children}\r\n setDDV(false)} />\r\n
\r\n
\r\n
\r\n
© {year} ABB
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default HomeDefault;\r\n\r\n// child component\r\nfunction Navbar({ currentMenu }) {\r\n // component\r\n const { SubMenu } = Menu;\r\n // selector\r\n const menus = useSelector(selectMenus);\r\n\r\n function getNavItems(items) {\r\n let navItems = [];\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n if (item.remark != undefined && item.remark.indexOf('HomeView') >= 0) {\r\n continue;\r\n }\r\n let navitem = {\r\n key: item.menuCode,\r\n label: item.menuName,\r\n };\r\n if (item.children && item.children.length > 0) {\r\n navitem.children = [];\r\n for (let j = 0; j < item.children.length; j++) {\r\n const x = item.children[j];\r\n let navcitem = {\r\n key: x.menuCode,\r\n label: {x.menuName},\r\n };\r\n navitem.children.push(navcitem);\r\n }\r\n } else {\r\n navitem.label = {item.menuName};\r\n }\r\n navItems.push(navitem);\r\n }\r\n return navItems;\r\n // items.map(x => {\r\n // if (x.remark != undefined && x.remark.indexOf('HomeView') >= 0) {\r\n // return;\r\n // }\r\n // return x.children && x.children.length > 0 ? (\r\n // \r\n // {getNavItems(x.children)}\r\n // \r\n // ) : (\r\n // \r\n // {x.menuName}\r\n // \r\n // );\r\n // });\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction Toolbar(props) {\r\n const dispatch = useDispatch();\r\n const name = useSelector(selectName);\r\n const handleLogout = () => {\r\n dispatch(signOut());\r\n window.location.href = window.ENV_CFG.signout;\r\n };\r\n\r\n return (\r\n
\r\n {/*
\r\n \r\n
*/}\r\n {\r\n props.dDVBtn();\r\n }}\r\n >\r\n \r\n \r\n
\r\n\r\n {name && name.length > 0 && (\r\n \r\n \r\n
\r\n {name}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Menu, Divider, Button } from 'antd';\r\nimport {\r\n UserOutlined,\r\n ExportOutlined,\r\n DownloadOutlined,\r\n} from '@ant-design/icons';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { selectMenus, selectName, signOut } from '../features/auth/authSlice';\r\nimport { Link } from 'react-router-dom';\r\nimport './LayoutDefault.less';\r\nimport { FormattedMessage } from 'react-intl';\r\nimport DownloadDrawer from '@/features/TPM/Tools/DownloadDrawer';\r\n//import LanguageSetting from './LanguageSetting';\r\n\r\nfunction TPMDefault({ children, menu }) {\r\n let year = new Date().getFullYear();\r\n const [dDV, setDDV] = useState(false);\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n setDDV(true)} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {children}\r\n setDDV(false)} />\r\n
\r\n
\r\n
\r\n
© {year} ABB
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default TPMDefault;\r\n\r\n// child component\r\nfunction Navbar({ currentMenu }) {\r\n // component\r\n const { SubMenu } = Menu;\r\n // selector\r\n const menus = useSelector(selectMenus);\r\n\r\n function getNavItems(items) {\r\n let navItems = [];\r\n for (let i = 0; i < items.length; i++) {\r\n const item = items[i];\r\n let navitem = {\r\n key: item.menuCode,\r\n label: item.menuName,\r\n };\r\n if (item.children && item.children.length > 0) {\r\n navitem.children = [];\r\n for (let j = 0; j < item.children.length; j++) {\r\n const x = item.children[j];\r\n let navcitem = {\r\n key: x.menuCode,\r\n label: (\r\n {x.menuName}\r\n ),\r\n };\r\n navitem.children.push(navcitem);\r\n }\r\n } else {\r\n navitem.label = {item.menuName};\r\n }\r\n navItems.push(navitem);\r\n }\r\n return navItems;\r\n // return items.map(x => {\r\n // return x.children && x.children.length > 0 ? (\r\n // \r\n // {getNavItems(x.children)}\r\n // \r\n // ) : (\r\n // \r\n // {x.menuName}\r\n // \r\n // );\r\n // });\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction Toolbar(props) {\r\n const dispatch = useDispatch();\r\n const name = useSelector(selectName);\r\n const handleLogout = () => {\r\n dispatch(signOut());\r\n window.location.href = window.ENV_CFG.signout;\r\n };\r\n\r\n return (\r\n
\r\n {/*
\r\n \r\n
*/}\r\n {\r\n props.dDVBtn();\r\n }}\r\n >\r\n \r\n \r\n
\r\n\r\n {name && name.length > 0 && (\r\n \r\n \r\n
\r\n {name}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import { lazy } from 'react';\r\n//import SideMenu from '../components/SideMenu';\r\nimport LayoutPlain from '../components/LayoutPlain';\r\nimport HomeDefault from '../components/HomeDefault';\r\nimport TPMDefault from '../components/TPMDefault';\r\n\r\n// auth: 验证权限\r\n// menu: 菜单,如果为空与auth一致\r\n// anonymous: 默认false\r\n// layout: 默认LayoutDefault\r\n// exact: 是否精确匹配\r\n// routes: 子路由\r\nconst routes = [\r\n {\r\n auth: 'home',\r\n path: '/home',\r\n component: lazy(() => import('../features/home/home')),\r\n layout: HomeDefault,\r\n },\r\n {\r\n auth: 'tier1home',\r\n path: '/myproductionlines',\r\n component: lazy(() => import('../features/tier1/home/UserPLList')),\r\n layout: LayoutPlain,\r\n },\r\n {\r\n auth: 'tier1home',\r\n path: '/myproductionlines/:plid',\r\n component: lazy(() => import('../features/tier1/home/UserPLHome')),\r\n layout: LayoutPlain,\r\n routes: [\r\n {\r\n auth: 'safety',\r\n path: 'safety',\r\n component: lazy(() => import('../features/tier1/safety/SafetyMain')),\r\n },\r\n {\r\n auth: 'quality',\r\n path: 'quality',\r\n component: lazy(() => import('../features/tier1/quality/QualityMain')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: 'changeManagement',\r\n path: '/changeManagement',\r\n component: lazy(() => import('../features/changeManagement/mainview/Main')),\r\n routes: [\r\n {\r\n auth: 'changeManagementHome',\r\n path: 'changeManagementHome',\r\n component: lazy(() => import('../features/changeManagement/home/Home')),\r\n },\r\n ],\r\n },\r\n {\r\n auth: 'productionline',\r\n path: '/masterdata/productionline',\r\n component: lazy(() =>\r\n import('../features/masterdata/organization/OrgHome')\r\n ),\r\n },\r\n {\r\n auth: 'TPMDashboard',\r\n path: '/TPMmyproductionlines',\r\n component: lazy(() => import('../features/TPM/home/UserPLList')),\r\n },\r\n {\r\n auth: 'TPMDashboard',\r\n path: '/TPMmyproductionlines/:plid',\r\n component: lazy(() => import('../features/TPM/home/UserPLHome')),\r\n layout: TPMDefault,\r\n routes: [\r\n {\r\n auth: 'TPMActivity',\r\n path: 'TPMActivity',\r\n component: lazy(() =>\r\n import('../features/TPM/TPMActivity/TPMActivityHome')\r\n ),\r\n },\r\n {\r\n auth: 'OPLTraining',\r\n path: 'OPLTraining',\r\n component: lazy(() =>\r\n import('../features/TPM/OPLTraining/OPLTrainingHome')\r\n ),\r\n },\r\n {\r\n auth: 'GlitchesTracking',\r\n path: 'GlitchesTracking',\r\n component: lazy(() =>\r\n import('../features/TPM/GlitchesTracking/GlitchesTrackingHome')\r\n ),\r\n },\r\n {\r\n auth: 'DefectAndImprovement',\r\n path: 'DefectAndImprovement',\r\n component: lazy(() =>\r\n import(\r\n '../features/TPM/DefectAndImprovement/DefectAndImprovementHome'\r\n )\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n auth: 'qualityissuetype',\r\n path: '/masterdata/qualityissuetype',\r\n component: lazy(() =>\r\n import('../features/masterdata/qualityissue/QualityIssueList')\r\n ),\r\n },\r\n {\r\n auth: 'tiermeeting',\r\n path: '/masterdata/tierMeeting',\r\n component: lazy(() =>\r\n import('../features/masterdata/tierMeeting/TierMeeting')\r\n ),\r\n },\r\n {\r\n auth: 'temptype',\r\n path: '/masterdata/temptype',\r\n component: lazy(() =>\r\n import('../features/masterdata/tempType/TempTypeHome')\r\n ),\r\n },\r\n {\r\n auth: 'othertier',\r\n path: '/masterdata/othertier',\r\n component: lazy(() =>\r\n import('../features/masterdata/OtherTier/OtherTierHome')\r\n ),\r\n },\r\n {\r\n auth: 'position',\r\n path: '/masterdata/position',\r\n component: lazy(() =>\r\n import('../features/masterdata/position/PositionHome')\r\n ),\r\n },\r\n {\r\n auth: 'actionlistworkflow',\r\n path: '/actionlistworkflow',\r\n component: lazy(() =>\r\n import('../features/workflowMaintenance/ActionListWorkflow')\r\n ),\r\n },\r\n {\r\n auth: 'actionlistworkflow',\r\n path: '/actionlistworkflow/:type/:id',\r\n component: lazy(() =>\r\n import('../features/workflowMaintenance/ActionListWorkflow')\r\n ),\r\n },\r\n {\r\n auth: 'inspectionModule',\r\n path: '/inspection',\r\n component: lazy(() => import('../features/inspection/home/Home')),\r\n },\r\n {\r\n auth: 'user',\r\n path: '/user',\r\n component: lazy(() => import('../features/setting/user/UserList')),\r\n },\r\n {\r\n auth: 'user',\r\n path: '/user/:roleid',\r\n component: lazy(() => import('../features/setting/user/UserList')),\r\n },\r\n {\r\n auth: 'menu',\r\n path: '/setting/menu',\r\n component: lazy(() => import('../features/setting/menu/MenuList')),\r\n },\r\n {\r\n auth: 'role',\r\n path: '/setting/role',\r\n component: lazy(() => import('../features/setting/role/RoleList')),\r\n },\r\n {\r\n auth: 'appconfig',\r\n path: '/setting/configuration',\r\n component: lazy(() => import('../features/setting/config/ConfigList')),\r\n },\r\n {\r\n auth: 'message',\r\n path: '/setting/message',\r\n component: lazy(() => import('../features/setting/message/MessageList')),\r\n },\r\n {\r\n path: '/signin',\r\n component: lazy(() => import('../features/auth/SignIn')),\r\n anonymous: true,\r\n layout: false,\r\n },\r\n {\r\n path: '/signin-internal-use-only',\r\n component: lazy(() => import('../features/auth/SignInTest')),\r\n anonymous: true,\r\n layout: false,\r\n },\r\n {\r\n auth: \"megafactory\",\r\n path: \"/megafactory\",\r\n component: lazy(()=>import(\"../features/megafactory/index/IndexPage\")),\r\n },\r\n {\r\n auth: \"tier4home\",\r\n path: \"/megafactory/tier4home\",\r\n component: lazy(()=>import(\"../features/megafactory/tier4home/HomeDashboard\")),\r\n menu: \"megafactory\",\r\n layout: false,\r\n },\r\n {\r\n auth: \"tier4home\",\r\n path: \"/megafactory/tier4home2\",\r\n component: lazy(()=>import(\"../features/megafactory/tier4home/HomeDashboard2\")),\r\n menu: \"megafactory\",\r\n layout: false,\r\n },\r\n {\r\n auth: \"tier4homesetting\",\r\n path: \"/megafactory/setting/tier4home\",\r\n component: lazy(()=>import(\"../features/megafactory/tier4home/HomeSetting\")),\r\n menu: \"megafactory\",\r\n },\r\n {\r\n auth: \"andonstatus\",\r\n path: \"/megafactory/andonstatus\",\r\n component: lazy(()=>import(\"../features/megafactory/andon/AndonDashboard\")),\r\n menu: \"megafactory\",\r\n layout: false,\r\n },\r\n {\r\n auth: \"andonstatussetting\",\r\n path: \"/megafactory/setting/andonstatus\",\r\n menu: \"megafactory\",\r\n component: lazy(()=>import(\"../features/megafactory/andon/AndonSetting\")),\r\n },\r\n {\r\n path: \"/tier4/home\",\r\n component: lazy(() => import('../features/tier4/home/Home')),\r\n anonymous: true,\r\n layout: false,\r\n },\r\n {\r\n path: \"/tier4/andon\",\r\n component: lazy(() => import('../features/tier4/andon/Andon')),\r\n anonymous: true,\r\n layout: false,\r\n },\r\n {\r\n path: \"/tier4/mapsetting\",\r\n component: lazy(() => import('../features/tier4/setMap/ImageMap')),\r\n anonymous: true,\r\n layout: false,\r\n }\r\n];\r\n\r\nfunction standardize(items) {\r\n for (let item of items) {\r\n // menu\r\n if (item.auth && !item.menu) item.menu = item.auth;\r\n // anonymous\r\n item.anonymous = item.anonymous === true ? true : false;\r\n // exact\r\n if (item.exact === undefined)\r\n item.exact = !(item.routes && item.routes.length > 0);\r\n if (item.routes) standardize(item.routes);\r\n }\r\n}\r\n\r\nstandardize(routes);\r\n\r\nexport default routes;\r\n","import React, { Suspense } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport {\r\n HashRouter as Router,\r\n Switch,\r\n Route,\r\n Redirect,\r\n useLocation,\r\n} from 'react-router-dom';\r\nimport { Spin } from 'antd';\r\nimport LayoutDefault from '../components/LayoutDefault';\r\nimport RedirectDefault from '../components/RedirectDefault';\r\nimport HttpError from '../components/HttpError';\r\nimport routes from './routes';\r\nimport {\r\n AUTH_STATUS,\r\n selectPermission,\r\n selectStatus,\r\n} from '../features/auth/authSlice';\r\nimport { debugEnable } from '../utils/utils';\r\nimport { useIntl } from 'react-intl';\r\n\r\nfunction AppRoute({ route }) {\r\n const status = useSelector(selectStatus);\r\n const perms = useSelector(selectPermission);\r\n const location = useLocation();\r\n if (debugEnable) console.log('[AppRoute]:', route);\r\n\r\n if (!route.anonymous) {\r\n if (status !== AUTH_STATUS.SUCCEEDED) {\r\n let from = location.search\r\n ? `${location.pathname}${location.search}`\r\n : location.pathname;\r\n return ;\r\n } else if (route.auth && !perms.includes(route.auth)) {\r\n return ;\r\n }\r\n }\r\n const subroutes = {};\r\n if (route.routes && route.routes.length > 0) {\r\n subroutes.routes = route.routes;\r\n subroutes.menu = route.menu;\r\n subroutes.path = route.path;\r\n }\r\n return (\r\n \r\n {route.layout === false ? (\r\n \r\n ) : route.layout ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nfunction Fallback() {\r\n const intl = useIntl();\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\n// function usePageViews() {\r\n// let location = useLocation();\r\n// React.useEffect(() => {\r\n// console.log('[usePageViews]: ', location.pathname, location);\r\n// }, [location]);\r\n// }\r\n\r\nfunction AppSwitch() {\r\n //usePageViews();\r\n return (\r\n \r\n {routes.map(route => (\r\n }\r\n />\r\n ))}\r\n \r\n }\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default function AppRouter() {\r\n return (\r\n \r\n }>\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { IntlProvider } from 'react-intl';\r\n// antd & dayjs\r\nimport { ConfigProvider } from 'antd';\r\nimport antdENUS from 'antd/lib/locale/en_US';\r\nimport antdZHCN from 'antd/lib/locale/zh_CN';\r\nimport dayjs from 'dayjs';\r\nimport 'dayjs/locale/zh-cn';\r\n// app\r\n//import { getLocale } from './locales';\r\nimport enUS from './locales/en-US';\r\nimport zhCN from './locales/zh-CN';\r\nimport AppRouter from './app/router';\r\nimport './App.less';\r\n\r\nconst locale = 'zh-CN'; //getLocale();\r\nconst isZHCN = locale === 'zh-CN';\r\nconst messages = isZHCN ? zhCN : enUS;\r\nconst antdLocale = isZHCN ? antdZHCN : antdENUS;\r\n\r\nfunction App() {\r\n useEffect(() => {\r\n document.title = messages['layout.appname'];\r\n dayjs.locale(isZHCN ? 'zh-cn' : 'en');\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import { debugEnable } from '@/utils/utils';\r\nimport { configureStore } from '@reduxjs/toolkit';\r\nimport logger from 'redux-logger';\r\nimport authReducer from '../features/auth/authSlice';\r\nimport userPLReducer from '../features/tier1/home/userPLSlice';\r\n\r\nexport default configureStore({\r\n reducer: {\r\n auth: authReducer,\r\n userPL: userPLReducer,\r\n },\r\n middleware: getDefaultMiddleware =>\r\n debugEnable\r\n ? getDefaultMiddleware().concat(logger)\r\n : getDefaultMiddleware(),\r\n});\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport store from './app/store';\r\nimport { Provider } from 'react-redux';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { setRefreshToken } from '@/api/auth';\r\nimport 'lib-flexible';\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// Local Dev Cookie Setting\r\n// Dev,QA 和 PRD 环境请删除 下列的配置\r\n//https://dev.cloudapps02.abb.com.cn/9aag034262\r\n//const cookieVal = `XjTA3LqrZQpeTzQ8pNKGy0JHQqBZPFC2k4ijnF5SFMUTzsAgbM1p9VlkTjc2dhrIfRzTFhk9w3kC6oMd80eZHt0DB9czNnIX1YCLox3chwzXew48mqiuIXCGPTypWFFZ38UywMFzplfJoOR1jnDOTJTibWgC9JpnUnmZq3LGBWsNGrkefzpH9sL6VIWdTmNc4pc6OIJ4IBCsDoIc6RznvB8`;\r\n//setRefreshToken(cookieVal);\r\n//\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import docCookies from '@/utils/cookie';\r\n\r\nconst LOCALE_KEY = 'ABB_PDPOTS_LANG';\r\n\r\nexport function getLocale() {\r\n let locale =\r\n window.localStorage?.getItem(LOCALE_KEY) || docCookies.getItem(LOCALE_KEY);\r\n if (!locale) {\r\n locale = (navigator.language || navigator.browserLanguage).toLowerCase();\r\n }\r\n return locale.includes('zh') ? 'zh-CN' : 'en-US';\r\n}\r\n\r\nexport function setLocale(locale) {\r\n window.localStorage?.setItem(LOCALE_KEY, locale);\r\n const endDate = new Date();\r\n endDate.setFullYear(endDate.getFullYear() + 1);\r\n docCookies.setItem(LOCALE_KEY, locale, endDate, '/');\r\n window.location.reload();\r\n}\r\n","import axios from 'axios';\r\nimport { debugEnable } from '@/utils/utils';\r\nimport { getLocale } from '@/locales';\r\nimport { getRefreshToken, refreshToken } from './auth';\r\n\r\nconst instance = axios.create({\r\n baseURL: window.ENV_CFG.api_root + '/api',\r\n timeout: 60000,\r\n headers: { 'Accept-Language': getLocale() },\r\n});\r\n\r\n// Add a request interceptor\r\ninstance.interceptors.request.use(\r\n config => {\r\n return config;\r\n },\r\n error => {\r\n // Do something with request error\r\n if (debugEnable) console.log('[http]request error:', error);\r\n return Promise.reject({ status: 400 });\r\n }\r\n);\r\n\r\n// Add a response interceptor\r\ninstance.interceptors.response.use(\r\n response => {\r\n // Any status code that lie within the range of 2xx cause this function to trigger\r\n // Do something with response data\r\n return response.data;\r\n },\r\n error => {\r\n // Any status codes that falls outside the range of 2xx cause this function to trigger\r\n // Do something with response error\r\n if (debugEnable)\r\n console.log('[http]response error:', error, error.response);\r\n\r\n if (error.response) {\r\n if (error.response.status === 401 && !error.response.config.isretry) {\r\n return refreshToken(getRefreshToken())\r\n .then(res => {\r\n if (res.access_token) {\r\n error.response.config.isretry = true;\r\n error.response.config.headers[\r\n 'Authorization'\r\n ] = `${res.token_type} ${res.access_token}`;\r\n return instance.request(error.response.config);\r\n } else {\r\n return Promise.reject({\r\n status: 401,\r\n data: 'refresh_token_error',\r\n });\r\n }\r\n })\r\n .catch(e => {\r\n return Promise.reject({\r\n status: 401,\r\n data: 'refresh_token_error',\r\n });\r\n });\r\n } else {\r\n const res = JSON.parse(JSON.stringify(error.response));\r\n return Promise.reject(res);\r\n }\r\n } else {\r\n return Promise.reject({ status: 0 });\r\n }\r\n }\r\n);\r\n\r\nconst http = {\r\n instance: instance,\r\n get(url, params) {\r\n return instance.get(url, { params });\r\n },\r\n post(url, data, config) {\r\n return instance.post(url, data, config);\r\n },\r\n delete(url, params) {\r\n return instance.delete(url, { params });\r\n },\r\n setAuthorization(token) {\r\n instance.defaults.headers.common[\r\n 'Authorization'\r\n ] = `${token.token_type} ${token.access_token}`;\r\n },\r\n};\r\n\r\nexport default http;\r\n","import axios from 'axios';\r\nimport http from './http';\r\nimport docCookies from '@/utils/cookie';\r\nimport { md5 } from '@/utils/md5';\r\n\r\nconst cookieKey = '.auth.token';\r\n\r\nexport function removeRefreshToken() {\r\n return docCookies.removeItem(cookieKey);\r\n}\r\n\r\nexport function getRefreshToken() {\r\n return docCookies.getItem(cookieKey);\r\n}\r\nexport function setRefreshToken(token) {\r\n docCookies.setItem(cookieKey, token);\r\n}\r\n\r\nexport function authorizeCode(code, redirect_uri) {\r\n const data = {\r\n grant_type: 'authorization_code',\r\n code,\r\n redirect_uri,\r\n };\r\n return getToken(data);\r\n}\r\nexport function refreshToken(refresh_token) {\r\n const data = {\r\n grant_type: 'refresh_token',\r\n refresh_token,\r\n };\r\n return getToken(data);\r\n}\r\n\r\nfunction getToken(data) {\r\n data.client_id = 'web';\r\n data.timestamp = parseInt(new Date().getTime() / 1000);\r\n data.client_secret = getSecret(data.timestamp);\r\n return axios\r\n .post(window.ENV_CFG.token, data)\r\n .then(res => {\r\n if (res.data?.access_token) {\r\n http.setAuthorization(res.data);\r\n setRefreshToken(res.data.refresh_token);\r\n return Promise.resolve(res.data);\r\n } else {\r\n return Promise.reject(res);\r\n }\r\n })\r\n .catch(e => {\r\n return Promise.reject(e);\r\n });\r\n}\r\n\r\nfunction getSecret(timestamp) {\r\n const hash = md5('0kVOF1PeA9mg6WZf' + timestamp);\r\n return hash.slice(8, 16 + (timestamp % 16));\r\n}\r\n","export function md5(string) {\r\n function md5_RotateLeft(lValue, iShiftBits) {\r\n return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));\r\n }\r\n function md5_AddUnsigned(lX, lY) {\r\n var lX4, lY4, lX8, lY8, lResult;\r\n lX8 = lX & 0x80000000;\r\n lY8 = lY & 0x80000000;\r\n lX4 = lX & 0x40000000;\r\n lY4 = lY & 0x40000000;\r\n lResult = (lX & 0x3fffffff) + (lY & 0x3fffffff);\r\n if (lX4 & lY4) {\r\n return lResult ^ 0x80000000 ^ lX8 ^ lY8;\r\n }\r\n if (lX4 | lY4) {\r\n if (lResult & 0x40000000) {\r\n return lResult ^ 0xc0000000 ^ lX8 ^ lY8;\r\n } else {\r\n return lResult ^ 0x40000000 ^ lX8 ^ lY8;\r\n }\r\n } else {\r\n return lResult ^ lX8 ^ lY8;\r\n }\r\n }\r\n function md5_F(x, y, z) {\r\n return (x & y) | (~x & z);\r\n }\r\n function md5_G(x, y, z) {\r\n return (x & z) | (y & ~z);\r\n }\r\n function md5_H(x, y, z) {\r\n return x ^ y ^ z;\r\n }\r\n function md5_I(x, y, z) {\r\n return y ^ (x | ~z);\r\n }\r\n function md5_FF(a, b, c, d, x, s, ac) {\r\n a = md5_AddUnsigned(\r\n a,\r\n md5_AddUnsigned(md5_AddUnsigned(md5_F(b, c, d), x), ac)\r\n );\r\n return md5_AddUnsigned(md5_RotateLeft(a, s), b);\r\n }\r\n function md5_GG(a, b, c, d, x, s, ac) {\r\n a = md5_AddUnsigned(\r\n a,\r\n md5_AddUnsigned(md5_AddUnsigned(md5_G(b, c, d), x), ac)\r\n );\r\n return md5_AddUnsigned(md5_RotateLeft(a, s), b);\r\n }\r\n function md5_HH(a, b, c, d, x, s, ac) {\r\n a = md5_AddUnsigned(\r\n a,\r\n md5_AddUnsigned(md5_AddUnsigned(md5_H(b, c, d), x), ac)\r\n );\r\n return md5_AddUnsigned(md5_RotateLeft(a, s), b);\r\n }\r\n function md5_II(a, b, c, d, x, s, ac) {\r\n a = md5_AddUnsigned(\r\n a,\r\n md5_AddUnsigned(md5_AddUnsigned(md5_I(b, c, d), x), ac)\r\n );\r\n return md5_AddUnsigned(md5_RotateLeft(a, s), b);\r\n }\r\n function md5_ConvertToWordArray(string) {\r\n var lWordCount;\r\n var lMessageLength = string.length;\r\n var lNumberOfWords_temp1 = lMessageLength + 8;\r\n var lNumberOfWords_temp2 =\r\n (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;\r\n var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;\r\n var lWordArray = Array(lNumberOfWords - 1);\r\n var lBytePosition = 0;\r\n var lByteCount = 0;\r\n while (lByteCount < lMessageLength) {\r\n lWordCount = (lByteCount - (lByteCount % 4)) / 4;\r\n lBytePosition = (lByteCount % 4) * 8;\r\n lWordArray[lWordCount] =\r\n lWordArray[lWordCount] |\r\n (string.charCodeAt(lByteCount) << lBytePosition);\r\n lByteCount++;\r\n }\r\n lWordCount = (lByteCount - (lByteCount % 4)) / 4;\r\n lBytePosition = (lByteCount % 4) * 8;\r\n lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);\r\n lWordArray[lNumberOfWords - 2] = lMessageLength << 3;\r\n lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;\r\n return lWordArray;\r\n }\r\n function md5_WordToHex(lValue) {\r\n var WordToHexValue = '',\r\n WordToHexValue_temp = '',\r\n lByte,\r\n lCount;\r\n for (lCount = 0; lCount <= 3; lCount++) {\r\n lByte = (lValue >>> (lCount * 8)) & 255;\r\n WordToHexValue_temp = '0' + lByte.toString(16);\r\n WordToHexValue =\r\n WordToHexValue +\r\n WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);\r\n }\r\n return WordToHexValue;\r\n }\r\n function md5_Utf8Encode(string) {\r\n string = string.replace(/\\r\\n/g, '\\n');\r\n var utftext = '';\r\n for (var n = 0; n < string.length; n++) {\r\n var c = string.charCodeAt(n);\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c);\r\n } else if (c > 127 && c < 2048) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n }\r\n var x = [];\r\n var k, AA, BB, CC, DD, a, b, c, d;\r\n var S11 = 7,\r\n S12 = 12,\r\n S13 = 17,\r\n S14 = 22;\r\n var S21 = 5,\r\n S22 = 9,\r\n S23 = 14,\r\n S24 = 20;\r\n var S31 = 4,\r\n S32 = 11,\r\n S33 = 16,\r\n S34 = 23;\r\n var S41 = 6,\r\n S42 = 10,\r\n S43 = 15,\r\n S44 = 21;\r\n string = md5_Utf8Encode(string);\r\n x = md5_ConvertToWordArray(string);\r\n a = 0x67452301;\r\n b = 0xefcdab89;\r\n c = 0x98badcfe;\r\n d = 0x10325476;\r\n for (k = 0; k < x.length; k += 16) {\r\n AA = a;\r\n BB = b;\r\n CC = c;\r\n DD = d;\r\n a = md5_FF(a, b, c, d, x[k + 0], S11, 0xd76aa478);\r\n d = md5_FF(d, a, b, c, x[k + 1], S12, 0xe8c7b756);\r\n c = md5_FF(c, d, a, b, x[k + 2], S13, 0x242070db);\r\n b = md5_FF(b, c, d, a, x[k + 3], S14, 0xc1bdceee);\r\n a = md5_FF(a, b, c, d, x[k + 4], S11, 0xf57c0faf);\r\n d = md5_FF(d, a, b, c, x[k + 5], S12, 0x4787c62a);\r\n c = md5_FF(c, d, a, b, x[k + 6], S13, 0xa8304613);\r\n b = md5_FF(b, c, d, a, x[k + 7], S14, 0xfd469501);\r\n a = md5_FF(a, b, c, d, x[k + 8], S11, 0x698098d8);\r\n d = md5_FF(d, a, b, c, x[k + 9], S12, 0x8b44f7af);\r\n c = md5_FF(c, d, a, b, x[k + 10], S13, 0xffff5bb1);\r\n b = md5_FF(b, c, d, a, x[k + 11], S14, 0x895cd7be);\r\n a = md5_FF(a, b, c, d, x[k + 12], S11, 0x6b901122);\r\n d = md5_FF(d, a, b, c, x[k + 13], S12, 0xfd987193);\r\n c = md5_FF(c, d, a, b, x[k + 14], S13, 0xa679438e);\r\n b = md5_FF(b, c, d, a, x[k + 15], S14, 0x49b40821);\r\n a = md5_GG(a, b, c, d, x[k + 1], S21, 0xf61e2562);\r\n d = md5_GG(d, a, b, c, x[k + 6], S22, 0xc040b340);\r\n c = md5_GG(c, d, a, b, x[k + 11], S23, 0x265e5a51);\r\n b = md5_GG(b, c, d, a, x[k + 0], S24, 0xe9b6c7aa);\r\n a = md5_GG(a, b, c, d, x[k + 5], S21, 0xd62f105d);\r\n d = md5_GG(d, a, b, c, x[k + 10], S22, 0x2441453);\r\n c = md5_GG(c, d, a, b, x[k + 15], S23, 0xd8a1e681);\r\n b = md5_GG(b, c, d, a, x[k + 4], S24, 0xe7d3fbc8);\r\n a = md5_GG(a, b, c, d, x[k + 9], S21, 0x21e1cde6);\r\n d = md5_GG(d, a, b, c, x[k + 14], S22, 0xc33707d6);\r\n c = md5_GG(c, d, a, b, x[k + 3], S23, 0xf4d50d87);\r\n b = md5_GG(b, c, d, a, x[k + 8], S24, 0x455a14ed);\r\n a = md5_GG(a, b, c, d, x[k + 13], S21, 0xa9e3e905);\r\n d = md5_GG(d, a, b, c, x[k + 2], S22, 0xfcefa3f8);\r\n c = md5_GG(c, d, a, b, x[k + 7], S23, 0x676f02d9);\r\n b = md5_GG(b, c, d, a, x[k + 12], S24, 0x8d2a4c8a);\r\n a = md5_HH(a, b, c, d, x[k + 5], S31, 0xfffa3942);\r\n d = md5_HH(d, a, b, c, x[k + 8], S32, 0x8771f681);\r\n c = md5_HH(c, d, a, b, x[k + 11], S33, 0x6d9d6122);\r\n b = md5_HH(b, c, d, a, x[k + 14], S34, 0xfde5380c);\r\n a = md5_HH(a, b, c, d, x[k + 1], S31, 0xa4beea44);\r\n d = md5_HH(d, a, b, c, x[k + 4], S32, 0x4bdecfa9);\r\n c = md5_HH(c, d, a, b, x[k + 7], S33, 0xf6bb4b60);\r\n b = md5_HH(b, c, d, a, x[k + 10], S34, 0xbebfbc70);\r\n a = md5_HH(a, b, c, d, x[k + 13], S31, 0x289b7ec6);\r\n d = md5_HH(d, a, b, c, x[k + 0], S32, 0xeaa127fa);\r\n c = md5_HH(c, d, a, b, x[k + 3], S33, 0xd4ef3085);\r\n b = md5_HH(b, c, d, a, x[k + 6], S34, 0x4881d05);\r\n a = md5_HH(a, b, c, d, x[k + 9], S31, 0xd9d4d039);\r\n d = md5_HH(d, a, b, c, x[k + 12], S32, 0xe6db99e5);\r\n c = md5_HH(c, d, a, b, x[k + 15], S33, 0x1fa27cf8);\r\n b = md5_HH(b, c, d, a, x[k + 2], S34, 0xc4ac5665);\r\n a = md5_II(a, b, c, d, x[k + 0], S41, 0xf4292244);\r\n d = md5_II(d, a, b, c, x[k + 7], S42, 0x432aff97);\r\n c = md5_II(c, d, a, b, x[k + 14], S43, 0xab9423a7);\r\n b = md5_II(b, c, d, a, x[k + 5], S44, 0xfc93a039);\r\n a = md5_II(a, b, c, d, x[k + 12], S41, 0x655b59c3);\r\n d = md5_II(d, a, b, c, x[k + 3], S42, 0x8f0ccc92);\r\n c = md5_II(c, d, a, b, x[k + 10], S43, 0xffeff47d);\r\n b = md5_II(b, c, d, a, x[k + 1], S44, 0x85845dd1);\r\n a = md5_II(a, b, c, d, x[k + 8], S41, 0x6fa87e4f);\r\n d = md5_II(d, a, b, c, x[k + 15], S42, 0xfe2ce6e0);\r\n c = md5_II(c, d, a, b, x[k + 6], S43, 0xa3014314);\r\n b = md5_II(b, c, d, a, x[k + 13], S44, 0x4e0811a1);\r\n a = md5_II(a, b, c, d, x[k + 4], S41, 0xf7537e82);\r\n d = md5_II(d, a, b, c, x[k + 11], S42, 0xbd3af235);\r\n c = md5_II(c, d, a, b, x[k + 2], S43, 0x2ad7d2bb);\r\n b = md5_II(b, c, d, a, x[k + 9], S44, 0xeb86d391);\r\n a = md5_AddUnsigned(a, AA);\r\n b = md5_AddUnsigned(b, BB);\r\n c = md5_AddUnsigned(c, CC);\r\n d = md5_AddUnsigned(d, DD);\r\n }\r\n return (\r\n md5_WordToHex(a) +\r\n md5_WordToHex(b) +\r\n md5_WordToHex(c) +\r\n md5_WordToHex(d)\r\n ).toLowerCase();\r\n}\r\n","export const debugEnable = process.env.NODE_ENV === 'development';\r\n\r\nexport function showTableTotal(total, range) {\r\n return `${range[0]}-${range[1]} of ${total} items`;\r\n}\r\n\r\nexport function stringSorter(a, b, index) {\r\n let stringA = a[index];\r\n let stringB = b[index];\r\n if (stringA && stringB) {\r\n stringA = stringA.toUpperCase();\r\n stringB = stringB.toUpperCase();\r\n }\r\n if (stringA < stringB) return -1;\r\n if (stringA > stringB) return 1;\r\n return 0;\r\n}\r\n\r\nexport function numberSorter(a, b, index) {\r\n return a[index] - b[index];\r\n}\r\n","/*\\\r\n|*|\r\n|*| :: cookies.js ::\r\n|*|\r\n|*| A complete cookies reader/writer framework with full unicode support.\r\n|*|\r\n|*| https://developer.mozilla.org/en-US/docs/DOM/document.cookie\r\n|*|\r\n|*| This framework is released under the GNU Public License, version 3 or later.\r\n|*| http://www.gnu.org/licenses/gpl-3.0-standalone.html\r\n|*|\r\n|*| Syntaxes:\r\n|*|\r\n|*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])\r\n|*| * docCookies.getItem(name)\r\n|*| * docCookies.removeItem(name[, path], domain)\r\n|*| * docCookies.hasItem(name)\r\n|*| * docCookies.keys()\r\n|*|\r\n\\*/\r\n\r\nconst docCookies = {\r\n getItem: function (sKey) {\r\n return (\r\n decodeURIComponent(\r\n document.cookie.replace(\r\n new RegExp(\r\n '(?:(?:^|.*;)\\\\s*' +\r\n encodeURIComponent(sKey).replace(/[-.+*]/g, '\\\\$&') +\r\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\r\n ),\r\n '$1'\r\n )\r\n ) || null\r\n );\r\n },\r\n setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\r\n if (!sKey || /^(?:expires|max-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n var sExpires = '';\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires =\r\n vEnd === Infinity\r\n ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT'\r\n : '; max-age=' + vEnd;\r\n break;\r\n case String:\r\n sExpires = '; expires=' + vEnd;\r\n break;\r\n case Date:\r\n sExpires = '; expires=' + vEnd.toUTCString();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n document.cookie =\r\n encodeURIComponent(sKey) +\r\n '=' +\r\n encodeURIComponent(sValue) +\r\n sExpires +\r\n (sDomain ? '; domain=' + sDomain : '') +\r\n (sPath ? '; path=' + sPath : '') +\r\n (bSecure ? '; secure' : '');\r\n return true;\r\n },\r\n removeItem: function (sKey, sPath, sDomain) {\r\n if (!sKey || !this.hasItem(sKey)) {\r\n return false;\r\n }\r\n document.cookie =\r\n encodeURIComponent(sKey) +\r\n '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' +\r\n (sDomain ? '; domain=' + sDomain : '') +\r\n (sPath ? '; path=' + sPath : '');\r\n return true;\r\n },\r\n hasItem: function (sKey) {\r\n return new RegExp(\r\n '(?:^|;\\\\s*)' +\r\n encodeURIComponent(sKey).replace(/[-.+*]/g, '\\\\$&') +\r\n '\\\\s*\\\\='\r\n ).test(document.cookie);\r\n },\r\n keys: /* optional method: you can safely remove it! */ function () {\r\n var aKeys = document.cookie\r\n .replace(/((?:^|\\s*;)[^=]+)(?=;|$)|^\\s*|\\s*(?:=[^;]*)?(?:\\1|$)/g, '')\r\n .split(/\\s*(?:=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) {\r\n aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);\r\n }\r\n return aKeys;\r\n },\r\n};\r\nexport default docCookies;\r\n"],"sourceRoot":""}