{"version":3,"sources":["config/constants.js","components/Order/order.actionsTypes.js","components/Order/orders.reducers.js","config/reducers.js","components/Login/login.reducers.js","components/Order/orderDetails.reducers.js","components/DataLoader/dataLoader.reducers.js","components/DataLoader/dataLoader.actionsTypes.js","helpers/session/session.js","helpers/session/session.manager.js","config/index.js","helpers/localization/translator.js","helpers/message/template/MessageBody.js","helpers/message/Notifier.js","helpers/delivery/delivery.js","helpers/firebase/service.js","components/Login/login.actions.js","helpers/jwt/jwtHelper.js","helpers/security/security.js","config/store.js","helpers/security/security.middleware.js","config/middlewares.js","helpers/localization/localization.js","components/Login/templates/LoginForm.js","components/Order/orders.actions.js","components/Order/templates/Orders.js","helpers/utils/index.js","components/Order/templates/productTableConf.js","components/Order/templates/ProductModal.js","components/Order/templates/OrderDetails.js","config/cms.js","config/routs.js","helpers/message/template/Message.js","components/Navbar/templates/Navbar.js","helpers/firebase/messaging.js","components/DataLoader/DataLoader.js","components/DataLoader/dataLoader.actions.js","config/router.js","helpers/firebase/index.js","App.js","index.js","assets/img/logo.png","assets/img/back-icon.png","assets/img/logout.png"],"names":["LOGIN_ACTION_TYPES","CONNECTION_ERRORS","network_error","title","message","error","forced_close","reason","SUPPLIER_STATUSES","statusId","name","className","SUPPLIER_STATES","DRAFT","stateId","SENDED","CONFIRMED","SENT_TO_PARTNER","REJECTED","READY_TO_DELIVERY","stateById","id","USER_ROLES","USER_ROLE_IDS","MIN_ETA","finalizeOrders","orders","statuses","filter","order","includes","status","sort","a","b","distributor","localeCompare","combineReducers","login","state","arguments","length","undefined","action","type","isAuthorized","token","newState","Object","assign","isStateIncludesOrder","some","orderId","push","removeOrder","map","forEach","update","eta","find","_id","products","product","orderDetails","dataLoader","loading","loadingEnd","i18n","i18nReducer","toastr","toastrReducer","defaultOptions","authHandler","session","data","isAuthenticated","authenticate","joinHandler","joined","rooms","Session","constructor","url","options","this","on","eventName","callback","Error","socket","once","emit","disconnect","io","connect","security","getToken","bind","isJoined","indexOf","join","sessionId","_store","sessionManager","createSession","host","connectCallback","getSession","deleteSession","translator","translate","key","I18n","t","MessageBody","Component","render","React","createElement","props","collectBody","disableAutoClose","toastrOptions","showCloseButton","component","timeOut","removeOnHover","Notifier","warning","success","info","events","roomId","distributorListenersRegistered","ordersListenersRegistered","deliveredOrdersListenersRegistered","handleMessage","start","_self","connectToSession","getSessionData","stop","axios","get","concat","then","response","setSessionId","setRoomId","deleteSessionId","deleteRoomId","getSessionId","getRoomId","handleAuth","auth","connected","registerMessageHandler","authenticated","item","event","cb","handleEvent","initUser","severity","text","userJoined","userUpdated","orderAdded","orderFinished","orderUpdated","disconnected","logout","dispatch","delivery","unregisterServiceWorker","navigator","serviceWorker","getRegistrations","registrations","register","unregister","console","authHeader","authPrefix","authStorageKey","storage","localStorage","authRejectStatus","getJwtConfig","requestInterceptor","config","request","headers","method","responseInterceptor","store","window","location","replace","logoutFunc","Promise","reject","jwtHelper","configure","urlBase64Decode","str","output","decodeURIComponent","escape","atob","decodeToken","parts","split","decoded","JSON","parse","getTokenExpirationDate","exp","d","Date","setUTCSeconds","isTokenExpired","offsetSeconds","valueOf","getRequestInterceptor","getErrorResponseInterceptor","setToken","setItem","getItem","deleteToken","removeItem","types","getUser","user","createStore","reducers","applyMiddleware","ReduxThunk","shouldNotCheckAuthentication","interceptors","use","messages","translations","hy","LoginForm","super","preventDefault","stopPropagation","username","password","history","componentDidMount","setTimeout","forceUpdate","renderInput","placeholder","Form","Group","Control","value","autoComplete","onChange","e","setState","target","Feedback","isDisabled","autoFill","document","querySelectorAll","Container","Row","Col","xs","sm","md","lg","Image","src","logo","onSubmit","Check","label","Button","onClick","block","disabled","version","post","payload","addOrder","updateOrders","updateOrder","getOrder","forceUpdateOrder","getAllOrders","log","setInterval","registerSessionListeners","Orders","navigateToOrder","selectOrder","renderETAs","etaColor","hours","Math","abs","trunc","minutes","sign","convertEtaToHours","renderRow","isPromotionOrder","inCollecting","fluid","rowClass","Card","body","columns","isKey","ProductModal","_this","getValue","defaultKey","hasOwnProperty","onHide","onSave","show","onCancel","Modal","size","centered","Header","closeButton","Title","Body","code","Label","as","rows","Footer","OrderDetails","String","match","params","selectProduct","selectedProduct","goHome","closeProductModal","getRoleName","role","roleData","onProductChange","partnerQuantity","updateProductByApi","quantity","readyToDelivery","collectedOrderAmount","getDiscussion","discussion","handleChange","checked","handleWithIceChange","withIce","supplierCanEdit","componentWillReceiveProps","controlId","canReplaceProducts","moment","sendToPartnerDate","format","readyTime","comments","Table","column","lastMessage","rowBgClass","Fragment","configuration","groupName","colSpan","aria-controls","aria-expanded","Collapse","in","ListGroup","variant","Item","payableAmount","price","put","updateProduct","withPermissionControl","WrappedComponent","isRoleAllowed","roles","allowedRoles","allowAuthorized","Redirect","to","allowUnauthorized","home","ROUTS","path","exact","shouldBeWrapped","componentOptions","Login","Message","ReduxToastr","newestOnTop","preventDuplicates","position","transitionIn","transitionOut","progressBar","defaultProps","Panel","renderLogoutButton","Navbar","fixed","NavPanel","apiKey","process","REACT_APP_FIREBASE_API_KEY","authDomain","REACT_APP_FIREBASE_AUTH_DOMIAN","databaseURL","REACT_APP_FIREBASE_DATABASE_URL","projectId","REACT_APP_FIREBASE_PROJECT_ID","storageBucket","REACT_APP_FIREBASE_STORAGE_BUCKET","messagingSenderId","REACT_APP_FIREBASE_MESSAGING_SENDER_ID","appId","REACT_APP_FIREBASE_APP_ID","measurementId","REACT_APP_FIREBASE_MEASUREMENT_ID","firebase","initializeApp","DataLoader","loadData","initialized","end","async","messaging","getMessaging","vapidKey","REACT_APP_VAPID_KEY","onMessage","getNotificationToken","registerSupplierToken","nextProps","componentWillMount","App","wrapComponent","rout","Router","Switch","Route","addEventListener","updateViaCache","registerService","AppRouter","syncTranslationWithStore","loadTranslations","localization","setLocale","ReactDOM","Provider","getElementById","module","exports"],"mappings":"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","file":"static/js/main.c0f78ae3.chunk.js","sourcesContent":["export const LOGIN_ACTION_TYPES = {\n LOGIN_SUCCESS: 'login_success',\n LOGOUT_SUCCESS: 'logout_success'\n};\n\nexport const CONNECTION_ERRORS = {\n network_error: {\n title: '_server_disconnected_',\n message: '_refresh_page_',\n error: 'Network Error',\n },\n forced_close: {\n reason: ['forced close', 'io server disconnect'],\n }\n};\n\nexport const SUPPLIER_STATUSES = {\n ASSIGNED: {\n statusId: 0,\n name: '_assigned_',\n className: 'warning'\n },\n ACCEPTED: {\n statusId: 1,\n name: '_accepted_',\n className: 'success'\n },\n CONFIGURED: {\n statusId: 2,\n name: '_configured_',\n className: 'success'\n },\n ON_WAY: {\n statusId: 3,\n name: '_on_way_',\n className: 'info'\n },\n PICKED_UP: {\n statusId: 4,\n name: '_picked_up_',\n className: 'info'\n },\n DELIVERED: {\n statusId: 5,\n name: '_delivered_',\n className: 'danger'\n },\n VERIFIED: {\n statusId: 6,\n name: '_verified_',\n className: 'danger'\n },\n AT_SUPPLIER: {\n statusId: 7,\n name: '_at_supplier_',\n className: 'danger'\n }\n};\n\nexport const SUPPLIER_STATES = {\n DRAFT: {\n stateId: 0,\n name: '_draft_'\n },\n SENDED: {\n stateId: 6,\n name: '_sended_'\n },\n CONFIRMED: {\n stateId: 1,\n name: '_accepted_'\n },\n SENT_TO_PARTNER: {\n stateId: 3,\n name: '_sent_to_partner_'\n },\n REJECTED: {\n stateId: 2,\n name: '_rejected_'\n },\n READY_TO_DELIVERY: {\n stateId: 4,\n name: '_ready_to_delivery_'\n },\n\tstateById(id) {\n\t switch (id) {\n case SUPPLIER_STATES.CONFIRMED.stateId:\n return SUPPLIER_STATES.CONFIRMED;\n case SUPPLIER_STATES.REJECTED.stateId:\n return SUPPLIER_STATES.REJECTED;\n case SUPPLIER_STATES.SENT_TO_PARTNER.stateId:\n return SUPPLIER_STATES.SENT_TO_PARTNER;\n case SUPPLIER_STATES.READY_TO_DELIVERY.stateId:\n return SUPPLIER_STATES.READY_TO_DELIVERY;\n default:\n return SUPPLIER_STATES.DRAFT;\n\t }\n\t},\n};\n\nexport const USER_ROLES = [\n {\n name: '_call_center_',\n id: 4\n },\n {\n name: '_administrator_',\n id: 6\n },\n {\n name: '_order_manager_',\n id: 5\n },\n {\n name: '_distributor_manager_',\n id: 2\n },\n {\n name: '_supplier_',\n id: 10\n }\n];\n\nexport const USER_ROLE_IDS = {\n SUPPLIER: 10,\n ADMIN: 6,\n ORDER_MANAGER: 5,\n CALL_CENTER: 4,\n DIST_MANAGER: 2\n}\n\nexport const MIN_ETA = {\n ORDER: 20,\n SUPPLIER: 10\n}\n\n\n","export const FORCE_UPDATE_ORDER = 'force_update_order';\nexport const ADD_ORDER = 'add_order';\nexport const GET_ALL_ORDERS = 'get_all_orders';\nexport const SELECT_ORDER = 'SELECT_ORDER';\nexport const UPDATE_PRODUCT = 'update_product';\nexport const UPDATE_ORDERS = 'update_orders';\nexport const UPDATE_ORDER = 'update_order';\nexport const ORDER_FINISHED = 'order_finished';\n\n","import {\n FORCE_UPDATE_ORDER,\n GET_ALL_ORDERS,\n UPDATE_PRODUCT,\n UPDATE_ORDERS,\n UPDATE_ORDER,\n ADD_ORDER,\n ORDER_FINISHED\n} from './order.actionsTypes';\n\nimport { SUPPLIER_STATUSES, SUPPLIER_STATES } from '../../config/constants';\n\nconst finalizeOrders = (orders) => {\n const statuses = [\n SUPPLIER_STATUSES.VERIFIED.statusId,\n SUPPLIER_STATUSES.DELIVERED.statusId\n ];\n // return orders.filter(order => !statuses.includes(order.status))\n // .sort(order => order.state - SUPPLIER_STATES.READY_TO_DELIVERY.stateId);\n return orders.filter(order => !statuses.includes(order.status))\n .sort((a, b) => !a.distributor ? 1 : (!b.distributor ? -1 : a.distributor.localeCompare(b.distributor)));\n};\n\nexport default function orders(state = [], action) {\n let newState = Object.assign([], state);\n const isStateIncludesOrder = newState.some(order => (\n order &&\n order.orderId &&\n action.order &&\n action.order.orderId &&\n order.orderId === action.order.orderId)\n );\n switch (action.type) {\n case GET_ALL_ORDERS:\n return finalizeOrders([...action.orders]);\n case ADD_ORDER:\n if (!isStateIncludesOrder) {\n newState.push(action.order);\n }\n return finalizeOrders(newState);\n case FORCE_UPDATE_ORDER:\n if (action.order.removeOrder) {\n return finalizeOrders(newState.filter(order => (order.orderId != action.order.orderId)));\n }\n if (isStateIncludesOrder) {\n return finalizeOrders(newState.map(order => {\n if (order.orderId === action.order.orderId) {\n return action.order;\n }\n return order;\n }));\n } else {\n newState.push(action.order);\n return finalizeOrders(newState);\n }\n case UPDATE_ORDERS:\n return finalizeOrders(newState.map(order => {\n action.orders.forEach(update => {\n if (update.orderId === order.orderId) {\n order.eta = update.eta;\n order.state = update.state;\n order.status = update.status;\n }\n });\n return order;\n }));\n case UPDATE_ORDER:\n const update = action.order;\n return finalizeOrders(newState.map(order => {\n if (update.orderId === order.orderId) {\n return update;\n }\n return order;\n }));\n case ORDER_FINISHED:\n return finalizeOrders(newState.filter(order => action.order.orderId !== order.orderId));\n case UPDATE_PRODUCT:\n const order = newState.find(order => order._id === action.orderId);\n if (order) {\n order.products = order.products.map(product => {\n if (product._id === action.product._id) {\n product = { ...product, ...action.product };\n }\n return product;\n });\n }\n return finalizeOrders(newState);\n default:\n return newState;\n }\n}\n","import { combineReducers } from 'redux';\nimport { i18nReducer } from 'react-redux-i18n';\nimport { reducer as toastrReducer } from 'react-redux-toastr'\n\nimport login from '../components/Login/login.reducers';\nimport orders from '../components/Order/orders.reducers';\nimport orderDetails from '../components/Order/orderDetails.reducers';\nimport dataLoader from '../components/DataLoader/dataLoader.reducers';\n\nexport default combineReducers({\n login,\n orders,\n orderDetails,\n dataLoader,\n i18n: i18nReducer,\n toastr: toastrReducer,\n});\n","import { LOGIN_ACTION_TYPES } from '../../config/constants';\n\nexport default function login(state = {}, action) {\n\tswitch (action.type) {\n\t\tcase LOGIN_ACTION_TYPES.LOGIN_SUCCESS:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisAuthorized: true,\n\t\t\t\ttoken: action.token\n\t\t\t};\n\t\tcase LOGIN_ACTION_TYPES.LOGOUT_SUCCESS:\n\t\t\tlet newState = Object.assign({}, state);\n\t\t\tnewState.isAuthorized = false;\n\t\t\tdelete newState.token;\n\t\t\treturn newState;\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}","import {\n SELECT_ORDER,\n FORCE_UPDATE_ORDER,\n UPDATE_ORDER,\n UPDATE_ORDERS,\n ORDER_FINISHED\n} from './order.actionsTypes';\n\nexport default function orderDetails(state = {}, action) {\n let newState = Object.assign({}, state);\n switch (action.type) {\n case SELECT_ORDER:\n return {...action.order};\n case FORCE_UPDATE_ORDER:\n if(newState.orderId === action.order.orderId){\n return {...action.order};\n }\n return newState;\n case UPDATE_ORDER:\n if(newState.orderId === action.order.orderId){\n newState.products = action.order.products;\n newState.status = action.order.status;\n newState.state = action.order.state;\n }\n return newState;\n\n case UPDATE_ORDERS:\n action.orders.forEach(order => {\n if(order.orderId === newState.orderId) {\n newState.eta = order.eta;\n newState.state = order.state;\n newState.status = order.status;\n }\n });\n return newState;\n\n case ORDER_FINISHED:\n if(newState.orderId === action.order.orderId){\n newState = {};\n }\n return newState;\n default:\n return newState;\n }\n}\n","import { START_DATA_LOADING, END_DATA_LOADING } from './dataLoader.actionsTypes';\n\nexport default function orders(state = {}, action) {\n let newState = Object.assign({}, state);\n switch (action.type) {\n case START_DATA_LOADING:\n return { ...newState, loading: true, loadingEnd: true};\n case END_DATA_LOADING:\n return { ...newState, loading: false, loadingEnd: true};\n default:\n return newState;\n }\n}\n","export const START_DATA_LOADING = 'start_data_loading';\nexport const END_DATA_LOADING = 'end_data_loading';\n\n","import io from 'socket.io-client';\nimport security from '../security/security';\n\nconst defaultOptions = {\n 'transports': ['websocket'],\n 'rejectUnauthorized': false,\n 'secure': true,\n 'verify': false\n};\n\nconst authHandler = (session, data) => {\n\tsession.isAuthenticated = data.authenticate;\n};\n\nconst joinHandler = (session, order, data) => {\n\tif(data.joined) {\n\t\tsession.rooms.push(order);\n\t}\n};\n\nclass Session {\n constructor(url, id, options = defaultOptions) {\n this.id = id;\n this.url = url;\n this.options = options;\n this.isAuthenticated = false;\n this.rooms = [];\n }\n\n on(eventName, callback) {\n if ('string' !== typeof eventName) {\n throw new Error('eventName should be a string');\n }\n if ('function' !== typeof callback) {\n throw new Error('callback should be a function');\n }\n this.socket.on(eventName, callback);\n }\n\n once(eventName, callback) {\n if ('string' !== typeof eventName) {\n throw new Error('eventName should be a string');\n }\n if ('function' !== typeof callback) {\n throw new Error('callback should be a function');\n }\n this.socket.once(eventName, callback);\n }\n\n emit(eventName, data = {}) {\n if ('string' !== typeof eventName) {\n throw new Error('eventName should be a string');\n }\n this.socket.emit(eventName, data);\n }\n\n disconnect() {\n if (this.socket) {\n this.socket.io.disconnect();\n this.socket = null;\n }\n }\n\n connect(callback) {\n this.socket = io.connect(this.url, this.options);\n if ('function' === typeof callback) {\n this.on('connected', callback);\n }\n }\n\n authenticate(token = security.getToken(), callback) {\n this.emit('client:authenticate', { token: token });\n if ('function' === typeof callback) {\n this.once('authenticated', callback);\n }\n this.once('authenticated', authHandler.bind({}, this));\n }\n\n isJoined(order) {\n \treturn -1 !== this.rooms.indexOf(order);\n }\n\n join(order, callback) {\n this.emit('portalUser:join', { order: order , sessionId: this.id});\n if ('function' === typeof callback) {\n this.once('portalUser:joined', callback);\n }\n this.once('portalUser:joined', joinHandler.bind({}, this, order));\n }\n}\n\n\nexport default Session;\n","import { BASE_SOCKET_SERVER } from '../../config';\nimport Session from './session';\n\nconst _store = {};\n\nclass SessionManager {\n createSession(id, host = BASE_SOCKET_SERVER, options, connectCallback) {\n let session = this.getSession(id);\n if (!session) {\n session = new Session(host +id, id, options);\n _store[id] = session;\n session.connect(connectCallback);\n }\n return session;\n }\n\n getSession(id) {\n return _store[id] || null;\n }\n\n deleteSession(id) {\n delete _store[id];\n }\n}\n\nconst sessionManager = new SessionManager();\n\nexport default sessionManager;\n","//export const BASE_URL = 'https://www2.buy.am:3500/api/';\nexport const BASE_URL = '/api/';\n//export const BASE_SOCKET_SERVER = 'https://www2.buy.am:3500/';\nexport const BASE_SOCKET_SERVER = '/';\nexport const LANG = 'hy';","import { I18n } from 'react-redux-i18n';\n\nclass Тranslator {\n\ttranslate(key) {\n\t\treturn I18n.t(key) || key;\n\t}\n}\n\nconst translator = new Тranslator();\n\nexport default translator;","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport translator from '../../localization/translator';\n\nimport './message.css';\nclass MessageBody extends Component {\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

\n\t\t\t\t\t{translator.translate(this.props.message)}\n\t\t\t\t

\n\t\t\t
\n\t\t);\n\t}\n};\n\nexport default connect()(MessageBody);","import React from 'react';\nimport { toastr } from 'react-redux-toastr';\n\nimport MessageBody from './template/MessageBody';\nimport translator from '../localization/translator';\n\n\nlet collectBody = (message, disableAutoClose) => {\n\tconst toastrOptions = {\n\t\tshowCloseButton: disableAutoClose ? true : false,\n\t\tcomponent: (\n\t\t\t\n\t\t)\n\t};\n\tif (disableAutoClose) {\n\t\ttoastrOptions.timeOut = 0;\n\t\ttoastrOptions.removeOnHover = false;\n\t}\n\treturn toastrOptions;\n};\n\nexport default class Notifier {\n\tstatic warning(message, title='', disableAutoClose) {\n\t\ttoastr.warning(translator.translate(title), '', collectBody(message, disableAutoClose));\n\t}\n\tstatic success(message, title='', disableAutoClose) {\n\t\ttoastr.success(translator.translate(title), '', collectBody(message, disableAutoClose));\n\t}\n\tstatic error(message, title='', disableAutoClose) {\n\t\ttoastr.error(translator.translate(title), '', collectBody(message, disableAutoClose));\n\t}\n\tstatic info(message, title='', disableAutoClose) {\n\t\ttoastr.info(translator.translate(title), '', collectBody(message, disableAutoClose));\n\t}\n}","import axios from 'axios';\n\nimport { BASE_URL } from '../../config';\n\nimport sessionManager from '../session/session.manager';\nimport security from '../security/security';\nimport Notifier from '../message/Notifier';\n\nlet events = [];\n\nclass Delivery {\n constructor() {\n this.sessionId = null;\n this.roomId = null;\n this.distributorListenersRegistered = false;\n this.ordersListenersRegistered = false;\n this.deliveredOrdersListenersRegistered = false;\n this.handleMessage = this.handleMessage.bind(this);\n }\n\n start(sessionId) {\n const _self = this;\n if (security.isAuthorized()) {\n if (sessionId) {\n return this.connectToSession(sessionId);\n }\n this.getSessionData(function() {\n return _self.connectToSession(_self.sessionId);\n });\n }\n }\n\n stop() {\n const session = this.getSession();\n if(session) {\n session.disconnect();\n sessionManager.deleteSession(session.id);\n }\n this.distributorListenersRegistered = false;\n this.ordersListenersRegistered = false;\n this.deliveredOrdersListenersRegistered = false;\n }\n\n getSessionData(callback) {\n const _self = this;\n axios.get(`${BASE_URL}auth/delivery`)\n .then(function(response) {\n _self.sessionId = response.data.sessionId;\n _self.roomId = response.data.roomId;\n callback(response.data);\n });\n }\n\n setSessionId(sessionId) {\n this.sessionId = sessionId;\n }\n\n setRoomId(roomId) {\n this.roomId = roomId;\n }\n\n deleteSessionId() {\n this.sessionId = null;\n }\n\n deleteRoomId() {\n this.roomId = null;\n }\n\n getSessionId() {\n return this.sessionId;\n }\n\n getRoomId() {\n return this.roomId;\n }\n\n getSession(sessionId) {\n sessionId = sessionId || this.getSessionId();\n return sessionManager.getSession(sessionId);\n }\n\n connect(sessionId) {\n sessionId = sessionId || this.getSessionId();\n const session = sessionManager.createSession(sessionId);\n this.session = session;\n return session;\n }\n\n connectToSession(sessionId) {\n sessionId = sessionId || this.getSessionId();\n let session = sessionManager.getSession(sessionId);\n if (!session) {\n session = this.connect(sessionId);\n session.once('connected', this.auth.bind(this));\n return session.once('connected', (data) => {\n if (data.connected) {\n this.registerMessageHandler();\n }\n });\n }\n\n if (!this.session) {\n this.session = session;\n }\n\n if (!session.isAuthenticated) {\n return this.handleAuth();\n }\n\n this.join();\n }\n\n auth() {\n this.session.authenticate(undefined, this.handleAuth(this));\n }\n\n join(roomId) {\n roomId = roomId || this.getRoomId();\n this.session.join(roomId);\n }\n\n handleAuth() {\n const _self = this;\n this.session.once('authenticated', (data) => {\n if (data.authenticated) {\n _self.join();\n events.forEach((item) => {\n this.session[item.type](item.event, item.cb);\n });\n events = [];\n }\n });\n }\n\n handleEvent(event, type, cb) {\n const session = this.getSession();\n if (session) {\n session[type](event, cb);\n } else {\n events.push({event, type, cb});\n }\n }\n\n initUser() {\n this.handleEvent('delivery:portalUserInit', 'emit');\n }\n\n handleMessage(message) {\n\t\t\tNotifier[message.severity](message.text);\n }\n\n registerMessageHandler(cb = this.handleMessage) {\n this.handleEvent('delivery:message', 'on', cb);\n }\n\n userJoined(cb) {\n this.handleEvent('portalUser:joined', 'once', cb);\n }\n\n userUpdated(cb) {\n this.handleEvent('portalUser:updated', 'on', cb);\n }\n\n orderAdded(cb) {\n this.handleEvent('order:added', 'on', cb);\n }\n\n orderFinished(cb) {\n this.handleEvent('order:finished', 'on', cb);\n }\n\n orderUpdated(cb) {\n this.handleEvent('order:updated', 'on', cb);\n }\n\n disconnected(cb) {\n this.handleEvent('disconnect', 'on', cb);\n }\n}\n\nexport default new Delivery();\n","const unregisterServiceWorker = () => {\n try{\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.getRegistrations()\n .then(registrations => {\n for (let register in registrations){\n registrations[register].unregister();\n }\n })\n \n }\n } catch (error) {\n console.error(error);\n }\n}\nexport {\n unregisterServiceWorker\n}","import axios from 'axios';\n\nimport {\n BASE_URL,\n} from '../../config';\n\nimport security from '../../helpers/security/security';\nimport delivery from '../../helpers/delivery/delivery';\nimport { unregisterServiceWorker } from \"../../helpers/firebase/service\"\nimport { LOGIN_ACTION_TYPES } from '../../config/constants';\n\nexport const login = (user, cb) => {\n return (dispatch) => {\n axios.post(`${BASE_URL}auth/supplier-login`, {\n username: user.username,\n password: user.password\n })\n .then(function (response) {\n const payload = response.data;\n security.login(payload.token, payload);\n delivery.setSessionId(payload.sessionId);\n delivery.setRoomId(payload.roomId);\n delivery.start(payload.sessionId);\n dispatch({\n type: LOGIN_ACTION_TYPES.LOGIN_SUCCESS,\n token: payload.token\n });\n cb();\n });\n }\n};\n\nexport const logout = (cb) => {\n return (dispatch) => {\n security.logout();\n delivery.stop();\n unregisterServiceWorker();\n if('function' === typeof dispatch){\n dispatch({\n type: LOGIN_ACTION_TYPES.LOGOUT_SUCCESS\n });\n }\n if ('function' === typeof cb) {\n cb();\n }\n };\n};\n\nexport const registerSupplierToken = ( token) => {\n return () => {\n axios.post(`${BASE_URL}user/notification`, { token });\n }\n};","import { logout } from '../../components/Login/login.actions';\n\nlet options = {\n authHeader: 'Authorization',\n authPrefix: 'Bearer ',\n authStorageKey: 'jwtToken',\n storage: localStorage,\n authRejectStatus: 401\n};\n\nconst getJwtConfig = () => {\n return options;\n};\n\nconst requestInterceptor = function(config, request){\n const token = this.getToken();\n if (token) {\n if(request.headers[request.method]) {\n request.headers[request.method][config.authHeader] = config.authPrefix + token;\n } else {\n request.headers[config.authHeader] = config.authPrefix + token;\n }\n }\n return request;\n};\n\nconst responseInterceptor = function(config, error) {\n if (error.response && config.authRejectStatus === error.response.status) {\n if (this.store) {\n const logoutFunc = logout(()=>{\n window.location.replace('/');\n });\n logoutFunc(()=>{});\n }\n }\n return Promise.reject(error);\n};\n\nclass JwtHelper {\n configure(store, config) {\n if(store) {\n this.store = store;\n }\n if(config) {\n options = config;\n }\n }\n\n urlBase64Decode(str) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += '==';\n break;\n case 3:\n output += '=';\n break;\n default:\n throw new Error('Illegal base64url string!');\n }\n return decodeURIComponent(escape(window.atob(output)));\n }\n\n decodeToken(token) {\n let parts = token.split('.');\n\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n\n let decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token');\n }\n\n return JSON.parse(decoded);\n }\n\n getTokenExpirationDate(token) {\n let decoded;\n decoded = this.decodeToken(token);\n\n if (typeof decoded.exp === \"undefined\") {\n return null;\n }\n\n let d = new Date(0); // The 0 here is the key, which sets the date to the epoch\n d.setUTCSeconds(decoded.exp);\n\n return d;\n }\n\n isTokenExpired(token, offsetSeconds) {\n let d = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n if (d === null) {\n return false;\n }\n\n // Token expired?\n return !(d.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\n }\n\n getRequestInterceptor(config) {\n config = config || getJwtConfig();\n return requestInterceptor.bind(this, config);\n }\n\n getErrorResponseInterceptor(config) {\n config = config || getJwtConfig();\n return responseInterceptor.bind(this, config);\n }\n\n setToken(token, config) {\n config = config || getJwtConfig();\n config.storage.setItem(config.authStorageKey, token);\n }\n\n getToken(config) {\n config = config || getJwtConfig();\n return config.storage.getItem(config.authStorageKey);\n }\n\n deleteToken(config) {\n config = config || getJwtConfig();\n config.storage.removeItem(config.authStorageKey);\n }\n}\n\nconst jwtHelper = new JwtHelper();\n\nexport default jwtHelper;\n\n","import jwtHelper from '../jwt/jwtHelper';\n\n\nclass Security {\n configure(store, types) {\n if (store) {\n this.store = store;\n }\n }\n\n isAuthorized() {\n const token = jwtHelper.getToken();\n return token && !jwtHelper.isTokenExpired(token);\n }\n\n login(token) {\n jwtHelper.setToken(token);\n }\n\n logout() {\n jwtHelper.deleteToken();\n }\n\n getToken() {\n return jwtHelper.getToken();\n }\n\n getUser() {\n const token = jwtHelper.getToken();\n let user = {};\n if (token&& this.isAuthorized()) {\n user = jwtHelper.decodeToken(token);\n }\n return user;\n }\n}\n\nconst security = new Security();\n\nexport default security;\n","import {\n createStore,\n applyMiddleware\n} from 'redux';\nimport ReduxThunk from 'redux-thunk';\nimport reducers from './reducers';\nimport securityMiddleware from '../helpers/security/security.middleware';\nlet store = createStore(reducers, applyMiddleware(ReduxThunk, securityMiddleware));\n\nexport default store;\n","import security from './security';\nimport {\n logout\n} from '../../components/Login/login.actions';\n\nexport default (store) => {\n return function dispatchIfIsAuthorized(action) {\n if (!action.shouldNotCheckAuthentication &&!security.isAuthorized() && security.getToken()) {\n return logout(()=>{\n window.location.replace('/');\n });\n }\n return action;\n };\n};","import axios from 'axios';\n\nimport jwtHelper from '../helpers/jwt/jwtHelper';\nimport Notifier from '../helpers/message/Notifier';\nimport { CONNECTION_ERRORS } from './constants';\n\naxios.interceptors.response.use(null, jwtHelper.getErrorResponseInterceptor());\naxios.interceptors.response.use(null, function (error) {\n\tif (error.response && error.response.data && error.response.data.messages) {\n\t\terror.response.data.messages.forEach(function(message) {\n\t\t\tNotifier[message.severity](message.text);\n\t\t});\n\t} else if (error.message === CONNECTION_ERRORS.network_error.error) {\n\t\tNotifier.error(CONNECTION_ERRORS.network_error.message, CONNECTION_ERRORS.network_error.title, true);\n\t}\n\treturn Promise.reject(error);\n});\naxios.interceptors.request.use(jwtHelper.getRequestInterceptor());\n","import hy from './languages/hy.json';\n\nconst translations = {\n hy: hy\n};\nexport default translations;\n","import React, { Component } from 'react';\nimport {\n\tContainer,\n\tRow,\n\tCol,\n\tForm,\n\tButton,\n\tImage\n} from 'react-bootstrap';\n\nimport translator from '../../../helpers/localization/translator';\nimport { connect } from 'react-redux';\nimport { login } from '../login.actions';\nimport { version } from '../../../../package.json'\nimport logo from '../../../assets/img/logo.png';\n\nclass LoginForm extends Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tusername: '',\n\t\t\tpassword: '',\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tsetTimeout(() => {\n\t\t\tthis.forceUpdate();\n\t\t}, 1);\n\t}\n\n\tauth = (event) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tlet username = this.state.username;\n\t\tlet password = this.state.password;\n\t\tthis.props.login({ username, password }, () => {\n\t\t\tthis.props.history.push('/order');\n\t\t});\n\t}\n\n\trenderInput(type, placeholder, name) {\n\t\treturn (\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({ [name]: e.target.value });\n\t\t\t\t\t}} />\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\trender() {\n\t\tlet isDisabled = true,\n\t\t\tautoFill = false;\n\t\ttry {\n\t\t\tautoFill = document.querySelectorAll('input:-webkit-autofill').length === 2;\n\t\t} catch(e) { }\n\t\tif (autoFill || (this.state.username !== '' && this.state.password !== '')) {\n\t\t\tisDisabled = false;\n\t\t} else {\n\t\t\tisDisabled = true;\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{this.renderInput('text', '_username_', 'username')}\n\t\t\t\t\t\t\t{this.renderInput('password', '_password_', 'password')}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{translator.translate(\"_login_\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{`${translator.translate('_version_')}: v${version}`}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n};\n\nexport default connect(null, {\n\tlogin\n})(LoginForm);\n","import { BASE_URL } from '../../config';\n\nimport {\n FORCE_UPDATE_ORDER,\n UPDATE_ORDERS,\n GET_ALL_ORDERS,\n ADD_ORDER,\n UPDATE_PRODUCT,\n SELECT_ORDER,\n UPDATE_ORDER,\n ORDER_FINISHED\n} from './order.actionsTypes';\n\nimport axios from 'axios';\n\nimport delivery from '../../helpers/delivery/delivery';\nimport Notifier from '../../helpers/message/Notifier';\nimport {\n CONNECTION_ERRORS\n} from '../../config/constants';\n\n\nexport const addOrder = (order) => {\n return {\n type: ADD_ORDER,\n order\n };\n};\n\nconst registerSessionListeners = (dispatch) => {\n if (delivery.ordersListenersRegistered) {\n return;\n }\n let orders = [];\n delivery.orderAdded((order) => {\n console.log(\"orderAdded---->\",order)\n dispatch(getOrder(order, addOrder));\n });\n delivery.orderUpdated((order) => {\n console.log(\"orderUpdated---->\",order)\n if (order.forceUpdate) {\n console.log(\"forceUpdate---->\",order.forceUpdate)\n dispatch(getOrder(order, forceUpdateOrder));\n }\n orders.push(order);\n });\n delivery.disconnected((reason) => {\n if (-1 === CONNECTION_ERRORS.forced_close.reason.indexOf(reason)) {\n Notifier.error(CONNECTION_ERRORS.network_error.message, CONNECTION_ERRORS.network_error.title, true);\n }\n })\n delivery.orderFinished( (order) => {\n dispatch(orderFinished(order));\n });\n setInterval(() => {\n if (orders.length) {\n dispatch(updateOrders(orders));\n orders = [];\n }\n }, 5000);\n delivery.ordersListenersRegistered = true;\n};\n\nexport const updateOrders = (orders) => {\n return {\n type: UPDATE_ORDERS,\n orders\n };\n};\n\nexport const orderFinished = (order) => {\n return {\n type: ORDER_FINISHED,\n order\n };\n};\n\nexport const updateOrder = (order) => {\n return {\n type: UPDATE_ORDER,\n order\n };\n};\n\nexport const updateProduct = (product, orderId) => {\n return {\n type: UPDATE_PRODUCT,\n product,\n orderId\n };\n}\n\nexport const updateProductByApi = (orderId, product) => {\n return (dispatch) => {\n axios.put(`${BASE_URL}order/discuss/${orderId}/${product._id}`, product)\n .then((response) => {\n if (response.data) {\n dispatch(updateProduct(response.data, orderId));\n Notifier.success('_product_successfully_updated_', '_product_updated_');\n }\n });\n };\n};\n\nexport const getOrder = (order, callback) => {\n return (dispatch) => {\n axios.get(`${BASE_URL}order/supplier/${order.orderId}`)\n .then((response) => {\n if (response.data) {\n dispatch(callback(response.data));\n }\n });\n };\n};\n\nexport const forceUpdateOrder = (order) => {\n return {\n type: FORCE_UPDATE_ORDER,\n order,\n };\n};\n\nexport const getAllOrders = (cb) => {\n return (dispatch) => {\n axios.get(`${BASE_URL}order/supplier`)\n .then((response) => {\n registerSessionListeners(dispatch);\n if (response.data) {\n dispatch({\n type: GET_ALL_ORDERS,\n orders: response.data\n });\n }\n if('function' === typeof cb) {\n cb(response);\n }\n });\n };\n};\n\nexport const selectOrder = (order) => {\n return {\n type: SELECT_ORDER,\n order\n };\n};\n\nexport const readyToDelivery = (orderId, data, cb) => {\n return (dispatch) => {\n axios.put(`${BASE_URL}order/readyToDelivery/${orderId}/`, data)\n .then((response) => {\n if (response.data) {\n dispatch(updateOrder(response.data));\n Notifier.success('_product_successfully_updated_', '_product_updated_');\n cb(response.data);\n }\n });\n };\n};\n\nexport const inCollecting = (orderId, inCollecting) => {\n return (dispatch) => {\n axios.put(`${BASE_URL}order/inCollecting/${orderId}/${inCollecting}/`)\n .then((response) => {\n if (response.data) {\n dispatch(updateOrder(response.data));\n Notifier.success('_product_successfully_updated_', '_product_updated_');\n }\n });\n };\n};\n\nexport const withIce = (orderId, withIce) => {\n return (dispatch) => {\n axios.put(`${BASE_URL}order/withIce/${orderId}/${withIce}/`)\n .then((response) => {\n if (response.data) {\n dispatch(updateOrder(response.data));\n Notifier.success('_product_successfully_updated_', '_product_updated_');\n }\n });\n };\n};\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport {\n\tContainer,\n\tRow,\n\tCol,\n\tCard\n} from 'react-bootstrap';\nimport {\n\tselectOrder\n} from '../orders.actions';\nimport translator from '../../../helpers/localization/translator';\nimport { convertEtaToHours } from '../../../helpers/utils/';\nimport { SUPPLIER_STATUSES, SUPPLIER_STATES, MIN_ETA } from '../../../config/constants';\n\nclass Orders extends Component {\n\n\tnavigateToOrder = (id, order) => () => {\n\t\tthis.props.selectOrder(order)\n\t\tthis.props.history.push(`/order/${id}`);\n\t}\n\n\trenderETAs(order) {\n\t\tlet etaColor = order.eta <= MIN_ETA.SUPPLIER ? 'bg-danger' : 'bg-warning';\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{translator.translate('_packaging_time_')}՝\n\t\t\t\t\t{convertEtaToHours(order.eta)}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\trenderRow(order) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t{
{order.distributor}
}\n\t\t\t\t{order.isPromotionOrder ?
{order.orderId}
:
{order.orderId}
}\n\t\t\t\t{order.status !== SUPPLIER_STATUSES.PICKED_UP.statusId ? this.renderETAs(order) : null}\n\t\t\t\t{order.inCollecting && order.status !== SUPPLIER_STATUSES.PICKED_UP.statusId ?\n\t\t\t\t\t
{translator.translate('_collecting_')}
: null}\n\t\t\t
\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{translator.translate('_orders_')}\n\t\t\t\t\n\t\t\t\n\t\t\t{this.props.orders.map((order) => {\n\t\t\t\tlet rowClass = '';\n\t\t\t\tif (order.state === SUPPLIER_STATES.READY_TO_DELIVERY.stateId) {\n\t\t\t\t\trowClass = 'bg-success';\n\t\t\t\t} else if (order.state === SUPPLIER_STATES.SENDED.stateId) {\n\t\t\t\t\trowClass = 'bg-info';\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.renderRow(order)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t})}\n\t\t);\n\t}\n};\n\nlet mapStateToProps = (state) => {\n\treturn {\n\t\torders: state.orders\n\t};\n};\n\nexport default connect(mapStateToProps, { selectOrder })(Orders);\n","export const convertEtaToHours = (eta) => {\n if (eta === null) {\n return '';\n }\n let hours = Math.abs(Math.trunc(eta / 60)),\n minutes = Math.abs(eta % 60),\n sign = (eta >= 0) ? '' : '-';\n if (hours <= 9) {\n hours = `0${hours}`;\n }\n if (minutes <= 9) {\n minutes = `0${minutes}`;\n }\n return `${sign}${hours}:${minutes}`;\n};","export const columns = [\n {\n name: '_ean_',\n key: 'ean',\n className: 'text-left border-top-0 border-bottom-0',\n isKey: false\n },\n {\n name: '_name_',\n key: 'name',\n className: 'text-left border-top-0 border-bottom-0',\n isKey: false\n },\n {\n name: '_comment_',\n key: 'customerComment',\n className: 'text-left border-top-0 border-bottom-0',\n isKey: false\n },\n {\n name: '_price_',\n key: 'price',\n className: 'text-left border-top-0 border-bottom-0',\n isKey: false\n },\n {\n name: '_quantity_',\n key: 'quantity',\n className: 'text-right border-top-0 border-bottom-0',\n isKey: false\n },\n {\n name: '_suggested_quantity_',\n key: 'partnerQuantity',\n className: 'text-right border-top-0 border-bottom-0',\n isKey: false\n },\n {\n name: '_id_',\n key: 'code',\n className: 'text-left border-top-0 border-bottom-0',\n isKey: true\n }\n]","import React, { Component } from 'react';\nimport {\n\tButton,\n Form,\n Row,\n Col,\n\tModal\n} from 'react-bootstrap';\nimport translator from '../../../helpers/localization/translator';\n\nclass ProductModal extends Component {\n constructor(props) {\n super(props);\n this.state = {};\n }\n\n onChange = (key) => (e) => {\n this.setState({[key]: e.target.value});\n }\n\n getValue = (key, defaultKey = '') => {\n if(this.state.hasOwnProperty(key)) {\n return this.state[key] || '';\n }\n return this.props.product[key] || this.props.product[defaultKey] || '';\n }\n\n onHide = () =>{\n this.setState({});\n if('function' === typeof this.props.onHide){\n this.props.onHide();\n }\n }\n\n onSave = () => {\n if('function' === typeof this.props.onSave){\n const { _id } = this.props.product;\n this.props.onSave({_id, ...this.state});\n }\n }\n\n\trender() {\n const { show, onCancel, product} = this.props;\n\t\treturn (\n \n \n {translator.translate(\"_edit_\")}\n \n \n \n \n \n {product.name}\n \n \n {product.code}\n \n \n \n \n \n {translator.translate('_quantity_')}\n \n \n \n \n \n \n {translator.translate('_comments_')}\n \n \n \n \n \n \n \n \n );\n\t}\n};\n\nexport default ProductModal;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport {\n\tContainer,\n\tRow,\n\tCol,\n\tForm,\n\tTable,\n\tButton,\n\tImage,\n\tCollapse,\n\tCard,\n\tListGroup\n} from 'react-bootstrap';\nimport { getAllOrders, updateProductByApi, readyToDelivery, inCollecting, withIce } from '../orders.actions';\nimport translator from '../../../helpers/localization/translator';\nimport { columns } from './productTableConf';\nimport ProductModal from './ProductModal';\nimport logo from '../../../assets/img/back-icon.png';\nimport { USER_ROLES, USER_ROLE_IDS, SUPPLIER_STATES } from '../../../config/constants';\nimport moment from 'moment'\nclass OrderDetails extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tconst order = this.getOrder() || {};\n\t\tthis.state = {\n\t\t\tselectedProduct: null,\n\t\t\tinCollecting: order.inCollecting,\n\t\t\twithIce: order.withIce || false,\n\t\t\tcollectedOrderAmount: order.collectedOrderAmount,\n\t\t\tsupplierCanEdit: order.supplierCanEdit\n\t\t};\n\t}\n\n\tgetOrder = () => {\n\t\tif(this.props.orderDetails.products) {\n\t\t\treturn this.props.orderDetails;\n\t\t}\n\t\treturn this.props.orders.find( order => String(order.orderId) === this.props.match.params.id);\n\t}\n\n\tselectProduct = (selectedProduct) => () => {\n\t\tconst order = this.getOrder();\n\t\tif(order.state === SUPPLIER_STATES.READY_TO_DELIVERY.stateId) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setState({selectedProduct})\n\t}\n\n\tgoHome = () => this.props.history.push('/order');\n\n\tcloseProductModal = () => {\n\t\tthis.setState({ selectedProduct: null });\n\t}\n\n\tgetRoleName = (role) => {\n\t\tconst roleData = USER_ROLES.find(user => user.id === role) || {};\n\t\tif(roleData.name) {\n\t\t\treturn translator.translate(roleData.name);\n\t\t}\n\t\treturn '';\n\t}\n\n\tonProductChange = (product) => {\n\t\tconst order = this.getOrder();\n\t\tconst { partnerQuantity, message, _id} = product;\n\t\tthis.props.updateProductByApi(order._id, {_id, quantity: partnerQuantity, message});\n\t\tthis.closeProductModal();\n\t}\n\n\treadyToDelivery = () => {\t\t\n\t\tconst order = this.getOrder();\n\t\tconst data = { collectedOrderAmount: this.state.collectedOrderAmount };\n\t\tthis.props.readyToDelivery(order._id, data, ()=>{\n\t\t\tthis.goHome();\n\t\t});\n\t}\n\n\tgetDiscussion = (discussion) =>{\n\t\treturn discussion.filter(item => !!item.message);\n\t}\n\n\thandleChange = (e) => {\n\t\tconst order = this.getOrder();\n\t\tthis.props.inCollecting(order._id, e.target.checked);\n\t\tthis.setState({ inCollecting: e.target.checked });\n\t}\n\n\n\thandleWithIceChange = (e) => {\n\t\tconst order = this.getOrder();\n\t\tthis.props.withIce(order._id, e.target.checked);\n\t\tthis.setState({ withIce: e.target.checked });\n\t}\n\n\tcomponentWillReceiveProps() {\n\t\tconst order = this.getOrder();\n\t\tif (order) {\n\t\t\tthis.setState({ collectedOrderAmount: order.collectedOrderAmount, supplierCanEdit: order.supplierCanEdit });\n\t\t}\n\t}\n\n\trender() {\n\t\tif(this.props.dataLoader.loading) {\n\t\t\treturn null;\n\t\t}\n\t\tconst order = this.getOrder();\n\t\tif(!order || !order._id) {\n\t\t\treturn this.goHome() || null;\n\t\t}\n\t\tif(!order.products) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{/* TODO use readyForDelivery button instead of this checkbox */}\n\t\t\t\t\t\n\t\t\t\t\t\t this.handleChange(e)}\n\t\t\t\t\t\t\tlabel={translator.translate('_collecting_')} />\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{/* TODO use readyForDelivery button instead of this checkbox */}\n\t\t\t\t\t\n\t\t\t\t\t\t this.handleWithIceChange(e)}\n\t\t\t\t\t\t\tlabel={translator.translate('_with_ice_')} />\n\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t{translator.translate('_orders_number_')}\n\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.match.params.id}\n\t\t\t\t\t
\n\t\t\t\t\t{translator.translate('_can_replace_products_')}\n\t\t\t\t\t\t{order.canReplaceProducts ? translator.translate('_yes_') : translator.translate('_no_')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{translator.translate('_send_to_partner_date_')}\n\t\t\t\t\t
\n\t\t\t\t\t\t{moment(order.sendToPartnerDate).format('MM/DD/YYYY HH:mm')}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{translator.translate('_ready_time_')}\n\t\t\t\t\t
\n\t\t\t\t\t\t{moment(order.readyTime).format('MM/DD/YYYY HH:mm')}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n \t\t\t\t{translator.translate('_comments_')}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{columns.map(column => {\n\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{order.products.map(product => {\n\t\t\t\t\t\t\tconst discussion = this.getDiscussion(product.discussion);\n\t\t\t\t\t\t\tconst rowClass = !discussion.length ? \"border-bottom border-solid\" : '';\n\t\t\t\t\t\t\tconst lastMessage = discussion[discussion.length -1] || {};\n\t\t\t\t\t\t\tconst rowBgClass = (lastMessage.role === USER_ROLE_IDS.SUPPLIER) ? 'bg-success' : 'bg-warning'\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{columns.map(column => {\n\t\t\t\t\t\t\t\t\t\tlet value = product[column.key];\n\t\t\t\t\t\t\t\t\t\tif(column.key === 'name' && product.configuration.length){\n\t\t\t\t\t\t\t\t\t\t\tproduct.configuration.forEach(config => {\n\t\t\t\t\t\t\t\t\t\t\t\tvalue = `${value}, ${config.groupName}`;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!!discussion.length && \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
{translator.translate(column.name)}
{value}
\n\t\t\t\t\t\t\t\t\t\t\n \t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ [product._id]: !this.state[product._id] })}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.getRoleName(lastMessage.role)} : {lastMessage.message}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{discussion.map(item => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst rowClass = (item.role === USER_ROLE_IDS.SUPPLIER) ? 'bg-success' : 'bg-warning'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.getRoleName(item.role)} : {item.message}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{translator.translate('_payable_amount_')} :\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{order.payableAmount}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{translator.translate('_total_price_')} :\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{order.price}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{translator.translate('_collected_order_amount_')} :\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t this.setState({ collectedOrderAmount: e.target.value })}\n\t\t\t\t\t\t\t\t\tvalue={this.state.collectedOrderAmount} />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{translator.translate(\"_ready_to_delivery_\")}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{!! this.state.selectedProduct && }\n\t\t
);\n\t}\n};\n\nlet mapStateToProps = (state) => {\n\treturn {\n\t\torders: state.orders,\n\t\torderDetails: state.orderDetails,\n\t\tdataLoader: state.dataLoader\n\t};\n};\n\nexport default connect(mapStateToProps, { getAllOrders, updateProductByApi, readyToDelivery, inCollecting, withIce })(OrderDetails);\n","import React, {Component} from 'react';\nimport {\n Redirect\n} from 'react-router-dom';\n\nimport security from '../helpers/security/security';\n\nexport const Cms = (props) => {\n if (security.isAuthorized()) {\n return ;\n }\n return ;\n};\n\nexport const withPermissionControl = (WrappedComponent, options) => {\n return class withPermissionControl extends Component {\n isRoleAllowed(roles) {\n return -1 !== roles.indexOf(security.getUser().role);\n }\n render() {\n const {allowedRoles} = options;\n const isAuthorized = security.isAuthorized();\n if(options.allowAuthorized && !isAuthorized){\n return ;\n }\n if(options.allowUnauthorized && isAuthorized){\n return ;\n }\n if(allowedRoles && (!isAuthorized || !this.isRoleAllowed(allowedRoles))) {\n return ;\n }\n return ;\n }\n }\n};","import Login from '../components/Login/templates/LoginForm';\nimport Orders from '../components/Order/templates/Orders';\nimport OrderDetails from '../components/Order/templates/OrderDetails';\nimport { Cms } from './cms';\n\nexport const ROUTS = [\n {\n path: '/order',\n exact: true,\n component: Orders,\n shouldBeWrapped: true,\n componentOptions: {\n allowAuthorized: true\n },\n name: 'orders'\n },\n {\n path: '/order/:id',\n exact: true,\n component: OrderDetails,\n shouldBeWrapped: true,\n componentOptions: {\n allowAuthorized: true\n },\n name: 'orders'\n },\n {\n path: '/login/',\n exact: true,\n component: Login,\n shouldBeWrapped: true,\n componentOptions: {\n allowUnauthorized: true,\n },\n name: 'login'\n },\n {\n path: '/',\n exact: false,\n component: Cms,\n shouldBeWrapped: false,\n name: 'root'\n }\n];","import React, {\tComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport ReduxToastr from 'react-redux-toastr';\n\nclass Message extends Component {\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n};\n\nMessage.defaultProps = {\n\ttimeOut: 5000,\n\tnewestOnTop: true,\n\tpreventDuplicates: true,\n\tposition: 'top-right',\n\ttransitionIn: 'fadeIn',\n\ttransitionOut: 'fadeOut'\n};\n\nMessage.propTypes = {\n\ttimeOut: PropTypes.number,\n\tnewestOnTop: PropTypes.bool,\n\tpreventDuplicates: PropTypes.bool,\n\tposition: PropTypes.string,\n\ttransitionIn: PropTypes.string,\n\ttransitionOut: PropTypes.string\n};\n\nexport default connect()(Message);\n","\nimport React, { Component } from 'react';\nimport { Navbar, Button, Image } from 'react-bootstrap';\nimport { connect } from 'react-redux';\nimport security from '../../../helpers/security/security';\nimport { logout } from '../../Login/login.actions';\nimport translator from '../../../helpers/localization/translator';\nimport logo from '../../../assets/img/logout.png';\n\nclass Panel extends Component {\n renderLogoutButton = () => {\n if(!security.isAuthorized() && !this.props.login.isAuthorized) {\n return null;\n }\n const user = security.getUser();\n return (
\n {user.name} |\n \n
)\n }\n\n render() {\n return (\n {this.renderLogoutButton()}\n );\n }\n};\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tlogin: state.login\n\t};\n};\n\nconst NavPanel = connect(mapStateToProps, { logout })(Panel);\n\nexport { NavPanel }\n\n","import { initializeApp } from \"firebase/app\";\nimport { getMessaging, onMessage, getToken } from \"firebase/messaging\"\n\nimport Notifier from '../message/Notifier';\n\nconst config = {\n apiKey: process.env.REACT_APP_FIREBASE_API_KEY,\n authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMIAN,\n databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,\n projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,\n storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,\n messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,\n appId: process.env.REACT_APP_FIREBASE_APP_ID,\n measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID\n};\n\nconst firebase = initializeApp(config);\n\n\nconst registerService = async () => {\n const registration = await navigator.serviceWorker.register('/firebase-messaging-sw.js', {\n updateViaCache: 'none'\n });\n return registration;\n // messaging.useServiceWorker(registration)\n}\n\nconst getNotificationToken = async () => {\n try {\n const messaging = getMessaging(firebase)\n\n const token = await getToken(messaging,{vapidKey: process.env.REACT_APP_VAPID_KEY}) //await messaging.getToken();\n console.log(token)\n onMessage(messaging,(payload) => {\n const { data } = payload;\n Notifier.info( data.body, data.title, true);\n })\n return token;\n } catch (error) {\n console.error(error);\n }\n}\n\nexport {\n registerService,\n getNotificationToken\n};","import { Component } from 'react';\n\nimport { connect } from 'react-redux';\nimport { getAllOrders } from '../Order/orders.actions';\nimport { registerSupplierToken } from '../Login/login.actions';\nimport security from '../../helpers/security/security';\nimport { getNotificationToken } from '../../helpers/firebase/messaging';\nimport { start, end } from './dataLoader.actions';\n\nclass DataLoader extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.initialized = false;\n\t}\n\n\tloadData = (props) => {\n\t\tif(!this.initialized && (props.login.isAuthorized || security.isAuthorized())) {\n\t\t\tthis.props.start();\n\t\t\tthis.props.getAllOrders(() => {\n\t\t\t\tthis.props.end();\n\t\t\t});\n\t\t\tgetNotificationToken().then((token) => {\n\t\t\t\tif (token) {\n\t\t\t\t\tthis.props.registerSupplierToken(token);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.initialized = true;\n\t\t}\n\t}\n\n\tcomponentWillReceiveProps(nextProps) {\n\t\tthis.loadData(nextProps);\n\t}\n\n\tcomponentWillMount() {\n\t\tthis.loadData(this.props);\n\t}\n\n\trender() {\n\t\treturn null;\n\t}\n};\n\nlet mapStateToProps = (state) => {\n\treturn {\n\t\tlogin: state.login\n\t};\n};\n\n\nexport default connect(mapStateToProps, { getAllOrders, registerSupplierToken, start, end })(DataLoader);\n","import { START_DATA_LOADING, END_DATA_LOADING } from './dataLoader.actionsTypes';\n\nexport const start = () => {\n return {\n type: START_DATA_LOADING\n };\n};\n\nexport const end = () => {\n return {\n type: END_DATA_LOADING\n };\n};\n","import React, { Component } from 'react';\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\n\nimport { ROUTS } from './routs';\nimport { withPermissionControl } from './cms';\nimport Message from '../helpers/message/template/Message';\nimport { NavPanel } from '../components/Navbar/templates/Navbar';\nimport DataLoader from '../components/DataLoader/DataLoader';\n\nclass App extends Component {\n wrapComponent(rout) {\n if (rout.shouldBeWrapped) {\n return withPermissionControl(rout.component, rout.componentOptions);\n }\n return rout.component;\n }\n\n render() {\n return (\n \n \n \n {ROUTS.map(rout => {\n return \n })}\n \n \n );\n }\n}\n\nexport default App;\n","import { registerService } from './messaging';\n\nexport const initFirebase = () => {\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', async () => {\n registerService();\n });\n }\n}","import React from 'react';\nimport AppRouter from './config/router'\nimport { initFirebase } from './helpers/firebase';\ninitFirebase();\nfunction App() {\n return ();\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport 'bootstrap/dist/css/bootstrap.css';\nimport 'react-redux-toastr/lib/css/react-redux-toastr.min.css';\n\nimport { Provider } from 'react-redux';\nimport { loadTranslations, setLocale, syncTranslationWithStore} from 'react-redux-i18n';\n\nimport store from './config/store';\nimport { LANG } from './config';\nimport './config/middlewares';\n\nimport localization from './helpers/localization/localization';\n\n// import App from './App';\nimport security from './helpers/security/security';\nimport jwtHelper from './helpers/jwt/jwtHelper';\nimport delivery from './helpers/delivery/delivery';\nimport './index.css';\nimport App from './App';\n\nsecurity.configure(store);\njwtHelper.configure(store);\ndelivery.start();\n\nsyncTranslationWithStore(store);\nstore.dispatch(loadTranslations(localization));\nstore.dispatch(setLocale(LANG));\n\nReactDOM.render(\n \n \n \n , document.getElementById('root')\n);","module.exports = __webpack_public_path__ + \"static/media/logo.7617759f.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logout.b6009617.png\";"],"sourceRoot":""}