{"version":3,"sources":["components/layout/MainNavbar/NavbarSearch.js","components/layout/MainNavbar/NavbarNav/Notifications.js","components/layout/MainNavbar/NavbarNav/UserActions.js","components/layout/MainNavbar/NavbarNav/NavbarNav.js","components/layout/MainNavbar/NavbarToggle.js","utils/constants.js","components/layout/MainNavbar/MainNavbar.js","components/layout/MainSidebar/SidebarMainNavbar.js","views/SideMenu.js","data/menu-relation.js","data/menu-name.js","components/layout/MainSidebar/SidebarNavItem.js","components/layout/MainSidebar/SidebarNavTitle.js","components/layout/MainSidebar/SidebarFooterItems.js","components/layout/MainSidebar/SidebarNavItems.js","components/layout/MainSidebar/MainSidebar.js","layouts/Default.js","components/layout/MainFooter.js","layouts/IconSidebar.js","layouts/Blank.js","routes.js","components/common/Dialog.js","api/user-service.js","hooks/use-local-state.js","hooks/use-require-auth.js","hooks/use-api.js","images/logo/backend_logo.png","images/menu/menu_01.png","images/menu/menu_02.png","images/menu/menu_03.png","images/menu/menu_04.png","images/menu/menu_05.png","images/menu/menu_dropdown_01.png","images/menu/menu_dropdown_02.png","images/background/background.png","images/background/background@2x.png","images/close/close.png","images/employee.pdf","images/logo/tme_logo.png","images/images.js","serviceWorker.js","index.js","App.js","api/API.js","hooks/use-localstorage.js","hooks/use-auth.js","hooks/use-router.js"],"names":["NavbarSearch","___EmotionJSX","Form","className","Notifications","UserActions","visible","setVisible","useState","signOut","useAuth","user","useLocalState","Col","css","styles","textStyles","concat","name","onClick","logoutStyles","NavbarNav","Nav","navbar","NavbarToggle","props","toggleSidebar","href","LAYOUT_TYPES","MainNavbar","_ref","layout","stickyTop","isHeaderNav","classes","classNames","Container","fluid","Navbar","type","NavbarBrand","style","lineHeight","id","height","src","Images","logo_new","alt","defaultProps","SidebarMainNavbar","hideLogoText","fontSize","marginTop","SideMenu","url","title","RouteNavLink","_RouteNavLink","item","hover","SidebarNavItem","_ref2","_$find","_$find2","toggleSidebarDropdown","setHover","history","location","useRouter","currentUrl","pathname","split","activeUrl","_","find","list","isActive","isEqual","path","NavItem","position","NavLink","active","display","activeclassname","onMouseEnter","onMouseLeave","tag","to","icon","menuName","SiderbarNavTitle","open","setOpen","String","menutitle","Collapse","DropdownMenu","small","top","map","subItem","idx","primary_prog","DropdownItem","key","SidebarFooterItems","paddingTop","justifyContent","Row","target","employee","download","SidebarNavItems","navItems","items","Scrollbars","autoHide","nav","orderBy","o","undefined","parseInt","SidebarNavTitle","MainSidebar","menuVisible","DefaultLayout","children","noNavbar","useRequireAuth","React","Fragment","role","data-js-gs18-header","images","tme_logo","sm","noFooter","Link","_Link","MainFooter","contained","menuItems","copyright","IconSidebarLayout","BlankLayout","style2","zIndex","exact","component","loadable","Redirect","Dialog","size","message","overlayAction","confirmButtonProp","cancelButtonProp","isShowDialog","whenClick","confirmButton","useRef","isShow","text","action","color","cancelButton","useEffect","current","Modal","toggle","backdropClassName","ModalHeader","ModalBody","whiteSpace","Button","theme","disabled","useUser","FetchApi","useApi","getProfile","async","status","result","API_METHOD","GET","PROFILE","updateProfile","POST","data","getUserList","USER","getUser","updateUser","createUser","deleteUser","DELETE","searchUser","defaultState","roleNavItems","roleCode","orderCommentItems","itemViewItems","shipmentItems","commentItems","accountingItems","logItems","paymentItems","paymentNoticeItems","drawingItems","drawingAccountItems","reportItems","LocalStateContext","createContext","LocalStateProvider","state","produce","useImmer","Provider","value","useContext","draft","flatten","reject","forEach","setUser","_result$user","role_code","progs","groupBy","redirectUrl","arguments","length","auth","token","expired","setExpired","removeExpired","router","setExpiredMessage","getAdmin","_$first","includes","push","first","moment","isAfter","add","process","BASE_URL","APIKit","axios","create","baseURL","timeout","interceptors","request","use","config","localStorage","getItem","headers","Authorization","PUT","ApiContext","ApiProvider","api","useApiProvider","errorMessage","clearErrorMessage","Action","setErrorMessage","method","variables","noError","error","_error$response","statusCode","response","module","exports","require","menu_01","menu_02","menu_03","menu_04","menu_05","menu_dropdown_01","menu_dropdown_02","background","background2","closeBtn","Boolean","window","hostname","match","ReactDOM","render","CookiesProvider","AuthProvider","Router","basename","Switch","routes","route","index","Route","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","PUBNOTE_READ","ORDER_COMMENT","ORDER_STATUS","TREE","SUMMARY","ITEM_VIEW","SHIPMENT","SHIPMENT_PRINT","COMMENT","COMMENT_STATUS","COMMENT_REPLY","ACCOUNTING","ACCOUNTING_STATUS","COST","PAYMENT","PAYMENT_NOTICE","TEMPORARY","DRAWING","REPORT_SETTING","REPORT_UPLOAD","LOGIN","USER_HISTORIES","RECEIVE","TERM","ROLE_MENU","ROLE","PUBNOTE","LOG_LOGIN","QUALITY_CONTROL","PASSWORD_CHECK","PASSWORD_RESET","SYSTEM","PROG","MENU","useLocalStorage","initialValue","setValue","newValue","handleStorage","useCallback","event","addEventListener","removeEventListener","setItem","removeItem","AuthContext","useAuthProvider","setToken","removeToken","setAuthToken","params","useParams","useHistory","useRouteMatch","useLocation","useMemo","replace","query","queryString","parse","search"],"mappings":"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","file":"static/js/main.c991082c.chunk.js","sourcesContent":["import React from 'react';\r\nimport { Form, InputGroup, InputGroupAddon, InputGroupText, FormInput } from 'shards-react';\r\n\r\nconst NavbarSearch = () => (\r\n
\r\n {/* \r\n \r\n \r\n search\r\n \r\n \r\n \r\n */}\r\n
\r\n);\r\n\r\nexport default NavbarSearch;\r\n","import React, { useState } from 'react';\r\nimport { NavItem, NavLink, Badge, Collapse, DropdownItem } from 'shards-react';\r\n\r\nconst Notifications = () => {\r\n const [visible, setVisible] = useState(false);\r\n\r\n const toggleNotifications = () => setVisible(!visible);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n 2\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Analytics\r\n

\r\n Your website’s active users count increased by 28% in the last week. Great\r\n job!\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Sales\r\n

\r\n Last week your store’s sales count decreased by 5.52%. It could have been\r\n worse!\r\n

\r\n
\r\n
\r\n View all Notifications\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Notifications;\r\n","import React, { useState } from \"react\";\r\nimport { Link as _Link } from \"react-router-dom\";\r\nimport {\r\n Dropdown,\r\n DropdownToggle,\r\n DropdownMenu,\r\n DropdownItem,\r\n Collapse,\r\n NavItem,\r\n NavLink,\r\n Col,\r\n} from \"shards-react\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nimport useAuth from \"../../../../hooks/use-auth\";\r\nimport useLocalState from \"../../../../hooks/use-local-state\";\r\n\r\nconst Link = (props) => <_Link {...props} />;\r\n\r\nconst UserActions = () => {\r\n const [visible, setVisible] = useState(false);\r\n const { signOut } = useAuth();\r\n const { user } = useLocalState();\r\n\r\n const toggleUserActions = () => setVisible(!visible);\r\n\r\n return (\r\n \r\n \r\n \r\n // \r\n // \r\n // {`Hi ! ${\r\n // user?.name ? user?.name : \"\"\r\n // }`}\r\n // \r\n // \r\n\r\n // \r\n // signOut()}\r\n // tag={Link}\r\n // to=\"login\"\r\n // style={{ color: \"#F65657\", fontWeight: \"500\" }}\r\n // >\r\n // 登出\r\n // \r\n // \r\n // \r\n );\r\n};\r\n\r\nexport default UserActions;\r\n\r\nconst styles = css`\r\n text-align: center;\r\n margin-right: 10px;\r\n`;\r\n\r\nconst logoutStyles = css`\r\n padding-left: 20px;\r\n color: #f65657;\r\n font-weight: 500;\r\n cursor: pointer;\r\n`;\r\n\r\nconst textStyles = css`\r\n margin-top: 20px;\r\n`;\r\n","import React from 'react';\r\nimport { Nav } from 'shards-react';\r\n\r\nimport Notifications from './Notifications';\r\nimport UserActions from './UserActions';\r\n\r\nconst NavbarNav = () => (\r\n \r\n);\r\n\r\nexport default NavbarNav;\r\n","import React from 'react';\r\n\r\nimport useLocalState from '../../../hooks/use-local-state';\r\n\r\nconst NavbarToggle = props => {\r\n const { toggleSidebar } = useLocalState();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default NavbarToggle;\r\n","export const LAYOUT_TYPES = {\r\n DEFAULT: \"DEFAULT\",\r\n HEADER_NAVIGATION: \"HEADER_NAVIGATION\",\r\n ICON_SIDEBAR: \"ICON_SIDEBAR\",\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Container, Navbar, NavbarBrand } from 'shards-react';\r\n\r\nimport NavbarSearch from './NavbarSearch';\r\nimport NavbarNav from './NavbarNav';\r\nimport NavbarToggle from './NavbarToggle';\r\n\r\nimport Images from '../../../images/images';\r\nimport { LAYOUT_TYPES } from '../../../utils/constants';\r\n\r\nconst MainNavbar = ({ layout, stickyTop }) => {\r\n const isHeaderNav = layout === LAYOUT_TYPES.HEADER_NAVIGATION;\r\n const classes = classNames('main-navbar', 'bg-white', stickyTop && 'sticky-top');\r\n\r\n return (\r\n
\r\n \r\n \r\n {isHeaderNav && (\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\n );\r\n};\r\n\r\nMainNavbar.propTypes = {\r\n /**\r\n * The layout type where the MainNavbar is used.\r\n */\r\n layout: PropTypes.string,\r\n /**\r\n * Whether the main navbar is sticky to the top, or not.\r\n */\r\n stickyTop: PropTypes.bool\r\n};\r\n\r\nMainNavbar.defaultProps = {\r\n stickyTop: true\r\n};\r\n\r\nexport default MainNavbar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Navbar, NavbarBrand } from 'shards-react';\r\n\r\nimport Images from '../../../images/images'\r\nimport useLocalState from '../../../hooks/use-local-state';\r\n\r\nconst SidebarMainNavbar = ({ hideLogoText }) => {\r\n const { toggleSidebar } = useLocalState();\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n 台灣三菱電梯\r\n \r\n
\r\n
\r\n {/* eslint-disable-next-line */}\r\n {/* \r\n \r\n */}\r\n
\r\n
\r\n );\r\n};\r\n\r\nSidebarMainNavbar.propTypes = {\r\n /**\r\n * Whether to hide the logo text, or not.\r\n */\r\n hideLogoText: PropTypes.bool\r\n};\r\n\r\nSidebarMainNavbar.defaultProps = {\r\n hideLogoText: false\r\n};\r\n\r\nexport default SidebarMainNavbar;\r\n","import \"../assets/style.scss\";\r\nimport Images from '../images/images';\r\n\r\nconst SideMenu = () => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\nexport default SideMenu;\r\n","export default [\r\n {url: 'order_comment', type:'order_comment'},\r\n {url: 'order_status', type: 'order_comment'},\r\n {url: 'summary', type: 'order_comment'},\r\n {url: 'shipment', type: 'shipment'},\r\n {url: 'shipment_print', type: 'shipment'},\r\n {url: 'comment', type: 'comment'},\r\n {url: 'comment_status', type: 'comment'},\r\n {url: 'accounting', type: 'accounting'},\r\n {url: 'accounting_status', type: 'accounting'},\r\n {url: 'payment', type:'payment'},\r\n {url: 'payment_notice', type:'payment'},\r\n {url: 'temporary', type:'payment'},\r\n {url: 'drawing', type: 'drawing'},\r\n {url: 'drawing_account', type: 'drawing'},\r\n {url: 'report_upload', type: 'report_upload'},\r\n {url: 'report', type: 'report_upload'},\r\n]","export default [\r\n {title: '系統公告', name:'系統公告'},\r\n {title: '個人資料維護', name: '個人資料維護'},\r\n {title: '訂購單交期處理', name: '訂購單交期處理'},\r\n {title: '訂購單交期處理', name: '訂購單交期狀態'},\r\n {title: '訂購單交期處理', name: '摘要表'},\r\n {title: '出貨處理', name: '出貨處理'},\r\n {title: '出貨處理', name: '出貨處理列印'},\r\n {title: '跟催回覆-通知', name: '跟催回覆-通知'},\r\n {title: '跟催回覆-通知', name: '所有跟催查詢'},\r\n {title: '跟催回覆-回覆', name: '跟催回覆-回覆'},\r\n {title: '整帳作業', name: '整帳作業'},\r\n {title: '整帳作業', name: '整帳作業狀態'},\r\n {title: '外注核價', name: '外注核價'},\r\n {title: '支給單', name: '支給單處理'},\r\n {title: '支給單', name: '支給單通知'},\r\n {title: '支給單', name: '臨注單處理'},\r\n {title: '圖面簽收統計', name: '圖面簽收'},\r\n {title: '圖面簽收統計', name: '圖面統計'},\r\n {title: '進料檢驗報告', name: '檢驗報告設定'},\r\n {title: '進料檢驗報告', name: '檢驗報告上傳'},\r\n {title: '公告設定', name: '公告設定'},\r\n {title: '帳號管理', name: '帳號管理'},\r\n {title: '群組設定', name: '群組設定'},\r\n {title: '條文設定', name: '條文設定'},\r\n {title: 'LOG設定', name: 'LOG設定'},\r\n {title: 'LOG設定', name: '登入紀錄'},\r\n {title: '收料單位設定', name: '收料單位設定'},\r\n {title: '品管擔當設定', name: '品管擔當設定'},\r\n {title: '系統設定', name: '系統設定'},\r\n {title: '程式設定', name: '程式設定'},\r\n {title: '目錄設定', name: '目錄設定'}\r\n]","import React, { useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { css } from \"@emotion/core\";\r\nimport { NavLink as _RouteNavLink } from \"react-router-dom\";\r\nimport {\r\n NavItem,\r\n NavLink,\r\n DropdownMenu,\r\n DropdownItem,\r\n Collapse,\r\n} from \"shards-react\";\r\nimport _ from \"lodash\";\r\nimport useLocalState from \"../../../hooks/use-local-state\";\r\nimport useRouter from \"../../../hooks/use-router\";\r\nimport list from \"../../../data/menu-relation\";\r\nimport menuName from \"../../../data/menu-name\";\r\n\r\nconst RouteNavLink = (props) => <_RouteNavLink {...props} />;\r\n\r\nconst SidebarNavItem = ({ item }) => {\r\n const { toggleSidebarDropdown } = useLocalState();\r\n const [hover, setHover] = useState(false);\r\n const { history, location } = useRouter();\r\n const currentUrl = location.pathname.split('/')[1];\r\n const activeUrl = _.find(list, ['url', currentUrl])?.type\r\n var isActive = _.isEqual(activeUrl, item.path)\r\n // var isActive = String(location.pathname).includes(String(`/${item.path}`))\r\n return (\r\n \r\n setHover(true)}\r\n onMouseLeave={() => setHover(false)}\r\n tag={RouteNavLink}\r\n to={{\r\n pathname: `/${item.path}`,\r\n }}\r\n // onClick={() => {\r\n // toggleSidebarDropdown(item);\r\n // }}\r\n >\r\n {item.icon && \r\n
\r\n \r\n
\r\n } \r\n {item.name && {_.find(menuName, ['name', item.name])?.title}}\r\n \r\n
\r\n );\r\n};\r\n\r\nSidebarNavItem.propTypes = {\r\n /**\r\n * The item object.\r\n */\r\n item: PropTypes.object,\r\n};\r\n\r\nconst styles = (item, hover) => css`\r\n {\r\n .iconImage {\r\n height: 26px;\r\n width: 26px;\r\n background-size: contain;\r\n }\r\n\r\n .custom-active span {\r\n color: var(--pixis-color);\r\n }\r\n .custom-active {\r\n box-shadow: inset 0.1875rem 0 0 var(--pixis-color);\r\n background-color: #fbfbfb;\r\n color: var(--pixis-color);\r\n }\r\n }\r\n`;\r\n\r\nexport default SidebarNavItem;\r\n","import React, { useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { css } from \"@emotion/core\";\r\nimport { NavLink as _RouteNavLink } from \"react-router-dom\";\r\nimport {\r\n NavItem,\r\n NavLink,\r\n DropdownMenu,\r\n DropdownItem,\r\n Collapse,\r\n} from \"shards-react\";\r\nimport _ from \"lodash\";\r\nimport useLocalState from \"../../../hooks/use-local-state\";\r\nimport useRouter from \"../../../hooks/use-router\";\r\n\r\nconst RouteNavLink = (props) => <_RouteNavLink {...props} />;\r\n\r\nconst SiderbarNavTitle = ({ item }) => {\r\n const { toggleSidebarDropdown } = useLocalState();\r\n const [hover, setHover] = useState(false);\r\n const [open, setOpen] = useState(false)\r\n const { history, location } = useRouter();\r\n\r\n// const hasSubItems = item && item.length > 0;\r\n // var isActive = String(location.pathname).includes(String(item.path));\r\n var isActive = _.isEqual(String(location.pathname), String(`/${item.path}`))\r\n\r\n return (\r\n \r\n setHover(true)}\r\n onMouseLeave={() => setHover(false)}\r\n className={\"dropdown-toggle\"}\r\n tag={\"a\"}\r\n to={{\r\n pathname: \"#\"\r\n }}\r\n onClick={() => {setOpen(!open)}}\r\n >\r\n {{item[0].menutitle}}\r\n \r\n \r\n {item.map((subItem, idx) => (\r\n (subItem.primary_prog === null && subItem.visible !== \"0\") && (\r\n \r\n {subItem.name}\r\n \r\n )))}\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nSiderbarNavTitle.propTypes = {\r\n /**\r\n * The item object.\r\n */\r\n item: PropTypes.array,\r\n};\r\n\r\nconst styles = (item, hover) => css`\r\n {\r\n .iconImage {\r\n height: 26px;\r\n width: 26px;\r\n background-size: contain;\r\n }\r\n\r\n .custom-active span {\r\n color: var(--pixis-color);\r\n }\r\n .custom-active {\r\n box-shadow: inset 0.1875rem 0 0 var(--pixis-color);\r\n background-color: #fbfbfb;\r\n color: var(--pixis-color);\r\n }\r\n }\r\n`;\r\n\r\nexport default SiderbarNavTitle;\r\n","import React from 'react';\r\nimport { Row, Navbar, NavbarBrand } from 'shards-react';\r\n\r\nimport Images from '../../../images/images'\r\nimport useLocalState from '../../../hooks/use-local-state';\r\nconst SidebarFooterItems = ({ hideLogoText }) => {\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n 合約內容\r\n \r\n \r\n 操作說明下載\r\n \r\n\r\n {/* \r\n © 2018 台灣三菱電梯\r\n */}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SidebarFooterItems;\r\n","import React from 'react';\r\nimport _ from \"lodash\";\r\nimport { Nav } from 'shards-react';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\nimport SidebarNavItem from './SidebarNavItem';\r\nimport SidebarNavTitle from './SidebarNavTitle'\r\nimport SidebarFooterItems from './SidebarFooterItems';\r\nimport useLocalState from '../../../hooks/use-local-state';\r\n\r\nconst SidebarNavItems = props => {\r\n const { navItems: items } = useLocalState();\r\n\r\n return (\r\n \r\n
\r\n {_.map(items, (nav, idx) => (\r\n
\r\n {idx === \"-\" ? (\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\n\r\nexport default SidebarNavItems;","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Col } from 'shards-react';\r\n\r\nimport SidebarMainNavbar from './SidebarMainNavbar';\r\nimport SidebarSearch from './SidebarSearch';\r\nimport SideMenu from \"../../../views/SideMenu\";\r\nimport SidebarNavItems from './SidebarNavItems';\r\nimport SidebarFooterItems from './SidebarFooterItems';\r\nimport useLocalState from '../../../hooks/use-local-state';\r\n\r\nconst MainSidebar = props => {\r\n const { menuVisible } = useLocalState();\r\n const classes = classNames(\r\n 'main-sidebar',\r\n 'px-0',\r\n 'no-print',\r\n menuVisible && 'open');\r\n\r\n return (\r\n \r\n {/* */}\r\n \r\n {/* */}\r\n \r\n {/* */}\r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nMainSidebar.propTypes = {\r\n /**\r\n * Whether to hide the logo text, or not.\r\n */\r\n hideLogoText: PropTypes.bool\r\n};\r\n\r\nMainSidebar.defaultProps = {\r\n hideLogoText: false\r\n};\r\n\r\nexport default MainSidebar;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Container, Row, Col } from \"shards-react\";\r\n\r\nimport useRequireAuth from \"../hooks/use-require-auth\";\r\nimport images from \"../images/images\";\r\nimport MainNavbar from \"../components/layout/MainNavbar\";\r\nimport MainSidebar from \"../components/layout/MainSidebar\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst DefaultLayout = ({ children, noNavbar }) => {\r\n const auth = useRequireAuth();\r\n\r\n return (\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\n {!noNavbar && }\r\n {children}\r\n \r\n \r\n \r\n
\r\n
\r\n © TAIWAN MITSUBISHI ELEVATOR CO.,LTD.\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nDefaultLayout.propTypes = {\r\n /**\r\n * Whether to display the navbar, or not.\r\n */\r\n noNavbar: PropTypes.bool,\r\n /**\r\n * Whether to display the footer, or not.\r\n */\r\n noFooter: PropTypes.bool,\r\n};\r\n\r\nDefaultLayout.defaultProps = {\r\n noNavbar: false,\r\n noFooter: false,\r\n};\r\n\r\nexport default DefaultLayout;\r\n\r\nconst styles = css`\r\n position: relative;\r\n font-family: PingFangTC-Regular;\r\n font-size: 12px;\r\n color: #b3b3b3;\r\n letter-spacing: 0.08px;\r\n text-align: center;\r\n width: 100%;\r\n`;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Container, Row, Nav, NavItem, NavLink } from 'shards-react';\r\nimport { Link as _Link } from 'react-router-dom';\r\n\r\nconst Link = props => <_Link {...props} />;\r\n\r\nconst MainFooter = ({ contained, menuItems, copyright }) => (\r\n
\r\n \r\n \r\n \r\n {copyright}\r\n \r\n \r\n
\r\n);\r\n\r\nMainFooter.propTypes = {\r\n /**\r\n * Whether the content is contained, or not.\r\n */\r\n contained: PropTypes.bool,\r\n /**\r\n * The menu items array.\r\n */\r\n menuItems: PropTypes.array,\r\n /**\r\n * The copyright info.\r\n */\r\n copyright: PropTypes.string\r\n};\r\n\r\nMainFooter.defaultProps = {\r\n contained: false,\r\n copyright: 'Copyright © 2018 DesignRevision',\r\n menuItems: [\r\n {\r\n title: 'Home',\r\n to: '#'\r\n },\r\n {\r\n title: 'Services',\r\n to: '#'\r\n },\r\n {\r\n title: 'About',\r\n to: '#'\r\n },\r\n {\r\n title: 'Products',\r\n to: '#'\r\n },\r\n {\r\n title: 'Blog',\r\n to: '#'\r\n }\r\n ]\r\n};\r\n\r\nexport default MainFooter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Container, Row, Col } from 'shards-react';\r\n\r\nimport MainNavbar from '../components/layout/MainNavbar';\r\nimport MainSidebar from '../components/layout/MainSidebar';\r\nimport MainFooter from '../components/layout/MainFooter';\r\n\r\nconst IconSidebarLayout = ({ children, noNavbar, noFooter }) => (\r\n \r\n \r\n \r\n \r\n {!noNavbar && }\r\n {children}\r\n {!noFooter && }\r\n \r\n \r\n \r\n);\r\n\r\nIconSidebarLayout.propTypes = {\r\n /**\r\n * Whether to display the navbar, or not.\r\n */\r\n noNavbar: PropTypes.bool,\r\n /**\r\n * Whether to display the footer, or not.\r\n */\r\n noFooter: PropTypes.bool\r\n};\r\n\r\nIconSidebarLayout.defaultProps = {\r\n noNavbar: false,\r\n noFooter: false\r\n};\r\n\r\nexport default IconSidebarLayout;\r\n","import React from \"react\";\r\nimport { Container, Row, Col } from \"shards-react\";\r\nimport { css } from \"@emotion/core\";\r\nimport images from \"../images/images\";\r\nconst BlankLayout = ({ children, noNavbar, noFooter }) => (\r\n <>\r\n\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n
\r\n
\r\n © TAIWAN MITSUBISHI ELEVATOR CO.,LTD.\r\n
\r\n
\r\n \r\n);\r\n\r\nexport default BlankLayout;\r\n\r\nconst style2 = css`\r\noverflow: hidden;\r\n`\r\n\r\nconst styles = css`\r\n font-family: PingFangTC-Regular;\r\n font-size: 12px;\r\n color: #b3b3b3;\r\n letter-spacing: 0.08px;\r\n text-align: center;\r\n width: 100%;\r\n background: #f1f1f1;\r\n`;\r\n","// Layout Types\r\nimport { DefaultLayout, BlankLayout } from \"./layouts\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport loadable from \"@loadable/component\"\r\n\r\nexport default [\r\n {\r\n path: \"/\",\r\n exact: true,\r\n layout: BlankLayout,\r\n component: loadable(() => import (\"./views/Landing\"))\r\n },\r\n {\r\n path: \"/Login\",\r\n layout: BlankLayout,\r\n component: loadable(() => import (\"./views/login/Login\"))\r\n },\r\n {\r\n path: \"/pubnote_read/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/pubnote/PubnoteReadShow\"))\r\n },\r\n {\r\n path: \"/pubnote_read\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/pubnote/PubnoteReadList\"))\r\n },\r\n {\r\n path: \"/profile\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/profile/ProfileEdit\"))\r\n },\r\n {\r\n path: \"/order_comment/treeview\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/TreeView\"))\r\n },\r\n {\r\n path: \"/order_comment/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/OrderCommentShow\"))\r\n },\r\n {\r\n path: \"/order_comment\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/OrderCommentList\"))\r\n },\r\n {\r\n path: \"/order_status/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/OrderStatusShow\"))\r\n },\r\n {\r\n path: \"/order_status/treeview\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/TreeView\"))\r\n },\r\n {\r\n path: \"/order_status\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/OrderStatusList\"))\r\n },\r\n {\r\n path: \"/summary/detail\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/SummaryDetail\"))\r\n },\r\n {\r\n path: \"/summary\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/SummaryList\"))\r\n },\r\n {\r\n path: \"/item_view\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/order/ItemViewList\"))\r\n },\r\n {\r\n path: \"/shipment/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/shipment/ShipmentShow\"))\r\n },\r\n {\r\n path: \"/shipment\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/shipment/ShipmentList\"))\r\n },\r\n {\r\n path: \"/shipment_print\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/shipment/ShipmentPrint\"))\r\n },\r\n {\r\n path: \"/comment/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/comment/CommentShow\"))\r\n },\r\n {\r\n path: \"/comment\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/comment/CommentList\"))\r\n },\r\n {\r\n path: \"/comment_status/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/comment/CommentStatusShow\"))\r\n },\r\n {\r\n path: \"/comment_status\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/comment/CommentStatusList\"))\r\n },\r\n {\r\n path: \"/comment_reply/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/comment/CommentReplyShow\"))\r\n },\r\n {\r\n path: \"/comment_reply\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/comment/CommentReplyList\"))\r\n },\r\n {\r\n path: \"/accounting/finish\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/accounting/AccountingFinish\"))\r\n },\r\n {\r\n path: \"/accounting\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/accounting/AccountingList\"))\r\n },\r\n {\r\n path: \"/accounting_status\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/accounting/AccountingStatusList\"))\r\n },\r\n {\r\n path: \"/cost/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/cost/CostEdit\"))\r\n },\r\n {\r\n path: \"/cost\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/cost/CostList\"))\r\n },\r\n {\r\n path: \"/pubnote/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/pubnote/PubnoteEdit\"))\r\n },\r\n {\r\n path: \"/pubnote/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/pubnote/PubnoteShow\"))\r\n },\r\n {\r\n path: \"/pubnote\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/pubnote/PubnoteList\"))\r\n },\r\n {\r\n path: \"/user/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/user/UserEdit\"))\r\n },\r\n {\r\n path: \"/user/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/user/UserShow\"))\r\n },\r\n {\r\n path: \"/user\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/user/UserList\"))\r\n },\r\n {\r\n path: \"/roles/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/role/RoleEdit\"))\r\n },\r\n {\r\n path: \"/roles/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/role/RoleShow\"))\r\n },\r\n {\r\n path: \"/roles\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/role/RoleList\"))\r\n },\r\n {\r\n path: \"/userhistories\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/log/UserHistories\"))\r\n },\r\n {\r\n path: \"/log_login\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/log/LogLogin\"))\r\n },\r\n {\r\n path: \"/terms\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/term/TermEdit\"))\r\n },\r\n {\r\n path: \"/receive/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/receive/ReceiveEdit\"))\r\n },\r\n {\r\n path: \"/receive\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/receive/ReceiveList\"))\r\n },\r\n {\r\n path: \"/system/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/system/SystemEdit\"))\r\n },\r\n {\r\n path: \"/system/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/system/SystemShow\"))\r\n },\r\n {\r\n path: \"/system\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/system/SystemList\"))\r\n },\r\n {\r\n path: \"/progs/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/prog/ProgEdit\"))\r\n },\r\n {\r\n path: \"/progs/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/prog/ProgShow\"))\r\n },\r\n {\r\n path: \"/progs\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/prog/ProgList\"))\r\n },\r\n {\r\n path: \"/menus/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/menu/MenuEdit\"))\r\n },\r\n {\r\n path: \"/menus/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/menu/MenuShow\"))\r\n },\r\n {\r\n path: \"/menus\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/menu/MenuList\"))\r\n },\r\n {\r\n path: \"/errors\",\r\n layout: BlankLayout,\r\n component: loadable(() => import (\"./views/Errors\"))\r\n },\r\n //new\r\n {\r\n path: \"/payment/show\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/payment/PaymentShow\"))\r\n },\r\n {\r\n path: \"/payment\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/payment/PaymentList\"))\r\n },\r\n {\r\n path: \"/payment_notice\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/payment/PaymentNoticeList\"))\r\n },\r\n {\r\n path: \"/temporary\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/payment/TemporaryList\"))\r\n },\r\n {\r\n path: \"/drawing\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/drawing/DrawingList\"))\r\n },\r\n {\r\n path: \"/drawing_account\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/drawing/DrawingAccountList\"))\r\n },\r\n {\r\n path: \"/term\",\r\n layout: BlankLayout,\r\n component: loadable(() => import (\"./views/order/Term\"))\r\n },\r\n {\r\n path: \"/report\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/report/ReportList\"))\r\n },\r\n {\r\n path: \"/report_upload\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/report/ReportUploadList\"))\r\n },\r\n {\r\n path: \"/quality_control/edit\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/quality/QualityControlEdit\"))\r\n },\r\n {\r\n path: \"/quality_control\",\r\n layout: DefaultLayout,\r\n component: loadable(() => import (\"./views/quality/QualityControlList\"))\r\n },\r\n {\r\n path: \"/\",\r\n exact: false,\r\n layout: DefaultLayout,\r\n component: () => ,\r\n },\r\n];\r\n","import React, { useRef, useEffect } from \"react\";\r\nimport { Button, Modal, ModalHeader, ModalBody } from \"shards-react\";\r\nimport { css } from \"@emotion/core\";\r\n\r\nconst Dialog = ({\r\n size = \"md\",\r\n title,\r\n message,\r\n overlayAction,\r\n confirmButtonProp,\r\n cancelButtonProp,\r\n isShowDialog = false,\r\n whenClick = false,\r\n}) => {\r\n const confirmButton = useRef({\r\n isShow: true,\r\n text: \"是\",\r\n action: null,\r\n color: \"primary\",\r\n });\r\n const cancelButton = useRef({\r\n isShow: true,\r\n text: \"否\",\r\n action: null,\r\n color: \"primary\",\r\n });\r\n\r\n useEffect(() => {\r\n confirmButton.current = { ...confirmButton.current, ...confirmButtonProp };\r\n cancelButton.current = { ...cancelButton.current, ...cancelButtonProp };\r\n }, []);\r\n\r\n return (\r\n
\r\n overlayAction && overlayAction()}\r\n backdropClassName=\"backdropBackground\"\r\n >\r\n {title && {title}}\r\n {message}\r\n
\r\n {confirmButton.current.isShow && (\r\n \r\n {confirmButton.current.text}\r\n \r\n )}\r\n {cancelButton.current.isShow && (\r\n \r\n {cancelButton.current.text}\r\n \r\n )}\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Dialog;\r\n\r\nconst styles = css`\r\n .buttonDiv {\r\n display: inline-block;\r\n }\r\n .button {\r\n flex-direction: row;\r\n float: right;\r\n }\r\n .modal {\r\n z-index: 1090;\r\n }\r\n .backdropBackground {\r\n z-index: 1080;\r\n }\r\n`;\r\n","import _ from \"lodash\";\r\nimport useApi, { API_METHOD } from \"../hooks/use-api\";\r\nimport { USER, PROFILE } from \"./API\";\r\n\r\nconst useUser = () => {\r\n const { FetchApi } = useApi();\r\n\r\n const getProfile = async () => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.GET,\r\n PROFILE,\r\n null\r\n );\r\n return { status, message, result };\r\n };\r\n\r\n const updateProfile = async (data) => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.POST,\r\n PROFILE,\r\n data\r\n );\r\n return { status, message };\r\n };\r\n\r\n const getUserList = async () => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.GET,\r\n USER,\r\n null\r\n );\r\n return { status, message, result };\r\n };\r\n\r\n const getUser = async (id) => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.GET,\r\n `${USER}/${id}`,\r\n null\r\n );\r\n return { status, message, result };\r\n };\r\n\r\n const createUser = async (data) => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.POST,\r\n USER,\r\n data\r\n );\r\n return { status, message };\r\n };\r\n\r\n const updateUser = async (data) => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.POST,\r\n `${USER}/${data.id}`,\r\n data\r\n );\r\n return { status, message };\r\n };\r\n\r\n const deleteUser = async (id) => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.DELETE,\r\n `${USER}/${id}`,\r\n null\r\n );\r\n return { status, message, result };\r\n };\r\n\r\n const searchUser = async (data) => {\r\n const { status, message, result } = await FetchApi(\r\n API_METHOD.POST,\r\n `${USER}/search`,\r\n data\r\n );\r\n return { status, message, result };\r\n };\r\n\r\n return { getProfile, updateProfile, getUserList, getUser, updateUser, createUser, deleteUser, searchUser };\r\n};\r\n\r\nexport default useUser;\r\n","import React, { useEffect, useContext, createContext } from \"react\";\r\nimport { useImmer } from \"use-immer\";\r\nimport _ from \"lodash\";\r\n\r\nconst defaultState = {\r\n menuVisible: false,\r\n navItems: [],\r\n roleNavItems: [],\r\n user: null,\r\n roleCode: null,\r\n ///各頁權限\r\n orderCommentItems: false,\r\n itemViewItems: false,\r\n shipmentItems: false,\r\n commentItems: false,\r\n accountingItems: false,\r\n logItems: false,\r\n paymentItems: false,\r\n paymentNoticeItems: false,\r\n drawingItems: false,\r\n drawingAccountItems: false,\r\n reportItems: false\r\n};\r\n\r\nconst LocalStateContext = createContext();\r\n\r\nconst useLocalState = () => {\r\n const [state, produce] = useContext(LocalStateContext);\r\n\r\n const toggleSidebar = () => {\r\n produce((draft) => void (draft.menuVisible = !draft.menuVisible));\r\n };\r\n\r\n const toggleSidebarDropdown = (item) => {\r\n produce((draft) => {\r\n const items = _.flatten(_.map(draft.navItems, \"items\"));\r\n\r\n item = _.find(items, item);\r\n item.open = !item.open;\r\n\r\n _.reject(items, item).forEach((item) => (item.open = false));\r\n });\r\n };\r\n\r\n const setUser = (result) => {\r\n if(result === null){\r\n produce((draft) => {\r\n draft.navItems = []\r\n draft.orderCommentItems = false\r\n draft.itemViewItems = false\r\n draft.shipmentItems = false\r\n draft.commentItems = false\r\n draft.accountingItems = false\r\n draft.logItems = false\r\n draft.paymentItems = false\r\n draft.paymentNoticeItems = false\r\n draft.drawingItems = false\r\n draft.drawingAccountItems = false\r\n draft.reportItems = false\r\n draft.user = null\r\n });\r\n return;\r\n }\r\n produce((draft) => { \r\n draft.user = result?.user\r\n draft.roleCode = result?.user?.role_code\r\n });\r\n \r\n if(result?.user){\r\n produce((draft) => {\r\n draft.navItems = result.progs ? _.groupBy(result.progs, 'menutitle') : []\r\n draft.roleNavItems = result.progs ? result.progs : []\r\n });\r\n \r\n produce((draft) => {\r\n _.map(result.progs, \r\n (o,key) => {o.name === \"訂購單交期處理\" && _.map(o, draft.orderCommentItems = true),\r\n o.name === \"出貨處理列印\" && _.map(o, draft.shipmentItems = true),\r\n o.name === \"跟催回覆-通知\" && _.map(o, draft.commentItems = true),\r\n o.name === \"整帳作業\" && _.map(o, draft.accountingItems = true),\r\n o.name === \"LOG設定\" && _.map(o, draft.logItems = true),\r\n o.name === \"支給單處理\" && _.map(o, draft.paymentItems = true),\r\n o.name === \"支給單通知\" && _.map(o, draft.paymentNoticeItems = true),\r\n o.name === \"圖面簽收\" && _.map(o, draft.drawingItems = true),\r\n o.name === \"圖面統計\" && _.map(o, draft.drawingAccountItems = true),\r\n o.name === \"檢驗報告設定\" && _.map(o, draft.reportItems = true)\r\n o.name === \"圖面視圖\" && _.map(o, draft.itemViewItems = true)\r\n });\r\n });\r\n } \r\n };\r\n\r\n return {\r\n ...state,\r\n toggleSidebar,\r\n toggleSidebarDropdown,\r\n setUser,\r\n };\r\n};\r\n\r\nconst LocalStateProvider = ({ children }) => {\r\n const [state, produce] = useImmer({ ...defaultState });\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default useLocalState;\r\nexport { LocalStateProvider };\r\n","import { useEffect } from \"react\";\r\nimport _ from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nimport useRouter from \"./use-router\";\r\nimport useAuth from \"./use-auth\";\r\nimport useUser from \"../api/user-service\";\r\nimport useLocalState from \"./use-local-state\";\r\nimport routes from \"../routes\";\r\nimport useApi from \"../hooks/use-api\";\r\n\r\nconst useRequireAuth = (redirectUrl = \"/Login\") => {\r\n const auth = useAuth();\r\n const { token, expired, setExpired, removeExpired } = auth;\r\n const router = useRouter();\r\n const { getProfile } = useUser();\r\n const { setUser, roleNavItems } = useLocalState();\r\n const { setExpiredMessage } = useApi();\r\n\r\n const getAdmin = async () => {\r\n const { status, message, result } = await getProfile();\r\n if (status == \"0\") setUser(result);\r\n };\r\n\r\n useEffect(() => {\r\n if (_.includes(router.pathname, \"/Term\")) return;\r\n if (!auth.token) {\r\n router.push(redirectUrl);\r\n }\r\n if( \r\n !!roleNavItems && \r\n roleNavItems.length > 0 &&\r\n !_.find(roleNavItems, o => {\r\n return _.isEqual(String(router.pathname).split('/')[1], o.path)\r\n })\r\n )\r\n router.push( _.first(roleNavItems)?.path);\r\n }, [auth, router]);\r\n\r\n useEffect(() => {\r\n if (!token) return;\r\n if (moment().isAfter(expired) || !expired) {\r\n setExpiredMessage();\r\n removeExpired();\r\n }else setExpired(moment().add(process.env.REACT_APP_TOKEN_EXPIRED, \"minutes\"));\r\n getAdmin();\r\n }, [token]);\r\n\r\n return auth;\r\n};\r\n\r\nexport default useRequireAuth;\r\n","import React, { useContext, createContext, useEffect } from \"react\";\r\nimport { useImmer } from \"use-immer\";\r\nimport Dialog from \"../components/common/Dialog\";\r\nimport useAuth from \"./use-auth\";\r\nimport axios from \"axios\";\r\n\r\nconst BASE_URL = `${process.env.REACT_APP_SERVER_HOST}${process.env.REACT_APP_SERVER_ENDPOINT}`;\r\nconst APIKit = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 180000,\r\n});\r\n\r\nAPIKit.interceptors.request.use(function (config) {\r\n const token = localStorage.getItem(process.env.REACT_APP_TOKEN);\r\n config.headers.Authorization = `Bearer ${!!token ? token : \"\"}`;\r\n return config;\r\n});\r\n\r\nexport const API_METHOD = {\r\n GET: \"get\",\r\n POST: \"post\",\r\n PUT: \"put\",\r\n DELETE: \"delete\",\r\n};\r\n\r\nconst ApiContext = createContext();\r\n\r\nconst authMessage = \"登入憑證已失效,請重新登入\";\r\nconst defaultFailedMessage = \"系統異常,請稍後再試\";\r\n\r\nconst useApi = () => useContext(ApiContext);\r\n\r\nconst ApiProvider = ({ children }) => {\r\n const api = useApiProvider();\r\n const { errorMessage, clearErrorMessage, signOut } = api;\r\n\r\n const Action = () => {\r\n if (errorMessage == authMessage) signOut();\r\n clearErrorMessage();\r\n };\r\n\r\n return (\r\n \r\n Action()}\r\n confirmButtonProp={{\r\n action: () => Action(),\r\n }}\r\n cancelButtonProp={{\r\n isShow: false,\r\n }}\r\n />\r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst useApiProvider = () => {\r\n const { token, signOut } = useAuth();\r\n const [state, produce] = useImmer({\r\n errorMessage: null,\r\n });\r\n\r\n const { errorMessage } = state;\r\n\r\n const clearErrorMessage = () => {\r\n produce((draft) => void (draft.errorMessage = null));\r\n };\r\n\r\n const setErrorMessage = (value) => {\r\n produce((draft) => void (draft.errorMessage = value));\r\n };\r\n\r\n const setExpiredMessage = () => setErrorMessage(authMessage);\r\n\r\n const FetchApi = async (method, path, variables, noError) => {\r\n let result = { status: 1, message: \"error\", result: null };\r\n try {\r\n const { data } = await APIKit[method](path, variables);\r\n result = data;\r\n if (result.status != 0 && !noError) setErrorMessage(data.message);\r\n } catch (error) {\r\n let message = defaultFailedMessage;\r\n let statusCode = error.response?.status;\r\n\r\n if (statusCode == 401) message = authMessage;\r\n\r\n result = { status: statusCode, message: message, result: null };\r\n if (!noError) setErrorMessage(message);\r\n } finally {\r\n return result;\r\n }\r\n };\r\n\r\n return { errorMessage, clearErrorMessage, signOut, FetchApi, setExpiredMessage };\r\n};\r\n\r\nexport default useApi;\r\nexport { ApiProvider };\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAAEgAAAACaqbJVAAAB+UlEQVQ4Ea2Tvy9DURTH+15ftcoqwiBi8CMkDDpoxGIzCULawSTYJJIu/gKLzcKgSZu8YvQHCINEEGJCYiEWP0LTEP1dn/PyXvO0rwzc5OR+v+ee873nnnuv4rKNcDh8UiqVAjZXTagoyrGu60NWgGYBmRFpc7vdI4VC4crud8C9xOp2/zchWWCnN6ZZrFG4qqpHJClY0OQpNtvP5XJCy6NKyFyJIHhIcjfmx+fGRvHdFovFoAiVFUygVjpsPEbimcXBp4jGLV451xJKkaRjUySksU/wDLMIpbCqoYRCoWFKbZUVmrypadowSR1Qn/jo0TXHUYBdwon59Hg8d/l8/oC1RfExHjRK3mfxGCLdqxcvfAP/PYItiMjtSI+msUdMNh1jrYG4BeLq4IMqDg9gIpFIjDLLjRmDgDnArknlaWyD5y3O/CI5fr9fjl9Xq0cuKrkgYNmWGEGs3Hyb34CO10+f+umbsQk7vqfTaQXhNcmgUk5UaKkUcqwoHo8/ZbPZaWwrmUzuIrQjmEc4GY1GnytFhDtWZAbKN/iggj2Tj8P7TFw1/SQkx7jgYxqPkA/dTrbxTKpUcDgezSnwN9+/CcnLLnFDA7zW10wmc87OIa/XewNepScPPp9vXaqh4UtMzfAVGt/DLcbAAS6gCXwqQpf0olOC/zCuvwADI+BNOuzBRwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAAEgAAAACaqbJVAAAC20lEQVQ4EX2UXUiTURjH976++0jmB92YXWhdbEYRGAVdlBS5Ci+6kSjmhkotMQvSatRFxED7IGgalcQIjPVuK7KrLorQujAToZsoL3SQ0NWyyMUayeZcvzM741WkA8+ec/7P//k8551iWrU8Hs/WfD5/DylTFOWu0+nU5+bmSufn53uhusHimqZ5wuHwV6Orajx0dHSYl5aW3kB+jlzBdmlmZmYqmUx+5lxdUlKylwRj2WxWN/qJvWYEFhYWNuOgRCKR+wJvb2/fiZML6Keu6+8F5vP57qTT6W4CCmpeYGIpy8pkCgQCKtkvQ2iIxWJNEl9Lt7S0TIFHaHHYZrPNhkKhrAZYi/Pj6enpXRi/qKrqXsvZiNHi8cXFxZvI2VQqpbS1tbkUAo0RaAxikEp+SAcqtMTj8QvYGsFQ+dG6urogeEZyhOZyzjDXoyoEB1Xoq4NQ4TiEQ3AfwokyjyZafycSGANhm8VWpvIT5XDNaBSVgKej0egB5AlJhngGB+FkSHBecnt6etaxD8IdUCsrK69y2OH1evdLAoEbMYaQ4q2IloQDIlotrEQicZjNL25ZVwcHB39z+EYb65fN//8liVUyGMl39hu6urrsKsPyciivqqp6KQlkHSVwJ1UUHywBFKQT22vJo5Jx9hM82D4NYzdGf39//x9JcDgct5lFM8N9S8sPBE7CU6gKRjEgeUKbzebeTCYzKm4thWwxGsU8uOo9JHhFZSeRE9hH7HZ7w79RFOitra01vPzT8OIKmbYT6AWWcvQHHpufz+GjMfDqPW+vHuwZshGfEavVek6jz08AmzA60MfI/hS9okLOKxbOtwAe8TSuU03hZovDBIzTzg1INcylWnq63e59JGnmn6FUYuh6Kh+WQQRe/GglSXwyECa42qFcLtcHLr7BBFIBfpGKnez9JK0Vs2RfWMWKJID2UlUDQSbRSW5pG9XuBu/lHEAfsVgsLmMQMNNfajJtwcUmB6EAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAAEgAAAACaqbJVAAABbUlEQVQ4EZWUzUrDQBDH3SQHERSN4Ml7r76E4NHczMepYK4qPoPgvXoSJYGQ+Aa56ksEU/DSkxoFaTyk5KP+t3ZKCku6Lgwzu/OfX2aSbdnafJmmeY+wT/t/+kyjAsbYHuKz6XQa0pmMV1V1t67rlwWIFwGSR1H0KQMgDSaZhUsgSjqOc9g0zRHtRR4PzfDQa8oJQUiWEE5IJPJ4FUt5ISgIgicUc5NeQpDruhtFUex3URRFGXue90YaISjP8wu0fkkikcfoI5wfUE4Iwku8goCb9FKklSuEwo5s2+6jdWdF7XsYhn+XCEIhSNO057Is8y4QbvRXOy8E+b7/ChE36TUDYQxmWZaGL7WOsbZkqnVdnwwGg8WlZPitHAPwANiODKCl+TEMYzuOYx137oN3dAs77/V6jy1RZ5imKe86S5JEJSEfp4JtzpN03unxMRT8dXwPh8MTXgsbcdApxrpD5U1ndStZVRXtfAQjzvgF9LB+zs5RXQ8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAAEgAAAACaqbJVAAAB5ElEQVQ4EZVUTUtCQRRteu8porlt0aYoFEqJaFP0AbWSiPZ+gdAqW0lB9QtKqGX2QYSbp3uLlrXoB0hJG8tqE4RQhGSkPbVz4xmPefOgBi5z55xzz503o8M6LEYsFuut1WpJxtgUSVqt1qXdbl9Lp9OPopJOERgOhwfr9XoeJg+yLAcoKCeMOFGNLALR/QCRzGazWwb+OhgMvgHfBzZtwH9S046i0agT4jGHw7HLi3VsnDQ8ZzKSJKkLn6EFAoEPXkwYcaThOZMRDvMZO3rJ5XKzvJgw4kjDcyYjEqDrRrPZPAqFQqPtAsoJI66NGWdmXBhz3M4yum8Ce9LxHjJRVdV0dsRbGhEZj8ddlUplhHK3251PpVLvlIvGr1EikXCUy+UgdjEM4QBmRVjA2BfwO+zuSlGUDM7rk3Q/RpFIZKHRaKRAloBdIO6RayQQDAVN+oDPYO7HvITf2wnDWUwAOAUQzmQyZ4JCSwgXMAdSRdN5yefzHSI5gIlqWWFBFAqFW7/fXwW9SNc/ifjXTjjfM3zRFBm5kFQ48s9LvdZFRq82m637z5WcUK99ZfhHb4ObxVOxivfmplqtNjitcOl0OiW8V0OaplH9uez1eteLxeIKgD0EXackrORAvWEJF3Xs8Xh2vgEXkcij/V1rfwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEqADAAQAAAABAAAAEgAAAACaqbJVAAABnklEQVQ4Ea1UPUvDUBTti2kbKyWTODhEKKmb4CSI6I9wsSlNwX+QpXPc/BMdSptmEFzcnETBzUXtkskMYgZLQYuYmA/PUx9I8touuRDuyzn3nbx73m1Jo9HoFgqFYzwLgxByPhwOD3mFBEKxJElrYRh+8AoYVq1WyWQyGQuCsGpZ1hvDWRaxIEmSvPf7/U8Gzsr4aFIsFgUezwV5hYsweiJuGIaxnCY8z6OQ9J+TZTkyTTPICKFN0mw2r7BpPy1E333ff/kT/KGxjjRNO8kI6bq+AbFNxBJPKI05jrMNzMoI4Vaob/S4cXoT7x0f/kKQ3MzOTYi2dg8Db2FYSI+OY0qsBczNHqbZrtfrNdd1ZdQ9wr8DdD9FviuVSjtx/OuAIIriLjYaIDv0wcZTJoRpfqAYvV5FUcbgOuVy+UlVVY+uIfTMaglbsNxut2tBEFzbtr3OsHkZZm+hi7PcPMpNKDNHrI1Wq7USRVEXptKBmxn416iAvOQKwcgKCm6QHfzaj2aqgEBN0Ov1Rhkh3MorzJviti4Gg4GJwmSeEOO+ATmbm0egvB78AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAGCAYAAAD37n+BAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAADKADAAQAAAABAAAABgAAAABZvOL8AAAAd0lEQVQYGWN4/Py9/aOnb96AaAYc4Mmr9waPnr1+9ejZmwCwEnyaMBTDDMWmCZtiRpgGEA3S9P/f37WMTMzBjMwMH//9+bOLgYExTU5KZAOyOhQ2SNPDp69/PHz25hfczSgq0Dj///9nevXqP8/r1695QWw0aQYAq+dfVlXycD4AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAGCAYAAAD37n+BAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAADKADAAQAAAABAAAABgAAAABZvOL8AAAAbUlEQVQYGWNkQAOPX7wx//f3/wmQMCMjk4eclPBOZCVMyByQ4v///m9hYmTyZGJmtGD4/3/po2dv3ZHVwNkgxY+evX79+NlbD5ggWOzpmzcYmrApxqkJn2Ksmp49+8/1//9/ZpgkLhqohgmkFgAYgVmvHG0SbgAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/background.8474917c.png\";","module.exports = __webpack_public_path__ + \"static/media/background@2x.777e31a7.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAEaADAAQAAAABAAAAEQAAAACOk5MBAAABYElEQVQ4EY2Tvy4EURTGv3MLxmZlJaJUTkOr24RsREKhIOEBlJ7CW2woVCpKEaLhBSQaElEqRCyFVaBwnHPGndmZWfe6yfy5d+75zfedew6hu3wCoIVRWsPW6bO8x8fhxhh6/QMQUkyOzzmJaIG5jQ++wP7KVJSggJf+McDrEjeh+50pAN3I4mwU5AHMiyB6BGgJm0dfZH9WBapEQQpMqFOzVgUwOtg+u9P4DKJvIVAAUIb8BWo23y0H3sKAAg3RUSjJ5mVFRLdisQfGvOVgCGA4RFfV2idfSvZnjE14AtOCz4GtDdz0iOtDLagCPxhvkuxXP60+65A8iWpBFAD3cqWh4y9DcsBvHaiFxLXt2AN1VCS2BijqIHj8IjODhAA+AYE6IvwHEAE568ZAIfl4e2qXa0vkvfZ9Dt5xTgylsuFBCirvhVJgdZKDcC2fprF3lUDsjNhV3RybiwLsrjZ02w+e1+JA1HuDOQAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/employee.c3fbb54b.pdf\";","module.exports = __webpack_public_path__ + \"static/media/tme_logo.fda9baac.png\";","export default {\r\n logo_new: require(\"./logo/backend_logo.png\"),\r\n\r\n menu_01: require(\"./menu/menu_01.png\"),\r\n menu_02: require(\"./menu/menu_02.png\"),\r\n menu_03: require(\"./menu/menu_03.png\"),\r\n menu_04: require(\"./menu/menu_04.png\"),\r\n menu_05: require(\"./menu/menu_05.png\"),\r\n menu_dropdown_01: require(\"./menu/menu_dropdown_01.png\"),\r\n menu_dropdown_02: require(\"./menu/menu_dropdown_02.png\"),\r\n\r\n background: require(\"./background/background.png\"),\r\n background2: require(\"./background/background@2x.png\"),\r\n\r\n closeBtn: require(\"./close/close.png\"),\r\n employee: require(\"./employee.pdf\"),\r\n tme_logo: require(\"./logo/tme_logo.png\"), \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 App from './App';\r\nimport 'react-app-polyfill/stable';\r\n\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\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 React from \"react\";\r\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\r\nimport { CookiesProvider } from \"react-cookie\";\r\n\r\nimport { LocalStateProvider } from \"./hooks/use-local-state\";\r\nimport { AuthProvider } from \"./hooks/use-auth\";\r\nimport { ApiProvider } from \"./hooks/use-api\";\r\nimport routes from \"./routes\";\r\n\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"./styles/tme-style/style.css\"\r\nimport \"./styles/tme-style/layouts.css\"\r\nimport \"./styles/tme-style/scm.css\"\r\nimport \"./assets/main.scss\";\r\n\r\nexport default () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {routes.map((route, index) => (\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\n \r\n);\r\n","//系統公告\r\nexport const PUBNOTE_READ = \"pubnote_read\"\r\n\r\n//個人資料維護\r\nexport const PROFILE = \"profile\"\r\n\r\n//訂購單交期處理\r\nexport const ORDER_COMMENT = \"order_comment\"\r\nexport const ORDER_STATUS = \"order_status\"\r\nexport const TREE = \"tree\"\r\nexport const SUMMARY = \"summary\"\r\nexport const ITEM_VIEW = \"item_view\"\r\n\r\n//出貨處理\r\nexport const SHIPMENT = \"shipment\"\r\nexport const SHIPMENT_PRINT = \"shipment_print\"\r\n\r\n//跟催回覆-通知\r\nexport const COMMENT = \"comment\"\r\nexport const COMMENT_STATUS = \"comment_status\"\r\n\r\n//跟催回覆-回覆\r\nexport const COMMENT_REPLY = \"comment_reply\"\r\n\r\n//整帳作業\r\nexport const ACCOUNTING = \"accounting\"\r\nexport const ACCOUNTING_STATUS = \"accounting_status\"\r\n\r\n//外注核銷\r\nexport const COST = \"cost\"\r\n\r\n//支給單\r\nexport const PAYMENT = \"payment\"\r\nexport const PAYMENT_NOTICE = \"payment_notice\"\r\nexport const TEMPORARY = \"temporary\"\r\n\r\n//圖面簽收\r\nexport const DRAWING = \"drawing\"\r\n\r\n//進料檢驗報告\r\nexport const REPORT_SETTING = \"report_setting\"\r\nexport const REPORT_UPLOAD = \"report_upload\"\r\n\r\n//管理者功能\r\nexport const LOGIN = \"login\"\r\nexport const USER_HISTORIES = \"userhistories\"\r\nexport const RECEIVE = \"receive\"\r\nexport const TERM = \"terms\"\r\nexport const ROLE_MENU = \"roles/menu\"\r\nexport const ROLE = \"roles\"\r\nexport const USER = \"users\"\r\nexport const PUBNOTE = \"pubnote\"\r\nexport const LOG_LOGIN = \"log_login\"\r\nexport const QUALITY_CONTROL = \"qc\"\r\nexport const PASSWORD_CHECK = \"password_check\"\r\nexport const PASSWORD_RESET = \"password_reset\"\r\n\r\n//系統管理\r\nexport const SYSTEM = \"system\"\r\nexport const PROG = \"progs\"\r\nexport const MENU = \"menus\"","import { useState, useEffect, useCallback } from 'react';\r\n\r\nconst useLocalStorage = (key, initialValue) => {\r\n const [value, setValue] = useState(localStorage.getItem(key) || initialValue);\r\n\r\n const setItem = newValue => {\r\n setValue(newValue);\r\n localStorage.setItem(key, newValue);\r\n };\r\n\r\n const removeItem = () => {\r\n localStorage.removeItem(key);\r\n setValue(initialValue);\r\n };\r\n\r\n useEffect(() => {\r\n const newValue = window.localStorage.getItem(key);\r\n if (value !== newValue) {\r\n setValue(newValue || initialValue);\r\n }\r\n });\r\n\r\n const handleStorage = useCallback(\r\n event => {\r\n if (event.key === key && event.newValue !== value) {\r\n setValue(event.newValue || initialValue);\r\n }\r\n if (event.key === null) {\r\n setValue(localStorage.getItem(key) || initialValue);\r\n }\r\n },\r\n [value]\r\n );\r\n\r\n useEffect(() => {\r\n addEventListener('storage', handleStorage);\r\n return () => removeEventListener('storage', handleStorage);\r\n }, [handleStorage]);\r\n\r\n return [value, setItem, removeItem];\r\n};\r\n\r\nexport default useLocalStorage;\r\n","import React, { useState, useEffect, useContext, createContext } from \"react\";\r\nimport _ from \"lodash\";\r\nimport useLocalState from \"./use-local-state\";\r\nimport useLocalStorage from \"./use-localstorage\";\r\n\r\n\r\nconst AuthContext = createContext();\r\n\r\nconst useAuth = () => useContext(AuthContext);\r\n\r\nconst AuthProvider = ({ children }) => {\r\n const auth = useAuthProvider();\r\n return {children};\r\n};\r\n\r\nconst useAuthProvider = () => {\r\n const { setUser } = useLocalState();\r\n\r\n const [expired, setExpired, removeExpired] = useLocalStorage(\r\n `${process.env.REACT_APP_TOKEN}_expired`,\r\n null\r\n );\r\n\r\n const [token, setToken, removeToken] = useLocalStorage(\r\n process.env.REACT_APP_TOKEN,\r\n null\r\n );\r\n\r\n const signOut = () => {\r\n removeToken();\r\n removeExpired();\r\n setUser(null);\r\n };\r\n\r\n const setAuthToken = (token) => {\r\n setToken(token);\r\n };\r\n\r\n return { token, signOut, setAuthToken, expired, setExpired, removeExpired };\r\n};\r\n\r\nexport default useAuth;\r\nexport { AuthProvider };\r\n\r\n //cookies\r\n // const [cookies, setCookie, removeCookie] = useCookies([process.env.REACT_APP_TOKEN]);\r\n // const token = cookies[process.env.REACT_APP_TOKEN];\r\n // const setToken = (value) => {\r\n // setCookie(process.env.REACT_APP_TOKEN, value)\r\n // }\r\n // const removeToken = () => {\r\n // removeCookie(process.env.REACT_APP_TOKEN)\r\n // }\r\n\r\n //session\r\n // const token = sessionStorage.getItem(process.env.REACT_APP_TOKEN);\r\n // const setToken = (value) => {\r\n // sessionStorage.setItem(process.env.REACT_APP_TOKEN, value);\r\n // }\r\n // const removeToken = () => {\r\n // sessionStorage.removeItem(process.env.REACT_APP_TOKEN);\r\n // }","import { useMemo, useEffect } from 'react';\r\nimport { useParams, useLocation, useHistory, useRouteMatch } from 'react-router-dom';\r\nimport queryString from 'query-string';\r\n\r\nconst useRouter = () => {\r\n const params = useParams();\r\n const history = useHistory();\r\n const match = useRouteMatch();\r\n const location = useLocation();\r\n\r\n return useMemo(\r\n () => ({\r\n push: history.push,\r\n replace: history.replace,\r\n pathname: location.pathname,\r\n query: { ...queryString.parse(location.search), ...params },\r\n match,\r\n location,\r\n history\r\n }),\r\n [params, history, match, location]\r\n );\r\n};\r\n\r\nexport default useRouter;\r\n"],"sourceRoot":""}