{"version":3,"sources":["components/common/CommonHttpError.js","dataProvider.js","authProvider.js","icon/IcnSetting.js","icon/IcnProfile.js","icon/IcnHelp.js","layout/MyAppBar.js","layout/MySideBar.js","icon/IcnDashboard.js","layout/MyMenu.js","layout/MyLayout.js","components/dashboard/DisconnectedResources.js","components/dashboard/ErrorResources.js","components/dashboard/MyDashboard.js","components/login/Login.js","icon/IcnQrcode.js","components/resources/QrcodeButton.js","components/common/UnselectAllButton.js","components/common/SaveButton.js","components/resources/ResourceBulkUpdateButton.js","icon/IcnSync.js","components/resources/ResourceSyncButton.js","icon/IcnEdit.js","components/resources/ResourcePairingButton.js","components/resources/ResourceList.js","components/common/CancelButton.js","components/resources/ResourceEdit.js","components/resources/index.js","icon/IcnSettingRoom.js","icon/IcnDelete.js","components/operation-rules/RuleDeleteButton.js","icon/IcnOperateAdd.js","components/operation-rules/RuleList.js","components/operation-rules/RuleEdit.js","components/operation-rules/RuleCreate.js","components/operation-rules/index.js","icon/IcnOperateSetting.js","components/users/UserBulkDeleteButton.js","components/users/UserList.js","components/users/UserEdit.js","components/users/index.js","icon/IcnSettingUser.js","components/common/BulkDeleteButton.js","icon/IcnExportListDevice.js","components/common/DateField.js","components/terminals/TerminalList.js","icon/IcnListDevice.js","components/terminals/OrderedList.js","components/terminals/TerminalEdit.js","components/terminals/index.js","components/callback/Callback.js","components/config/Locale.js","const/Role.js","components/config/PrivilegedAccount.js","components/config/Report.js","components/config/VersionInfo.js","components/config/ContractInfo.js","components/common/SwitchInput.js","components/config/AppSettingConfig.js","components/config/Config.js","components/help/HelpContent.js","components/help/Help.js","components/oss/OssLicense.js","customRoutes.js","components/reports/DownloadButton.js","components/reports/ReportCreateButton.js","components/reports/ReportDeleteButton.js","components/reports/ReportList.js","components/reports/index.js","icon/IcnLogout.js","layout/MyLogoutButton.js","App.js","serviceWorker.js","index.js"],"names":["ThrowHttpError","e","status","body","errorMessage","HttpError","dataProvider","simpleRestProvider","process","url","options","headers","Headers","Accept","credentials","fetchUtils","fetchJson","catch","CommonHttpError","serverLogin","GET_ONE","id","then","res","data","json","localStorage","setItem","permission","name","email","saveUserInfo","type","params","AUTH_LOGIN","AUTH_LOGOUT","request","Request","method","mode","removeItem","fetch","finally","Promise","resolve","serverLogout","AUTH_ERROR","reject","AUTH_CHECK","getItem","AUTH_GET_PERMISSIONS","role","parseInt","SvgIcnSetting","props","data-name","width","height","d","fill","SvgIcnProfile","className","SvgIcnHelp","fillRule","CustomUserMenu","translate","UserMenu","icon","label","primary","secondary","ConfigButton","history","title","color","onClick","push","path","HelpButton","enhance","compose","withRouter","withStyles","theme","createStyles","flex","marginLeft","classes","AppBar","userMenu","variant","MySideBar","Sidebar","closedSize","SvgIcnDashboard","transform","cx","cy","r","marginRight","connect","state","resources","getResources","onMenuClick","logout","MenuItemLink","to","primaryText","leftIcon","filter","hasList","map","resource","key","Responsive","medium","lightTheme","createMuiTheme","palette","light","main","dark","contrastText","Layout","appBar","MyAppBar","sidebar","menu","MyMenu","card","maxHeight","list","overflow","terminals","total","subheader","record","button","component","Link","format","parseISO","lastAccessDateTime","listItemText","styles","display","flexColumn","flexDirection","leftCol","MyDashBoard","GET_LIST","sort","field","order","pagination","page","perPage","response","setState","disconnectedTerminals","totalDisconnectedTerminals","calendarAccessibility","isMonitored","errorResources","totalErrorResources","this","permissions","Title","xsmall","style","small","Component","MyDashBoardWithPermissions","location","WithPermissions","render","Login","window","href","SvgIcnQrcode","QrcodeButton","handleClick","qrWindow","openQrcodeWindow","blob","loadImage","message","open","document","write","close","reader","FileReader","onloadend","getElementById","src","result","readAsDataURL","Button","UnselectAllButton","setSelectedIds","undefined","setListSelectedIdsAction","position","SaveButton","handleSubmitWithRedirect","invalid","redirect","saving","showNotification","preventDefault","pristine","submitOnEnter","rest","classnames","basePath","handleSubmit","locale","undoable","sanitizeRestProps","_","defaultProps","validateCapacity","number","minValue","maxValue","value","allValues","Number","isInteger","ResourceBulkUpdateButton","showDialog","handleCloseClick","handleSaveClick","submit","values","ids","selectedIds","startUndoable","crudUpdateMany","fullWidth","onClose","SimpleForm","toolbar","form","onSubmit","NumberInput","source","allowEmpty","validate","ReferenceInput","reference","SelectInput","optionText","choices","startUndoableAction","SvgIcnSync","ResourceSyncButton","CREATE","size","SvgIcnEdit","redlabel","validateName","required","str","encodeURI","replace","length","ResourcePairingButton","isValidCount","resourceIds","codeWindow","openPairingCodeWindow","JSON","stringify","showPairingCode","onload","doc","innerHTML","splitedCodeChars","split","c","i","join","date","Date","expiredDate","ul","resourceNames","li","createElement","appendChild","createTextNode","TextInput","ResourceActions","bulkActions","displayedFilters","filters","filterValues","onUnselectItems","showFilter","CardActions","React","cloneElement","context","ResourceFilter","Filter","SearchInput","alwaysOn","AutocompleteInput","ResourceBulkActionButtons","ResourceList","bulkActionButtons","actions","Datagrid","TextField","NumberField","ReferenceField","linkType","SelectField","EditButton","CancelButton","EditToolbar","Toolbar","edit","Edit","SvgIcnDelete","RuleDeleteButton","crudDelete","SvgIcnOperateAdd","RuleFilter","RuleActions","currentSort","exporter","CreateButton","CancelTimeoutField","isCancelEnabled","ImmediateUsePeriodField","isImmediateUseEnabled","ExtendPeriodField","isExtendEnabled","hiddenHeader","sortable","BooleanField","ArrayField","SingleFieldList","FunctionField","time","unit","numberLabel","boolLabel","validateInteger","validateCheckinMode","validateCancelTimeout","validateReminderTime","validateReminderTimeUnit","validatePeriod","RuleEdit","BooleanInput","FormDataConsumer","formData","ArrayInput","SimpleFormIterator","RuleList","create","Create","defaultValue","UserBulkDeleteButton","crudDeleteMany","UserFilter","UserActions","UserBulkActionButtons","BulkDeleteButton","dispatchCrudDeleteMany","dialogGuidance","SvgIcnExportListDevice","DateField","showTime","TerminalFilter","csvExporter","records","fetchRelatedRecords","csv","convertToCSV","fields","downloadCSV","TerminalBulkActionButtons","TerminalActions","ExportButton","TerminalList","SvgIcnListDevice","x","y","rx","ry","noop","input","ResourceMap","Array","from","reduce","acc","set","Map","padding","fontSize","onDragEnd","destination","draggableId","index","newValues","splice","get","onChange","droppableId","dropProvided","dropSnapshot","rootRef","innerRef","dragProvided","dragSnapshot","ContainerProps","ref","draggableProps","dragHandleProps","draggableStyle","isDragging","background","paddingLeft","paddingRight","paddingTop","paddingBottom","maxWidth","border","borderRadius","noWrap","placeholder","text","Field","OrderedList","Callback","userLogin","Locale","handleChange","event","target","UPDATE","formControl","margin","spacing","minWidth","flexWrap","Role","NO_MANAGER","OPERATION_MANAGER","ACCOUNT_MANAGER","SYSTEM_MANAGER","validPermission","Error","isPermissiveAsAccountManager","isManager","isPermissiveAsOperationManager","contentStyle","authPageOpen","config","getConfig","updateConfig","useState","isFocus","setIsFocus","onFocus","a","onDelink","calendarAdminName","onBlur","textTransform","VersionInfo","version","root","cost","ContractInfo","license","inUseLicense","monitableResourceCount","monitoringResourceCount","toggle","disabled","verticalAlign","checked","inputProps","isAuthenticated","isEnableAppAuth","alignItems","impersonatedUserId","overflowWrap","rightCol","singleCol","marginTop","marginBottom","Config","setConfig","newConfig","needSync","prevConfig","useEffect","renderComponents","content","textAlign","renderSection","ossLicenseJsonArray","keys","Object","LicenseEntry","jsonKey","licenses","copyright","licenseText","getLicenseEntries","Route","exact","CallBack","ConfigWithPermissions","Help","OssLicense","validateRange","minDate","maxDate","ReportCreateButton","crudCreate","minReportDate","maxReportDate","endOfYesterday","serviceStartDate","DateInput","ReportDeleteButton","ReportsActions","SvgIcnLogout","userLogout","messages","en","SysMessages_EN","AppMessages_EN","ja","SysMessages_JP","AppMessages_JP","i18nProvider","createHistory","App","Admin","dashboard","MyDashboard","authProvider","appLayout","MyLayout","resolveBrowserLocale","loginPage","customRoutes","logoutButton","MyLogoutButton","catchAll","Resource","operationRules","users","reports","Boolean","hostname","match","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.2b913139.chunk.js","sourcesContent":["import { HttpError } from 'react-admin';\r\n\r\n\r\nconst ThrowHttpError = (e) => {\r\n switch (e.status) {\r\n case 400:\r\n if (e.body.errorMessage === 'invalid_request_parameter') {\r\n throw new HttpError('notification.invalidRequestParameter', e.status, e.body);\r\n } else if (e.body.errorMessage === 'account_manager_must_exist') {\r\n throw new HttpError('resources.users.notification.accountManagerMustExist', e.status, e.body);\r\n } else if (e.body.errorMessage === 'default_rule_cannot_be_deleted') {\r\n throw new HttpError('resources.operation-rules.notification.defaultRuleUndeletable', e.status, e.body);\r\n } else if (e.body.errorMessage === 'operation_rule_has_been_used') {\r\n throw new HttpError('resources.operation-rules.notification.inUseRuleUndeletable', e.status, e.body);\r\n } else if (e.body.errorMessage === 'operation_rule_with_same_name_already_exists') {\r\n throw new HttpError('resources.operation-rules.notification.sameNameAlreadyExists', e.status, e.body);\r\n } else if (e.body.errorMessage === 'operation_rule_has_too_many_reminders') {\r\n throw new HttpError('resources.operation-rules.notification.tooManyReminders', e.status, e.body);\r\n } else if (e.body.errorMessage === 'invalid_reminder_timings') {\r\n throw new HttpError('resources.operation-rules.notification.invalidReminderTimings', e.status, e.body);\r\n } else if (e.body.errorMessage === 'resource_has_invalid_operation_rule') {\r\n throw new HttpError('resources.resources.notification.invalidOperationRule', e.status, e.body);\r\n } else if (e.body.errorMessage === 'exceeded_maximum_contract_limit') {\r\n throw new HttpError('resources.resources.notification.exceededMaxContractLimit', e.status, e.body);\r\n } else if (e.body.errorMessage === 'resource_has_another_tenant_setting') {\r\n throw new HttpError('resources.resources.notification.anotherTenantSetting', e.status, e.body);\r\n } else if (e.body.errorMessage === 'report_with_same_term_already_exists') {\r\n throw new HttpError('resources.reports.notification.sameReportAlreadyExists', e.status, e.body);\r\n } else if (e.body.errorMessage === 'exceeded_maximum_report_limit') {\r\n throw new HttpError('resources.reports.notification.exceededMaxReportLimit', e.status, e.body)\r\n } else if (e.body.errorMessage === 'processing_other_report_request') {\r\n throw new HttpError('resources.reports.notification.processingOtherRequest', e.status, e.body);\r\n } else {\r\n throw new HttpError('notification.unexpectedError', e.status, e.body);\r\n }\r\n case 401:\r\n throw new HttpError('notification.unauthorized', e.status, e.body);\r\n case 403:\r\n throw new HttpError('notification.permissionDenied', e.status, e.body);\r\n case 404:\r\n if (e.body.errorMessage === 'user_not_found') {\r\n throw new HttpError('notification.userNotFound', e.status, e.body);\r\n } else if (e.body.errorMessage === 'resource_not_found') {\r\n throw new HttpError('notification.resourceNotFound', e.status, e.body);\r\n } else if (e.body.errorMessage === 'tenant_not_found\t') {\r\n throw new HttpError('notification.tenantNotFound', e.status, e.body);\r\n } else if (e.body.errorMessage === 'terminal_not_found') {\r\n throw new HttpError('notification.terminalNotFound', e.status, e.body);\r\n } else if (e.body.errorMessage === 'service_not_found') {\r\n throw new HttpError('notification.serviceNotFound', e.status, e.body);\r\n } else if (e.body.errorMessage === 'calendar_account_not_found') {\r\n throw new HttpError('notification.calendarAccountNotFound', e.status, e.body);\r\n } else {\r\n throw new HttpError('notification.unexpectedError', e.status, e.body);\r\n }\r\n case 409:\r\n if (e.body.errorMessage === 'already_exists') {\r\n throw new HttpError('resources.operation-rules.notification.alreadyExists', e.status, e.body);\r\n }\r\n throw new HttpError('notification.unexpectedError', e.status, e.body);\r\n case 500:\r\n throw new HttpError('notification.internalServerError', e.status, e.body);\r\n default:\r\n throw new HttpError('notification.unexpectedError', e.status, e.body);\r\n }\r\n}\r\n\r\nexport default ThrowHttpError;","import simpleRestProvider from 'ra-data-simple-rest';\r\nimport fakeRestProvider from 'ra-data-fakerest';\r\nimport DummyData from './DummyData';\r\nimport { fetchUtils } from 'react-admin';\r\nimport CommonHttpError from './components/common/CommonHttpError';\r\n\r\nconst httpClient = (url, options = {}) => {\r\n if (!options.headers) {\r\n options.headers = new Headers({ Accept: 'application/json' });\r\n }\r\n options.credentials = 'include';\r\n return fetchUtils.fetchJson(url, options)\r\n .catch((e) => {\r\n CommonHttpError(e);\r\n });\r\n}\r\nconst dataProvider = (process.env.NODE_ENV === \"development\") ? fakeRestProvider(DummyData, true)\r\n : simpleRestProvider(process.env.REACT_APP_RSB_API_ENDPOINT, httpClient);\r\n\r\nexport default dataProvider;","import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_ERROR, AUTH_CHECK, AUTH_GET_PERMISSIONS, GET_ONE } from 'react-admin';\r\nimport dataProvider from './dataProvider';\r\n\r\nconst serverLogout = () => {\r\n const request = new Request(process.env.REACT_APP_AUTH_LOGOUT_ENDPOINT, {\r\n method: 'GET',\r\n mode: 'cors',\r\n credentials: 'include'\r\n });\r\n\r\n localStorage.removeItem('role');\r\n localStorage.removeItem('name');\r\n localStorage.removeItem('email');\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n return Promise.resolve();\r\n }\r\n return fetch(request)\r\n .finally(() => Promise.resolve());\r\n}\r\n\r\nconst callUserMe = () => {\r\n return dataProvider(GET_ONE, 'users', { id: 'me' });\r\n}\r\n\r\nconst saveUserInfo = (json) => {\r\n localStorage.setItem('role', json.permission);\r\n localStorage.setItem('name', json.name ? json.name : \"\");\r\n localStorage.setItem('email', json.email ? json.email : \"\");\r\n}\r\n\r\n/**\r\n * ログイン処理を行います。初期化処理を行うため、ログインのCallback後、最初に呼ぶ必要があります。\r\n */\r\nconst serverLogin = () => {\r\n return callUserMe()\r\n .then(res => res.data)\r\n .then(json => {\r\n saveUserInfo(json);\r\n });\r\n}\r\n\r\nexport default (type, params) => {\r\n // called when the user attempts to log in\r\n if (type === AUTH_LOGIN) {\r\n return serverLogin();\r\n }\r\n // called when the user clicks on the logout button\r\n if (type === AUTH_LOGOUT) {\r\n return serverLogout();\r\n }\r\n // called when the API returns an error\r\n if (type === AUTH_ERROR) {\r\n const { status } = params;\r\n if (status === 401 || status === 403) {\r\n localStorage.removeItem('role');\r\n return Promise.reject();\r\n }\r\n return Promise.resolve();\r\n }\r\n // called when the user navigates to a new location\r\n if (type === AUTH_CHECK) {\r\n return localStorage.getItem('role') ? Promise.resolve() : Promise.reject();\r\n }\r\n if (type === AUTH_GET_PERMISSIONS) {\r\n const role = localStorage.getItem('role');\r\n return role ? Promise.resolve(parseInt(role)) : Promise.resolve(0);\r\n }\r\n return Promise.reject('Unknown method');\r\n};","import React from \"react\";\r\n\r\nconst SvgIcnSetting = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnSetting;\r\n","import React from \"react\";\r\n\r\nconst SvgIcnProfile = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnProfile;\r\n","import React from \"react\";\r\n\r\nconst SvgIcnHelp = props => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnHelp;\r\n","import React from 'react';\r\nimport { AppBar, UserMenu, translate } from 'react-admin';\r\nimport SettingsIcon from '../icon/IcnSetting';\r\nimport UserIcon from '../icon/IcnProfile';\r\nimport HelpIcon from '../icon/IcnHelp';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { withStyles, createStyles } from '@material-ui/core/styles';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withRouter } from 'react-router';\r\nimport compose from 'recompose/compose';\r\n\r\nconst styles = theme => createStyles({\r\n title: {\r\n flex: 1,\r\n marginLeft: '0.2em'\r\n },\r\n});\r\n\r\nconst CustomUserMenu = translate(({ translate, ...props }) => (\r\n } {...props} label={translate('user.title')}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n));\r\n\r\nconst ConfigButton = translate(({ translate, history, ...props }) => (\r\n \r\n history.push(props.path)}>\r\n \r\n \r\n \r\n));\r\n\r\nconst HelpButton = translate(({ translate, history, ...props }) => (\r\n \r\n history.push(props.path)}>\r\n \r\n \r\n \r\n));\r\n\r\nconst CustomAppBar = ({ translate, classes, ...props }) => (\r\n } {...props} color=\"primary\">\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst enhance = compose(\r\n translate,\r\n withRouter,\r\n withStyles(styles)\r\n);\r\n\r\nexport default enhance(CustomAppBar);\r\n","import React from 'react';\r\nimport { Sidebar } from 'react-admin';\r\n\r\nconst MySideBar = props => (\r\n \r\n);\r\n\r\nexport default MySideBar;","import React from \"react\";\r\n\r\nconst SvgIcnDashboard = props => (\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 default SvgIcnDashboard;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { MenuItemLink, getResources, Responsive, translate } from 'react-admin';\r\nimport { withRouter } from 'react-router-dom';\r\nimport compose from 'recompose/compose';\r\nimport DashboardIcon from '../icon/IcnDashboard';\r\nimport DefaultIcon from '@material-ui/icons/ViewList';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\nconst styles = {\r\n icon: { marginLeft: '0.5em', marginRight: '0.5em' },\r\n};\r\n\r\nconst MyMenu = ({ resources, onMenuClick, logout, translate, classes}) => (\r\n
\r\n }\r\n classes={classes}/>\r\n {\r\n resources\r\n .filter(r => r.hasList && r.name !== \"reports\")\r\n .map(\r\n resource => (\r\n : }\r\n primaryText={translate(`resources.${resource.name}.name`)}\r\n onClick={onMenuClick}\r\n classes={classes}/>\r\n ) \r\n )\r\n }\r\n \r\n
\r\n);\r\n\r\nconst mapStateToProps = state => ({\r\n resources: getResources(state),\r\n});\r\n\r\nconst enhance = compose(\r\n withStyles(styles),\r\n translate,\r\n connect(mapStateToProps),\r\n withRouter\r\n);\r\n\r\nexport default enhance(MyMenu);","import React from 'react';\r\nimport { Layout } from 'react-admin';\r\nimport { connect } from 'react-redux';\r\nimport MyAppBar from './MyAppBar';\r\nimport MySideBar from './MySideBar';\r\nimport MyMenu from './MyMenu';\r\nimport { createMuiTheme } from '@material-ui/core/styles';\r\n\r\nexport const lightTheme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n light: '#667dff',\r\n main: '#304ffe',\r\n dark: '#132066',\r\n contrastText: '#fff',\r\n },\r\n secondary: {\r\n light: '#f56295',\r\n main: '#f50057',\r\n dark: '#990036',\r\n contrastText: '#fff',\r\n },\r\n },\r\n});\r\n\r\nconst MyLayout = props => (\r\n \r\n);\r\n\r\nexport default connect(\r\n state => ({theme: lightTheme}),\r\n {}\r\n)(MyLayout);","import React from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardHeader from '@material-ui/core/CardHeader';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport { translate } from 'react-admin';\r\nimport CardMedia from '@material-ui/core/CardMedia';\r\nimport {\r\n format,\r\n parseISO,\r\n} from 'date-fns'\r\n\r\nconst style = theme => ({\r\n card: {\r\n flex: '1',\r\n maxHeight: 440,\r\n },\r\n list: {\r\n flex: '1',\r\n overflow: 'auto',\r\n maxHeight: 357,\r\n },\r\n});\r\n\r\nconst DisconnectedResources = ({ terminals = [], total, translate, classes }) => (\r\n \r\n \r\n \r\n \r\n {terminals.map(record => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n);\r\n\r\nconst enhance = compose(\r\n withStyles(style),\r\n translate\r\n);\r\n\r\nexport default enhance(DisconnectedResources);","import React from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardHeader from '@material-ui/core/CardHeader';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { translate } from 'react-admin';\r\nimport CardMedia from '@material-ui/core/CardMedia';\r\n\r\nconst style = theme => ({\r\n card: {\r\n flex: '1',\r\n marginLeft: '1em',\r\n maxHeight: 440,\r\n },\r\n list: {\r\n flex: '1',\r\n overflow: 'auto',\r\n maxHeight: 357,\r\n },\r\n});\r\n\r\nconst ErrorResources = ({ resources = [], total, translate, classes }) => (\r\n \r\n \r\n \r\n \r\n {resources.map(record => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst enhance = compose(\r\n withStyles(style),\r\n translate\r\n);\r\n\r\nexport default enhance(ErrorResources);","// in src/Dashboard.js\r\nimport React, { Component, Fragment } from 'react';\r\nimport { GET_LIST, Responsive, Title, WithPermissions } from 'react-admin';\r\nimport DisconnectedResources from './DisconnectedResources';\r\nimport ErrorResources from './ErrorResources';\r\nimport dataProvider from '../../dataProvider';\r\n\r\nconst styles = {\r\n flex: { display: 'flex' },\r\n flexColumn: { display: 'flex', flexDirection: 'column' },\r\n leftCol: { flex: 1, marginRight: '1em' },\r\n};\r\n\r\nclass MyDashBoard extends Component {\r\n state = {};\r\n componentDidMount()\r\n {\r\n dataProvider(GET_LIST, 'terminals', {\r\n filter: { status: 2},\r\n sort: { field: 'lastAccessDateTime', order: 'ASC' },\r\n pagination: { page: 1, perPage: 25 },\r\n })\r\n .then(response => {\r\n this.setState({ disconnectedTerminals: response.data });\r\n this.setState({ totalDisconnectedTerminals: response.total });\r\n })\r\n \r\n dataProvider(GET_LIST, 'resources', {\r\n filter: { calendarAccessibility: 2, isMonitored: true},\r\n sort: { field: 'name', order: 'ASC' },\r\n pagination: { page: 1, perPage: 25 },\r\n })\r\n .then(response => {\r\n this.setState({ errorResources: response.data });\r\n this.setState({ totalErrorResources: response.total });\r\n })\r\n }\r\n\r\n render() {\r\n const {\r\n disconnectedTerminals,\r\n totalDisconnectedTerminals,\r\n errorResources,\r\n totalErrorResources,\r\n } = this.state;\r\n\r\n const { permissions } = this.props\r\n return (\r\n \r\n \r\n <Responsive\r\n xsmall={\r\n <div>\r\n <div style={styles.flexColumn}>\r\n <div style={styles.flex}>\r\n {(permissions & 1) !== 0 ? <DisconnectedResources terminals={disconnectedTerminals} total={totalDisconnectedTerminals}/> : null}\r\n {(permissions & 1) !== 0 ? <ErrorResources resources={errorResources} total={totalErrorResources}/> : null}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n small={\r\n <div style={styles.flexColumn}>\r\n <div style={styles.flex}>\r\n {(permissions & 1) !== 0 ? <DisconnectedResources terminals={disconnectedTerminals} total={totalDisconnectedTerminals}/> : null}\r\n {(permissions & 1) !== 0 ? <ErrorResources resources={errorResources} total={totalErrorResources}/> : null}\r\n </div>\r\n </div>\r\n }\r\n medium={\r\n <div style={styles.flex}>\r\n <div style={styles.leftCol}>\r\n <div style={styles.flex}>\r\n {(permissions & 1) !== 0 ? <DisconnectedResources terminals={disconnectedTerminals} total={totalDisconnectedTerminals}/> : null}\r\n {(permissions & 1) !== 0 ? <ErrorResources resources={errorResources} total={totalErrorResources}/> : null}\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n />\r\n </Fragment>\r\n );\r\n }\r\n}\r\n\r\nconst MyDashBoardWithPermissions = ({ location, permissions }) => (\r\n <WithPermissions\r\n location={location}\r\n render={({ permissions }) => <MyDashBoard permissions={permissions} />}\r\n />\r\n\r\n)\r\n\r\nexport default MyDashBoardWithPermissions;","\r\nconst Login = () => {\r\n if (process.env.NODE_ENV === \"development\") {\r\n localStorage.setItem('role', '3');\r\n }\r\n window.location.href = process.env.REACT_APP_AUTH_LOGIN_ENDPOINT;\r\n return null;\r\n};\r\n\r\nexport default Login;\r\n","import React from \"react\";\r\n\r\nconst SvgIcnQrcode = props => (\r\n <svg\r\n id=\"icn_qrcode_svg__\\u30EC\\u30A4\\u30E4\\u30FC_1\"\r\n data-name=\"\\u30EC\\u30A4\\u30E4\\u30FC 1\"\r\n width={24}\r\n height={24}\r\n {...props}\r\n >\r\n <defs>\r\n <style>\r\n {\r\n \".icn_qrcode_svg__cls-1{fill:#4a4b4c}.icn_qrcode_svg__cls-2{fill:#fff}\"\r\n }\r\n </style>\r\n </defs>\r\n <path className=\"icn_qrcode_svg__cls-1\" d=\"M3 3h18v18H3z\" />\r\n <path\r\n className=\"icn_qrcode_svg__cls-2\"\r\n d=\"M5 5h7v7H5zM12 12h7v7h-7zM15 5h4v4h-4zM5 15h4v4H5z\"\r\n />\r\n <path className=\"icn_qrcode_svg__cls-1\" d=\"M7 7h3v3H7zM14 14h3v3h-3z\" />\r\n </svg>\r\n);\r\n\r\nexport default SvgIcnQrcode;\r\n","import React, { Component } from 'react';\r\nimport { Button, translate } from 'react-admin';\r\nimport QrcodeIcon from '../../icon/IcnQrcode';\r\n\r\nclass QrcodeButton extends Component {\r\n\r\n handleClick = () => {\r\n const { record } = this.props;\r\n const { translate } = this.props;\r\n\r\n var options = {\r\n method: 'GET',\r\n credentials: 'include',\r\n mode: 'cors'\r\n }\r\n var request = new Request(process.env.REACT_APP_RSB_API_ENDPOINT + '/qrcodes/' + record.id);\r\n\r\n var qrWindow = this.openQrcodeWindow(record.name, translate('resources.qrcodes.fields.message'));\r\n\r\n fetch(request, options)\r\n .then(response => response.blob())\r\n .then(blob => this.loadImage(blob, qrWindow));\r\n }\r\n\r\n openQrcodeWindow(name, message) {\r\n var qrWindow = window.open('');\r\n qrWindow.document.open();\r\n qrWindow.document.write('<HTML><HEAD>');\r\n qrWindow.document.write('<TITLE>' + name + '');\r\n qrWindow.document.write('
');\r\n qrWindow.document.write('');\r\n qrWindow.document.write('
' + name);\r\n qrWindow.document.write('


' + message);\r\n qrWindow.document.write('
');\r\n qrWindow.document.close();\r\n return qrWindow;\r\n }\r\n\r\n loadImage(blob, qrWindow) {\r\n var reader = new FileReader();\r\n reader.onloadend = function () {\r\n var img = qrWindow.document.getElementById(\"qrcode\");\r\n img.src = reader.result;\r\n }\r\n reader.readAsDataURL(blob);\r\n }\r\n\r\n render() {\r\n return \r\n \r\n ;\r\n }\r\n};\r\n\r\nexport default translate(QrcodeButton);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport compose from 'recompose/compose';\r\nimport {\r\n setListSelectedIds as setListSelectedIdsAction,\r\n translate\r\n} from 'react-admin';\r\nimport MaterialUiButton from '@material-ui/core/Button';\r\n\r\nconst styles = {\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n};\r\n\r\nclass UnselectAllButton extends Component {\r\n handleClick = () => {\r\n this.props.setSelectedIds(this.props.resource, []);\r\n };\r\n\r\n render() {\r\n const { translate } = this.props; \r\n return (\r\n \r\n {translate('common.unselectAll')}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(\r\n undefined,\r\n { setSelectedIds: setListSelectedIdsAction }\r\n )\r\n);\r\n\r\nexport default enhance(UnselectAllButton);","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport compose from 'recompose/compose';\r\nimport Button from '@material-ui/core/Button';\r\nimport { withStyles, createStyles } from '@material-ui/core/styles';\r\nimport classnames from 'classnames';\r\nimport { showNotification, translate } from 'ra-core';\r\n\r\nconst styles = createStyles({\r\n button: {\r\n position: 'relative',\r\n marginRight: '1em', \r\n marginLeft: '1em'\r\n },\r\n});\r\n\r\nconst sanitizeRestProps = ({\r\n basePath,\r\n className,\r\n classes,\r\n saving,\r\n label,\r\n invalid,\r\n variant,\r\n translate,\r\n handleSubmit,\r\n handleSubmitWithRedirect,\r\n submitOnEnter,\r\n record,\r\n redirect,\r\n resource,\r\n locale,\r\n showNotification,\r\n undoable,\r\n ...rest\r\n}) => rest;\r\n\r\nexport class SaveButton extends Component {\r\n static propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.object,\r\n handleSubmitWithRedirect: PropTypes.func,\r\n invalid: PropTypes.bool,\r\n label: PropTypes.string,\r\n pristine: PropTypes.bool,\r\n redirect: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n PropTypes.func,\r\n ]),\r\n saving: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\r\n showNotification: PropTypes.func,\r\n submitOnEnter: PropTypes.bool,\r\n translate: PropTypes.func.isRequired,\r\n variant: PropTypes.oneOf(['raised', 'flat', 'fab']),\r\n icon: PropTypes.element,\r\n };\r\n\r\n static defaultProps = {\r\n handleSubmitWithRedirect: () => () => {},\r\n };\r\n\r\n handleClick = e => {\r\n const {\r\n handleSubmitWithRedirect,\r\n invalid,\r\n redirect,\r\n saving,\r\n showNotification,\r\n onClick,\r\n } = this.props;\r\n\r\n if (saving) {\r\n // prevent double submission\r\n e.preventDefault();\r\n } else {\r\n if (invalid) {\r\n showNotification('ra.message.invalid_form', 'warning');\r\n }\r\n // always submit form explicitly regardless of button type\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n handleSubmitWithRedirect(redirect)();\r\n }\r\n\r\n if (typeof onClick === 'function') {\r\n onClick();\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n className,\r\n classes = {},\r\n invalid,\r\n label = 'ra.action.save',\r\n pristine,\r\n redirect,\r\n saving,\r\n submitOnEnter,\r\n translate,\r\n variant = 'raised',\r\n onClick,\r\n ...rest\r\n } = this.props;\r\n\r\n const type = submitOnEnter ? 'submit' : 'button';\r\n return (\r\n \r\n {label && translate(label, { _: label })}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(\r\n undefined,\r\n { showNotification }\r\n ),\r\n withStyles(styles)\r\n);\r\n\r\nexport default enhance(SaveButton);","import React, { Component, Fragment } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport compose from \"recompose/compose\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n SimpleForm,\r\n SelectInput,\r\n ReferenceInput,\r\n translate,\r\n crudUpdateMany,\r\n NumberInput,\r\n number,\r\n minValue,\r\n maxValue,\r\n} from \"react-admin\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport { submit } from \"redux-form\";\r\nimport SimpleButton from \"@material-ui/core/Button\";\r\nimport SaveButton from \"../common/SaveButton\";\r\nimport { startUndoable as startUndoableAction } from \"ra-core\";\r\n\r\nconst styles = {\r\n button: { marginRight: \"1em\", marginLeft: \"1em\" },\r\n};\r\n\r\nconst validateInteger = (value, allValues, props) => {\r\n if (value && !Number.isInteger(value)) {\r\n return props.translate(\"ra.validation.integer\");\r\n }\r\n};\r\n\r\nconst validateCapacity = [\r\n number(),\r\n minValue(1),\r\n maxValue(9999),\r\n validateInteger,\r\n];\r\n\r\nclass ResourceBulkUpdateButton extends Component {\r\n state = {\r\n showDialog: false,\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n };\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n handleSaveClick = () => {\r\n const { submit } = this.props;\r\n submit(\"bulk-resource-update\");\r\n };\r\n\r\n handleSubmit = (values) => {\r\n const { basePath, resource, selectedIds: ids, startUndoable } = this.props;\r\n startUndoable(\r\n crudUpdateMany(resource, [\"batch\"], { ids, ...values }, basePath)\r\n );\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n render() {\r\n const { showDialog } = this.state;\r\n const { translate } = this.props;\r\n return (\r\n \r\n \r\n {translate(\"resources.resources.fields.bulkUpdate\")}\r\n \r\n \r\n \r\n {translate(\"resources.resources.fields.bulkUpdate\")}\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 {translate(\"ra.action.cancel\")}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nResourceBulkUpdateButton.propTypes = {\r\n record: PropTypes.object,\r\n startUndoable: PropTypes.func,\r\n};\r\n\r\nconst enhance = compose(\r\n translate,\r\n withStyles(styles),\r\n connect(undefined, {\r\n submit,\r\n startUndoable: startUndoableAction,\r\n crudUpdateMany,\r\n })\r\n);\r\n\r\nexport default enhance(ResourceBulkUpdateButton);\r\n","import React from \"react\";\r\n\r\nconst SvgIcnSync = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnSync;\r\n","import React, { Component, Fragment } from 'react';\r\nimport { \r\n CREATE,\r\n Button,\r\n showNotification,\r\n translate\r\n} from 'react-admin';\r\nimport SyncIcon from '../../icon/IcnSync';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport compose from 'recompose/compose';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport dataProvider from '../../dataProvider';\r\nimport SimpleButton from '@material-ui/core/Button';\r\n\r\nconst styles = {\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n};\r\n\r\nclass ResourceSyncButton extends Component {\r\n state = {\r\n showDialog: false\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n }\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n handleSubmit = () => {\r\n const {showNotification} = this.props;\r\n dataProvider(CREATE, 'resources', {})\r\n .then(() => {\r\n showNotification('resources.resources.notification.syncResourceStarted');\r\n })\r\n .catch((e) => {\r\n if (e.status == 404 && e.body.errorMessage === 'calendar_account_not_found'){\r\n showNotification('notification.calendarAccountNotFound', \"warning\");\r\n } else {\r\n showNotification('resources.resources.notification.syncResourceFailed', 'warning');\r\n }\r\n });\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n render() {\r\n const { showDialog } = this.state;\r\n const { translate } = this.props; \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n {translate('resources.resources.fields.syncResourceGuidance1')}\r\n

\r\n
    \r\n
  • \r\n {translate('resources.resources.fields.syncResourceGuidance2')}\r\n
  • \r\n
  • \r\n {translate('resources.resources.fields.syncResourceGuidance3')}\r\n
  • \r\n
  • \r\n {translate('resources.resources.fields.syncResourceGuidance4')}\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n {translate('resources.resources.fields.startSyncResource')}\r\n \r\n \r\n {translate('ra.action.cancel')}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(\r\n undefined,\r\n { showNotification }\r\n ),\r\n withStyles(styles)\r\n);\r\n\r\nexport default enhance(ResourceSyncButton);","import React from \"react\";\r\n\r\nconst SvgIcnEdit = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnEdit;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport compose from 'recompose/compose';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n\tSimpleForm,\r\n\ttranslate,\r\n\tTextInput,\r\n\trequired,\r\n} from 'react-admin';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { submit } from 'redux-form';\r\nimport SimpleButton from '@material-ui/core/Button';\r\nimport SaveButton from '../common/SaveButton';\r\nimport { format } from 'date-fns'\r\n\r\nconst styles = {\r\n\tbutton: { marginRight: '1em', marginLeft: '1em' },\r\n\tlabel: { marginLeft: '1em', marginRight: '1em' },\r\n\tredlabel: { marginLeft: '1em', marginRight: '1em', color: 'red' },\r\n};\r\n\r\nconst bytes = (str) => {\r\n\tstr = (str == null) ? \"\" : str;\r\n\treturn (encodeURI(str).replace(/%../g, \"x\").length);\r\n}\r\n\r\nconst validatemaxBytes = (value, allValues, props) => {\r\n\tif (bytes(value) > 100) {\r\n\t\treturn props.translate('ra.validation.tooLong');\r\n\t}\r\n}\r\nconst validateName = [required(), validatemaxBytes];\r\n\r\nclass ResourcePairingButton extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props)\r\n\t\tthis.state = {\r\n\t\t\tshowDialog: false,\r\n\t\t\tisValidCount: false,\r\n\t\t};\r\n\t}\r\n\r\n\thandleClick = () => {\r\n\t\tconst { selectedIds } = this.props;\r\n\t\tthis.setState({ showDialog: true, isValidCount: selectedIds.length <= 50 });\r\n\t}\r\n\r\n\thandleCloseClick = () => {\r\n\t\tthis.setState({ showDialog: false });\r\n\t};\r\n\r\n\thandleSaveClick = () => {\r\n\t\tconst { submit } = this.props;\r\n\t\tsubmit('get-pairing-code');\r\n\t};\r\n\r\n\thandleSubmit = values => {\r\n\t\tconst { selectedIds: resourceIds, translate } = this.props;\r\n\t\tconst { name } = values;\r\n\t\tconst codeWindow = this.openPairingCodeWindow(name);\r\n\r\n\t\tconst options = {\r\n\t\t\tmethod: 'POST',\r\n\t\t\tcredentials: 'include',\r\n\t\t\tmode: 'cors',\r\n\t\t\tbody: JSON.stringify({ name, resourceIds })\r\n\t\t}\r\n\t\tvar request = new Request(process.env.REACT_APP_RSB_API_ENDPOINT + '/resources-pairing');\r\n\r\n\t\tfetch(request, options)\r\n\t\t\t.then(response => response.json())\r\n\t\t\t.then(json => this.showPairingCode(json, codeWindow, translate));\r\n\r\n\t\tthis.setState({ showDialog: false });\r\n\t}\r\n\r\n\topenPairingCodeWindow(name) {\r\n\t\tconst codeWindow = window.open(`${process.env.PUBLIC_URL}/pairingcode.html`);\r\n\t\tcodeWindow.onload = function () { this.document.title = name };\r\n\t\treturn codeWindow;\r\n\t}\r\n\r\n\tshowPairingCode(json, codeWindow, translate) {\r\n\t\tconst doc = codeWindow.document;\r\n\t\tdoc.getElementById(\"codeTitle\").innerHTML = translate('resources.resources.fields.pairingCode');\r\n\t\tdoc.getElementById(\"expiredDateTitle\").innerHTML = translate('resources.resources.fields.pairingExpiredDate') + ': ';\r\n\t\tdoc.getElementById(\"pairingGuidance\").innerHTML = translate('resources.resources.fields.pairingGuidance2');\r\n\t\tdoc.getElementById(\"nameTitle\").innerHTML = translate('resources.resources.fields.pairingDeviceName');\r\n\t\tdoc.getElementById(\"name\").innerHTML = json.name;\r\n\r\n\t\tconst codeChars = json.id.split('');\r\n\t\tconst splitedCodeChars = codeChars.map((c, i) => {\r\n\t\t\tif ((i % 4 == 0) && (i / 4 >= 1)) {\r\n\t\t\t\treturn ' ' + c;\r\n\t\t\t}\r\n\t\t\treturn c;\r\n\t\t});\r\n\t\tdoc.getElementById(\"code\").innerHTML = splitedCodeChars.join(\"\");\r\n\r\n\t\tconst date = new Date(json.expiredDate);\r\n\t\tdoc.getElementById(\"expiredDate\").innerHTML = format(date, \"yyyy/MM/dd HH:mm\");\r\n\r\n\t\tconst ul = doc.getElementById(\"resourceList\");\r\n\t\tjson.resourceNames.map(name => {\r\n\t\t\tlet li = doc.createElement(\"li\");\r\n\t\t\tli.appendChild(doc.createTextNode(name));\r\n\t\t\tul.appendChild(li);\r\n\t\t});\r\n\t\tdoc.getElementById(\"resourceTitle\").innerHTML = translate('resources.resources.fields.pairingResourceName') + '(' + json.resourceNames.length + ')';\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst { showDialog, isValidCount } = this.state;\r\n\t\tconst { translate } = this.props;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{translate('resources.resources.fields.pairingResource')}\r\n\t\t\t\t\r\n\t\t\t\t\t{translate('resources.resources.fields.pairingResource')}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisValidCount ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{translate('resources.resources.fields.pairingGuidance1')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{translate('resources.resources.fields.pairingGuidance3')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tisValidCount && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tisValidCount && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tisValidCount ? translate('ra.action.cancel') : translate('common.close')\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nResourcePairingButton.propTypes = {\r\n\tselectedIds: PropTypes.array,\r\n};\r\n\r\nconst enhance = compose(\r\n\ttranslate,\r\n\twithStyles(styles),\r\n\tconnect(\r\n\t\tundefined,\r\n\t\t{ submit }\r\n\t),\r\n);\r\n\r\nexport default enhance(ResourcePairingButton);","import React, { Fragment } from \"react\";\r\nimport {\r\n List,\r\n Datagrid,\r\n TextField,\r\n ReferenceInput,\r\n SearchInput,\r\n CardActions,\r\n Filter,\r\n ReferenceField,\r\n SelectField,\r\n AutocompleteInput,\r\n SelectInput,\r\n EditButton,\r\n NumberField,\r\n} from \"react-admin\";\r\nimport QrcodeButton from \"./QrcodeButton\";\r\nimport UnselectAllButton from \"../common/UnselectAllButton\";\r\nimport ResourceBulkUpdateButton from \"./ResourceBulkUpdateButton\";\r\nimport ResourceSyncButton from \"./ResourceSyncButton\";\r\nimport EditIcon from \"../../icon/IcnEdit\";\r\nimport ResourcePairingButton from \"./ResourcePairingButton\";\r\n\r\nconst ResourceActions = ({\r\n bulkActions,\r\n basePath,\r\n displayedFilters,\r\n filters,\r\n filterValues,\r\n onUnselectItems,\r\n resource,\r\n selectedIds,\r\n showFilter,\r\n}) => (\r\n \r\n {bulkActions &&\r\n React.cloneElement(bulkActions, {\r\n basePath,\r\n filterValues,\r\n resource,\r\n selectedIds,\r\n onUnselectItems,\r\n })}\r\n {filters &&\r\n React.cloneElement(filters, {\r\n resource,\r\n showFilter,\r\n displayedFilters,\r\n filterValues,\r\n context: \"button\",\r\n })}\r\n \r\n \r\n);\r\n\r\nconst ResourceFilter = (props) => (\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\nconst ResourceList = (props) => (\r\n }\r\n actions={}\r\n filters={}\r\n sort={{ field: \"name\", order: \"ASC\" }}\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\nconst ResourceBulkActionButtons = (props) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default ResourceList;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport classnames from 'classnames';\r\nimport { translate } from 'react-admin';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nconst CancelButton = ({ basePath, label, icon, className, classes = {}, translate}) => (\r\n \r\n);\r\n\r\nCancelButton.propTypes = {\r\n basePath: PropTypes.string,\r\n label: PropTypes.string,\r\n icon: PropTypes.element,\r\n};\r\n\r\nCancelButton.defaultProps = {\r\n label: 'ra.action.cancel'\r\n};\r\n\r\nexport default translate(CancelButton);","import React from \"react\";\r\nimport {\r\n Edit,\r\n SimpleForm,\r\n Toolbar,\r\n TextField,\r\n SelectInput,\r\n ReferenceInput,\r\n NumberInput,\r\n number,\r\n minValue,\r\n maxValue,\r\n} from \"react-admin\";\r\nimport CancelButton from \"../common/CancelButton\";\r\nimport SaveButton from \"../common/SaveButton\";\r\n\r\nconst validateInteger = (value, allValues, props) => {\r\n if (value && !Number.isInteger(value)) {\r\n return props.translate(\"ra.validation.integer\");\r\n }\r\n};\r\n\r\nconst validateCapacity = [\r\n number(),\r\n minValue(1),\r\n maxValue(9999),\r\n validateInteger,\r\n];\r\n\r\nconst EditToolbar = (props) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst ResourceEdit = (props) => (\r\n \r\n } submitOnEnter={false}>\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 ResourceEdit;\r\n","import ResourceList from './ResourceList';\r\nimport ResourceEdit from './ResourceEdit';\r\nimport icon from '../../icon/IcnSettingRoom';\r\n\r\nexport default {\r\n list: ResourceList,\r\n edit: ResourceEdit,\r\n icon: icon, \r\n}","import React from \"react\";\r\n\r\nconst SvgIcnSettingRoom = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnSettingRoom;\r\n","import React from \"react\";\r\n\r\nconst SvgIcnDelete = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnDelete;\r\n","import React, { Component, Fragment } from 'react';\r\nimport {\r\n Button,\r\n translate,\r\n crudDelete,\r\n} from 'react-admin';\r\nimport { startUndoable as startUndoableAction } from 'ra-core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport compose from 'recompose/compose';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport DeleteIcon from '../../icon/IcnDelete';\r\nimport SimpleButton from '@material-ui/core/Button';\r\n\r\nconst styles = {\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n};\r\n\r\nclass RuleDeleteButton extends Component {\r\n state = {\r\n showDialog: false\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n }\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n handleSubmit = () => {\r\n const { record, startUndoable, basePath, resource } = this.props;\r\n startUndoable(crudDelete(resource, record.id, record, basePath));\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n render() {\r\n const { showDialog } = this.state;\r\n const { translate } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n {translate('resources.operation-rules.fields.deleteGuidance')}\r\n

\r\n\r\n
\r\n
\r\n \r\n \r\n {translate('ra.action.delete')}\r\n \r\n \r\n {translate('ra.action.cancel')}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(\r\n undefined,\r\n { crudDelete, startUndoable: startUndoableAction }\r\n ),\r\n withStyles(styles)\r\n);\r\n\r\nexport default enhance(RuleDeleteButton);","import React from \"react\";\r\n\r\nconst SvgIcnOperateAdd = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnOperateAdd;\r\n","import React from \"react\";\r\nimport {\r\n List,\r\n Datagrid,\r\n TextField,\r\n NumberField,\r\n BooleanField,\r\n ArrayField,\r\n FunctionField,\r\n CardActions,\r\n EditButton,\r\n CreateButton,\r\n Filter,\r\n SelectField,\r\n SingleFieldList,\r\n translate,\r\n} from \"react-admin\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport EditIcon from \"../../icon/IcnEdit\";\r\nimport RuleDeleteButton from \"./RuleDeleteButton\";\r\nimport CreateIcon from \"../../icon/IcnOperateAdd\";\r\n\r\nconst styles = (theme) => ({\r\n hiddenHeader: {\r\n display: \"none\",\r\n height: \"0\",\r\n },\r\n});\r\n\r\nconst RuleFilter = (props) => ;\r\n\r\nconst RuleActions = ({\r\n bulkActions,\r\n basePath,\r\n currentSort,\r\n displayedFilters,\r\n exporter,\r\n filters,\r\n filterValues,\r\n onUnselectItems,\r\n resource,\r\n selectedIds,\r\n showFilter,\r\n}) => (\r\n \r\n {bulkActions &&\r\n React.cloneElement(bulkActions, {\r\n basePath,\r\n filterValues,\r\n resource,\r\n selectedIds,\r\n onUnselectItems,\r\n })}\r\n {filters &&\r\n React.cloneElement(filters, {\r\n resource,\r\n showFilter,\r\n displayedFilters,\r\n filterValues,\r\n context: \"button\",\r\n })}\r\n } />\r\n \r\n);\r\n\r\nconst RuleList = ({ classes, translate, ...props }) => (\r\n }\r\n filters={}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `${record.time}` +\r\n `${translate(\r\n \"resources.operation-rules.enums.reminderTimeUnit.\" +\r\n record.unit\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\n \r\n);\r\n\r\nconst CancelTimeoutField = ({ record, ...props }) =>\r\n record && record.isCancelEnabled ? (\r\n \r\n ) : null;\r\nconst ImmediateUsePeriodField = ({ record, ...props }) =>\r\n record && record.isImmediateUseEnabled ? (\r\n \r\n ) : null;\r\nconst ExtendPeriodField = ({ record, ...props }) =>\r\n record && record.isExtendEnabled ? (\r\n \r\n ) : null;\r\n\r\nexport default translate(withStyles(styles)(RuleList));\r\n","import React from \"react\";\r\nimport {\r\n Edit,\r\n SimpleFormIterator,\r\n ArrayInput,\r\n BooleanInput,\r\n TextInput,\r\n NumberInput,\r\n SelectInput,\r\n Toolbar,\r\n FormDataConsumer,\r\n SimpleForm,\r\n required,\r\n choices,\r\n number,\r\n minValue,\r\n maxValue,\r\n} from \"react-admin\";\r\nimport CancelButton from \"../common/CancelButton\";\r\nimport SaveButton from \"../common/SaveButton\";\r\n\r\nconst styles = {\r\n numberLabel: { width: \"16.5em\" },\r\n boolLabel: { width: \"18em\" },\r\n};\r\n\r\nconst EditToolbar = (props) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst bytes = (str) => {\r\n str = str == null ? \"\" : str;\r\n return encodeURI(str).replace(/%../g, \"x\").length;\r\n};\r\n\r\nconst validatemaxBytes = (value, allValues, props) => {\r\n if (bytes(value) > 100) {\r\n return props.translate(\"ra.validation.tooLong\");\r\n }\r\n};\r\n\r\nconst validateInteger = (value, allValues, props) => {\r\n if (!Number.isInteger(value)) {\r\n return props.translate(\"ra.validation.integer\");\r\n }\r\n};\r\n\r\nconst validateName = [required(), validatemaxBytes];\r\nconst validateCheckinMode = [required(), choices([0, 1])];\r\nconst validateCancelTimeout = [\r\n required(),\r\n number(),\r\n minValue(1),\r\n maxValue(60),\r\n validateInteger,\r\n];\r\nconst validateReminderTime = [\r\n required(),\r\n number(),\r\n minValue(1),\r\n maxValue(60),\r\n validateInteger,\r\n];\r\nconst validateReminderTimeUnit = [\r\n required(),\r\n choices([\"day\", \"hour\", \"minute\"]),\r\n];\r\nconst validatePeriod = [\r\n required(),\r\n number(),\r\n minValue(1),\r\n maxValue(480),\r\n validateInteger,\r\n];\r\n\r\nconst RuleEdit = (props) => (\r\n \r\n } submitOnEnter={false}>\r\n \r\n \r\n \r\n \r\n {({ formData, ...rest }) =>\r\n formData.isCancelEnabled && (\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 {({ formData, ...rest }) =>\r\n formData.isImmediateUseEnabled && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {({ formData, ...rest }) =>\r\n formData.isExtendEnabled && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default RuleEdit;\r\n","import React from \"react\";\r\nimport {\r\n Create,\r\n SimpleFormIterator,\r\n ArrayInput,\r\n BooleanInput,\r\n TextInput,\r\n NumberInput,\r\n SelectInput,\r\n Toolbar,\r\n FormDataConsumer,\r\n SimpleForm,\r\n required,\r\n choices,\r\n number,\r\n minValue,\r\n maxValue,\r\n} from \"react-admin\";\r\nimport SaveButton from \"../common/SaveButton\";\r\nimport CancelButton from \"../common/CancelButton\";\r\n\r\nconst styles = {\r\n numberLabel: { width: \"16.5em\" },\r\n boolLabel: { width: \"18em\" },\r\n};\r\n\r\nconst EditToolbar = (props) => (\r\n \r\n \r\n \r\n \r\n);\r\nconst bytes = (str) => {\r\n str = str == null ? \"\" : str;\r\n return encodeURI(str).replace(/%../g, \"x\").length;\r\n};\r\n\r\nconst validatemaxBytes = (value, allValues, props) => {\r\n if (bytes(value) > 100) {\r\n return props.translate(\"ra.validation.tooLong\");\r\n }\r\n};\r\n\r\nconst validateInteger = (value, allValues, props) => {\r\n if (!Number.isInteger(value)) {\r\n return props.translate(\"ra.validation.integer\");\r\n }\r\n};\r\n\r\nconst validateName = [required(), validatemaxBytes];\r\nconst validateCheckinMode = [required(), choices([0, 1])];\r\nconst validateCancelTimeout = [\r\n required(),\r\n number(),\r\n minValue(1),\r\n maxValue(60),\r\n validateInteger,\r\n];\r\nconst validateReminderTime = [\r\n required(),\r\n number(),\r\n minValue(1),\r\n maxValue(60),\r\n validateInteger,\r\n];\r\nconst validateReminderTimeUnit = [\r\n required(),\r\n choices([\"day\", \"hour\", \"minute\"]),\r\n];\r\nconst validatePeriod = [\r\n required(),\r\n number(),\r\n minValue(1),\r\n maxValue(480),\r\n validateInteger,\r\n];\r\n\r\nconst RuleCreate = (props) => (\r\n \r\n } redirect=\"list\" submitOnEnter={false}>\r\n \r\n \r\n \r\n \r\n {({ formData, ...rest }) =>\r\n formData.isCancelEnabled && (\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 {({ formData, ...rest }) =>\r\n formData.isImmediateUseEnabled && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n {({ formData, ...rest }) =>\r\n formData.isExtendEnabled && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default RuleCreate;\r\n","import RuleList from './RuleList';\r\nimport RuleEdit from './RuleEdit';\r\nimport RuleCreate from './RuleCreate';\r\nimport icon from '../../icon/IcnOperateSetting';\r\n\r\nexport default {\r\n list: RuleList,\r\n edit: RuleEdit,\r\n //show: RuleEdit,\r\n create: RuleCreate,\r\n icon: icon,\r\n}","import React from \"react\";\r\n\r\nconst SvgIcnOperateSetting1 = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnOperateSetting1;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport compose from 'recompose/compose';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n SimpleForm,\r\n translate,\r\n crudDeleteMany\r\n} from 'react-admin';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { submit } from 'redux-form';\r\nimport SimpleButton from '@material-ui/core/Button';\r\nimport { startUndoable as startUndoableAction } from 'ra-core';\r\n\r\nconst styles = {\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n};\r\n\r\nclass UserBulkDeleteButton extends Component {\r\n state = {\r\n showDialog: false\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n }\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n handleSaveClick = () => {\r\n const { submit } = this.props;\r\n submit('bulk-user-delete');\r\n };\r\n\r\n handleSubmit = () => {\r\n const { basePath, resource, selectedIds: ids, startUndoable } = this.props;\r\n startUndoable(\r\n crudDeleteMany(\r\n resource,\r\n ids,\r\n basePath\r\n )\r\n );\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n render() {\r\n const { showDialog } = this.state;\r\n const { translate } = this.props;\r\n return (\r\n \r\n \r\n {translate('resources.users.fields.bulkDelete')}\r\n \r\n \r\n \r\n \r\n

{translate('resources.users.fields.deleteGuidance')}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {translate('ra.action.delete')}\r\n {translate('ra.action.cancel')}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nUserBulkDeleteButton.propTypes = {\r\n record: PropTypes.object,\r\n startUndoable: PropTypes.func,\r\n};\r\n\r\nconst enhance = compose(\r\n translate,\r\n withStyles(styles),\r\n connect(\r\n undefined,\r\n { submit, startUndoable: startUndoableAction, crudDeleteMany }\r\n ),\r\n);\r\n\r\nexport default enhance(UserBulkDeleteButton);","import React, {Fragment} from 'react';\r\nimport { \r\n List, \r\n Datagrid, \r\n TextField,\r\n CardActions,\r\n Filter,\r\n SearchInput,\r\n SelectField,\r\n EditButton\r\n } from 'react-admin';\r\n import EditIcon from '../../icon/IcnEdit';\r\n import UnselectAllButton from '../common/UnselectAllButton';\r\n import UserBulkDeleteButton from './UserBulkDeleteButton';\r\n \r\n const UserFilter = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst UserActions = ({\r\n bulkActions,\r\n basePath,\r\n displayedFilters,\r\n filters,\r\n filterValues,\r\n onUnselectItems,\r\n resource,\r\n selectedIds,\r\n showFilter\r\n}) => (\r\n \r\n {bulkActions && React.cloneElement(bulkActions, {\r\n basePath,\r\n filterValues,\r\n resource,\r\n selectedIds,\r\n onUnselectItems,\r\n })}\r\n {filters && React.cloneElement(filters, {\r\n resource,\r\n showFilter,\r\n displayedFilters,\r\n filterValues,\r\n context: 'button',\r\n }) }\r\n{/* デフォルトのExportボタンを無効化\r\n \r\n*/} \r\n{/* Add your custom actions \r\n \r\n*/}\r\n \r\n);\r\n\r\nconst UserBulkActionButtons = props => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst UserList = props => (\r\n } actions={} filters={}>\r\n \r\n \r\n \r\n \r\n }/>\r\n \r\n \r\n);\r\n\r\nexport default UserList;","import React from 'react';\r\nimport {\r\n Edit,\r\n SimpleForm,\r\n TextField,\r\n SelectInput,\r\n Toolbar,\r\n} from 'react-admin';\r\nimport SaveButton from '../common/SaveButton';\r\nimport CancelButton from '../common/CancelButton';\r\n\r\nconst EditToolbar = props => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst UserEdit = props => (\r\n \r\n } submitOnEnter={false}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default UserEdit;","import UserList from './UserList';\r\nimport UserEdit from './UserEdit';\r\nimport icon from '../../icon/IcnSettingUser';\r\n\r\nexport default {\r\n list : UserList,\r\n //show : UserShow,\r\n edit : UserEdit,\r\n icon : icon \r\n}","import React from \"react\";\r\n\r\nconst SvgIcnSettingUser = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnSettingUser;\r\n","import React, { Component, Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {\r\n crudDeleteMany,\r\n translate,\r\n showNotification\r\n} from 'react-admin';\r\nimport { startUndoable as startUndoableAction } from 'ra-core';\r\nimport MaterialUiButton from '@material-ui/core/Button';\r\nimport { MuiThemeProvider } from '@material-ui/core/styles';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button'\r\nimport compose from 'recompose/compose';\r\n\r\nconst sanitizeRestProps = ({\r\n basePath,\r\n resource,\r\n selectedIds,\r\n startUndoable,\r\n undoable,\r\n dispatchCrudDeleteMany,\r\n ...rest\r\n}) => rest;\r\n\r\nconst styles = {\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n};\r\n\r\nclass BulkDeleteButton extends Component {\r\n static propTypes = {\r\n basePath: PropTypes.string,\r\n resource: PropTypes.string.isRequired,\r\n startUndoable: PropTypes.func,\r\n selectedIds: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n undoable: PropTypes.bool,\r\n dispatchCrudDeleteMany: PropTypes.func.isRequired,\r\n dialogGuidance: PropTypes.string,\r\n };\r\n state = {\r\n showDialog: false\r\n };\r\n\r\n static defaultProps = {\r\n undoable: true,\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n }\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n handleSubmit = () => {\r\n const {\r\n startUndoable,\r\n resource,\r\n selectedIds,\r\n basePath,\r\n undoable,\r\n dispatchCrudDeleteMany\r\n } = this.props;\r\n if (undoable) {\r\n startUndoable(crudDeleteMany(resource, selectedIds, basePath));\r\n } else {\r\n dispatchCrudDeleteMany(resource, selectedIds, basePath);\r\n }\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n render() {\r\n const { showDialog } = this.state;\r\n const { onClick, translate, dialogGuidance, ...rest } = this.props;\r\n return (\r\n \r\n \r\n {translate(\"common.bulkDelete\")}\r\n \r\n \r\n \r\n \r\n

\r\n {translate(dialogGuidance)}\r\n

\r\n
\r\n
\r\n \r\n \r\n {translate(\"ra.action.delete\")}\r\n \r\n \r\n {translate(\"ra.action.cancel\")}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nBulkDeleteButton.propTypes = {\r\n crudDeleteMany: PropTypes.func,\r\n startUndoable: PropTypes.func,\r\n record: PropTypes.object,\r\n};\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(\r\n undefined,\r\n { crudDeleteMany, showNotification, startUndoable: startUndoableAction }\r\n )\r\n);\r\n\r\nexport default enhance(BulkDeleteButton);","import React from \"react\";\r\n\r\nconst SvgIcnExportListDevice = props => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgIcnExportListDevice;\r\n","import React, { Fragment } from 'react';\r\nimport {\r\n\tformat,\r\n\tparseISO,\r\n} from 'date-fns'\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nconst DateField = ({ record, source, showTime = false }) => (\r\n\trecord && record[source] != null ?\r\n\t\t\r\n\t\t\t{\r\n\t\t\t\tshowTime ? format(parseISO(record[source]), 'yyyy/MM/dd HH:mm:ss') : format(parseISO(record[source]), 'yyyy/MM/dd')\r\n\t\t\t}\r\n\t\t\r\n\t\t: null\r\n);\r\n\r\nexport default DateField;","import React, { Fragment } from 'react';\r\nimport {\r\n List,\r\n Datagrid,\r\n TextField,\r\n CardActions,\r\n Filter,\r\n SearchInput,\r\n ExportButton,\r\n downloadCSV,\r\n SelectField,\r\n EditButton\r\n} from 'react-admin';\r\nimport { unparse as convertToCSV } from 'papaparse/papaparse.min';\r\nimport UnselectAllButton from '../common/UnselectAllButton';\r\nimport BulkDeleteButton from '../common/BulkDeleteButton';\r\nimport EditIcon from '../../icon/IcnEdit';\r\nimport ExportIcon from '../../icon/IcnExportListDevice';\r\nimport DateField from '../common/DateField';\r\n\r\nconst TerminalFilter = (props) => (\r\n \r\n \r\n \r\n);\r\n\r\nconst csvExporter = (records, fetchRelatedRecords) => {\r\n const csv = convertToCSV({\r\n data: records,\r\n fields: ['id', 'appName', 'appVersion', 'lastAccessDateTime', 'name']\r\n });\r\n const bom = \"\\uFEFF\"\r\n downloadCSV(bom + csv, 'terminals');\r\n};\r\n\r\nconst TerminalBulkActionButtons = props => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst TerminalActions = ({\r\n bulkActions,\r\n basePath,\r\n currentSort,\r\n displayedFilters,\r\n exporter,\r\n filters,\r\n filterValues,\r\n onUnselectItems,\r\n resource,\r\n selectedIds,\r\n showFilter\r\n}) => (\r\n \r\n {bulkActions && React.cloneElement(bulkActions, {\r\n basePath,\r\n filterValues,\r\n resource,\r\n selectedIds,\r\n onUnselectItems,\r\n })}\r\n {filters && React.cloneElement(filters, {\r\n resource,\r\n showFilter,\r\n displayedFilters,\r\n filterValues,\r\n context: 'button',\r\n })}\r\n {\r\n }\r\n />\r\n }\r\n \r\n );\r\n\r\n\r\nconst TerminalList = props => (\r\n }\r\n actions={}\r\n filters={}\r\n exporter={csvExporter}\r\n sort={{ field: 'status', order: 'DESC' }}\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 default TerminalList;","import React from \"react\";\r\n\r\nconst SvgIcnListDevice = props => (\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 SvgIcnListDevice;\r\n","import React from \"react\";\r\nimport { compose } from 'recompose';\r\nimport { translate } from \"react-admin\"\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport {\r\n FormControl,\r\n FormLabel,\r\n List,\r\n ListItem,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n RootRef,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { createStyles } from '@material-ui/core/styles';\r\n\r\n//input(会議室情報)のIDと名前を管理\r\nconst GetResourceMap = (resources) => Array.from(resources).reduce((acc, resource) => acc.set(resource.id, resource.name), new Map());\r\n\r\nconst labelStyle = () => createStyles({\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n padding: \"0em\",\r\n fontSize: \"0.8rem\",\r\n})\r\n\r\nconst itemStyle = (draggableStyle, isDragging) => createStyles({\r\n ...draggableStyle,\r\n ...(isDragging ? { background: \"rgb(135,135,135)\" } : { background: \"rgb(240,240,240)\" }),\r\n paddingLeft: \"0.5em\",\r\n paddingRight: \"1em\",\r\n paddingTop: \"0.5em\",\r\n paddingBottom: \"0.5em\",\r\n maxWidth: \"30em\",\r\n border: \"0.2em solid rgb(255,255,255)\",\r\n borderRadius: 4,\r\n});\r\n\r\nconst OrderedList = (props) => {\r\n\r\n const { record, translate, input } = props;\r\n const { type } = record;\r\n const droppableId = \"resource-list\";\r\n\r\n const ResourceMap = GetResourceMap(input.value);\r\n\r\n const onDragEnd = result => {\r\n\r\n const { destination, source, draggableId } = result\r\n\r\n //変更なければスキップ\r\n if (!destination || (destination.index === source.index)) return;\r\n\r\n //inputのコピーに対して並び替えを反映\r\n //TODO なぜかArray.from()の結果でドラッグされた要素のresource.nameが欠落するため、毎回要素を作り直して格納\r\n const newValues = Array.from(input.value)\r\n newValues.splice(source.index, 1);\r\n newValues.splice(destination.index, 0, {id:draggableId, name:ResourceMap.get(draggableId)})\r\n\r\n //並び替えた内容でinputを更新\r\n input.onChange(newValues)\r\n }\r\n\r\n return (\r\n
\r\n { type == 1 ?\r\n \r\n \r\n {translate('resources.terminals.fields.resources')}\r\n \r\n \r\n \r\n {(dropProvided, dropSnapshot) => (\r\n \r\n \r\n {Array.from(input.value).map((resource, index) => (\r\n \r\n {(dragProvided, dragSnapshot) => (\r\n \r\n \r\n {resource.name}\r\n \r\n } />\r\n \r\n \r\n )}\r\n \r\n ))}\r\n\r\n {dropProvided.placeholder}\r\n \r\n \r\n )}\r\n \r\n \r\n : noop}\r\n
\r\n )\r\n}\r\n\r\nconst noop = () => { }\r\n\r\nconst enhance = compose(\r\n translate\r\n);\r\n\r\nexport default enhance(OrderedList);\r\n","import React from 'react';\r\nimport {\r\n Edit,\r\n SimpleForm,\r\n Toolbar,\r\n TextField,\r\n DateField,\r\n SelectInput\r\n} from 'react-admin';\r\nimport CancelButton from '../common/CancelButton';\r\nimport SaveButton from '../common/SaveButton';\r\nimport OrderedList from './OrderedList';\r\nimport { Field } from 'redux-form';\r\n\r\nconst styles = {\r\n text: { width: '20em' },\r\n};\r\n\r\nconst EditToolbar = props => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst TerminalEdit = props => (\r\n \r\n } submitOnEnter={false}>\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 TerminalEdit;","import TerminalList from './TerminalList';\r\nimport icon from '../../icon/IcnListDevice';\r\nimport TerminalEdit from './TerminalEdit';\r\n\r\nexport default {\r\n list : TerminalList,\r\n edit : TerminalEdit,\r\n icon : icon\r\n}","import React, { Component } from 'react';\r\nimport { userLogin } from \"react-admin\";\r\nimport { connect } from \"react-redux\";\r\n\r\nclass Callback extends Component {\r\n\r\n componentDidMount() {\r\n this.props.userLogin({});\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
Loading...
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default connect(undefined, { userLogin })(Callback);","import React from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport dataProvider from '../../dataProvider';\r\nimport { GET_ONE, UPDATE, translate } from 'react-admin';\r\n\r\nconst styles = theme => ({\r\n formControl: {\r\n margin: theme.spacing.unit,\r\n minWidth: 250,\r\n marginRight: '5em',\r\n marginLeft: '5em',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n});\r\n\r\nclass Locale extends React.Component {\r\n state = {\r\n locale: '',\r\n };\r\n\r\n componentDidMount() {\r\n dataProvider(GET_ONE, 'tenants', { id: 'me' })\r\n .then(response => response.data)\r\n .then(data => {\r\n this.setState({ locale: data.locale });\r\n });\r\n }\r\n\r\n handleChange = name => event => {\r\n this.setState({ [name]: event.target.value });\r\n dataProvider(UPDATE, 'tenants', {\r\n id: 'me',\r\n data: { [name]: event.target.value },\r\n });\r\n };\r\n\r\n render() {\r\n const { classes, translate } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('config.locale.title')}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nLocale.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nconst enhance = compose(withStyles(styles), translate);\r\n\r\nexport default enhance(Locale);\r\n","const Role = {\r\n NO_MANAGER: 0,\r\n OPERATION_MANAGER: 1,\r\n ACCOUNT_MANAGER: 2,\r\n SYSTEM_MANAGER: 3,\r\n};\r\n\r\n/**\r\n * permissionの型がnumberかRoleかどうか\r\n */\r\nconst validPermission = (permission) => {\r\n if (\r\n permission !== Role.NO_MANAGER &&\r\n permission !== Role.OPERATION_MANAGER &&\r\n permission !== Role.ACCOUNT_MANAGER &&\r\n permission !== Role.SYSTEM_MANAGER\r\n ) {\r\n throw Error(\"invaidPermission\");\r\n }\r\n return true;\r\n};\r\n\r\n/**\r\n * 権限がアカウント管理者相当(+システム管理者)かどうか\r\n */\r\nexport const isPermissiveAsAccountManager = (permission) => {\r\n validPermission(permission);\r\n return (\r\n permission === Role.ACCOUNT_MANAGER || permission === Role.SYSTEM_MANAGER\r\n );\r\n};\r\n/**\r\n * 権限が運用管理者相当(+システム管理者)かどうか\r\n */\r\nexport const isPermissiveAsOperationManager = (permission) => {\r\n validPermission(permission);\r\n return (\r\n permission === Role.OPERATION_MANAGER || permission === Role.SYSTEM_MANAGER\r\n );\r\n};\r\n\r\n/**\r\n * 管理者かどうか\r\n */\r\nexport const isManager = (permission) => {\r\n return (\r\n isPermissiveAsAccountManager(permission) ||\r\n isPermissiveAsOperationManager(permission)\r\n );\r\n};\r\n\r\nexport default Role;\r\n","import React, { useState } from 'react';\r\nimport { compose } from 'recompose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\nimport { lightTheme } from '../../layout/MyLayout';\r\nimport { MuiThemeProvider } from '@material-ui/core/styles';\r\nimport { translate, showNotification } from 'react-admin';\r\nimport { connect } from 'react-redux';\r\nimport { isPermissiveAsAccountManager } from '../../const/Role';\r\n\r\nconst contentStyle = { marginLeft: '5em' };\r\n\r\nconst authPageOpen = () => {\r\n window.open(process.env.REACT_APP_RSB_API_ENDPOINT + '/auth-calendar/outlook', null, 'width=1000, height=800');\r\n};\r\n\r\nconst PrivilegedAccount = ({ config, getConfig, updateConfig, translate, showNotification, permissions }) => {\r\n const [isFocus, setIsFocus] = useState(true);\r\n\r\n const onFocus = async () => {\r\n if (!isFocus) {\r\n await getConfig();\r\n }\r\n setIsFocus(true);\r\n };\r\n\r\n const onBlur = () => {\r\n setIsFocus(false);\r\n };\r\n\r\n const onDelink = async e => {\r\n var options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n mode: 'cors',\r\n };\r\n var request = new Request(process.env.REACT_APP_RSB_API_ENDPOINT + '/auth-calendar/outlook/delink');\r\n fetch(request, options)\r\n .then(() => {\r\n //成功の場合\r\n updateConfig({ ...config, calendarAdminName: '' });\r\n })\r\n .catch(e => showNotification('ra.message.error', 'warning'));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {translate('privilegedAccount.nortification')}\r\n }\r\n />\r\n \r\n {isPermissiveAsAccountManager(permissions) && (\r\n \r\n \r\n {translate('privilegedAccount.m365')}\r\n \r\n \r\n )}\r\n \r\n \r\n {isPermissiveAsAccountManager(permissions) && config.calendarAdminName && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst enhance = compose(translate, connect(undefined, { showNotification }));\r\nexport default enhance(PrivilegedAccount);\r\n","import React from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { translate } from 'react-admin';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Button from '@material-ui/core/Button';\r\nimport { withRouter } from 'react-router';\r\n\r\nconst style = theme => ({\r\n formControl: {\r\n minWidth: 250,\r\n marginRight: '5em',\r\n marginLeft: '5em',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n});\r\n\r\nconst Report = ({ translate, classes, history }) => (\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\nconst enhance = compose(withStyles(style), translate, withRouter);\r\n\r\nexport default enhance(Report);\r\n","import React from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { GET_ONE, translate } from 'react-admin';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport dataProvider from '../../dataProvider';\r\n\r\nconst style = theme => ({\r\n formControl: {\r\n minWidth: 250,\r\n marginRight: '5em',\r\n marginLeft: '5em',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n root: {\r\n flex: 1,\r\n },\r\n cost: {\r\n marginRight: '1em',\r\n color: theme.palette.text.primary,\r\n },\r\n});\r\n\r\nclass VersionInfo extends React.Component {\r\n state = {\r\n version: '',\r\n };\r\n\r\n componentDidMount() {\r\n dataProvider(GET_ONE, 'server-info', { id: 1 })\r\n .then(response => response.data.version)\r\n .then(version => {\r\n this.setState({ version: version });\r\n });\r\n }\r\n\r\n render() {\r\n const { translate, classes } = this.props;\r\n const buildVersion = process.env.REACT_APP_BUILD_VERSION;\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 {buildVersion && buildVersion.length > 0 && (\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\nconst enhance = compose(withStyles(style), translate);\r\n\r\nexport default enhance(VersionInfo);\r\n","import React from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { GET_ONE, translate } from 'react-admin';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport dataProvider from '../../dataProvider';\r\n\r\nconst style = theme => ({\r\n formControl: {\r\n minWidth: 250,\r\n marginRight: '5em',\r\n marginLeft: '5em',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n root: {\r\n flex: 1,\r\n },\r\n cost: {\r\n marginRight: '1em',\r\n color: theme.palette.text.primary,\r\n },\r\n});\r\n\r\nclass ContractInfo extends React.Component {\r\n state = {\r\n license: '',\r\n inUseLicense: '',\r\n };\r\n\r\n componentDidMount() {\r\n dataProvider(GET_ONE, 'tenants', { id: 'me' })\r\n .then(response => response.data)\r\n .then(data => {\r\n this.setState({ license: data.monitableResourceCount });\r\n this.setState({ inUseLicense: data.monitoringResourceCount });\r\n });\r\n }\r\n\r\n render() {\r\n const { translate, classes } = this.props;\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 \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(withStyles(style), translate);\r\n\r\nexport default enhance(ContractInfo);\r\n","import React from \"react\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\nimport { compose } from \"recompose\";\r\nimport { translate } from \"react-admin\";\r\n\r\n/**\r\n * トグルボタンで入力するInputコンポーネント。\r\n * react-adminのEdit画面ではBooleanInputを用いること\r\n * @component\r\n */\r\nconst SwitchInput = ({ label, toggle, onChange, translate, disabled }) => {\r\n return (\r\n
\r\n \r\n
{translate(label)}
\r\n
\r\n );\r\n};\r\n\r\nconst enhance = compose(translate);\r\nexport default enhance(SwitchInput);\r\n","import React, { useState } from 'react';\r\nimport { compose } from 'recompose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Button from '@material-ui/core/Button';\r\nimport { lightTheme } from '../../layout/MyLayout';\r\nimport { MuiThemeProvider } from '@material-ui/core/styles';\r\nimport SwitchInput from '../common/SwitchInput';\r\nimport { translate, showNotification } from 'react-admin';\r\nimport { connect } from 'react-redux';\r\nimport { isPermissiveAsAccountManager } from '../../const/Role';\r\n\r\nconst contentStyle = { marginLeft: '5em' };\r\n\r\nconst authPageOpen = () => {\r\n window.open(process.env.REACT_APP_RSB_API_ENDPOINT + '/auth-app/outlook', null, 'width=1000, height=800');\r\n};\r\n\r\nconst AppSettingConfig = ({ permissions, config, getConfig, updateConfig, translate, showNotification }) => {\r\n const [isFocus, setIsFocus] = useState(true);\r\n\r\n const onFocus = async () => {\r\n if (!isFocus) {\r\n await getConfig();\r\n }\r\n setIsFocus(true);\r\n };\r\n\r\n const onBlur = () => {\r\n setIsFocus(false);\r\n };\r\n\r\n const onDelink = async e => {\r\n var options = {\r\n method: 'POST',\r\n credentials: 'include',\r\n mode: 'cors',\r\n };\r\n var request = new Request(process.env.REACT_APP_RSB_API_ENDPOINT + '/auth-app/outlook/delink');\r\n fetch(request, options)\r\n .then(() => {\r\n updateConfig({\r\n ...config,\r\n isAuthenticated: false,\r\n isEnableAppAuth: false,\r\n });\r\n })\r\n .catch(e => showNotification('ra.message.error', 'warning'));\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isPermissiveAsAccountManager(permissions) && (\r\n \r\n \r\n {config.isAuthenticated ? translate('appAuthConfig.changeUser') : translate('appAuthConfig.m365')}\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n {isPermissiveAsAccountManager(permissions) && config.isAuthenticated && (\r\n \r\n {translate('appAuthConfig.delink')}\r\n \r\n )}\r\n
\r\n
\r\n \r\n updateConfig({ ...config, isEnableAppAuth: !config.isEnableAppAuth }, true)}\r\n disabled={!config.isAuthenticated || !isPermissiveAsAccountManager(permissions)}\r\n />\r\n
\r\n *{translate('appAuthConfig.activateAfterScoped')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst enhance = compose(translate, connect(undefined, { showNotification }));\r\nexport default enhance(AppSettingConfig);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { GET_ONE, UPDATE, Responsive, Title, WithPermissions, showNotification } from 'react-admin';\r\nimport { compose } from 'recompose';\r\nimport { connect } from 'react-redux';\r\nimport dataProvider from '../../dataProvider';\r\nimport Locale from './Locale';\r\nimport PrivilegedAccount from './PrivilegedAccount';\r\nimport Report from './Report';\r\nimport Version from './VersionInfo';\r\nimport ContractInfo from './ContractInfo';\r\nimport { isPermissiveAsAccountManager, isManager } from '../../const/Role';\r\nimport AppSettingConfig from './AppSettingConfig';\r\n\r\nconst styles = {\r\n flex: { display: 'flex' },\r\n flexColumn: { display: 'flex', flexDirection: 'column' },\r\n leftCol: { flex: 1, marginRight: '1em' },\r\n rightCol: { flex: 1, marginLeft: '1em' },\r\n singleCol: { marginTop: '2em', marginBottom: '2em' },\r\n};\r\n\r\nconst Config = ({ permissions, showNotification }) => {\r\n const [config, setConfig] = useState();\r\n\r\n const getConfig = async () => {\r\n await dataProvider(GET_ONE, 'tenants', { id: 'me' })\r\n .then(response => response.data)\r\n .then(data => {\r\n setConfig(data);\r\n })\r\n .catch(e => {\r\n showNotification('ra.message.error', 'warning');\r\n });\r\n };\r\n\r\n /**\r\n * テナント設定を更新する\r\n * needSyncをtrueに設定した場合はサーバーと設定値を同期させる\r\n * @param {Object} newConfig\r\n * @param {boolean} needSync\r\n */\r\n const updateConfig = async (newConfig, needSync) => {\r\n const prevConfig = { ...config };\r\n // 先に状態を更新する\r\n setConfig(newConfig);\r\n\r\n if (needSync) {\r\n await dataProvider(UPDATE, 'tenants', {\r\n id: 'me',\r\n data: { isEnableAppAuth: newConfig.isEnableAppAuth },\r\n }).catch(e => {\r\n showNotification('ra.message.error', 'warning');\r\n setConfig(prevConfig);\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // 一般ユーザーは設定を取得しない\r\n if (permissions && isManager(permissions)) {\r\n getConfig();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [permissions]);\r\n\r\n const renderComponents = () => {\r\n return (\r\n permissions && (\r\n
\r\n
\r\n {isManager(permissions) && config && (\r\n \r\n )}\r\n
\r\n {isManager(permissions) && config && (\r\n \r\n )}\r\n
\r\n {isPermissiveAsAccountManager(permissions) && }\r\n
\r\n {isManager(permissions) && }\r\n
\r\n {isManager(permissions) && }\r\n
\r\n \r\n
\r\n
\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n <Responsive\r\n xsmall={renderComponents()}\r\n small={renderComponents()}\r\n medium={\r\n <div style={styles.flex}>\r\n <div style={styles.leftCol}>{renderComponents()}</div>\r\n </div>\r\n }\r\n />\r\n </>\r\n );\r\n};\r\n\r\nconst ConfigWithPermissions = ({ location, showNotification }) => (\r\n <WithPermissions\r\n location={location}\r\n render={({ permissions }) => <Config permissions={permissions} showNotification={showNotification} />}\r\n />\r\n);\r\n\r\nconst enhance = compose(connect(undefined, { showNotification }));\r\nexport default enhance(ConfigWithPermissions);\r\n","import React from \"react\";\r\nimport { translate } from \"react-admin\";\r\nimport { compose } from \"recompose\";\r\nimport Card from \"@material-ui/core/Card\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport FormControl from \"@material-ui/core/FormControl\";\r\nimport { MuiThemeProvider } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport { lightTheme } from \"../../layout/MyLayout\";\r\n\r\nconst HelpContent = ({ content, translate }) => {\r\n const cardStyle = {\r\n marginTop: \"2em\",\r\n };\r\n\r\n const formControlStyle = {\r\n minWidth: 250,\r\n marginRight: \"5em\",\r\n marginLeft: \"1em\",\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n };\r\n\r\n const buttonStyle = {\r\n textAlign: \"left\",\r\n maxWidth: \"12.5em\",\r\n };\r\n\r\n return (\r\n <MuiThemeProvider theme={lightTheme}>\r\n <Card style={cardStyle}>\r\n <List>\r\n <ListItem>\r\n <ListItemText primary={translate(content.title)} />\r\n </ListItem>\r\n <ListItem>\r\n <FormControl style={formControlStyle}>\r\n <Button\r\n color=\"primary\"\r\n href={content.url}\r\n target={content.target ?? \"\"}\r\n style={buttonStyle}\r\n >\r\n {translate(content.label)}\r\n </Button>\r\n </FormControl>\r\n </ListItem>\r\n </List>\r\n </Card>\r\n </MuiThemeProvider>\r\n );\r\n};\r\n\r\nconst enhance = compose(translate);\r\nexport default enhance(HelpContent);\r\n","import React from \"react\";\r\nimport { Responsive, Title, translate } from \"react-admin\";\r\nimport { compose } from \"recompose\";\r\nimport HelpContent from \"./HelpContent\";\r\n\r\nconst styles = {\r\n flexColumn: { display: \"flex\", flexDirection: \"column\" },\r\n leftCol: { flex: 1, marginRight: \"1em\" },\r\n rightCol: { flex: 1, marginLeft: \"1em\" },\r\n singleCol: { marginTop: \"2em\", marginBottom: \"2em\" },\r\n};\r\n\r\nconst renderSection = (translate) => {\r\n // Helpに載せる項目一覧\r\n const content = [\r\n {\r\n target: \"_blank\", // 新規タブ\r\n title: \"help.manual\",\r\n url: \"https://resource-booking-service.helpdocsonline.com/home\",\r\n label: \"help.manualTitle\",\r\n },\r\n {\r\n title: \"other.title\",\r\n url: \"/oss\",\r\n label: \"other.oss\",\r\n },\r\n ];\r\n\r\n return (\r\n <div style={styles.flexColumn}>\r\n <div style={styles.singleCol}>\r\n {content.map((c) => (\r\n <HelpContent key={c.title + c.label} content={c} />\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nconst Help = ({ translate }) => (\r\n <>\r\n <Title title={\"help.title\"} />\r\n <Responsive\r\n xsmall={renderSection(translate)}\r\n small={renderSection(translate)}\r\n medium={\r\n <div style={{ ...styles.flexColumn, display: \"flex\" }}>\r\n <div style={styles.leftCol}>{renderSection(translate)}</div>\r\n </div>\r\n }\r\n />\r\n </>\r\n);\r\n\r\nconst enhance = compose(translate);\r\n\r\nexport default enhance(Help);\r\n","import React from \"react\";\r\nimport { Responsive, Title, translate } from \"react-admin\";\r\nimport { compose } from \"recompose\";\r\nimport data from \"../../license.json\";\r\n\r\nconst styles = {\r\n flex: { display: \"flex\" },\r\n flexColumn: { display: \"flex\", flexDirection: \"column\" },\r\n leftCol: { flex: 1, marginRight: \"1em\" },\r\n rightCol: { flex: 1, marginLeft: \"1em\" },\r\n singleCol: { marginTop: \"2em\", marginBottom: \"2em\" },\r\n};\r\n\r\nconst ossLicenseJsonArray = data;\r\nconst keys = Object.keys(ossLicenseJsonArray);\r\n\r\nconst LicenseEntry = ({ jsonKey }) => (\r\n <div key={jsonKey}>\r\n <p>\r\n <b>{jsonKey}</b>\r\n </p>\r\n <p>{ossLicenseJsonArray[jsonKey].licenses}</p>\r\n <p>{ossLicenseJsonArray[jsonKey].copyright}</p>\r\n <p>{ossLicenseJsonArray[jsonKey].licenseText}</p>\r\n <hr />\r\n </div>\r\n);\r\n\r\nconst OssLicense = () => (\r\n <>\r\n <Title title={\"other.oss\"} />\r\n <Responsive\r\n xsmall={getLicenseEntries()}\r\n small={getLicenseEntries()}\r\n medium={\r\n <div style={styles.flex}>\r\n <div style={styles.leftCol}>{getLicenseEntries()}</div>\r\n </div>\r\n }\r\n />\r\n </>\r\n);\r\n\r\nconst getLicenseEntries = () => (\r\n <div style={styles.flexColumn}>\r\n <div style={styles.singleCol}>\r\n {keys.map((key) => (\r\n <LicenseEntry jsonKey={key} />\r\n ))}\r\n </div>\r\n </div>\r\n);\r\n\r\nconst enhance = compose(translate);\r\nexport default enhance(OssLicense);\r\n","import React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\nimport CallBack from \"./components/callback/Callback\";\r\nimport ConfigWithPermissions from \"./components/config/Config\";\r\nimport Help from \"./components/help/Help\";\r\nimport OssLicense from \"./components/oss/OssLicense\";\r\n\r\nexport default [\r\n <Route exact path=\"/callback\" component={CallBack} />,\r\n <Route exact path=\"/config\" component={ConfigWithPermissions} />,\r\n <Route exact path=\"/help\" component={Help} />,\r\n <Route exact path=\"/oss\" component={OssLicense} />,\r\n];\r\n","import React, { Component } from 'react';\r\nimport { Button, translate } from 'react-admin';\r\n\r\nconst DownloadButton = ({ record }) => (\r\n <Button\r\n label='resources.reports.fields.download'\r\n href={record.url}\r\n disabled={record.url == null}\r\n />\r\n);\r\n\r\nexport default translate(DownloadButton);","import React, { Fragment } from 'react';\r\nimport compose from 'recompose/compose';\r\nimport Card from '@material-ui/core/Card';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n translate,\r\n SimpleForm,\r\n DateInput,\r\n required,\r\n GET_ONE,\r\n crudCreate,\r\n} from 'react-admin';\r\nimport { startUndoable as startUndoableAction } from 'ra-core';\r\nimport Button from '@material-ui/core/Button';\r\nimport SimpleButton from '@material-ui/core/Button';\r\nimport { connect } from 'react-redux';\r\nimport { submit } from 'redux-form';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport AddIcon from '../../icon/IcnOperateAdd';\r\nimport dataProvider from '../../dataProvider';\r\nimport SaveButton from '../common/SaveButton';\r\nimport {\r\n format,\r\n parseISO,\r\n endOfYesterday\r\n} from 'date-fns'\r\n\r\nconst validateRange = (minDate, maxDate) => (value, allValues, props) => {\r\n var date = parseISO(value);\r\n if (date < minDate || date > maxDate)\r\n return props.translate('notification.invalidRequestParameter');\r\n}\r\n\r\nconst style = theme => ({\r\n formControl: {\r\n minWidth: 250,\r\n marginRight: '5em',\r\n marginLeft: '5em',\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n card: {\r\n marginTop: '2em',\r\n },\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n});\r\n\r\nclass ReportCreateButton extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showDialog: false,\r\n minReportDate: new Date(),\r\n maxReportDate: endOfYesterday(),\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n dataProvider(GET_ONE, 'tenants', { id: 'me' })\r\n .then(response => response.data)\r\n .then(data => {\r\n this.setState({ minReportDate: parseISO(data.serviceStartDate) });\r\n });\r\n }\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n }\r\n\r\n handleSaveClick = () => {\r\n const { submit } = this.props;\r\n submit('create-report');\r\n }\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n handleSubmit = values => {\r\n const { resource, basePath, startUndoable } = this.props\r\n startUndoable(\r\n crudCreate(\r\n resource,\r\n { ...values },\r\n basePath,\r\n 'list',\r\n )\r\n );\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n render() {\r\n const { translate, classes } = this.props;\r\n return (\r\n <Fragment>\r\n <SimpleButton onClick={this.handleClick} color=\"primary\" size=\"small\">\r\n <AddIcon />\r\n {translate('resources.reports.fields.createReport')}\r\n </SimpleButton>\r\n <Dialog\r\n fullWidth\r\n open={this.state.showDialog}\r\n onClose={this.handleCloseClick}\r\n >\r\n <DialogContent>\r\n <DialogContentText>\r\n <p>\r\n {translate('resources.reports.fields.createReportGuidance1')}\r\n </p>\r\n <ul>\r\n <li>\r\n {translate('resources.reports.fields.createReportGuidance2')}\r\n </li>\r\n <li>\r\n {translate('resources.reports.fields.createReportGuidance3')}\r\n <br />\r\n {translate('resources.reports.fields.createReportGuidance4') + format(this.state.minReportDate, \"yyyy/MM/dd\") + \" - \" + format(this.state.maxReportDate, \"yyyy/MM/dd\")}\r\n </li>\r\n </ul>\r\n </DialogContentText>\r\n <SimpleForm toolbar={null} form='create-report' onSubmit={this.handleSubmit} submitOnEnter={false}>\r\n <DateInput source=\"startDate\" label='resources.reports.fields.startDate' validate={[required(), validateRange(this.state.minReportDate, this.state.maxReportDate)]} />\r\n <DateInput source=\"endDate\" label='resources.reports.fields.endDate' validate={[required(), validateRange(this.state.minReportDate, this.state.maxReportDate)]} />\r\n </SimpleForm>\r\n </DialogContent>\r\n <DialogActions>\r\n <SaveButton\r\n label='resources.reports.fields.create'\r\n onClick={this.handleSaveClick}\r\n />\r\n <SimpleButton\r\n onClick={this.handleCloseClick}\r\n color='primary'>\r\n {translate('ra.action.cancel')}\r\n </SimpleButton>\r\n </DialogActions>\r\n </Dialog>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(\r\n withStyles(style),\r\n translate,\r\n connect(\r\n undefined,\r\n { submit, startUndoable: startUndoableAction, crudCreate }\r\n ),\r\n);\r\n\r\nexport default enhance(ReportCreateButton);","import React, { Component, Fragment } from 'react';\r\nimport {\r\n Button,\r\n translate,\r\n crudDelete,\r\n} from 'react-admin';\r\nimport { startUndoable as startUndoableAction } from 'ra-core';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport compose from 'recompose/compose';\r\nimport { connect } from 'react-redux';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport DeleteIcon from '../../icon/IcnDelete';\r\nimport SimpleButton from '@material-ui/core/Button';\r\n\r\nconst styles = {\r\n button: { marginRight: '1em', marginLeft: '1em' },\r\n};\r\n\r\nclass ReportDeleteButton extends Component {\r\n state = {\r\n showDialog: false\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ showDialog: true });\r\n }\r\n\r\n handleCloseClick = () => {\r\n this.setState({ showDialog: false });\r\n };\r\n\r\n handleSubmit = () => {\r\n const { record, startUndoable, basePath, resource } = this.props;\r\n startUndoable(crudDelete(resource, record.id, record, basePath));\r\n this.setState({ showDialog: false });\r\n }\r\n\r\n render() {\r\n const { showDialog } = this.state;\r\n const { translate } = this.props;\r\n return (\r\n <Fragment>\r\n <Button\r\n size=\"small\"\r\n color=\"secondary\"\r\n label='ra.action.delete'\r\n onClick={this.handleClick}>\r\n <DeleteIcon />\r\n </Button>\r\n <Dialog\r\n fullWidth\r\n open={showDialog}\r\n onClose={this.handleCloseClick}\r\n >\r\n <DialogContent>\r\n <DialogContentText>\r\n <p>\r\n {translate('resources.reports.fields.deleteGuidance')}\r\n </p>\r\n\r\n </DialogContentText>\r\n </DialogContent>\r\n <DialogActions>\r\n <SimpleButton\r\n variant='raised'\r\n onClick={this.handleSubmit}\r\n color='primary'>\r\n {translate('ra.action.delete')}\r\n </SimpleButton>\r\n <SimpleButton\r\n onClick={this.handleCloseClick}\r\n color='primary'>\r\n {translate('ra.action.cancel')}\r\n </SimpleButton>\r\n </DialogActions>\r\n </Dialog>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(\r\n undefined,\r\n { crudDelete, startUndoable: startUndoableAction }\r\n ),\r\n withStyles(styles)\r\n);\r\n\r\nexport default enhance(ReportDeleteButton);","import React, { Fragment } from 'react';\r\nimport {\r\n List,\r\n Datagrid,\r\n TextField,\r\n SelectField,\r\n CardActions\r\n} from 'react-admin';\r\nimport DownloadButton from './DownloadButton';\r\nimport ReportCreateButton from './ReportCreateButton';\r\nimport ReportDeleteButton from './ReportDeleteButton';\r\nimport { Pagination } from 'react-admin';\r\nimport DateField from '../common/DateField';\r\n\r\nconst ReportsActions = props => (\r\n <CardActions>\r\n <ReportCreateButton {...props} />\r\n </CardActions>\r\n);\r\n\r\nconst ReportList = props => (\r\n <List {...props} actions={<ReportsActions />} sort={{ field: 'requestDateTime', order: 'DESC' }} bulkActionButtons={false} >\r\n <Datagrid>\r\n <DateField source=\"startDate\" sortable={false} />\r\n <DateField source=\"endDate\" sortable={false} />\r\n <DateField source=\"requestDateTime\" showTime={true} sortable={false} />\r\n <SelectField\r\n source=\"status\"\r\n choices={[\r\n { id: 0, name: 'resources.reports.enums.status.processing' },\r\n { id: 1, name: 'resources.reports.enums.status.processing' },\r\n { id: 2, name: 'resources.reports.enums.status.failed' },\r\n { id: 3, name: 'resources.reports.enums.status.completed' }\r\n ]}\r\n sortable={false} />\r\n <DownloadButton {...props} />\r\n <ReportDeleteButton {...props} />\r\n </Datagrid>\r\n </List>\r\n);\r\n\r\nexport default ReportList;\r\n","import ReportList from './ReportList';\r\n\r\nexport default {\r\n list: ReportList\r\n}","import React from \"react\";\r\n\r\nconst SvgIcnLogout = props => (\r\n <svg\r\n id=\"icn_logout_svg__\\u30EC\\u30A4\\u30E4\\u30FC_1\"\r\n data-name=\"\\u30EC\\u30A4\\u30E4\\u30FC 1\"\r\n width={24}\r\n height={24}\r\n {...props}\r\n >\r\n <defs>\r\n <style>{\".icn_logout_svg__cls-1{fill:#4a4b4c}\"}</style>\r\n </defs>\r\n <path\r\n className=\"icn_logout_svg__cls-1\"\r\n d=\"M10 23l-8-4V5l8-4v22zM15 9h2V3h-5v2h3v4zM15 19h-3v2h5v-6h-2v4z\"\r\n />\r\n <path className=\"icn_logout_svg__cls-1\" d=\"M23 12l-4-4v3h-7v2h7v3l4-4z\" />\r\n </svg>\r\n);\r\n\r\nexport default SvgIcnLogout;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { userLogout, translate } from 'react-admin';\r\nimport LogoutIcon from '../icon/IcnLogout';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport compose from 'recompose/compose';\r\n\r\nconst MyLogoutButton = ({ translate, userLogout, ...rest }) => (\r\n <List>\r\n <ListItem button onClick={userLogout} {...rest} >\r\n <LogoutIcon />\r\n <ListItemText primary={translate(\"logout.title\")} />\r\n </ListItem>\r\n </List>\r\n);\r\n\r\nconst enhance = compose(\r\n translate,\r\n connect(undefined, { userLogout })\r\n);\r\n\r\nexport default enhance(MyLogoutButton);\r\n\r\n","import React from 'react';\r\nimport './App.css';\r\nimport { Admin, Resource, resolveBrowserLocale } from 'react-admin';\r\nimport authProvider from './authProvider';\r\nimport MyLayout from './layout/MyLayout';\r\nimport SysMessages_EN from './i18n/en/SystemWord';\r\nimport SysMessages_JP from './i18n/jp/SystemWord';\r\nimport AppMessages_EN from './i18n/en/AppWord';\r\nimport AppMessages_JP from './i18n/jp/AppWord';\r\nimport MyDashboard from './components/dashboard/MyDashboard';\r\nimport Login from './components/login/Login';\r\nimport resources from './components/resources';\r\nimport operationRules from './components/operation-rules';\r\nimport users from './components/users';\r\nimport terminals from './components/terminals';\r\nimport createHistory from 'history/createBrowserHistory';\r\nimport customRoutes from './customRoutes';\r\nimport dataProvider from './dataProvider';\r\nimport reports from './components/reports';\r\nimport MyLogoutButton from './layout/MyLogoutButton';\r\nimport Role from './const/Role';\r\n\r\nconst messages = {\r\n en: { SysMessages_EN, ...AppMessages_EN },\r\n ja: { ...SysMessages_JP, ...AppMessages_JP }\r\n};\r\nconst i18nProvider = locale => (messages[locale]) ? messages[locale] : messages[\"en\"];\r\nconst history = createHistory();\r\n\r\nconst App = () => (\r\n <Admin\r\n dashboard={MyDashboard}\r\n authProvider={authProvider}\r\n dataProvider={dataProvider}\r\n appLayout={MyLayout}\r\n locale={resolveBrowserLocale()}\r\n i18nProvider={i18nProvider}\r\n loginPage={Login}\r\n history={history}\r\n customRoutes={customRoutes}\r\n logoutButton={MyLogoutButton}\r\n catchAll={Login}\r\n >\r\n {permissions => [\r\n (permissions & Role.OPERATION_MANAGER) === Role.OPERATION_MANAGER ? <Resource name=\"resources\" {...resources} /> : null,\r\n (permissions & Role.OPERATION_MANAGER) === Role.OPERATION_MANAGER ? <Resource name=\"operation-rules\" {...operationRules} /> : null,\r\n (permissions & Role.OPERATION_MANAGER) === Role.OPERATION_MANAGER ? <Resource name=\"terminals\" {...terminals} /> : null,\r\n (permissions & Role.ACCOUNT_MANAGER) === Role.ACCOUNT_MANAGER ? <Resource name=\"users\" {...users} /> : null,\r\n <Resource name=\"resource-groups\" />,\r\n <Resource name=\"reports\" {...reports} />\r\n ]}\r\n </Admin>\r\n);\r\n\r\nexport default 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);\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 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 if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').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 \"core-js/stable\";\r\nimport \"regenerator-runtime/runtime\";\r\nimport 'react-app-polyfill/ie11';\r\nimport 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\n\r\nReactDOM.render(\r\n <App />,\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"],"sourceRoot":""}