{"version":3,"sources":["redux/actions/index.js","containers/connect_redux.js","utility/define.js","utility/icons.js","utility/utility.js","utility/index.js","control/icon_popup.js","control/help_popup.js","control/file_linker.js","control/index.js","containers/top/index.js","containers/top/top.js","App.js","serviceWorker.js","redux/reducers/app.js","redux/reducers/index.js","index.js","redux/store/configureStore.js"],"names":["SHOW_WAIT","showWait","value","type","payload","SHOW_SNACKBAR","showSnackbar","isError","CLOSE_SNACKBAR","closeSnackbar","SHOW_DIALOG","showDialog","title","CLOSE_DIALOG","closeDialog","mapStateToProps","state","Object","objectSpread","mapDispatchToProps","dispatch","actions","bindActionCreators","myActions","connect","component","connectRedux","connectMain","QR_READER_ERROR","NOT_FOUND","CODE","MESSAGE","NAME","USER_MESSAGE","PERMISSION_DENIED","get","name","this","COLOR_PALETTE","50","100","200","300","400","500","600","700","800","900","TEXT","Help","_Help","isChrome","require","isEdge","isIE11","platform","version","split","Define","_Define","Icons","_Icons","Utility","_Utility","IconPopup","props","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","open","e","setState","anchorEl","currentTarget","_this2","icon","variant","react_default","a","createElement","index_es","color","onClick","preventDefault","handleClick","className","anchorOrigin","horizontal","vertical","transformOrigin","onClose","handleRequestClose","style","margin","fontSize","message","React","Component","defaultProps","HelpPopup","icon_popup_IconPopup","help","FileLinker","fileType","href","path","download","fileName","target","rel","label","_HelpPopup","_FileLinker","_React$Component","Top","isWebRTCSupport","facingMode","result","inherits","createClass","key","navigator","mediaDevices","getUserMedia","qrData","err","error","def","useQR","msg","qrReader","control_FileLinker","row","minWidth","onChange","onChangeCameraKind","control_HelpPopup","lib_default","onError","onQRError","onScan","data","onQRRead","delay","marginLeft","disabled","length","position","description","ua","os","family","gutterBottom","align","App","display","app","left","top","width","height","backgroundColor","opacity","zIndex","size","right","bottom","containers_top","snackbarOpen","autoHideDuration","TransitionProps","direction","reason","snackbarError","yellow","disableBackdropClick","dialogOpen","dialogTitle","withWidth","Boolean","window","location","hostname","match","initialState","reducer","combineReducers","arguments","undefined","action","store","createStore","applyMiddleware","thunk","muiTheme","createMuiTheme","palette","primary","light","main","dark","contrastText","secondary","pink","typography","useNextVariants","ReactDOM","render","es","styles","theme","src_App","document","getElementById","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.27459cb1.chunk.js","sourcesContent":["/** 待機中プログレスの表示切替 */\r\nexport const SHOW_WAIT = 'SHOW_WAIT'\r\n/** 待機中プログレスの表示切替\r\n * @param {bool} value - true:表示、false:非表示\r\n */\r\nexport const showWait = (value) => {\r\n return {\r\n type: SHOW_WAIT,\r\n payload: value\r\n }\r\n}\r\n\r\n/** スナックバーを開く\r\n * ※一定時間で自動で閉じます。\r\n */\r\nexport const SHOW_SNACKBAR = 'SHOW_SNACKBAR'\r\n/** スナックバーを開く\r\n * ※一定時間で自動で閉じます。\r\n * @param {string} value - メッセージ\r\n * @param {bool} isError - エラーメッセージか\r\n */\r\nexport const showSnackbar = (value, isError) => {\r\n return {\r\n type: SHOW_SNACKBAR,\r\n payload: { value, isError }\r\n }\r\n}\r\n\r\n/** スナックバーを閉じる */\r\nexport const CLOSE_SNACKBAR = 'CLOSE_SNACKBAR'\r\n/** スナックバーを閉じる */\r\nexport const closeSnackbar = () => {\r\n return {\r\n type: CLOSE_SNACKBAR\r\n }\r\n}\r\n\r\n/** ダイアログを開く */\r\nexport const SHOW_DIALOG = 'SHOW_DIALOG'\r\n/** ダイアログを開く\r\n * @param {string} title - ダイアログタイトル\r\n * @param {string} value - メッセージ\r\n */\r\nexport const showDialog = (title, value) => {\r\n return {\r\n type: SHOW_DIALOG,\r\n payload: { title, value }\r\n }\r\n}\r\n\r\n/** ダイアログを閉じる */\r\nexport const CLOSE_DIALOG = 'CLOSE_DIALOG'\r\n/** ダイアログを閉じる */\r\nexport const closeDialog = () => {\r\n return {\r\n type: CLOSE_DIALOG\r\n }\r\n}\r\n","import { connect as connectRedux } from 'react-redux'\r\nimport { bindActionCreators } from 'redux'\r\n\r\nimport * as myActions from '../redux/actions'\r\n\r\nconst mapStateToProps = (state) => ({ ...state })\r\n\r\nconst mapDispatchToProps = (dispatch) => ({\r\n actions: bindActionCreators(myActions, dispatch)\r\n})\r\n\r\nfunction connectMain (component) {\r\n return connectRedux(mapStateToProps, mapDispatchToProps)(component)\r\n}\r\n\r\nexport function connect (component) {\r\n return connectMain(component)\r\n}\r\n","\r\n/** QR読込コンポーネントのエラー\r\n * ブラウザによってCODEやMESSAGEが無かったり、同種のエラーでもNAMEが違ったりする\r\n * NAMEは概ねどのブラウザでも返ってくる\r\n * Chromeとedgeでは下記二つのエラーは同じNAMEなのを確認済み\r\n */\r\nexport const QR_READER_ERROR = {\r\n /** カメラ(デバイス)が見つからなかった */\r\n NOT_FOUND: {\r\n CODE: 8,\r\n MESSAGE: 'Requested device not found',\r\n NAME: 'NotFoundError',\r\n USER_MESSAGE: 'カメラが見つかりませんでした。カメラの接続を確認してください。'\r\n },\r\n /** カメラ(デバイス)でのアクセスが許可されていない */\r\n PERMISSION_DENIED: {\r\n CODE: 0,\r\n MESSAGE: 'Permission denied',\r\n NAME: 'NotAllowedError',\r\n USER_MESSAGE: 'カメラへのアクセスがブロックされています。カメラへのアクセス許可を設定してください。'\r\n },\r\n /** エラー名からエラーを取得 */\r\n get: function (name) {\r\n switch (name) {\r\n case this.NOT_FOUND.NAME:\r\n return this.NOT_FOUND\r\n case this.PERMISSION_DENIED.NAME:\r\n return this.PERMISSION_DENIED\r\n default:\r\n return null\r\n }\r\n }\r\n}\r\n\r\n/** カラーパレット */\r\nexport const COLOR_PALETTE = {\r\n '50': '#F5F5F7',\r\n '100': '#D3D5E3',\r\n '200': '#B1B5CF',\r\n '300': '#979EBD',\r\n '400': '#7480A6',\r\n /** メインカラー */\r\n '500': '#515E8C',\r\n '600': '#424D73',\r\n /** 時間表示エリアの背景色 */\r\n '700': '#353D5B',\r\n '800': '#252B40',\r\n '900': '#0F111A',\r\n /** 文字色 */\r\n TEXT: '#646464',\r\n}\r\n","/**\r\n * Material-UIのSVGアイコンを\r\n * import * as muiIcon from '@material-ui/icons'\r\n * や\r\n * import { Help, Settings } from '@material-ui/icons'\r\n * のようにインポートすると、利用していないアイコンまで組み込まれてしまい\r\n * ビルド後のサイズが著しく肥大化してしまうため、\r\n * 下記のように個別にインポートする。\r\n * (※※アイコンは全部で約3MBものサイズがある※※)\r\n */\r\n\r\n// アイコン一覧\r\n// hm-webserver\\開発資料\\勤怠管理サービス\\99_その他\\MaterialUI1.0\\MaterialUI-Icon.pdf\r\n\r\n/** 必要なアイコンのみを個別にインポートする */\r\n// A\r\n// B\r\n// C\r\n// D\r\n// E\r\n// F\r\n// G\r\n// H\r\nimport _Help from '@material-ui/icons/Help'\r\n// I\r\n// J\r\n// K\r\n// L\r\n// M\r\n// N\r\n// O\r\n// P\r\n// Q\r\n// R\r\n// S\r\n// T\r\n// U\r\n// V\r\n// W\r\n// X\r\n// Y\r\n// Z\r\n\r\n/** 利用側での複数利用がしやすいようにそれぞれexportする */\r\nexport const Help = _Help\r\n","export function isChrome() {\r\n const platform = require('platform');\r\n return platform.name === 'Chrome'\r\n}\r\n\r\nexport function isEdge() {\r\n const platform = require('platform');\r\n return platform.name === 'Microsoft Edge'\r\n}\r\n\r\nexport function isIE11() {\r\n const platform = require('platform');\r\n return (platform.name === 'IE') && (11 <= platform.version.split('.')[0])\r\n}\r\n","import * as _Define from './define'\r\nimport * as _Icons from './icons'\r\nimport * as _Utility from './utility'\r\n\r\nexport const Define = _Define\r\nexport const Icons = _Icons\r\nexport const Utility = _Utility\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport * as mui from '@material-ui/core'\r\n\r\nimport './icon_popup.css'\r\nimport '../common.css'\r\n\r\n/** 汎用アイコンポップアップ表示 */\r\nexport default class IconPopup extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n open: false\r\n }\r\n }\r\n\r\n handleClick(e) {\r\n this.setState({\r\n open: true,\r\n anchorEl: e.currentTarget\r\n })\r\n }\r\n\r\n handleRequestClose() {\r\n this.setState({\r\n open: false\r\n })\r\n }\r\n\r\n render() {\r\n let icon = null\r\n switch (this.props.variant) {\r\n case 'button':\r\n default:\r\n icon = {\r\n e.preventDefault()\r\n this.handleClick(e)\r\n }}>\r\n {this.props.icon}\r\n \r\n break\r\n case 'icon':\r\n icon =
this.handleClick(e)}>\r\n {this.props.icon}\r\n
\r\n break\r\n }\r\n\r\n return (\r\n
\r\n {icon}\r\n this.handleRequestClose()}>\r\n
\r\n {this.props.message}\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nIconPopup.propTypes = {\r\n variant: PropTypes.oneOf(['button', 'icon']),\r\n icon: PropTypes.object.isRequired,\r\n message: PropTypes.any.isRequired\r\n}\r\nIconPopup.defaultProps = {\r\n variant: 'button'\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport IconPopup from './icon_popup'\r\nimport { Icons } from '../utility'\r\n\r\n/** ヘルプのポップアップ表示 */\r\nexport default class HelpPopup extends React.Component {\r\n render() {\r\n return (\r\n }\r\n message={this.props.help}\r\n />\r\n )\r\n }\r\n}\r\n\r\nHelpPopup.propTypes = {\r\n help: PropTypes.any.isRequired\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport { Utility } from '../utility';\r\nimport './file_linker.css'\r\n\r\n/** ファイルリンク\r\n * @example\r\n * \r\n */\r\nexport default class FileLinker extends React.Component {\r\n render() {\r\n let link = null\r\n let className = ''\r\n\r\n switch (this.props.fileType) {\r\n case 'pdf':\r\n default:\r\n className = 'pdfLink'\r\n break\r\n case 'zip':\r\n className = 'zipLink'\r\n break\r\n }\r\n\r\n if (Utility.isChrome()) {\r\n // Chromeはdownload属性を付けておかないと、ログイン画面に飛ばされる場合がある\r\n link = \r\n {this.props.label}\r\n \r\n } else {\r\n link = \r\n {this.props.label}\r\n \r\n }\r\n\r\n return link\r\n }\r\n}\r\n\r\nFileLinker.propTypes = {\r\n path: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n fileName: PropTypes.string.isRequired,\r\n fileType: PropTypes.string.isRequired,\r\n}","import _IconPopup from './icon_popup'\r\nimport _HelpPopup from './help_popup'\r\nimport _FileLinker from './file_linker'\r\n\r\nexport const IconPopup = _IconPopup\r\nexport const HelpPopup = _HelpPopup\r\nexport const FileLinker = _FileLinker\r\n","import { connect } from '../connect_redux'\r\nimport _Top from './top'\r\n\r\nexport default connect(_Top)\r\n","import React from 'react'\r\nimport * as mui from '@material-ui/core'\r\nimport QrReader from 'react-qr-reader'\r\n\r\nimport './top.css'\r\nimport '../../common.css'\r\nimport { Define as def } from '../../utility'\r\nimport { HelpPopup, FileLinker } from '../../control'\r\n\r\n/** トップ画面 */\r\nexport class Top extends React.Component {\r\n /** コンストラクタ */\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n // WebRTC対応\r\n isWebRTCSupport: false,\r\n\r\n facingMode: 'user',\r\n result: ''\r\n }\r\n }\r\n\r\n /** コンポーネントのマウント完了前 */\r\n componentWillMount() {\r\n // WebRTCへの対応判定\r\n const isWebRTCSupport = !!navigator.mediaDevices && !!navigator.mediaDevices.getUserMedia\r\n\r\n this.setState({\r\n // WebRTC対応\r\n isWebRTCSupport: isWebRTCSupport\r\n })\r\n }\r\n\r\n /** QRコード読込時\r\n * ※react-qr-readerのdelayの間隔に応じて定期的に発生\r\n * QRコードが読み込まれていない場合はqrDataがnull\r\n */\r\n onQRRead(qrData) {\r\n // console.log('qrData:' + qrData)\r\n // console.log('isStamping:' + this.isStamping)\r\n\r\n // QRが読み込めてなかったら何もしない\r\n if (qrData === null) return\r\n\r\n this.setState({ result: qrData })\r\n }\r\n\r\n /** QRコンポーネントのエラー発生時 */\r\n onQRError(err) {\r\n // エラー処理\r\n // console.dir(err)\r\n\r\n if ('name' in err) {\r\n const error = def.QR_READER_ERROR.get(err.name)\r\n if (error !== null) {\r\n // 想定内のエラーはユーザー用のエラーメッセージを表示する\r\n this.props.actions.showDialog('QRコンポーネントエラー', error.USER_MESSAGE)\r\n this.setState({ useQR: false })\r\n return\r\n }\r\n }\r\n\r\n // 想定外のエラー\r\n let msg = 'カメラが利用できません。'\r\n if ('name' in err) {\r\n // ブラウザによって同種のエラーでもnameが違ったりするので、手掛かりのためにnameがあるならnameも表示する。\r\n msg += '(' + err.name + ')'\r\n }\r\n this.props.actions.showDialog('QRコンポーネントエラー', msg)\r\n this.setState({ useQR: false })\r\n }\r\n\r\n // 利用カメラ選択\r\n onChangeCameraKind(e) {\r\n this.setState({\r\n facingMode: e.target.value\r\n })\r\n }\r\n\r\n render() {\r\n // QRコンポーネントを生成する\r\n let qrReader = null\r\n if (this.state.isWebRTCSupport) {\r\n // WebRTCに対応してるなら、コンポーネントを生成\r\n // 常に生成して表示・非表示で制御すると、非表示でもカメラへのアクセス許可の選択やonErrorが発生してしまう\r\n qrReader =\r\n
\r\n \r\n \r\n {'印刷してご利用ください。'}\r\n \r\n
\r\n \r\n \r\n 利用カメラ選択\r\n this.onChangeCameraKind(e)}>\r\n インカメラ\r\n アウトカメラ\r\n \r\n \r\n \r\n iPadまたはAndroidタブレットを利用する場合は、利用するカメラを選択できます。\r\n \r\n } />\r\n \r\n
\r\n this.onQRError(err)}\r\n onScan={data => this.onQRRead(data)}\r\n facingMode={this.state.facingMode}\r\n delay={150}\r\n />\r\n
\r\n \r\n QRコードをかざしてください\r\n \r\n \r\n {'読み取り結果'}\r\n \r\n \r\n {this.state.result}\r\n \r\n this.setState({ result: '' })}>\r\n {'結果をクリアする'}\r\n \r\n
\r\n } else {\r\n // WebRTCに対応していないなら、メッセージを生成\r\n qrReader =
\r\n

\r\n ご利用のブラウザではWebカメラを利用したQR読み取り機能は利用できません。\r\n

\r\n

\r\n QR読み取り機能を利用する場合は対応するブラウザを利用してください。\r\n

\r\n
\r\n

対応ブラウザ一覧

\r\n

Windows:Edge,Chrome(最新版をご利用ください。)

\r\n

Android:Chrome(最新版をご利用ください。)

\r\n

iPad:Safari Ver11.0以上(iOS Ver11.4以上)

\r\n
\r\n }\r\n\r\n const platform = require('platform')\r\n // console.dir(platform)\r\n\r\n return (\r\n
\r\n
\r\n {/* トップバー */}\r\n \r\n \r\n \r\n {'スマート大臣〈打刻〉 QRカメラテスト'}\r\n \r\n \r\n \r\n
\r\n
\r\n {/* QR読み込み領域 */}\r\n {qrReader}\r\n
\r\n \r\n
\r\n ブラウザ情報\r\n

name:{platform.name}

\r\n

ver:{platform.version}

\r\n

description:{platform.description}

\r\n

ua:{platform.ua}

\r\n

os:{platform.os.family + ' ' + platform.os.version}

\r\n
\r\n
\r\n \r\n {'(C) 2017 応研株式会社'}\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default Top\r\n","import React, { Component } from 'react'\r\nimport * as mui from '@material-ui/core'\r\nimport withWidth from '@material-ui/core/withWidth'\r\nimport { yellow } from '@material-ui/core/colors'\r\n\r\nimport { connect } from './containers/connect_redux'\r\n\r\nimport Top from './containers/top'\r\n\r\nclass App extends Component {\r\n render () {\r\n return (\r\n
\r\n {/* 待機中プログレス */}\r\n {/* DialogのzIndexが初期値で1300なので、Dialogよりも前面に表示するためzIndexは1300より大きくしている */}\r\n \r\n \r\n {/* メインコンテンツ */}\r\n \r\n {/* {\r\n this.props.app.isDebug\r\n ?
\r\n this.props.actions.setPage(e.target.value)}>\r\n ログインページ\r\n トップページ\r\n 設定ページ\r\n 打刻履歴ページ\r\n \r\n
\r\n : null\r\n } */}\r\n {/* エラー表示 */}\r\n {\r\n if (reason === 'clickaway') return\r\n this.props.actions.closeSnackbar()\r\n }}>\r\n \r\n \r\n \r\n {this.props.app.dialogTitle}\r\n {this.props.app.msg}\r\n \r\n this.props.actions.closeDialog()} >\r\n 閉じる\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default connect(withWidth()(App))\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 http://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.1/8 is 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 http://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 http://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 .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 { SHOW_WAIT, SHOW_SNACKBAR, CLOSE_SNACKBAR, SHOW_DIALOG, CLOSE_DIALOG } from '../actions'\r\n\r\nconst initialState = {\r\n showWait: false,\r\n snackbarOpen: false,\r\n snackbarError: false,\r\n dialogOpen: false,\r\n dialogTitle: '',\r\n msg: '',\r\n}\r\n\r\nexport default function reducer (state = initialState, action) {\r\n switch (action.type) {\r\n case SHOW_WAIT:\r\n return {\r\n ...state,\r\n showWait: action.payload\r\n }\r\n case SHOW_SNACKBAR:\r\n return {\r\n ...state,\r\n snackbarOpen: true,\r\n snackbarError: action.payload.isError,\r\n msg: action.payload.value\r\n }\r\n case CLOSE_SNACKBAR:\r\n return {\r\n ...state,\r\n snackbarOpen: false\r\n }\r\n case SHOW_DIALOG:\r\n return {\r\n ...state,\r\n dialogOpen: true,\r\n dialogTitle: action.payload.title,\r\n msg: action.payload.value\r\n }\r\n case CLOSE_DIALOG:\r\n return {\r\n ...state,\r\n dialogOpen: false\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { combineReducers } from 'redux'\r\nimport app from './app'\r\n\r\nconst reducer = combineReducers({\r\n app\r\n})\r\n\r\nexport default reducer\r\n","import React from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport './index.css'\r\nimport App from './App'\r\nimport * as serviceWorker from './serviceWorker'\r\nimport { Provider } from 'react-redux'\r\nimport { configureStore } from './redux/store/configureStore'\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles'\r\nimport { pink } from '@material-ui/core/colors'\r\n\r\nimport { Define as def } from './utility'\r\n\r\nconst store = configureStore()\r\n\r\nconst muiTheme = createMuiTheme({\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n light: def.COLOR_PALETTE[300],\r\n main: def.COLOR_PALETTE[500],\r\n dark: def.COLOR_PALETTE[700],\r\n contrastText: 'rgb(255,255,255)',\r\n },\r\n secondary: { ...pink, contrastText: 'rgb(255,255,255)' }\r\n },\r\n typography: {\r\n useNextVariants: true\r\n }\r\n})\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// 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: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister()\r\n","import { createStore, applyMiddleware } from 'redux'\r\nimport thunk from 'redux-thunk'\r\nimport reducer from '../reducers'\r\n\r\nexport function configureStore () {\r\n return createStore(reducer, applyMiddleware(thunk))\r\n}\r\n"],"sourceRoot":""}