{"version":3,"sources":["config/navigation.js","libs/identity-server/Util.js","config/map.js","config/services.js","config/auth.js","libs/identity-server/Exception.js","libs/identity-server/Auth.js","services/AclService.js","components/layout/nav.jsx","components/layout/sidebar.jsx","components/layout/notfound.jsx","components/layout/breadcrumbs.jsx","components/common/notif/errors.jsx","components/common/loader.jsx","models/Login.js","services/Core.js","models/Tile.js","components/views/dashboard.jsx","components/Dashboard.jsx","components/common/notif/success.jsx","components/common/form/input.jsx","components/views/profile.jsx","models/User.js","components/Profile.jsx","components/views/change-password.jsx","components/ChangePassword.jsx","components/views/login.jsx","components/Login.jsx","components/point-of-interest/pin/list/map.jsx","services/Image.js","models/ElasticSearch.js","models/PoiEntity.js","models/Geofence.js","components/MapOverview.jsx","components/point-of-interest/pin/filter/modal.jsx","models/Province.js","components/point-of-interest/pin/filter/check-item.jsx","components/point-of-interest/pin/filter/fields/province.jsx","models/Brand.js","components/point-of-interest/pin/filter/fields/brand.jsx","components/point-of-interest/pin/filter/fields/refilling-plants.jsx","components/point-of-interest/pin/filter/fields/name.jsx","components/point-of-interest/pin/filter/form.jsx","components/point-of-interest/pin/filter/csv.js","components/point-of-interest/pin/filter/toggle-categories.jsx","components/point-of-interest/pin/filter/index.jsx","components/point-of-interest/pin/map/geofence.js","components/point-of-interest/pin/map/radius.js","components/point-of-interest/pin/map/pins.js","components/point-of-interest/pin/map/container.jsx","components/point-of-interest/pin/list.jsx","models/Poi.js","models/District.js","models/Type.js","models/PoiGeofence.js","components/common/form/select.jsx","components/layout/button-loader.jsx","components/views/point-of-interest/pin/boundary-settings.jsx","components/views/point-of-interest/pin/radius.jsx","components/views/point-of-interest/pin/form.jsx","components/point-of-interest/pin/register.jsx","components/layout/metadata.jsx","components/point-of-interest/pin/show.jsx","components/common/table/table-header.jsx","components/common/table/table-body.jsx","components/common/table/table.jsx","components/common/table/filter.jsx","components/common/table/control-box.jsx","models/RefillingPlant.js","components/admin/refilling-plants/list.jsx","components/views/point-of-interest/refilling-plant/form.jsx","components/point-of-interest/refilling-plants/register.jsx","models/Owner.js","components/point-of-interest/refilling-plants/list/poi.jsx","components/point-of-interest/refilling-plants/show.jsx","components/geofence/list/map.jsx","components/geofence/list.jsx","components/views/geofence/form.jsx","components/geofence/register.jsx","components/geofence/show.jsx","components/AclRoute.jsx","components/common/modal.jsx","components/common/toggle-switch/index.jsx","components/views/admin/brand/form.jsx","components/views/admin/brand/create.jsx","components/admin/brand/create.jsx","components/admin/brand/list.jsx","components/layout/edit-form.jsx","components/views/admin/brand/show.jsx","components/admin/brand/show.jsx","components/views/admin/province/form.jsx","components/views/admin/province/create.jsx","components/admin/province/create.jsx","components/admin/province/list.jsx","models/Municipality.js","components/views/admin/province/show.jsx","components/views/admin/municipality/form.jsx","components/views/admin/municipality/create.jsx","components/admin/municipality/create-modal.jsx","components/admin/province/show.jsx","components/views/admin/municipality/show.jsx","components/admin/municipality/show.jsx","components/views/admin/type/form.jsx","components/views/admin/type/create.jsx","components/admin/type/create.jsx","components/admin/type/list.jsx","components/views/admin/type/show.jsx","components/admin/type/show.jsx","components/admin/user/invite/modal.jsx","libs/identity-server/Api.js","components/admin/user/invite/form.jsx","components/admin/user/list.jsx","components/admin/user/show/wrapper.jsx","components/admin/user/show/check-item.jsx","components/admin/user/show/tile.jsx","components/admin/user/show/permission.jsx","components/admin/user/show/button.jsx","components/admin/user/show/form.jsx","components/admin/user/show.jsx","components/admin/user/change-password.jsx","services/Audit.js","models/AuditLog.js","components/admin/system-logs/list.jsx","components/auth/callback.js","components/admin/tile/form.jsx","components/admin/tile/list.jsx","components/admin/tile/show/form.jsx","components/admin/tile/show.jsx","components/Routes.jsx","components/layout/main.jsx","components/layout/topnav.jsx","App.js","serviceWorker.js","index.js","services/Util.js","assets/logo.png","assets/icon-google-map-10.jpg","config/acl.js"],"names":["module","exports","route","icon","label","subNav","roles","Util","constructor","AuthConfig","encryptKey","this","encryptor","Encryptor","decode","str","JSON","parse","Buffer","toString","encode","encrypt","decrypt","_","require","apiKey","process","center","lat","toNumber","lng","zoom","geofenceZoom","polygon","fillColor","strokeColor","strokeWeight","pin","width","height","core","url","auth","audit","images","decryptKey","storageKey","tokenKey","adminKey","rbacKey","baseUrl","appId","appSecret","redirectUri","Exception","extend","define","code","name","message","authErrorFormat","exceptionObj","error","error_description","error_uri","Auth","authConfig","config","axios","create","baseURL","headers","responseType","util","BuildLoginUrl","params","scope","response_type","client_id","redirect_uri","qs","stringify","BuildTokenUrl","tokenEndpoint","authHeader","bodyParams","grant_type","axiosParams","result","post","e","response","data","ServerError","UserInfo","rbac","getRole","extractUserInfo","role","getBrandPermissions","permissions","brands","getModulePermission","modules","getTilePermission","tiles","checkModulePermission","manage","arguments","length","undefined","modulePermissions","_module","find","id","checkRolePermission","allowedRoles","includes","checkPermissionAccess","AuthSDK","localStorage","getItem","window","location","userModuleSelection","Nav","Component","_currentUserRole","render","AclService","React","createElement","Fragment","className","buildNavigation","Navigation","map","item","i","subnavigation","currentPage","pathname","active","nth","split","trim","size","buildSubNavigation","key","NavLink","to","data-target","data-toggle","exact","subNavigation","sub","aria-expanded","Sidebar","state","data-background-color","data-active-color","href","src","logo","alt","NotFound","BreadcrumbsItem","_ref","match","liClass","isExact","replace","path","Route","component","Breadcrumbs","props","aria-label","Errors","Loader","ScaleLoader","color","radius","loading","username","password","CoreService","set","get","userId","userInfo","instance","Services","validateStatus","status","interceptors","request","use","authorization","async","Login","Token","setItem","access_token","id_token","admin_token","Promise","reject","SimpleEncryptor","table","listKeys","linkPath","linkField","Get","_data","each","push","value","reduceData","_error","patch","orders","put","delete","transform","r","n","k","readableDateFormat","createdAt","updatedAt","pick","DashboardItem","count","onClick","removeItem","filters","brand","LinkJumper","Dashboard","items","tilePermissions","Object","assign","super","dependencyComplete","dependencyError","auditLogs","getData","Tile","GetSummary","setState","BreadCrumbs","View","Success","success","Input","type","disabled","placeHolder","required","onChange","onBlur","accept","placeholder","Profile","showLoader","buttonDisabled","loader","onSubmit","firstName","onChangeFirstName","email","onChangeEmail","lastName","onChangeLastName","user_id","employee_no","employeeNo","mesage","raw","console","log","newpassword","oldpassword","bind","preventDefault","User","Update","target","userProfile","Form","onChangePassword","onChangeConfirmPassword","confirmPassword","withRouter","ChangePassword","onChangeOldPassword","oldPassword","AuthSdk","onChangeUsername","isAuthenticated","componentDidMount","search","LoginService","Authenticate","MapContainer","bootstrapURLKeys","MapConfig","libraries","join","createMapOptions","maps","styles","streetViewControl","style","innerHeight","GoogleMapReact","defaultCenter","defaultZoom","options","onGoogleApiLoaded","handler","yesIWantToUseGoogleMapApiInternals","ServiceConfig","toUrlPath","imagePath","queryParams","PoiEntity","category","file","toDropdown","municipalities","RefillingPlant","polygonList","MapOverview","_map","_maps","loadMapElements","clickPoi","clickRefillingPlant","togglePoi","toggleRefillingPlants","toggleGeofences","pois","refillingPlants","geofences","poiRedirectId","rfRedirectId","MeasureTool","contextMenu","showSegmentLength","tooltip","unit","UnitTypeId","METRIC","loadPoiPins","loadRefillingPlants","loadGeofences","mapTypeControl","event","addListener","mapType","getMapTypeId","setOptions","fillOpacity","geofence","coords","convertCoordinates","polygonCoords","Polygon","strokeOpacity","editable","geometry","area","spherical","computeArea","getPath","toFixed","setMap","infowindow","InfoWindow","content","PolygonInfoTemplate","owner","setPosition","latLng","open","close","self","index","RefillingPlantInfoBoxTemplate","address","landLine","iconUrl","refillingPlantIcon","scaledSize","Size","coordinates","marker","Marker","position","LatLng","title","PoiInfoBoxTemplate","brandIcon","_icon","pinConfig","Image","filename","scale","poiResult","EsModel","GetPOIs","refillingPlantResult","geofenceResult","Geofence","Redirect","checked","htmlFor","template","Modal","children","data-modal","data-dismiss","aria-hidden","list","CheckItem","checkHandler","checkedItems","_checkedItems","pull","uniq","checkItem","Province","setData","useState","setError","useEffect","DataModel","GetDropdownList","orderBy","GetData","d","filterEnabled","Brand","permittedBrands","compact","RefillingPlants","Name","resetToggle","brandFilter","setBrandFilter","poientityFilter","setPoiEntityFilter","districtFilter","setDistrictFilter","provinceFilter","setProvinceFilter","typeFilter","setTypeFilter","subTypeFilter","setSubtypeFilter","nameFilter","setNameFilter","poientity","district","province","subType","submitFilters","resetFilter","confirm","ExportToCsv","poi","landLine2","landLine3","landMark","mobile","mobile2","mobile3","csv","Parser","fields","Blob","fileURL","URL","createObjectURL","link","document","setAttribute","visibility","body","appendChild","click","removeChild","ToggleCategories","toggleBrands","toggleHandler","ResultNotif","Csv","download","Filter","ToggleGeofenceView","ToggleRefillingPlantsView","ToggleRadiusView","ToggleRadiusValue","ToggleBrandView","isFiltered","showGeofence","showRefillingPlants","showRadius","setResetToggle","ctr","ToggleFilterModal","defaultChecked","maxLength","min","max","ToggleFilter","Draw","geoData","infoWindow","POLYGON_LIST","isEmpty","draggable","Radius","visible","radiusList","RADIUS_LIST","pointOfInterest","Circle","setVisible","PoiPins","showRefillingPlant","brandTogglePins","_refillingPlants","_showRadius","LoadMeasuringTool","LoadPins","LoadRefillingPlants","LoadBrandTogglePins","togglePins","brandToggleList","BRAND_TOGGLE_LIST","tmpArray","brandId","landlines","arrangeLandLines","mobiles","arrangeMobiles","arrangeRefillingPlants","arrangeBrandIcon","_marker","CreateMarker","geofenceObj","radiusObj","rfList","REFILLING_PLANT_LIST","toggleVisibleBrands","p","setRadius","forEach","Pins","PointOfInterest","PureComponent","_permittedBrands","loadComplete","permissionError","brandResult","excludeBrands","GetToggleList","filterParams","brandTogglePINS","toggle","filter","FilterBox","subTypes","subTypeList","poi_id","Select","multiple","opts","SelectClass","deleteWrapper","action","ButtonRow","isEditMode","disableEditMode","deleteAction","_drawingManager","_currentPolygon","BoundarySettings","geofenceHandler","buildMode","setBuildMode","hasPolygon","setHasPolygon","setPolygonCoords","selectedShape","setSelectedShape","setFillColor","fillColorToggle","setFillColorToggle","setStrokeColor","strokeColorToggle","setStrokeColorToggle","drawing","getPaths","len","getLength","getAt","toUrlValue","colorPickerFillColorChange","hex","updatePolygonProps","colorPickerStrokeColorChange","polygonOptions","merge","drawingManager","mode","polygonCoordsHandler","hasPolygonHandler","polygonSelector","shape","POI_MODE","setSelection","_shape","setEditable","setDraggable","DrawingManager","drawingMode","OverlayType","POLYGON","drawingControl","drawingControlOptions","ControlPosition","TOP_CENTER","drawingModes","clickable","setDrawingMode","MARKER","newShape","overlay","backgroundColor","TwitterPicker","disableAlpha","PointOfInterestRadius","toggleView","setToggleView","radiusMarker","setRadiusMarker","radiusUnit","setRadiusUnit","setCenter","getPosition","defaultValue","PageisEditMode","brandObject","searchPlace","mapObjHandler","mapsObjHandler","markerObjHandler","isRegister","_ref2","pinLocation","geometryHandler","markerParams","geofenceData","hasSubType","disabledSubtype","mapObj","setMapObj","mapsObj","setMapsObj","markerObj","setMarkerObj","setGeofence","onChangeName","onChangeOwner","onChangeBrand","onChangeType","types","onChangeSubType","onChangeLandline","onChangeMobile","onChangeLandline2","onChangeMobile2","onChangeLandline3","onChangeMobile3","onChangeAddress","onChangeLandMark","onChangeProvince","provinces","municipality","onChangeMunicipality","onChangePoiEntity","remarks","onChangeRemarks","rows","onChangeSpDistance","spDistance","TimeField","spTravelTime","onTimeChange","time","onChangeSpTravelTime","input","_PoiEntity","onChangeDistrict","typeList","provinceList","districts","provinceId","selectedProvince","gValues","typeId","selectedType","alert","Poi","Create","poiId","PoiGeofence","scrollTo","districtResult","District","brandList","brandManageAccess","obj","typeResult","Type","provinceResult","GetDropdown","ReactDOM","findDOMNode","refs","places","searchBox","SearchBox","getPlaces","bounds","LatLngBounds","place","fitBounds","setZoom","getDropdownValues","updateNotif","ref","RecordMetaData","updatedBy","createdBy","_brandManageAccess","enableEditMode","owners","Delete","redirect","isNil","Show","btnClass","recordMetaData","showEdit","wazeNavUrl","TableHeader","column","Rows","row","Columns","keys","prop","TableLink","TableBody","Table","filterList","initialItems","setFilter","componentWillMount","updatedList","filtered","values","toLower","ControlBox","element","List","isSuccessful","modalElement","prevProps","_deleteNotif","retryCount","DisplayTable","margin","poiEntityId","DeleteRefillingPlant","RegisterRefillingPlant","onChangeWidth","onChangeHeight","onChangeIcon","rpId","_file","first","files","reader","FileReader","onload","readAsDataURL","iconResult","formData","FormData","append","UploadIcon","PoiList","setPois","complete","setComplete","ElasticSearch","GetPoiList","RefillingPlantShow","ownerResult","Owner","deleteSuccess","mapHandler","geofenceRedirectId","clickPolygon","fences","RegisterForm","colorPickerFillColorOnClick","colorPickerStrokeColorOnClick","colorPickerStrokeColorOnChange","deletePolygon","returnToList","polygonUpdate","removePolygon","displayColorPickerFillColor","displayColorPickerStrokeColor","redirectToList","UNSAFE_componentWillReceiveProps","nextProps","RemoveButton","Register","onPlacesChanged","showCurrentFences","includeDrawing","geofenceId","currentGeofence","getUpdatedCoords","getArray","ShowForm","NotAllowed","isRoleAllowed","currentRole","isAllowed","roleChecking","FormBody","modalClass","formBody","isFunction","ToggleSwitch","onChangeCode","onChangeFilterEnabled","toggleBarEnabled","onChangeToggleBarEnabled","closeModal","$","modal","on","reset","hasError","Error","EditFormContainer","cols","listLink","form","columnClass","button","ShowView","_isMounted","isSuccess","componentWillUnmount","Municipality","municipalitySuccess","successMunicipality","MunicipalityCreate","MunicipalityTable","editModal","mTable","clone","municipalityId","SubTypeBadge","remove","onKeyPress","addSubSelection","removeSubSelection","onChangePinColor","showColorPicker","closeColorPicker","colorPickerChange","pinColor","displayColorPicker","tmpSubtype","pullAt","currentTarget","contactNumber","datam","AuthApi","token","apiVersion","keyword","RenderDataResult","employees","disableAll","setDisableAll","emp","Employee","disableHandler","setRole","setShowLoader","setDisabled","setSuccess","InviteUser","companyEmail","UserModel","ErrorNotif","SuccessNotif","upperFirst","AclConfig","employeeNos","AuthSDKObj","AuthSDKApi","setKeyword","setEmployees","EmployeeSearch","marginTop","Wrapper","permissionHandler","current","defaultCheckedManage","TilePermissions","permittedTiles","tileHandler","tileList","setTileList","selectedTiles","setSelectedTiles","TileModel","GetTiles","CheckTileHandler","v","tile","currentTile","Permission","moduleHandler","brandHandler","_moduleList","_modulePermission","_brandsList","_brandPermission","selectedModules","setSelectedModules","permittedModules","setPermittedModules","brandError","setBrandError","brandsList","setBrandsList","selectedBrands","setSelectedBrands","setPermittedBrands","BrandModel","GetBrands","BuildModulePermission","BuildBrandPermmission","CheckBrandHandler","BrandPermissionHandler","currentBrand","selectionList","DeleteUser","selectedRole","setSelectedRole","showPermissionSetup","setShowPermissionSetup","modulePermission","setModulePermission","brandPermission","setBrandPermission","tilePermission","setTilePermission","errorMessage","setErrorMessage","top","behavior","ChangeRole","Button","FormWrapper","onChangeCPassword","c_password","moduleMap","users","point_of_interests","poi_entities","meta","AuditService","querystring","tableName","recordId","entity","rel","paginationMeta","limit","page","AuditLog","userResult","u","startCase","userFullName","actorId","Paginate","totalPages","isActive","AuthUtilSDKObj","AuthUtilSDK","AuthCodeToAccessToken","decoded","ValidateUserLogin","userid","TokenExchange","display","brandsSelection","setBrandsSelection","setName","setBrands","GetBrandList","DragAndDropApp","onDragStart","ev","dataTransfer","onSort","deleteHandler","rank","UpdateOrder","TilePattern","DragSortableList","tileId","setLoadComplete","GetTileDetails","Routes","Switch","AclRoute","AuthCallBack","PinList","accessLevel","PinRegister","PinShow","RefillingPlantList","RefillingPlantRegister","GeofenceList","GeofenceRegister","GeofenceShow","BrandList","BrandShow","ProvinceList","ProvinceShow","MunicipalityShow","TypeList","TypeShow","UserList","UserShow","UserChangePassword","TileList","TileListShow","SystemLogs","pageTitle","Main","TopNav","user","AuthSDKUtil","responsiveToggle","profileBar","firstname","App","authenticated","callBackPath","initPermission","currentPath","checkPagePermission","AuthCallback","isSessionExpired","accessToken","jsonwebtoken","isExpired","Date","exp","Boolean","hostname","BrowserRouter","getElementById","navigator","serviceWorker","ready","then","registration","unregister","date","toLocaleString","month","day","year","hour","minute","hour12","flatCoords","ltLng"],"mappings":"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","file":"static/js/main.0b146302.chunk.js","sourcesContent":["const navigation = [\n {\n route: \"/dashboard\",\n icon: \"ti-panel\",\n label: \"Dashboard\",\n subNav: [],\n roles: true\n },\n // {\n // route: \"/map-overview\",\n // icon: \"ti-map\",\n // label: \"Map Overview\",\n // subNav: [],\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // },\n {\n route: \"/point-of-interests\",\n icon: \"ti-location-pin\",\n label: \"Point of Interest\",\n subNav: [\n {\n route: \"/point-of-interests/maps\",\n label: \"View Map\",\n roles: [\"super_admin\", \"admin\", \"user\"]\n },\n {\n route: \"/point-of-interests/register\",\n label: \"Register POI\",\n roles: [\"super_admin\", \"admin\", \"user\"]\n }\n ],\n roles: [\"super_admin\", \"admin\", \"user\"]\n },\n // {\n // route: \"/refilling-plants\",\n // icon: \"ti-pin-alt\",\n // label: \"Refilling Plants\",\n // subNav: [\n // {\n // route: \"/refilling-plants/maps\",\n // label: \"View Map\",\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // },\n // {\n // route: \"/refilling-plants/register\",\n // label: \"Register Plant\",\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // }\n // ],\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // },\n // {\n // route: \"geofence\",\n // icon: \"ti-map-alt\",\n // label: \"Geofence\",\n // subNav: [\n // {\n // route: \"/geofence/maps\",\n // label: \"View Map\",\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // },\n // {\n // route: \"/geofence/register\",\n // label: \"Register Geofence\",\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // }\n // ],\n // roles: [\"super_admin\", \"admin\", \"user\"]\n // },\n {\n route: \"admin\",\n icon: \"ti-lock\",\n label: \"Admin Setup\",\n roles: [\"super_admin\", \"admin\"],\n subNav: [\n {\n route: \"/admin/refilling-plants\",\n label: \"Refilling Plants\",\n roles: [\"super_admin\"]\n },\n {\n route: \"/admin/tiles\",\n label: \"Tile Maintenance\",\n roles: [\"super_admin\"]\n }, \n {\n route: \"/admin/brands\",\n label: \"Category\",\n roles: [\"super_admin\"]\n }, \n {\n route: \"/admin/provinces\",\n label: \"Province\",\n roles: [\"super_admin\"]\n },\n // {\n // route: \"/admin/districts\",\n // label: \"District\",\n // roles: [\"super_admin\"]\n // },\n {\n route: \"/admin/types\",\n label: \"Types\",\n roles: [\"super_admin\"]\n },\n {\n route: \"/admin/users\",\n label: \"Users\",\n roles: [\"super_admin\",\"admin\"]\n },\n {\n route: \"/admin/system-logs\",\n label: \"System Logs\",\n roles: [\"super_admin\"]\n }\n ]\n },\n // {\n // route: \"/profile\",\n // icon: \"ti-user\",\n // label: \"My Profile\",\n // roles: [\"super_admin\", \"admin\", \"user\"],\n // subNav: []\n // } \n];\n\n\nmodule.exports = navigation;","// let encryptor = require(\"simple-encryptor\")(process.env.ENCRYPT_KEY);\nimport Encryptor from \"simple-encryptor\";\n\nclass Util {\n\n constructor (AuthConfig) {\n const {encryptKey} = AuthConfig;\n this.encryptor = new Encryptor( encryptKey );\n }\n\n //base64 decode\n decode (str) {\n return JSON.parse(new Buffer(str, \"base64\").toString(\"ascii\")); \n } \n\n //base64 encode\n encode (str) {\n return new Buffer(str).toString(\"base64\");\n }\n\n encrypt (str) {\n return this.encryptor.encrypt(str);\n }\n\n decrypt (str) {\n return this.encryptor.decrypt(str);\n }\n\n}\n\nexport default Util;","const _ = require(\"lodash\");\nmodule.exports = {\n apiKey: process.env.REACT_APP_MAP_API_KEY,\n center: { \n lat: _.toNumber( process.env.REACT_APP_MAP_CENTER_LAT ),\n lng: _.toNumber( process.env.REACT_APP_MAP_CENTER_LNG )\n },\n zoom: _.toNumber( process.env.REACT_APP_MAP_ZOOM ),\n geofenceZoom: _.toNumber( process.env.REACT_APP_GEOFENCE_MAP_ZOOM ),\n polygon: {\n fillColor: \"#f79671\",\n strokeColor: \"#bb3704\",\n strokeWeight: 2\n },\n pin: {\n width: 50,\n height: 65\n }\n\n};","module.exports = {\n\n core: {\n url: process.env.REACT_APP_CORE_API_URL\n // url: \"http://localhost:8000/v1\"\n },\n auth: {\n url: process.env.REACT_APP_AUTH_API_URL\n },\n audit: {\n url: process.env.REACT_APP_AUDIT_API_URL\n },\n images: {\n url: process.env.REACT_APP_IMAGE_BASE_URL\n }\n\n};\n","module.exports = {\n decryptKey: \"ebWe3S63S6RmrDPR\",\n storageKey: \"bm_id_token\",\n tokenKey: \"bm_access_token\",\n adminKey: \"bm_admin_token\",\n rbacKey: \"bm_rbac\",\n\n baseUrl: process.env.REACT_APP_AUTH_BASEURL,\n appId: process.env.REACT_APP_AUTH_APP_ID,\n appSecret: process.env.REACT_APP_AUTH_APP_SECRET,\n redirectUri: process.env.REACT_APP_AUTH_APP_REDIRECT_URI,\n encryptKey: process.env.REACT_APP_ENCRYPT_KEY\n\n\n};","let Exception = require(\"stderror\").extend(\"Exception\");\n\n//-- http specific\nException.define({code: 400, name: \"BadRequest\", message: \"Bad request\"});\nException.define({code: 401, name: \"Unauthorized\", message: \"Unauthorized\"});\nException.define({code: 403, name: \"Forbidden\", message: \"Forbidden\"});\nException.define({code: 404, name: \"NotFound\", message: \"Not found\"});\nException.define({code: 409, name: \"RecordUnique\", message: \"Record Unique Constraint\"});\nException.define({code: 500, name: \"ServerError\", message: \"Internal Server Error\"});\n\nException.authErrorFormat = (exceptionObj) => {\n return {\n error: exceptionObj.code,\n error_description: exceptionObj.message,\n error_uri: \"\"\n };\n\n};\n\nexport default Exception;","import axios from \"axios\";\nimport qs from \"qs\";\nimport Exception from \"./Exception\";\nimport Util from \"./Util\";\n\nclass Auth {\n\n constructor (authConfig) {\n this.config = authConfig;\n this.axios = axios.create({\n baseURL: authConfig.baseUrl,\n headers: {\n \"X-Requested-By\": \"Twisted Logix\",\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n },\n responseType: \"json\"\n }); \n this.util = new Util(authConfig);\n }\n\n BuildLoginUrl () {\n const {baseUrl, appId, redirectUri} = this.config;\n let path = \"oauth/authorize\";\n let params = {\n scope: \"openid\",\n response_type: \"code\",\n client_id: appId,\n redirect_uri: redirectUri\n };\n return `${baseUrl}${path}?${qs.stringify(params)}`;\n }\n\n BuildTokenUrl () {\n const {baseUrl} = this.config;\n let path = \"oauth/token\";\n return `${baseUrl}${path}`;\n } \n\n async AuthCodeToAccessToken (code) {\n const {redirectUri} = this.config;\n\n let tokenEndpoint = this.BuildTokenUrl();\n let authHeader = this.util.encode( `${this.config.appId}:${this.config.appSecret}:${code}`);\n\n authHeader = this.util.encrypt(authHeader);\n\n let bodyParams = {\n grant_type: \"authorization_code\",\n redirect_uri: redirectUri,\n code: code\n };\n const axiosParams = {\n headers: {\n \"x-authorization-encrypt\": true,\n \"authorization\": `Basic ${authHeader}`\n }\n };\n\n let result = null;\n try {\n result = await this.axios.post(tokenEndpoint, bodyParams, axiosParams);\n } catch (e) {\n if (e && e.response) {\n throw e.response.data;\n } else {\n throw Exception.authErrorFormat( new Exception.ServerError(e.message) );\n }\n }\n\n return (result && result.data) ? result.data : false;\n\n } \n\n\n /* helper methods */\n UserInfo (rbac) {\n return this.util.decrypt(rbac);\n }\n\n\n}\n\n\nexport default Auth;","import AuthConfig from \"../config/auth\";\nimport _ from \"lodash\";\n// import NavConfig from \"../config/navigation\";\nimport AuthSDK from \"../libs/identity-server/Auth\";\n\nclass AclService {\n\n constructor () {\n this.roles = [\"user\", \"admin\"];\n }\n\n getRole () {\n let user = this.extractUserInfo();\n return user.role;\n }\n\n getBrandPermissions () {\n let user = this.extractUserInfo();\n return user.permissions.brands;\n }\n\n getModulePermission () {\n let user = this.extractUserInfo();\n return user.permissions.modules;\n }\n\n getTilePermission () {\n let user = this.extractUserInfo();\n return user.permissions.tiles || [];\n }\n\n checkModulePermission (module, manage = null) {\n const modulePermissions = this.getModulePermission(); \n let _module = _.find(modulePermissions, {id: module});\n if (manage === true) {\n return !!(_module.manage === manage)\n } else {\n return !!_module;\n }\n\n }\n\n checkRolePermission (allowedRoles) {\n return (allowedRoles === \"*\") ? true : _.includes(allowedRoles, this.getRole());\n }\n\n checkPermissionAccess (allowedRoles) {\n return (allowedRoles === \"*\") ? true : _.includes(allowedRoles, this.getRole());\n }\n\n extractUserInfo () {\n const AuthSDKObj = new AuthSDK(AuthConfig);\n let rbac = AuthSDKObj.UserInfo( localStorage.getItem(AuthConfig.rbacKey ) );\n if (!rbac) {\n window.location = \"/logout\";\n }\n return rbac;\n }\n\n userModuleSelection () {\n return [\n {\n id: \"geofence\",\n name: \"GeoFence\"\n },\n {\n id: \"refilling-plants\",\n name:\"Refilling Plants\"\n },\n {\n id: \"map-overview\",\n name:\"Map Overview\"\n },\n ];\n }\n\n\n}\n\nexport default new AclService();","import React, { Component } from \"react\";\nimport { NavLink } from \"react-router-dom\";\n\nimport AclService from \"../../services/AclService\";\n\nimport _ from \"lodash\";\n//load config\nimport Navigation from '../../config/navigation';\n\n\nclass Nav extends Component {\n\n _currentUserRole = null;\n\n render () {\n this._currentUserRole = AclService.getRole();\n return (\n \n \n \n\n )\n }\n\n buildNavigation () {\n return Navigation.map( (item, i) => {\n let subnavigation = \"\";\n let currentPage = window.location.pathname;\n let currentRoute = _.nth(_.split(currentPage, \"/\"), 1);\n let active = (currentRoute === _.trim(item.route, \"/\")) ? \"active\" : null;\n \n if ( _.size(item.subNav) > 0) {\n\n if (_.includes(item.roles, this._currentUserRole) || item.roles === true) {\n subnavigation = this.buildSubNavigation( item.subNav, i ) ;\n return (\n
  • \n \n

    {item.label}

    \n
    \n { subnavigation }\n
  • \n );\n } else {\n return null;\n }\n } else {\n if (_.includes(item.roles, this._currentUserRole) || item.roles === true) {\n return (\n
  • \n \n

    {item.label}

    \n
    \n
  • \n );\n } else {\n return null;\n }\n\n }\n });\n }\n\n buildSubNavigation (subNavigation, id) {\n\n const sub = subNavigation.map( (item, i) => {\n // if (_.includes(item.roles, this._currentUserRole) || item.roles === true) {\n return (\n
  • \n {item.label}\n
  • \n );\n // } else {\n // return null;\n // }\n });\n return (\n
    \n \n
    \n );\n \n }\n\n\n}\n\nexport default Nav;","import React, { Component } from \"react\";\nimport logo from \"../../assets/logo.png\";\nimport { NavLink } from \"react-router-dom\";\n\nimport Nav from \"./nav\";\n\nclass Sidebar extends Component {\n\n state = {};\n\n render () {\n return (\n
    \n
    \n
    \n \n \"BIVMC\"\n \n Business Mapper & GEO Fencing App\n
    \n \n
    \n\n
    \n\n \n
    \n
    \n );\n }\n}\n\nexport default Sidebar;","import React, { Component } from \"react\";\n\n\nclass NotFound extends Component {\n render () {\n\n return (\n
    \n
    \n

    Resource is not found!

    \n
    \n
    \n ); \n }\n}\n\nexport default NotFound; ","import React, { Fragment } from \"react\";\nimport { Route, NavLink } from \"react-router-dom\";\nimport _ from \"lodash\";\n\n\nconst Breadcrumbs = (props) => (\n
    \n\n \n
    \n)\n\nconst BreadcrumbsItem = ({ match }) => {\n const liClass = (match.isExact) ? 'active' : null;\n return (\n \n
  • \n \n {_.replace( _.trim(match.params.path, \"/\") , /-/g, ' ') }\n \n
  • \n \n
    \n )\n\n};\n\nexport default Breadcrumbs;","import React from \"react\";\n\nconst Errors = ({error}) => {\n if (error) {\n return (\n
    \n
    \n {/* */}\n
    \n
    {error}
    \n
    \n
    \n );\n } else {\n return null;\n }\n}\n\nexport default Errors;","import React from \"react\";\nimport ScaleLoader from \"react-spinners/ScaleLoader\";\n\nconst Loader = ({message}) => {\n return (\n
    \n
    \n \n {message}\n
    \n
    \n );\n}\nexport default Loader;","import CoreService from \"../services/Core\";\nimport _ from \"lodash\";\nimport AuthConfig from \"../config/auth\";\nimport qs from \"querystring\";\n\nclass Login {\n\n constructor () {\n this.path = \"/login\";\n this.config = AuthConfig;\n }\n\n\n BuildLoginUrl () {\n const {baseUrl, appId, redirectUri} = this.config;\n let path = \"oauth/authorize\";\n let params = {\n scope: \"openid\",\n response_type: \"code\",\n client_id: appId,\n redirect_uri: redirectUri\n };\n return `${baseUrl}${path}?${qs.stringify(params)}`;\n } \n\n async Authenticate (username, password) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(`${this.path}`, {username, password});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Invalid User Credentials\" );\n }\n return result;\n }\n\n async Token (userId) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(`/token`, {userId});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n}\n\nexport default new Login();","import axios from \"axios\";\nimport _ from \"lodash\";\nimport AuthConfig from \"../config/auth\";\nimport SimpleEncryptor from \"simple-encryptor\";\n\n//load config\nimport Services from '../config/services';\n\nimport Login from \"../models/Login\";\n\nclass Core {\n\n constructor () {\n\n let userInfo = this.extractUserInfo();\n\n let instance = axios.create({\n baseURL: Services.core.url,\n headers: {\n 'X-Requested-By': 'Twisted Logix',\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n },\n validateStatus: function (status) {\n return status === 200 || status === 401; // default\n },\n });\n\n instance.interceptors.request.use( (config) => {\n config.headers.authorization = `bearer ${localStorage.getItem(AuthConfig.tokenKey)}`;\n return config;\n }, (error) => {\n return error;\n });\n\n instance.interceptors.response.use( async (response) => {\n let _error = _.get(response, \"data.error\", {});\n if (_error.code === 401) {\n let response = await Login.Token(userInfo.id);\n //update localstorage\n localStorage.setItem(AuthConfig.tokenKey, response.data.access_token);\n localStorage.setItem(AuthConfig.storageKey, response.data.id_token);\n localStorage.setItem(AuthConfig.adminKey, response.data.admin_token);\n return response;\n } else {\n return response;\n }\n }, (error) => {\n return Promise.reject(error)\n }); \n\n return instance;\n\n }\n\n\n extractUserInfo () {\n const Cipher = SimpleEncryptor(AuthConfig.decryptKey);\n return Cipher.decrypt( localStorage.getItem(AuthConfig.storageKey) );\n }\n\n\n}\n\nexport default new Core();","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass Tile {\n\n constructor () {\n this.path = \"/tiles\";\n \n this.table = {\n headers: [\"Name\", \"Date Created\", \"Last Updated\"],\n listKeys: [\"name\", \"createdAt\", \"updatedAt\", \"column\", \"order\", \"count\", \"brands\", \"id\"],\n linkPath: \"/admin/tiles\",\n linkField: \"name\"\n }\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async GetDropdownList () {\n let {data, error} = await this.Get();\n let _data = [];\n _.each(data, (item) => {\n _data.push({\n key: item.id,\n value: item.id,\n label: `${item.code}`\n // label: `${item.code}-${item.name}`\n });\n } );\n return {data: _data, error};\n }\n\n\n async Get () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async GetSummary () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/summary`);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async UpdateOrder (orders) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.put(`${this.path}/order`, orders);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Tile();","import React from \"react\";\nimport {includes} from \"lodash\";\n// import {withRouter} from \"react-router-dom\";\n\nimport AclService from \"../../services/AclService\";\n\nconst Dashboard = props => {\n const {items} = props;\n let role = AclService.getRole();\n const tilePermissions = AclService.getTilePermission();\n return (\n <>\n
    \n {items.map( (item, i) => {\n if (role === \"user\") {\n return (includes(tilePermissions, item.id)) ? : null;\n } else {\n return \n }\n })}\n
    \n \n );\n};\n\nconst LinkJumper = props => {\n const FILTER_STORAGE_KEY = \"poi-filters\";\n localStorage.removeItem( FILTER_STORAGE_KEY );\n let filters = {brand: props.brands}; \n localStorage.setItem(FILTER_STORAGE_KEY, JSON.stringify(filters) ); \n window.location = \"/point-of-interests/maps\";\n return true;\n}\n\n\nconst DashboardItem = props => {\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    {props.name}

    \n {props.count} Pins\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Dashboard;","import React, { Component, Fragment } from \"react\";\nimport BreadCrumbs from \"./layout/breadcrumbs\";\n\n/*common*/\nimport Errors from \"./common/notif/errors\";\nimport Loader from \"./common/loader\";\n\n/*config*/\n// import DashConfig from \"../config/dashboard\";\n\n/*models*/\nimport Tile from \"../models/Tile\";\n\n/*view*/\nimport View from \"./views/dashboard\";\n\nclass Dashboard extends Component {\n\n constructor (props) {\n super(props);\n this.state = {\n items: [],\n dependencyComplete: false,\n dependencyError: false,\n auditLogs: []\n };\n }\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n }\n\n async getData(params) {\n\n let {data, error} = await Tile.GetSummary();\n\n this.setState({\n dependencyComplete: true,\n dependencyError: error,\n items: data\n });\n\n }\n\n render () {\n\n let {dependencyError, dependencyComplete, items, auditLogs} = this.state;\n\n if (!dependencyComplete) {\n return
    \n }\n\n if (dependencyError) {\n return (\n
    \n \n

    Click here to try again.

    \n
    \n );\n }\n\n if (dependencyComplete) {\n return (\n \n\n \n\n \n \n \n );\n } \n }\n\n}\n\nexport default Dashboard;","import React from \"react\";\n\nconst Success = ({success}) => {\n if (success) {\n return (\n
    \n
    \n {/**/}\n
    \n
    {success}
    \n
    \n
    );\n } else {\n return null;\n }\n}\n\nexport default Success;","import React from \"react\";\n\n/**\n*\n* @label of the input field\n* @name of the input field\n* @required | bool | defaults to true\n* @onChange | fn\n* @value | fn\n**/\n// const Input = ({type=\"text\", disabled=\"\", label, name, placeHolder, required=true, onChange=()=>{}, value}) => {\n// let className=`form-control border-input`;\n// return (\n//
    \n// {\n// label ? : null\n// }\n// \n//
    \n\n// );\n// };\n\nconst Input = props => {\n // ({type=\"text\", disabled=\"\", label, name, placeHolder, required=true, onChange=()=>{}, value}) \n let {type, disabled, label, name, placeHolder, required = true, onChange, value, onBlur} = props;\n let {accept} = props;\n\n let className=`form-control border-input`;\n return (\n
    \n {\n label ? : null\n }\n \n
    \n\n );\n};\n\n\nexport default Input;","import React, {Fragment} from \"react\";\nimport {NavLink} from \"react-router-dom\";\n\nimport Input from \"../common/form/input\";\nimport Loader from \"../common/loader\";\n\n\n\nconst Profile = props => {\n let {showLoader, buttonDisabled} = props.state;\n let loader = (showLoader) ? : null;\n return (\n \n\n
    \n
    \n
    \n
    \n

    My Profile Details

    \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n
    Change Password
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Profile;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass User {\n\n constructor () {\n this.path = \"/users\";\n \n this.table = {\n headers: [\"Employee No\", \"User ID\", \"Email\", \"First Name\", \"Last Name\", \"Role\"],\n listKeys: [\"employeeNo\", \"userId\", \"email\", \"firstName\", \"lastName\", \"role\", \"id\"],\n linkPath: \"/admin/users\",\n linkField: \"employeeNo\"\n }\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async ValidateUserLogin (user_id, employee_no) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(`${this.path}/validate-login`, {userId: user_id, employeeNo: employee_no});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error\") : {mesage: \"Cannot Communicate to the API Server.\"} );\n }\n return result;\n }\n\n // async GetByUserId (user_id) {\n // let result = { data: null, error: null };\n // try {\n // let response = await CoreService.get(`${this.path}/user_id/${user_id}`);\n // _.set(result, \"data\", response.data.data );\n // } catch (e) {\n // _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error\") : {mesage: \"Cannot Communicate to the API Server.\"} );\n // }\n // return result;\n // }\n\n async Get (raw = false) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", (!raw) ? this.reduceData( response.data ) : response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data );\n } catch (e) {\n console.log(\"Create-> e\", e);\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async ChangePassword (id, newpassword) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}/password`, {password: newpassword});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async ChangeUserPassword (id, oldpassword, newpassword) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}/password`, {password: newpassword});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async DeleteUser (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) ); \n _.set(n, \"role\", n.role ); \n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new User();","import React, { Component, Fragment } from \"react\";\nimport BreadCrumbs from \"./layout/breadcrumbs\";\nimport AclService from \"../services/AclService\";\nimport AuthConfig from \"../config/auth\";\nimport Errors from \"./common/notif/errors\";\nimport Success from \"./common/notif/success\";\n\n/*view*/\nimport View from \"./views/profile\";\n\n//model\nimport User from \"../models/User\";\nimport Login from \"../models/Login\";\n\nclass Profile extends Component {\n\n constructor (props) {\n super(props);\n\n this.onChangeEmail = this.onChangeEmail.bind(this);\n this.onChangeFirstName = this.onChangeFirstName.bind(this);\n this.onChangeLastName = this.onChangeLastName.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n id: \"\",\n username: \"\",\n email: \"\",\n firstName: \"\",\n lastName: \"\",\n\n error: null,\n success: null,\n dependencyComplete: false,\n showLoader: false,\n buttonDisabled: false\n };\n\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let {id, email, lastName, firstName} = this.state; \n const params = {email, lastName, firstName};\n let {data, error} = await User.Update(id, params);\n\n //update local storage\n let response = await Login.Token(id);\n //update localstorage\n localStorage.setItem(AuthConfig.tokenKey, response.data.access_token);\n localStorage.setItem(AuthConfig.storageKey, response.data.id_token);\n localStorage.setItem(AuthConfig.adminKey, response.data.admin_token);\n\n\n if (data) {\n this.setState({\n data: data,\n success: \"User Details Updated\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n updatedAt: data.updatedAt\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n }\n\n onChangeEmail (e) {\n this.setState({\n email: e.target.value\n });\n }\n\n onChangeFirstName (e) {\n this.setState({\n firstName: e.target.value\n });\n }\n\n onChangeLastName (e) {\n this.setState({\n lastName: e.target.value\n });\n }\n\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n } \n\n async getData() {\n let userProfile = AclService.extractUserInfo();\n this.setState({\n id: userProfile.id,\n username: userProfile.username,\n lastName: userProfile.lastName,\n firstName: userProfile.firstName,\n email: userProfile.email,\n dependencyComplete: true\n });\n } \n\n\n render () {\n let {success, error} = this.state;\n return (\n \n\n \n
    \n \n \n
    \n\n\n \n \n
    \n );\n \n }\n\n}\n\nexport default Profile;","import React from \"react\";\nimport {withRouter} from \"react-router-dom\";\n//common\nimport BreadCrumbs from \"../layout/breadcrumbs\";\nimport Errors from \"../common/notif/errors\";\nimport Success from \"../common/notif/success\";\nimport Input from \"../common/form/input\";\nimport Loader from \"../common/loader\";\n\n\nconst ChangePassword = props => {\n\n let {error, success, showLoader, buttonDisabled} = props.state;\n let loader = (showLoader) ? : null;\n\n return (\n \n \n
    \n \n \n
    \n\n
    \n
    \n
    \n\n
    \n \n\n
    \n
    \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n );\n};\n\nconst Form = props => {\n return (\n \n
    Change Password
    \n \n{/* */}\n\n \n \n
    \n\n );\n}\n\nexport default withRouter(ChangePassword);","import React, { Component, Fragment } from \"react\";\nimport AclService from \"../services/AclService\";\n\n/*model*/\nimport User from \"../models/User\";\n\n/*view*/\nimport View from \"./views/change-password\";\n\nclass ChangePassword extends Component {\n\n constructor (props) {\n super(props);\n\n this.onChangeOldPassword = this.onChangeOldPassword.bind(this);\n this.onChangePassword = this.onChangePassword.bind(this);\n this.onChangeConfirmPassword = this.onChangeConfirmPassword.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n\n oldPassword: \"\",\n password: \"\",\n confirmPassword: \"\",\n\n error: null,\n success: null,\n dependencyComplete: false,\n showLoader: false,\n buttonDisabled: false\n }\n }\n\n\n onChangeOldPassword (e) {\n this.setState({\n oldPassword: e.target.value\n });\n }\n\n onChangePassword (e) {\n this.setState({\n password: e.target.value\n });\n }\n\n onChangeConfirmPassword (e) {\n this.setState({\n confirmPassword: e.target.value\n });\n }\n \n\n async onSubmit (e) {\n\n e.preventDefault();\n\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let {password, confirmPassword} = this.state;\n if (password !== confirmPassword) {\n this.setState({\n error: \"Password & Confirmation did not match\",\n buttonDisabled: false,\n showLoader: false\n });\n return false;\n }\n\n let userProfile = AclService.extractUserInfo();\n\n let {data, error} = await User.ChangePassword(userProfile.id, password); \n if (data) {\n this.setState({\n data: data,\n success: \"Password Updated\",\n error: null,\n showLoader: false,\n buttonDisabled: false\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n\n } \n\n render () {\n return (\n \n\n \n\n \n );\n \n }\n}\n\nexport default ChangePassword;","import React from \"react\";\nimport logo from \"../../assets/logo.png\";\nimport Errors from \"../common/notif/errors\";\nimport AuthConfig from \"../../config/auth\";\nimport AuthSDK from \"../../libs/identity-server/Auth\";\n\nconst Login = props => {\n const AuthSdk = new AuthSDK(AuthConfig);\n return (\n
    \n\n
    \n
    \n
    \n \n \"BIVMC\"\n
    \n Business Mapper & GEO Fencing App\n
    \n
    \n
    \n
    Please login to use this application.
    \n \n
    \n \n \n Login\n \n\n
    \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Login;","import React, { Component } from \"react\";\nimport View from \"./views/login\";\nimport LoginService from \"../models/Login\";\nimport AuthConfig from \"../config/auth\";\nimport _ from \"lodash\";\n\nclass Login extends Component {\n\n constructor (props) {\n\n super(props);\n this.onChangeUsername = this.onChangeUsername.bind(this);\n this.onChangePassword = this.onChangePassword.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n username: \"\",\n password: \"\",\n isAuthenticated: false,\n data: {},\n error: null,\n buttonDisabled: false,\n showLoader: false\n }\n }\n\n onChangeUsername (e) {\n this.setState({\n username: e.target.value\n });\n }\n\n onChangePassword (e) {\n this.setState({\n password: e.target.value\n });\n }\n\n componentDidMount() {\n if (_.includes(window.location.search, \"session\")) {\n this.setState({\n error: \"Session Expired.\"\n });\n }\n } \n\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n\n const {username, password} = this.state;\n const {data, error} = await LoginService.Authenticate(username, password);\n if (data) {\n localStorage.setItem(AuthConfig.storageKey, data.id_token);\n localStorage.setItem(AuthConfig.tokenKey, data.access_token);\n localStorage.setItem(AuthConfig.adminKey, data.admin_token);\n this.setState({\n isAuthenticated: true\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n\n }\n \n render () {\n // const {match} = this;\n return (this.state.isAuthenticated) ? window.location.href=\"/dashboard\" : ;\n }\n\n};\n\nexport default Login;","import React from \"react\";\nimport GoogleMapReact from \"google-map-react\";\nimport MapConfig from \"../../../../config/map\";\nimport _ from \"lodash\";\nimport Loader from \"../../../common/loader\";\n\nconst MapContainer = props => {\n let bootstrapURLKeys = {\n key: MapConfig.apiKey,\n libraries: ['drawing', 'places', 'geometry'].join(',')\n } \n\n if (props.error) {\n return null;\n }\n\n if (_.size(props.data) > 0) {\n\n let createMapOptions = function (maps) {\n return {\n styles: [{\n \"featureType\": \"all\",\n \"elementType\": \"labels\",\n \"stylers\": [{\n \"visibility\": \"#on\"\n }]\n }],\n streetViewControl: true \n }\n } \n\n\n return (\n
    \n props.handler(map, maps)}\n yesIWantToUseGoogleMapApiInternals={true} />\n
    \n );\n } else {\n return
    \n }\n\n};\n\nexport default MapContainer;","import ServiceConfig from '../config/services';\n\nclass Image {\n\n baseUrl = null;\n\n constructor () {\n this.baseUrl = ServiceConfig.images.url;\n }\n\n toUrlPath (imagePath) {\n return `${this.baseUrl}/${imagePath}`;\n }\n\n\n}\n\nexport default new Image();","import CoreService from \"../services/Core\";\nimport _ from \"lodash\";\nimport qs from \"querystring\";\n\nclass ElasticSearch {\n\n constructor () {\n this.path = \"/es\";\n }\n\n async GetPOIs (params) {\n let result = { data: null, error: null };\n let queryParams = qs.stringify(params);\n try {\n let response = await CoreService.get(`${this.path}/point-of-interests?${queryParams}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n};\n\nexport default new ElasticSearch();","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\nimport qs from \"querystring\";\n\nclass PoiEntity {\n\n constructor (category) {\n this.path = \"/poi-entities\";\n this.category = category || \"refilling plant\";\n }\n\n\n async UploadIcon (id, file) {\n let result = { data: null, error: null };\n let headers = {\n 'Content-Type': 'multipart/form-data', \n 'Accept': 'application/json', \n 'Access-Control-Allow-Origin': '*'\n };\n try {\n let response = await CoreService.post(`${this.path}/${id}/icon`, file, { headers: headers});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n } \n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get () {\n let result = { data: null, error: null };\n let queryParams = qs.stringify({category: this.category});\n try {\n let response = await CoreService.get(`${this.path}?${queryParams}`);\n _.set(result, \"data\", _.get(response, \"data.data\", []));\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async GetDropdownList () {\n let result = { data: null, error: null };\n let queryParams = qs.stringify({category: this.category}); \n try {\n let response = await CoreService.get(`${this.path}?${queryParams}`);\n _.set(result, \"data\", this.toDropdown( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n _.set(n, \"totalMunicipalities\", _.size(n.municipalities) );\n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n toDropdown (result) {\n return _.transform(result.data, (r, n, k) => { \n _.set(n, \"key\", k);\n _.set(n, \"value\", n.id);\n _.set(n, \"label\", n.name);\n r.push( _.pick(n, [\"id\", \"value\", \"label\", \"key\"] ) );\n }, []);\n }\n\n}\n\nexport default PoiEntity;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\nimport qs from \"querystring\";\n\nclass Brand {\n\n constructor () {\n this.path = \"/geofences\";\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get (params) {\n let result = { data: null, error: null };\n let queryParams = qs.stringify(params);\n try {\n let response = await CoreService.get(`${this.path}?${queryParams}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Brand();","import React, { Component } from \"react\";\nimport MapContainer from \"./point-of-interest/pin/list/map\";\nimport _ from \"lodash\";\nimport {Redirect, NavLink} from \"react-router-dom\";\nimport Loader from \"./common/loader\"\nimport MeasureTool from \"measuretool-googlemaps-v3\";\n\n/*Services*/\nimport Image from \"../services/Image\";\nimport Util from \"../services/Util\";\n/*Load Models*/\nimport EsModel from \"../models/ElasticSearch\";\nimport PoiEntity from \"../models/PoiEntity\";\nimport Geofence from \"../models/Geofence\";\n\n/*assets*/\nimport refillingPlantIcon from \"../assets/icon-google-map-10.jpg\";\n\n/*config*/\nimport MapConfig from \"../config/map\";\n\n\nlet RefillingPlant = new PoiEntity();\nlet polygonList = [];\nclass MapOverview extends Component {\n _map = null;\n _maps = null;\n \n\n constructor (props) {\n super(props);\n this.loadMapElements = this.loadMapElements.bind(this);\n this.clickPoi = this.clickPoi.bind(this);\n this.clickRefillingPlant = this.clickRefillingPlant.bind(this);\n this.togglePoi = this.togglePoi.bind(this);\n this.toggleRefillingPlants = this.toggleRefillingPlants.bind(this);\n this.toggleGeofences = this.toggleGeofences.bind(this);\n this.state = {\n dependencyComplete: false,\n dependencyError: false,\n\n pois: [],\n refillingPlants: [],\n geofences: [],\n\n poiRedirectId: null,\n\n togglePoi: true,\n toggleRefillingPlants: true,\n toggleGeofences: true\n }\n }\n\n togglePoi (e) {\n this.setState({\n togglePoi: !this.state.togglePoi,\n data: [],\n dependencyComplete: false\n });\n }\n\n toggleRefillingPlants (e) {\n this.setState({\n toggleRefillingPlants: !this.state.toggleRefillingPlants,\n data: [],\n dependencyComplete: false \n })\n }\n\n toggleGeofences (e) {\n this.setState({\n toggleGeofences: !this.state.toggleRefillingPlants,\n data: [], \n dependencyComplete: false \n })\n }\n\n clickPoi (id) {\n this.setState({\n poiRedirectId: id\n });\n }\n\n clickRefillingPlant (id) {\n this.setState({\n rfRedirectId: id\n });\n }\n\n loadMapElements (map, maps) {\n\n new MeasureTool(map, {\n contextMenu: true,\n showSegmentLength: true,\n tooltip: true,\n unit: MeasureTool.UnitTypeId.METRIC // metric, imperial, or nautical\n }); \n\n if (!map || !maps) {\n return false;\n }\n\n let {togglePoi, toggleGeofences, toggleRefillingPlants} = this.state; \n\n //load point of interest\n if (togglePoi) {\n this.loadPoiPins(this.state.pois, map, maps); \n }\n \n if (toggleRefillingPlants) {\n this.loadRefillingPlants(this.state.refillingPlants, map, maps); \n }\n //load refilling plants\n\n //load geofences\n if (toggleGeofences) {\n this.loadGeofences(this.state.geofences, map, maps); \n }\n \n\n this._map = map;\n this._maps = maps;\n\n }\n\n loadGeofences (data, map, maps) {\n map.mapTypeControl = true;\n maps.event.addListener(map, \"maptypeid_changed\", function (e) {\n const mapType = map.getMapTypeId();\n if (mapType === \"satellite\" || mapType === \"hybrid\") {\n _.each(polygonList, (i) => {\n i.setOptions({ fillOpacity: 0.7});\n });\n } else {\n _.each(polygonList, (i) => {\n i.setOptions({ fillOpacity: 0.3});\n });\n }\n }); \n _.each(data, (geofence, k) => {\n let coords = Util.convertCoordinates(geofence.polygonCoords);\n let polygon = new maps.Polygon({\n path: coords,\n strokeColor: geofence.strokeColor,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: geofence.fillColor,\n fillOpacity: 0.3,\n editable: false\n });\n\n if (maps.geometry) {\n let area = maps.geometry.spherical.computeArea(polygon.getPath());\n _.set(geofence, \"area\", `${(area / 1e+6).toFixed(2)} sqkm`);\n }\n\n polygon.setMap(map)\n\n polygonList.push(polygon);\n _.set(geofence, \"polygon\", polygon);\n \n let infowindow = new maps.InfoWindow({\n content: PolygonInfoTemplate({name: geofence.name, owner: _.get(geofence, \"owner.name\", \"Unassigned.\") })\n });\n\n polygon.addListener(\"mouseover\", function(event) {\n infowindow.setPosition(event.latLng); \n infowindow.open(map);\n });\n\n polygon.addListener(\"mouseout\", function () {\n infowindow.close(map);\n });\n\n });\n\n\n }\n\n loadRefillingPlants (data, map, maps) {\n map.mapTypeControl = true;\n let self = this;\n _.each(data, (item, index) => {\n let infowindow = new maps.InfoWindow({\n content: RefillingPlantInfoBoxTemplate({name: item.name, address: item.address, landLine: item.landLine})\n });\n\n let icon = {\n url: item.iconUrl || refillingPlantIcon,\n scaledSize: new maps.Size(item.width || MapConfig.pin.width, item.height || MapConfig.pin.height)\n }\n let coords = item.geometry.coordinates;\n let marker = new maps.Marker({\n position: new maps.LatLng( _.get(coords,\"[0]\", null), _.get(coords,\"[1]\", null)),\n map,\n title: item.name,\n icon: icon\n });\n\n marker.set(\"id\", item.id);\n marker.addListener(\"click\", function() {\n self.clickRefillingPlant(this.get(\"id\"));\n });\n\n marker.addListener(\"mouseover\", function() {\n infowindow.open(map, marker);\n });\n\n marker.addListener(\"mouseout\", function () {\n infowindow.close(map, marker);\n });\n\n }); \n }\n\n loadPoiPins (data, map, maps) {\n let self = this;\n _.each(data, (item, index) => {\n\n let infowindow = new maps.InfoWindow({\n content: PoiInfoBoxTemplate({name: item.name, address: item.address, landLine: item.landLine, brand: _.get(item, \"brand.name\", \"\")})\n });\n\n let brandIcon = _.get(item, \"brand.icon\");\n let _icon = null;\n let pinConfig = _.get(MapConfig, \"pin\", {});\n if (brandIcon) {\n _icon = {\n url: Image.toUrlPath(brandIcon.filename),\n scaledSize: new maps.Size(_.get(item, \"brand.width\", pinConfig.width), _.get(item, \"brand.height\", pinConfig.height) ),\n };\n } else {\n _icon = {\n path: `M32 2a20 20 0 0 0-20 20c0 18 20 40 20 40s20-22 20-40A20 20 0 0 0 32 2zm0 28a8 8 0 1 1 8-8 8 8 0 0 1-8 8z`,\n strokeColor: \"#adadad\",\n strokeWeight: 1,\n fillColor: \"#CC0000\",\n fillOpacity: 1.0,\n scale: 0.6\n };\n }\n\n let coords = item.geometry.coordinates;\n let marker = new maps.Marker({\n position: new maps.LatLng( _.get(coords,\"[0]\", null), _.get(coords,\"[1]\", null)),\n map,\n title: item.name,\n icon: _icon\n });\n marker.set(\"id\", item.id);\n marker.addListener(\"click\", function() {\n self.clickPoi(this.get(\"id\"));\n });\n\n marker.addListener(\"mouseover\", function() {\n infowindow.open(map, marker);\n });\n\n marker.addListener(\"mouseout\", function () {\n infowindow.close(map, marker);\n });\n\n });\n }\n\n async getData() {\n \n \n let poiResult = await EsModel.GetPOIs();\n if (poiResult.error) this.setState({dependencyError: poiResult.error});\n\n let refillingPlantResult = await RefillingPlant.Get();\n if (refillingPlantResult.error) this.setState({dependencyError: refillingPlantResult.error});\n\n let geofenceResult = await Geofence.Get();\n if (geofenceResult.error) this.setState({dependencyError: geofenceResult.error});\n\n this.setState({\n dependencyComplete: true,\n pois: poiResult.data, \n refillingPlants: refillingPlantResult.data, \n geofences: geofenceResult.data, \n data: [poiResult.data, refillingPlantResult.data, geofenceResult.data]\n });\n } \n\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete > 0) {\n await this.getData();\n }\n }\n\n async componentDidUpdate () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete > 0) {\n await this.getData();\n }\n }\n\n render () {\n let {error, data, poiRedirectId, rfRedirectId} = this.state;\n if (poiRedirectId) {\n return \n }\n if (rfRedirectId) {\n return \n }\n if (_.size(data) > 0) {\n return (\n
    \n
    \n
    \n Filter\n
    \n\n
    \n
    \n
    \n
     
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n );\n\n } else {\n return
    \n }\n } \n\n};\n\nconst PoiInfoBoxTemplate = _.template(`
    \n
    Point of Interest
    \n
    <%- name %>
    \n

    <%- address %>

    \n

    <%- landLine %>

    \n
    \n

    Brand: <%- brand %>

    \n

    Type: <%- brand %>

    \n
    `);\n\n\nconst RefillingPlantInfoBoxTemplate = _.template(`
    \n
    Refilling Plant
    \n
    <%- name %>
    \n

    <%- address %>

    \n

    <%- landLine %>

    \n
    `);\n\nconst PolygonInfoTemplate = _.template(`
    \n
    Geofence
    \n
    <%- name %>
    \n

    Owner: <%- owner %>

    \n
    `);\n\n\nexport default MapOverview;\n","import React from \"react\";\n\nconst Modal = props => {\n const {children} = props;\n return (\n
    \n
    \n
    \n
    \n
    Search & Filter
    \n \n
    \n\n
    \n {children}\n
    \n
    \n
    \n
    \n );\n\n};\n\nexport default Modal;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass Province {\n\n constructor () {\n this.path = \"/provinces\";\n \n this.table = {\n headers: [\"Code\", \"Name\", \"Total Municipalities\", \"Last Updated\"],\n listKeys: [\"code\", \"name\", \"totalMunicipalities\", \"updatedAt\", \"id\"],\n linkPath: \"/admin/provinces\",\n linkField: \"code\"\n }\n }\n\n async GetDropdown () {\n let {data, error} = await this.Get(true);\n let _data = [];\n _.each(data, (item) => {\n _data.push({\n key: item.id,\n value: item.id,\n label: `${item.code}`\n // label: `${item.code}-${item.name}`\n });\n } );\n return {data: _data, error, list: data};\n } \n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get (raw = false) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", (!raw) ? this.reduceData( response.data ) : response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async GetDropdownList () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", this.toDropdown( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n _.set(n, \"totalMunicipalities\", _.size(n.municipalities) );\n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n toDropdown (result) {\n return _.transform(result.data, (r, n, k) => { \n _.set(n, \"key\", k);\n _.set(n, \"value\", n.id);\n _.set(n, \"label\", `${n.name}`);\n r.push( _.pick(n, [\"id\", \"label\", \"key\"] ) );\n }, []);\n }\n\n}\n\nexport default new Province();","import React from \"react\";\nimport {includes, pull, uniq} from \"lodash\";\n\n\nconst CheckItem = props => {\n const {value, label, checkHandler, checkedItems} = props;\n\n const checkItem = (e) => {\n const {checked, value} = e.target;\n let _checkedItems = checkedItems;\n if (checked) {\n _checkedItems.push(value);\n } else {\n _checkedItems = pull(_checkedItems, value);\n }\n checkHandler( uniq(_checkedItems) ); \n }\n return (\n
  • \n \n
  • \n );\n}\n\nexport default CheckItem;","import React, {useState, useEffect} from \"react\";\n\nimport DataModel from \"../../../../../models/Province\";\nimport CheckItem from \"../check-item\";\nimport {orderBy} from \"lodash\";\nconst Province = props => {\n\n const {checkHandler, checkedItems} = props; \n\n const [data, setData] = useState([]); \n const [error, setError] = useState([]); \n\n useEffect(() => {\n\n async function GetData () {\n let {data = [], error} = await DataModel.GetDropdownList();\n if (data) {\n data.map( i => i.value = i.id);\n }\n setData( orderBy(data, 'label', 'asc') ) ;\n setError(error);\n }\n GetData();\n\n }, []);\n if (error) {\n return

    {error}

    \n }\n if (!data) {\n return

    Loading checklist...

    \n }\n return (\n
    \n
    \n Province\n
    \n
    \n
      \n {\n data.map( ( d ) => )\n }\n
    \n
    \n
    \n );\n};\n\nexport default Province;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass Brand {\n\n constructor () {\n this.path = \"/brands\";\n \n this.table = {\n headers: [\"Code\", \"Name\", \"Date Created\", \"Last Updated\"],\n listKeys: [\"code\", \"name\", \"createdAt\", \"updatedAt\", \"id\"],\n linkPath: \"/admin/brands\",\n linkField: \"code\"\n }\n }\n\n async UploadIcon (id, file) {\n let result = { data: null, error: null };\n let headers = {\n 'Content-Type': 'multipart/form-data', \n 'Accept': 'application/json', \n 'Access-Control-Allow-Origin': '*'\n };\n try {\n let response = await CoreService.post(`${this.path}/${id}/icon`, file, { headers: headers});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async GetDropdownList () {\n let {data, error} = await this.Get({raw: true}); \n\n // dito ka nag stop mak, display ng brands with configured filterEnabled\n let _data = [];\n _.each(data, (item) => {\n\n if (item.filterEnabled) {\n _data.push({\n key: item.id,\n value: item.id,\n label: `${item.code}`\n });\n } \n\n } );\n return {data: _data, error};\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get (params = {}) {\n const {raw = false} = params;\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n (raw) ? _.set(result, \"data\", response.data.data ) : _.set(result, \"data\", this.reduceData( response.data ) );\n // _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async GetToggleList () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/toggle`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n console.log(e);\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Brand();","import React, {useState, useEffect} from \"react\";\nimport {map, each, includes, compact} from \"lodash\";\nimport DataModel from \"../../../../../models/Brand\";\nimport CheckItem from \"../check-item\";\nimport AclService from \"../../../../../services/AclService\";\nimport {orderBy} from \"lodash\";\n\nconst Brand = props => {\n\n let role = AclService.getRole();\n let permittedBrands =map(AclService.getBrandPermissions(), \"id\");\n\n const {checkHandler, checkedItems} = props;\n\n const [data, setData] = useState([]); \n const [error, setError] = useState([]); \n\n useEffect(() => {\n\n async function GetData () {\n let {data, error} = await DataModel.GetDropdownList( true );\n\n if (role === \"user\") { //only allow permitted brands on selected user\n each(data, (brand, i) => {\n if (!includes(permittedBrands, brand.value)) {\n delete data[i];\n }\n });\n data = compact(data);\n\n }\n\n \n\n setData( orderBy(data, 'label', 'asc') ) ;\n setError(error);\n }\n GetData();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (error) {\n return

    {error}

    \n }\n if (!data) {\n return

    Loading checklist...

    \n }\n return (\n
    \n
    \n Category\n
    \n
    \n
      \n {\n data.map( ( d ) => )\n }\n
    \n
    \n
    \n );\n};\n\nexport default Brand;","import React, {useState, useEffect} from \"react\";\n\nimport PoiEntity from \"../../../../../models/PoiEntity\";\nimport CheckItem from \"../check-item\";\nimport {orderBy} from \"lodash\";\n\nlet DataModel = new PoiEntity(\"refilling plant\");\n\nconst RefillingPlants = props => {\n\n const {checkHandler, checkedItems} = props;\n\n const [data, setData] = useState([]); \n const [error, setError] = useState([]); \n\n useEffect(() => {\n\n async function GetData () {\n let {data, error} = await DataModel.GetDropdownList();\n setData( orderBy(data, 'label', 'asc') ) ;\n setError(error);\n }\n GetData();\n\n }, []);\n if (error) {\n return

    {error}

    \n }\n if (!data) {\n return

    Loading checklist...

    \n }\n return (\n
    \n
    \n RefillingPlants\n
    \n
    \n
      \n {\n data.map( ( d ) => )\n }\n
    \n
    \n
    \n );\n};\n\nexport default RefillingPlants;","import React from \"react\";\nimport Input from \"../../../../common/form/input\";\n\n\nconst Name = props => {\n const {value, handler} = props;\n\n return (\n
    \n\n {handler(e.target.value)}} \n value={value}\n name={\"name\"}\n disabled={false} \n />\n
    \n );\n};\n\nexport default Name;","import React, {useEffect, useState} from \"react\";\n\n// import District from \"./fields/district\";\nimport Province from \"./fields/province\";\nimport Brand from \"./fields/brand\";\nimport RefillingPlants from \"./fields/refilling-plants\";\nimport Name from \"./fields/name\";\n\n\nconst FILTER_STORAGE_KEY = \"poi-filters\";\nconst Form = props => {\n\n const {onSubmit, resetToggle} = props;\n\n const [brandFilter, setBrandFilter] = useState([]);\n const [poientityFilter, setPoiEntityFilter] = useState([]);\n const [districtFilter, setDistrictFilter] = useState([]);\n const [provinceFilter, setProvinceFilter] = useState([]);\n const [typeFilter, setTypeFilter] = useState(\"\");\n const [subTypeFilter, setSubtypeFilter] = useState([]);\n const [nameFilter, setNameFilter] = useState(\"\");\n\n useEffect(() => {\n let filters = JSON.parse( localStorage.getItem( FILTER_STORAGE_KEY ) ) || {};\n let {brand = [], poientity = [], district = [], province = [], type = \"\", subType = [], name=\"\"} = filters;\n setBrandFilter( brand );\n setPoiEntityFilter( poientity );\n setDistrictFilter( district );\n setProvinceFilter( province );\n setTypeFilter( type );\n setSubtypeFilter( subType );\n setNameFilter(name);\n // setComplete(true);\n },[]);\n\n useEffect(() => {\n if (resetToggle) {\n localStorage.removeItem( FILTER_STORAGE_KEY ); \n setBrandFilter( [] );\n setPoiEntityFilter( [] );\n setDistrictFilter( [] );\n setProvinceFilter( [] );\n setTypeFilter( \"\" );\n setSubtypeFilter( [] ); \n setNameFilter(\"\"); \n }\n \n }, [resetToggle]);\n\n const submitFilters = () => {\n\n let params = {\n subType: subTypeFilter,\n type: typeFilter,\n province: provinceFilter,\n district: districtFilter,\n poientity: poientityFilter,\n brand: brandFilter,\n name: nameFilter\n };\n\n //store filters to local storage\n localStorage.setItem(FILTER_STORAGE_KEY, JSON.stringify(params) ); \n onSubmit();\n }\n\n const resetFilter = () => {\n\n let ans = window.confirm(\"Are you sure you want to reset all filters?\");\n if (ans) {\n localStorage.removeItem( FILTER_STORAGE_KEY ); \n setBrandFilter( [] );\n setPoiEntityFilter( [] );\n setDistrictFilter( [] );\n setProvinceFilter( [] );\n setTypeFilter( \"\" );\n setSubtypeFilter( [] );\n setNameFilter(\"\"); \n window.location = \"/point-of-interests\";\n }\n return false;\n }\n\n return (\n <>\n
    \n\n \n\n {/**/}\n\n \n\n \n\n {/**/}\n\n \n \n

    \n
    \n\n
    \n \n
    \n \n  \n \n\n
    \n
    \n
    \n\n\n \n );\n}\n\nexport default Form;","import _ from \"lodash\";\nimport {Parser} from \"json2csv\";\nimport Util from \"../../../../services/Util\";\n\nfunction ExportToCsv (data) {\n const fields = ['ID', 'NAME', 'ADDRESS', 'BRAND', 'DISTRICT', 'LANDLINE', 'LANDLINE2', 'LANDLINE3', 'LANDMARK', 'MOBILE', 'MOBILE2', 'MOBILE3', 'PROVINCE', 'MUNICIPALITY', 'OWNER', 'TYPE', 'LONGITUDE', 'LATITUDE', 'SUB_TYPE', 'DATE_CREATED', 'LAST_UPDATED'];\n\n let _data = [];\n\n _.each( data, (poi, index) => {\n _data.push({\n 'ID' : poi.id,\n 'NAME' : poi.name,\n 'ADDRESS' : poi.address,\n 'BRAND / CATEGORY' : _.get(poi, \"brand.code\"),\n 'DISTRICT' : _.get(poi, \"district.code\"),\n 'LANDLINE' : poi.landLine,\n 'LANDLINE2' : poi.landLine2,\n 'LANDLINE3' : poi.landLine3,\n 'LANDMARK' : poi.landMark,\n 'MOBILE' : poi.mobile,\n 'MOBILE2' : poi.mobile2,\n 'MOBILE3' : poi.mobile3,\n 'PROVINCE' : _.get(poi, \"province.code\"),\n 'MUNICIPALITY' : _.get(poi, \"municipality.code\"),\n 'OWNER' : poi.owner,\n 'TYPE' : _.get(poi, \"type.name\"),\n 'LONGITUDE' : _.get(poi, \"geometry.coordinates[0]\"),\n 'LATITUDE' : _.get(poi, \"geometry.coordinates[1]\"),\n 'SUB_TYPE' : poi.subType,\n 'DATE_CREATED' : Util.readableDateFormat(poi.createdAt),\n 'LAST_UPDATED' : Util.readableDateFormat(poi.updatedAt)\n });\n });\n\n const Json2csvParser = new Parser({fields});\n const csv = Json2csvParser.parse(_data); \n\n const file = new Blob([csv], { type: 'text/csv;charset=utf-8;' }); \n const fileURL = URL.createObjectURL(file);\n\n let link = document.createElement(\"a\");\n link.setAttribute(\"href\", fileURL);\n link.style.visibility = 'hidden'; \n link.setAttribute(\"download\", \"business-mapper-export.csv\"); \n document.body.appendChild(link); \n link.click();\n document.body.removeChild(link); \n // window.open(fileURL);\n \n}\n\nexport default ExportToCsv;","import React from \"react\";\n// import Brand from \"../../../../models/Brand\";\n\nconst ToggleCategories = props => {\n\n const {toggleBrands, toggleHandler} = props;\n\n return (\n <>\n {\n toggleBrands.map((brand, i) => {\n return (\n \n {toggleHandler(e.target.checked, brand.id)}}/> \n \n     \n \n );\n })\n }\n \n\n );\n \n\n};\n\nexport default ToggleCategories;","import React, {useState} from \"react\";\nimport {NavLink} from \"react-router-dom\";\nimport Modal from \"./modal\";\nimport Form from \"./form\";\nimport Csv from \"./csv\";\nimport ToggleCategories from \"./toggle-categories\";\n\nconst FILTER_STORAGE_KEY = \"poi-filters\";\n\nconst Filter = props => {\n const {ToggleGeofenceView, ToggleRefillingPlantsView, ToggleRadiusView, ToggleRadiusValue, ToggleBrandView} = props;\n const {isFiltered, data, showGeofence, showRefillingPlants, showRadius, radius, toggleBrands} = props.state;\n\n const [resetToggle, setResetToggle] = useState(false);\n\n const ToggleGeofence = (e) => {\n const {checked} = e.target;\n ToggleGeofenceView( checked );\n }\n\n const ToogleRadius = (e) => {\n const {checked} = e.target;\n ToggleRadiusView( checked );\n }\n\n const ToggleRefillingPlants = (e) => {\n const {checked} = e.target;\n ToggleRefillingPlantsView( checked );\n }\n\n const ToggleFilterModal = e => {\n e.preventDefault();\n localStorage.removeItem( FILTER_STORAGE_KEY ); \n setResetToggle( !resetToggle );\n // console.log(\"ToggleFilterModal:\", e);\n // // data-toggle=\"modal\" \n return true;\n }\n\n\n let options = [];\n for (var ctr = 1; ctr <=10; ctr++) {\n options.push()\n }\n return (\n <>\n
    \n \n
    \n
    \n \n \n  \n km\n{/* \n*/}\n     \n \n \n\n    \n \n \n
    \n \n
    \n\n
    \n \n
    \n\n \n \n
    \n \n
    \n\n {\n isFiltered && \n }\n \n \n\n );\n};\n\n\nconst ResultNotif = props => {\n const {data} = props;\n return (\n\n
    \n
    \n
    Your filter returned {data.length} results. {Csv( data )}} download=\"test.csv\">Click here to export / download the result.
    \n
    \n
    \n );\n}\n\nexport default Filter;","import {isEmpty} from \"lodash\";\nimport Util from \"../../../../services/Util\";\n\nclass Geofence {\n\n constructor (map, maps) {\n this._map = map;\n this._maps = maps;\n }\n\n Draw (geoData, infoWindow) {\n\n let polygonList = this._map.POLYGON_LIST || [];\n\n if (isEmpty(geoData)) {\n return false;\n }\n\n let coords = Util.convertCoordinates(geoData.polygonCoords);\n let polygon = new this._maps.Polygon({\n path: coords,\n strokeColor: geoData.strokeColor,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: geoData.fillColor,\n fillOpacity: 0.1,\n editable: false,\n draggable: false\n });\n polygon.setMap(this._map); \n\n this._maps.event.addListener(polygon,\"mouseover\", function (e) {\n infoWindow.setPosition( e.latLng);\n infoWindow.open(this._map, polygon);\n }); \n\n this._maps.event.addListener(polygon,\"mouseout\", function () {\n infoWindow.close(this._map, polygon);\n }); \n\n polygonList.push(polygon);\n\n this._map.POLYGON_LIST = polygonList;\n }\n\n}\nexport default Geofence;","\nclass Radius {\n\n constructor (map, maps) {\n this._map = map;\n this._maps = maps;\n }\n\n Draw (geometry, visible, radius = 5) {\n\n const coords = geometry.coordinates;\n let radiusList = this._map.RADIUS_LIST || []; \n\n let pointOfInterest = new this._maps.Circle({\n strokeColor: '#fc8403',\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: '#fcba03',\n fillOpacity: 0.35,\n map: this._map,\n center: new this._maps.LatLng( coords[0], coords[1] ),\n radius: (radius * 1000) // * 1000 to convert to km\n });\n pointOfInterest.setVisible(visible);\n\n radiusList.push(pointOfInterest);\n this._map.RADIUS_LIST = radiusList; \n }\n\n}\nexport default Radius;","import { each, join, compact, template, get } from \"lodash\";\nimport MapConfig from \"../../../../config/map\";\n\nimport Image from \"../../../../services/Image\";\nimport Geofence from \"./geofence\";\nimport Radius from \"./radius\";\nimport MeasureTool from \"measuretool-googlemaps-v3\";\n\n/*assets*/\nimport refillingPlantIcon from \"../../../../assets/icon-google-map-10.jpg\";\n\n\nclass PoiPins {\n\n constructor(map, maps, data, refillingPlants, showRefillingPlant, showRadius = false, radius, brandTogglePins = []) {\n this._map = map;\n this._maps = maps;\n this._data = data;\n this._refillingPlants = refillingPlants;\n\n this._showRadius = showRadius;\n\n /*map inits*/\n map.mapTypeControl = true;\n\n this.LoadMeasuringTool();\n\n this.LoadPins();\n\n this.LoadRefillingPlants(showRefillingPlant);\n\n this.LoadBrandTogglePins(brandTogglePins);\n\n }\n\n\n LoadBrandTogglePins(togglePins, visible = false) {\n\n let brandToggleList = this._map.BRAND_TOGGLE_LIST || {};\n\n\n // const geofenceObj = new Geofence(this._map, this._maps);\n // const radiusObj = new Radius(this._map, this._maps);\n\n each(togglePins, (item, index) => {\n\n let tmpArray = brandToggleList[item.brandId] || [];\n\n //setup landline\n item.landlines = this.arrangeLandLines(item);\n item.mobiles = this.arrangeMobiles(item);\n\n //setup refilling plants\n item.refillingPlants = this.arrangeRefillingPlants(item);\n let infowindow = new this._maps.InfoWindow({\n content: PoiInfoBoxTemplate({ poi: item })\n });\n\n item.icon = this.arrangeBrandIcon(item.brand);\n let _marker = this.CreateMarker(item, this._map, infowindow);\n _marker.setVisible(visible);\n\n // geofenceObj.Draw( item.geofence, infowindow ); //draw geofence\n // radiusObj.Draw( item.geometry, this._showRadius );\n\n tmpArray.push(_marker);\n brandToggleList[item.brandId] = tmpArray;\n });\n\n this._map.BRAND_TOGGLE_LIST = brandToggleList;\n\n }\n\n LoadPins() {\n\n const geofenceObj = new Geofence(this._map, this._maps);\n const radiusObj = new Radius(this._map, this._maps);\n\n each(this._data, (item, index) => {\n\n //setup landline\n item.landlines = this.arrangeLandLines(item);\n item.mobiles = this.arrangeMobiles(item);\n\n //setup refilling plants\n item.refillingPlants = this.arrangeRefillingPlants(item);\n let infowindow = new this._maps.InfoWindow({\n content: PoiInfoBoxTemplate({ poi: item })\n });\n\n item.icon = this.arrangeBrandIcon(item.brand);\n this.CreateMarker(item, this._map, infowindow);\n geofenceObj.Draw(item.geofence, infowindow); //draw geofence\n radiusObj.Draw(item.geometry, this._showRadius);\n\n });\n\n }\n\n LoadRefillingPlants(visible) {\n\n let rfList = this._map.REFILLING_PLANT_LIST || [];\n\n each(this._refillingPlants, (item, index) => {\n\n let infowindow = new this._maps.InfoWindow({\n content: RefillingPlantInfoBoxTemplate({ name: item.name, address: item.address, landLine: item.landLine })\n });\n\n let icon = {\n url: item.iconUrl || refillingPlantIcon,\n // scaledSize: new this._maps.Size( ((item.width || MapConfig.pin.width) + 20), ((item.height || MapConfig.pin.height) + 20) )\n scaledSize: new this._maps.Size((item.width || MapConfig.pin.width), (item.height || MapConfig.pin.height))\n }\n let coords = item.geometry.coordinates;\n let marker = new this._maps.Marker({\n position: new this._maps.LatLng(get(coords, \"[0]\", null), get(coords, \"[1]\", null)),\n map: this._map,\n title: item.name,\n icon: icon\n });\n\n marker.setVisible(visible);\n\n marker.addListener(\"mouseover\", function () {\n infowindow.open(this._map, marker);\n });\n\n marker.addListener(\"mouseout\", function () {\n infowindow.close(this._map, marker);\n });\n\n rfList.push(marker);\n\n this._map.REFILLING_PLANT_LIST = rfList;\n\n });\n\n }\n\n LoadMeasuringTool() {\n new MeasureTool(this._map, {\n contextMenu: true,\n showSegmentLength: true,\n tooltip: true,\n unit: MeasureTool.UnitTypeId.METRIC // metric, imperial, or nautical\n });\n }\n\n CreateMarker(item, map, infowindow) {\n let coords = get(item, \"geometry.coordinates\", []);\n let marker = new this._maps.Marker({\n position: new this._maps.LatLng(coords[0], coords[1]),\n map,\n title: item.name,\n icon: item.icon\n });\n marker.set(\"id\", item.id);\n //marker events\n marker.addListener(\"click\", function () {\n window.location = `/point-of-interests/${this.get(\"id\")}`;\n });\n\n marker.addListener(\"mouseover\", function () {\n infowindow.open(this._map, marker);\n });\n\n marker.addListener(\"mouseout\", function () {\n infowindow.close(this._map, marker);\n });\n\n return marker;\n\n }\n\n arrangeLandLines(item) {\n return join(compact([item.landLine, item.landLine2, item.landLine3]), \" / \",);\n }\n arrangeMobiles(item) {\n return join(compact([item.mobile, item.mobile2, item.mobile3]), \" / \",);\n }\n arrangeRefillingPlants(item) {\n return (item && item.poientity) ? item.poientity.name : null;\n }\n arrangeBrandIcon(brand = {}) {\n let _icon = null;\n let brandIcon = brand && brand.icon ? brand.icon : undefined;\n let pinConfig = MapConfig.pin || {};\n if (brandIcon) {\n _icon = {\n url: Image.toUrlPath(brandIcon.filename),\n scaledSize: new this._maps.Size(brand.width || pinConfig.width, brand.height || pinConfig.height)\n };\n } else {\n _icon = {\n path: `M32 2a20 20 0 0 0-20 20c0 18 20 40 20 40s20-22 20-40A20 20 0 0 0 32 2zm0 28a8 8 0 1 1 8-8 8 8 0 0 1-8 8z`,\n strokeColor: \"#adadad\",\n strokeWeight: 1,\n fillColor: \"#CC0000\",\n fillOpacity: 1.0,\n scale: 0.6\n };\n }\n\n return _icon;\n }\n\n\n};\n\n\nconst PoiInfoBoxTemplate = template(`
    \n
    <%- poi.name %>
    \n\n <% if (poi.address) { %>\n

    <%- poi.address %>

    \n <% } %> \n\n <% if (poi.landlines) { %>\n

    Landline: <%- poi.landlines %>

    \n <% } %> \n\n <% if (poi.mobiles) { %>\n

    Mobile: <%- poi.mobiles %>

    \n <% } %> \n\n <% if (poi.owner) { %>\n

    Owner: <%- poi.owner %>

    \n <% } %>\n\n <% if (poi.refillingPlants) { %>\n
    \n

    Servicing Plant: <%- poi.refillingPlants %>

    \n <% } %> \n\n <% if (poi.spDistance) { %>\n <% var time = poi.spTravelTime %>\n <% var timeSplit = time.split(\":\"); %>\n
    \n
    Plant Delivery Reference
    \n

    Distance: <%- poi.spDistance %>km

    \n <% if (timeSplit) { %>\n

    Travel Time: <%- timeSplit[0] %>hr/s <%- timeSplit[1] %>mins

    \n <% } %>\n \n <% } %> \n\n <% if (poi.remarks) { %>\n
    \n

    Remarks: <%- poi.remarks %>

    \n <% } %> \n\n
    `);\n\nconst RefillingPlantInfoBoxTemplate = template(`
    \n
    Refilling Plant
    \n
    <%- name %>
    \n

    <%- address %>

    \n

    <%- landLine %>

    \n
    `);\n\nexport default PoiPins;","import React from \"react\";\nimport GoogleMapReact from \"google-map-react\";\nimport Pins from \"./pins\";\n\n/*layout*/\n\n/*config*/\nimport MapConfig from \"../../../../config/map\";\n\n\nlet _map = null;\nconst MapContainer = props => {\n\n const {data, showGeofence, refillingPlants, showRefillingPlant, showRadius, radius, brandTogglePins, toggleVisibleBrands} = props;\n\n if (_map) {\n if (_map.POLYGON_LIST && _map.POLYGON_LIST.length > 0) _map.POLYGON_LIST.map((p) => p.setVisible(showGeofence) );\n if (_map.REFILLING_PLANT_LIST && _map.REFILLING_PLANT_LIST.length > 0) _map.REFILLING_PLANT_LIST.map((p) => p.setVisible(showRefillingPlant) );\n\n if (_map.RADIUS_LIST && _map.RADIUS_LIST.length > 0) {\n \n _map.RADIUS_LIST.map((p) => {\n p.setRadius( (radius * 1000) );\n p.setVisible(showRadius) \n return p;\n })\n\n };\n\n if (_map.BRAND_TOGGLE_LIST) {\n\n //hide all here. \n for (let brandId in _map.BRAND_TOGGLE_LIST) {\n if (_map.BRAND_TOGGLE_LIST[brandId].length > 0) _map.BRAND_TOGGLE_LIST[brandId].map((p) => p.setVisible(false) );\n } \n\n if (toggleVisibleBrands.length > 0) {\n toggleVisibleBrands.forEach( brandId => {\n if (_map.BRAND_TOGGLE_LIST[brandId].length > 0) _map.BRAND_TOGGLE_LIST[brandId].map((p) => p.setVisible(true) );\n });\n } \n }\n\n\n // _map.BRAND_TOGGLE_LIST[\"5cfa1114d07780000662d5a3\"].map((p) => p.setVisible(toggleVisibleBrands));\n\n // console.log(\"this._map.BRAND_TOGGLE_LIST:\", _map.BRAND_TOGGLE_LIST);\n }\n\n let bootstrapURLKeys = {\n key: MapConfig.apiKey,\n libraries: ['drawing', 'places', 'geometry'].join(',')\n }\n\n let createMapOptions = function (maps) {\n return {\n styles: [{\n \"featureType\": \"all\",\n \"elementType\": \"labels\",\n \"stylers\": [{\n \"visibility\": \"#on\"\n }]\n }],\n streetViewControl: true \n }\n } \n\n return (\n
    \n {\n _map = map;\n new Pins(map, maps, data, refillingPlants, showRefillingPlant, showRadius, radius, brandTogglePins) \n }}\n yesIWantToUseGoogleMapApiInternals={true} />\n
    \n );\n \n};\n\nexport default MapContainer;","import React, { PureComponent } from \"react\";\nimport _ from \"lodash\";\nimport Loader from \"../../common/loader\";\n\nimport FilterBox from \"./filter\";\nimport MapContainer from \"./map/container\";\nimport AclService from \"../../../services/AclService\";\n\n/*Models*/\nimport EsModel from \"../../../models/ElasticSearch\";\nimport Brand from \"../../../models/Brand\";\nimport PoiEntity from \"../../../models/PoiEntity\";\n\nimport Errors from \"../../common/notif/errors\";\n// import Success from \"../../common/notif/success\";\n\n\nconst FILTER_STORAGE_KEY = \"poi-filters\";\nlet RefillingPlant = new PoiEntity();\n\n\nclass PointOfInterest extends PureComponent {\n\n _currentUserRole = null;\n _permittedBrands = null;\n\n\n constructor (props) {\n super(props);\n this.ToggleFilter = this.ToggleFilter.bind(this);\n this.ToggleGeofenceView = this.ToggleGeofenceView.bind(this);\n this.ToggleRefillingPlantsView = this.ToggleRefillingPlantsView.bind(this);\n this.ToggleRadiusView = this.ToggleRadiusView.bind(this);\n this.ToggleRadiusValue = this.ToggleRadiusValue.bind(this);\n this.ToggleBrandView = this.ToggleBrandView.bind(this);\n\n this._currentUserRole = AclService.getRole();\n if (this._currentUserRole === \"user\") {\n this._permittedBrands = _.map(AclService.getBrandPermissions(), \"id\");\n }\n this.state = {\n loadComplete: false,\n isFiltered: false,\n showGeofence: true,\n showRadius: false,\n radius: 5,\n showRefillingPlants: false,\n toggleBrands: [],\n brandTogglePins: [],\n refillingPlants: [],\n toggleVisibleBrands: []\n }\n }\n\n async componentDidMount () {\n\n let params = {};\n if (this._currentUserRole === \"user\") {\n _.set(params, \"brand\", this._permittedBrands);\n }\n\n await this.getData(params);\n\n }\n\n async componentDidUpdate () {\n const {isFiltered, loadComplete} = this.state;\n if (isFiltered && !loadComplete) {\n await this.getData();\n }\n }\n\n async getData(params) {\n\n // check if role === user and if permittedBrands is empty, throw error\n if (this._currentUserRole === \"user\" && _.isEmpty(this._permittedBrands)) {\n this.setState({\n permissionError: \"No Brand is associated with yout account, contact your administrator.\",\n dependencyComplete: true\n });\n return false;\n }\n let brandResult = {};\n let excludeBrands = [];\n brandResult = await Brand.GetToggleList();\n if (brandResult.data) {\n excludeBrands = _.map(brandResult.data, \"id\");\n }\n //check for type param\n // const uriParams = new URLSearchParams( this.props.location.search ); \n // const _type = uriParams.get('type');\n // _.set(params, \"type\", _type || []);\n\n //check local storage for filters\n let filterParams = JSON.parse( localStorage.getItem( FILTER_STORAGE_KEY ) ) || {};\n if (filterParams) {\n filterParams.isFiltered = true;\n filterParams.excludeBrands = excludeBrands;\n }\n\n if (this._currentUserRole === \"user\") {\n if (filterParams) {\n if (_.isEmpty(filterParams.brand)) {\n filterParams.brand = this._permittedBrands;\n }\n } else {\n filterParams.brand = this._permittedBrands;\n }\n }\n let refillingPlantResult = await RefillingPlant.Get();\n\n let brandTogglePINS = await EsModel.GetPOIs( {brand: excludeBrands});\n\n let {data, error} = await EsModel.GetPOIs( filterParams );\n\n this.setState({\n data: data,\n error: error,\n loadComplete: true,\n refillingPlants: refillingPlantResult.data,\n brandTogglePins: brandTogglePINS.data,\n toggleBrands: brandResult.data || []\n }); \n }\n\n ToggleFilter () {\n this.setState({\n isFiltered: true,\n loadComplete: false\n });\n }\n\n ToggleBrandView (toggle, id) {\n if (toggle) {\n this.setState({ \n toggleVisibleBrands: [...this.state.toggleVisibleBrands, id] \n });\n } else {\n let {toggleVisibleBrands} = this.state;\n toggleVisibleBrands = toggleVisibleBrands.filter( (item) => {\n return item !== id;\n });\n this.setState({\n toggleVisibleBrands: toggleVisibleBrands\n });\n }\n }\n\n ToggleGeofenceView (toggle) {\n this.setState({\n showGeofence: toggle\n });\n }\n\n ToggleRadiusView (toggle) {\n this.setState({\n showRadius: toggle\n });\n }\n\n ToggleRadiusValue (e) {\n const {value} = e.target;\n if (value.length <= 3) {\n this.setState({\n radius: value\n });\n }\n // if (/^\\d+$/.test(value)) {\n // } \n \n }\n\n ToggleRefillingPlantsView (toggle) {\n this.setState({\n showRefillingPlants: toggle\n });\n }\n\n render () {\n\n const {loadComplete, data, error, showGeofence, refillingPlants, showRefillingPlants, showRadius, radius, toggleBrands, brandTogglePins, toggleVisibleBrands} = this.state;\n if (!loadComplete) {\n return
    \n }\n return (\n
    \n {\n error && ( )\n }\n\n
    \n
    \n \n \n
    \n
    \n
    \n );\n \n }\n}\nexport default PointOfInterest;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\nimport qs from \"querystring\";\n\nclass Poi {\n\n constructor () {\n this.path = \"/point-of-interests\";\n \n this.table = {\n headers: [\"Name\", \"Owner\", \"Date Created\", \"Last Updated\"],\n listKeys: [\"name\", \"owner\", \"createdAt\", \"updatedAt\", \"id\"],\n linkPath: \"/point-of-interests\",\n linkField: \"name\"\n }\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Get (params) {\n let result = { data: null, error: null };\n let queryParams = qs.stringify(params);\n try {\n let response = await CoreService.get(`${this.path}?${queryParams}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n _.set(n, \"owner\", _.get(n, \"owner\"));\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Poi();","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass District {\n\n constructor () {\n this.path = \"/districts\";\n \n this.table = {\n headers: [\"Code\", \"Name\", \"Date Created\", \"Last Updated\"],\n listKeys: [\"code\", \"name\", \"createdAt\", \"updatedAt\", \"id\"],\n linkPath: \"/admin/districts\",\n linkField: \"code\"\n }\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async GetDropdownList () {\n let {data, error} = await this.Get();\n let _data = [];\n _.each(data, (item) => {\n _data.push({\n key: item.id,\n value: item.id,\n label: `${item.code}`\n // label: `${item.code}-${item.name}`\n });\n } );\n return {data: _data, error};\n }\n\n\n async Get () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new District();","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass Owner {\n\n constructor () {\n this.path = \"/types\";\n \n this.table = {\n headers: [\"Name\", \"Sub Selection\", \"Last Updated\", ],\n listKeys: [\"name\", \"subSelection\", \"updatedAt\", \"id\"],\n linkPath: \"/admin/types\",\n linkField: \"name\"\n }\n }\n\n async GetDropdownList () {\n let {data, error} = await this.Get(true);\n let _data = [];\n _.each(data, (item) => {\n _data.push({\n key: item.id,\n value: item.id,\n label: `${item.name}`,\n subTypes: item.subTypeList\n });\n } );\n return {data: _data, error, list: data};\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get (raw = false) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", (!raw) ? this.reduceData( response.data ) : response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n \n\n\n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n _.set(n, \"subSelection\", _.size(n.subTypeList));\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) ); \n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Owner();","import CoreService from \"../services/Core\";\nimport _ from \"lodash\";\n\nclass PoiGeofence {\n\n constructor () {\n this.path = \"/poi-geofence\";\n }\n\n async Show (poi_id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`/point-of-interests/${poi_id}/geofence`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n}\n\nexport default new PoiGeofence();","import React from \"react\";\n\n/**\n*\n* @label of the select field\n* @name of the input field\n* @required | bool | defaults to true\n* @onChange | fn\n* @value | fn\n**/\nconst Select = ({type=\"text\", disabled=\"\", label, name, required=true, onChange=()=>{}, value, options, multiple = false}) => {\n options = options || [];\n const opts = options.map( (item, index) => {\n return (\n \n );\n }); \n let SelectClass = `form-control border-input`;\n if (multiple) {\n SelectClass = `${SelectClass} multiple`;\n }\n return (\n
    \n \n \n
    \n\n );\n};\n\nexport default Select;","import React, {Fragment} from \"react\";\n\n//common\nimport Loader from \"../common/loader\";\n\n// import AclService from \"../../services/AclService\";\n// let userRole = AclService.getRole();\nconst ButtonRow = props => {\n const {\n isEditMode,\n showLoader,\n buttonDisabled,\n disableEditMode,\n deleteAction = () => {}\n } = props;\n\n if (isEditMode) {\n let loader = (showLoader) ? : null;\n return (\n
    \n
    \n\n \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n \n  \n \n \n
    \n
    \n
    \n );\n\n } else {\n return null;\n }\n\n}\n\nconst deleteWrapper = (action) => {\n let ans = window.confirm(\"Are you sure you want to delete?\");\n return (ans) ? action() : () => {}\n}\n\nexport default ButtonRow;","import React, {useEffect, useState} from \"react\";\nimport MapConfig from \"../../../../config/map\";\nimport { TwitterPicker } from 'react-color';\nimport _ from \"lodash\";\nimport Util from \"../../../../services/Util\";\n\nlet _drawingManager,_currentPolygon = null;\nconst BoundarySettings = props => {\n\n const {map, maps, geofenceHandler, data, isEditMode} = props;\n\n const [buildMode, setBuildMode] = useState(false); \n\n // console.log(\"BoundarySettings->props:\", props );\n // console.log(\"BoundarySettings->data:\", data );\n\n //polygon\n const [hasPolygon, setHasPolygon] = useState(false); \n const [polygonCoords, setPolygonCoords] = useState( [] ); \n const [selectedShape, setSelectedShape] = useState(null); \n\n //colors (toggle & values)\n const [fillColor, setFillColor] = useState( MapConfig.polygon.fillColor ); \n const [fillColorToggle, setFillColorToggle] = useState( false ); \n\n const [strokeColor, setStrokeColor] = useState( MapConfig.polygon.strokeColor ); \n const [strokeColorToggle, setStrokeColorToggle] = useState( false ); \n\n useEffect(() => {\n if (data && data.id) {\n setFillColor( data.fillColor );\n setStrokeColor( data.strokeColor );\n setPolygonCoords( data.polygonCoords );\n }\n }, [data]);\n\n useEffect(() => {\n\n geofenceHandler({\n polygonCoords: polygonCoords,\n fillColor: fillColor,\n strokeColor: strokeColor\n });\n\n }, [fillColor, strokeColor, polygonCoords, buildMode, data, geofenceHandler]);\n\n\n if (maps.drawing && !_.isEmpty(polygonCoords) ) { //draw initial polygon\n if (!_currentPolygon) {\n let coords = Util.convertCoordinates(polygonCoords);\n let polygon = new maps.Polygon({\n path: coords,\n strokeColor: strokeColor,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: fillColor,\n fillOpacity: 0.3,\n editable: false,\n draggable: false\n });\n polygon.setMap(map); \n\n setSelectedShape(polygon);\n setHasPolygon( true );\n\n _currentPolygon = polygon;\n\n // polygon update point events\n _currentPolygon.getPaths().forEach(function(path, index){\n\n maps.event.addListener(path, 'insert_at', function(e) {\n let len = _currentPolygon.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(_currentPolygon.getPath().getAt(i).toUrlValue(5));\n setHasPolygon(true);\n setPolygonCoords(coords);\n } \n\n });\n\n maps.event.addListener(path, 'remove_at', function(e) {\n let len = _currentPolygon.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(_currentPolygon.getPath().getAt(i).toUrlValue(5));\n setHasPolygon(true);\n setPolygonCoords(coords);\n } \n\n });\n\n maps.event.addListener(path, 'set_at', function(e) {\n let len = _currentPolygon.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(_currentPolygon.getPath().getAt(i).toUrlValue(5));\n setHasPolygon(true);\n setPolygonCoords(coords);\n } \n\n });\n\n }); \n // Polygon drag events\n maps.event.addListener(_currentPolygon, 'dragend', function(event){\n let len = _currentPolygon.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(_currentPolygon.getPath().getAt(i).toUrlValue(5));\n setHasPolygon(true);\n setPolygonCoords(coords);\n } \n }); \n\n }\n }\n\n //color pickers\n const colorPickerFillColorChange = color => {\n setFillColor(color.hex);\n updatePolygonProps({fillColor: color.hex});\n } \n const colorPickerStrokeColorChange = color => {\n setStrokeColor(color.hex);\n updatePolygonProps({strokeColor: color.hex});\n } \n\n //polygon settings\n const updatePolygonProps = params => {\n\n if (_currentPolygon) {\n _currentPolygon.setOptions(params);\n } else {\n let polygonOptions = _drawingManager.polygonOptions;\n _drawingManager.setOptions({polygonOptions: _.merge(polygonOptions, params)});\n }\n // if (!_.isEmpty(selectedShape)) {\n // selectedShape.setOptions(params);\n // } else {\n // let polygonOptions = _drawingManager.polygonOptions;\n // _drawingManager.setOptions({polygonOptions: _.merge(polygonOptions, params)});\n // }\n }\n\n //------------ main drawing manager --------//\n let drawingManager = props => {\n\n let {mode, map, maps, hasPolygon, polygonCoordsHandler, hasPolygonHandler, polygonSelector, shape} = props;\n\n if (!mode) {\n return false;\n }\n map.mapTypeControl = true;\n\n if (map) {\n map.POI_MODE = true;\n }\n\n if (maps.drawing && mode) {\n\n drawingManager = new maps.drawing.DrawingManager({\n drawingMode: maps.drawing.OverlayType.POLYGON,\n drawingControl: false,\n drawingControlOptions: {\n position: maps.ControlPosition.TOP_CENTER,\n drawingModes: [\n maps.drawing.OverlayType.POLYGON,\n ]\n },\n polygonOptions: {\n clickable: true,\n draggable: true,\n editable: true,\n fillColor: MapConfig.polygon.fillColor,\n fillOpacity: 0.5,\n strokeWeight: MapConfig.polygon.strokeWeight,\n strokeColor: MapConfig.polygon.strokeColor\n }\n }); \n\n\n drawingManager.setMap(map);\n\n //select currently drawn polygon\n if (hasPolygon) {\n drawingManager.setDrawingMode(null);\n setSelection( shape );\n // polygonSelector(shape);\n } \n\n\n\n maps.event.addListener(drawingManager, 'polygoncomplete', function(event) {\n let len = event.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(event.getPath().getAt(i).toUrlValue(5));\n hasPolygonHandler(true);\n polygonCoordsHandler(coords);\n }\n });\n\n maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {\n let all_overlays = [];\n all_overlays.push(event);\n if (event.type !== maps.drawing.OverlayType.MARKER) {\n drawingManager.setDrawingMode(null);\n //Write code to select the newly selected object.\n\n var newShape = event.overlay;\n newShape.type = event.type;\n maps.event.addListener(newShape, 'click', function(event) {\n return true;\n });\n _currentPolygon = newShape;\n setSelection(newShape);\n }\n });\n\n function setSelection(_shape) {\n clearSelection();\n polygonSelector(_shape);\n // selectedShape = shape;\n _shape.setEditable(true);\n _shape.setDraggable(true);\n }\n function clearSelection() {\n if (shape) {\n shape.setEditable(false);\n shape = null;\n }\n }\n\n }\n\n _drawingManager = drawingManager;\n \n };\n\n\n const clearGeofence = shape => {\n const answer = window.confirm(\"Are you sure you want to delete the current fence and start all over?\");\n if (answer) {\n if (shape) { \n shape.setMap(null);\n _drawingManager.setDrawingMode(maps.drawing.OverlayType.POLYGON);\n setHasPolygon(false);\n geofenceHandler({});\n } \n }\n return false;\n }\n\n const exitGeofenceMode = shape => {\n if (shape) {\n shape.setEditable(false);\n shape.setDraggable(false);\n shape = null;\n }\n\n map.POI_MODE = false;\n _drawingManager.setDrawingMode(null);\n\n return false;\n }\n\n if (!maps.drawing) {\n return null;\n }\n\n\n if (!isEditMode) {\n return null;\n }\n\n\n if (buildMode) {\n return (\n
    \n
    Geofence Settings
    \n\n
    \n\n
    \n
    \n \n
    setFillColorToggle(!fillColorToggle)} >\n
    \n
    {fillColor}
    \n { fillColorToggle ?
    [close picker]
    : null}\n \n
    \n { \n fillColorToggle ? \n
    \n \n
    \n : null \n } \n
    \n
    \n\n
    \n
    \n \n
    setStrokeColorToggle(!strokeColorToggle) } >\n
    \n
    {strokeColor}
    \n {strokeColorToggle ?
    [close picker]
    : null}\n \n
    \n { \n strokeColorToggle ? \n
    \n \n
    \n : null \n }\n
    \n
    \n\n
    \n
    \n
    \n \n   \n \n\n
    \n
    \n\n
    \n\n
    \n );\n }\n return (\n
    \n \n
    \n );\n\n\n\n};\n\nexport default BoundarySettings;","import React, {useState} from \"react\";\nimport {isEmpty} from \"lodash\";\n\nconst PointOfInterestRadius = props => {\n const {marker, maps, map} = props;\n\n let options = [];\n for (var ctr = 1; ctr <=10; ctr++) {\n options.push()\n }\n\n const [toggleView, setToggleView] = useState(true);\n const [radiusMarker, setRadiusMarker] = useState(null);\n const [radiusUnit, setRadiusUnit] = useState(5);\n\n // useEffect(() => {\n // if (!marker) {\n // setRadiusMarker(null);\n // }\n // }, []);\n \n // console.log(\"maps:\", maps);\n if ( isEmpty(map) && isEmpty(maps) ) {\n return null;\n }\n\n if (radiusMarker && !toggleView) {\n radiusMarker.setVisible(false);\n }\n\n if (marker && radiusMarker) {\n maps.event.addListener(marker, 'dragend', function(event) {\n radiusMarker.setCenter( event.latLng );\n }); \n }\n\n // console.log(\"marker:\", marker);\n if (marker && toggleView) {\n\n const lat = marker.getPosition().lat();\n const lng = marker.getPosition().lng();\n\n if (radiusMarker) {\n radiusMarker.setVisible(true);\n radiusMarker.setCenter( new maps.LatLng( lat, lng ) );\n radiusMarker.setRadius(radiusUnit * 1000); // * 1000 to convert to km\n } else {\n if (!isEmpty(maps) ) {\n // console.log(\"maps:\", maps);\n let _radiusMarker = new maps.Circle({\n strokeColor: '#fc8403',\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: '#fcba03',\n fillOpacity: 0.35,\n map: map,\n center: new maps.LatLng( lat, lng ),\n radius: (radiusUnit * 1000) // * 1000 to convert to km\n }); \n setRadiusMarker(_radiusMarker); \n }\n\n }\n \n }\n\n return (\n
    \n
    \n
    \n setToggleView(e.target.checked)}/> \n \n  \n \n
    \n
    \n
    \n );\n};\n\nexport default PointOfInterestRadius;","import React, {Fragment, useState} from \"react\";\nimport GoogleMapReact from \"google-map-react\";\nimport MapConfig from \"../../../../config/map\";\nimport _ from \"lodash\";\n\nimport Image from \"../../../../services/Image\";\n\n//common\nimport Input from \"../../../common/form/input\";\nimport Select from \"../../../common/form/select\";\n\nimport ButtonRow from \"../../../layout/button-loader\";\n\nimport BoundarySettings from \"./boundary-settings\";\nimport Radius from \"./radius\";\nimport TimeField from 'react-simple-timefield';\n\nlet PageisEditMode = false;\nlet brandObject = {};\nlet searchPlace = null; \nlet _marker = null;\nconst Form = props => {\n const {isEditMode, geofence, geofenceData} = props.state; \n PageisEditMode = isEditMode;\n let {hasSubType} = props.state;\n let disabledSubtype = (!hasSubType) ? \"disabled\" : \"\";\n brandObject = props.state.brandObject;\n searchPlace = props.searchPlace;\n\n const [mapObj, setMapObj] = useState({});\n const [mapsObj, setMapsObj] = useState({});\n const [markerObj, setMarkerObj] = useState(null);\n\n if (isEditMode && _marker) {\n _marker.setDraggable(true);\n }\n\n const onTimeChange = (event, time) => {\n props.onChangeSpTravelTime(time);\n }\n\n return (\n \n
    \n \n\n
    \n\n \n \n\n \n \n\n
    \n
    \n
    \n
    Basic & Contact Information
    \n
    \n
    \n
    {\n }} value={props.state.name} name={\"name\"} disabled={!isEditMode} />
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n\n {/* OTHER HALF OF THE FORM */}\n
    \n\n
    \n
    \n
    Location Details
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n
    \n {/*
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    Servicing Plant:
    \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n }\n />\n
    \n
    \n\n\n
    \n\n\n
    \n\n\n
    \n\n
    \n\n \n\n
    \n \n
    \n );\n}\n\nconst MapContainer = props => {\n\n // console.log(\"MapContainer:\", props);\n\n const {mapObjHandler, mapsObjHandler, markerObjHandler} = props;\n let createMapOptions = function (maps) {\n return {\n styles: [{\n \"featureType\": \"all\",\n \"elementType\": \"labels\",\n \"stylers\": [{\n \"visibility\": \"#on\"\n }]\n }],\n streetViewControl: true \n }\n } \n\n let bootstrapURLKeys = {\n key: MapConfig.apiKey,\n libraries: ['drawing', 'places', 'geometry'].join(',')\n } \n\n if (!_.isEmpty(props.geometry)) {\n return (\n
    \n

    Click anywhere on the map to pin location..

    \n {\n mapObjHandler(map);\n mapsObjHandler(maps);\n pinLocation(map, maps, props.geometryHandler, props.geometry || {}, markerObjHandler); \n } }\n yesIWantToUseGoogleMapApiInternals >\n \n
    \n ); \n }\n \n if (props.isRegister) {\n return (\n
    \n

    Click anywhere on the map to pin location..

    \n {\n mapObjHandler(map);\n mapsObjHandler(maps);\n pinLocation(map, maps, props.geometryHandler, {}, markerObjHandler); \n } }\n yesIWantToUseGoogleMapApiInternals >\n \n
    \n );\n }\n return null; \n\n}\n\n\nconst pinLocation = (map, maps, geometryHandler, geometry, markerObjHandler = null) => {\n if (searchPlace) {\n searchPlace(map, maps);\n }\n \n let _icon = null;\n if (brandObject) {\n let brandIcon = brandObject.icon;\n if (brandIcon) {\n _icon = {\n url: Image.toUrlPath(brandIcon.filename),\n scaledSize: new maps.Size(brandObject.width, brandObject.height ),\n };\n }\n }\n\n map.mapTypeControl = true;\n if (!_.isEmpty(geometry)) {\n const coords = {\n lat: _.get(geometry, \"coordinates[0]\"),\n lng: _.get(geometry, \"coordinates[1]\"),\n };\n\n let markerParams = {\n position:coords,\n map:map,\n draggable: (PageisEditMode) ? true : false\n // draggable: true\n }\n if (_icon) {\n _.set(markerParams, \"icon\", _icon);\n }\n _marker = new maps.Marker(markerParams);\n if (markerObjHandler) {\n markerObjHandler(_marker);\n }\n // console.log(\"_marker_marker_marker_marker:\", _marker);\n map.setCenter(coords)\n }\n\n //force center\n\n if (_marker) {\n maps.event.addListener(_marker, 'dragend', function(event) {\n geometryHandler(event.latLng);\n }); \n }\n\n maps.event.addListener(map, \"click\", function(event) {\n\n if (map.POI_MODE) { //temp hack\n return false;\n }\n if (!PageisEditMode) {\n return false;\n }\n\n if (_marker) {\n _marker.setPosition(event.latLng);\n _marker.setMap( map )\n } else {\n _marker = new maps.Marker({\n position: event.latLng,\n map: map,\n draggable:true\n });\n }\n\n if (markerObjHandler) {\n markerObjHandler(_marker);\n }\n\n geometryHandler(event.latLng);\n });\n\n\n\n};\n\nexport default Form;","import React, { Component, Fragment } from \"react\";\nimport {Redirect} from \"react-router-dom\";\nimport ReactDOM from \"react-dom\";\nimport _ from \"lodash\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport Errors from \"../../common/notif/errors\";\nimport Loader from \"../../common/loader\";\n\n/*Load Models*/\nimport Poi from \"../../../models/Poi\";\nimport _PoiEntity from \"../../../models/PoiEntity\";\nimport District from \"../../../models/District\";\nimport Brand from \"../../../models/Brand\";\nimport Type from \"../../../models/Type\";\nimport Province from \"../../../models/Province\";\nimport PoiGeofence from \"../../../models/PoiGeofence\";\n// import Owner from \"../../../models/Owner\";\n\n/**/\nimport Form from \"../../views/point-of-interest/pin/form\";\n\nimport AclService from \"../../../services/AclService\";\n\nlet RefillingPlant = new _PoiEntity(\"refilling plant\");\n\nclass PointOfInterest extends Component {\n\n _currentUserRole = null;\n _permittedBrands = null;\n\n constructor (props) {\n super(props);\n\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeDistrict = this.onChangeDistrict.bind(this);\n this.onChangeBrand = this.onChangeBrand.bind(this);\n this.onChangeType = this.onChangeType.bind(this);\n this.onChangeSubType = this.onChangeSubType.bind(this);\n this.onChangeAddress = this.onChangeAddress.bind(this);\n this.onChangeProvince = this.onChangeProvince.bind(this);\n this.onChangeMunicipality = this.onChangeMunicipality.bind(this);\n this.onChangeLandMark = this.onChangeLandMark.bind(this);\n this.onChangeOwner = this.onChangeOwner.bind(this);\n this.onChangeRemarks = this.onChangeRemarks.bind(this);\n this.onChangeLandline = this.onChangeLandline.bind(this);\n this.onChangeLandline2 = this.onChangeLandline2.bind(this);\n this.onChangeLandline3 = this.onChangeLandline3.bind(this);\n this.onChangeMobile = this.onChangeMobile.bind(this);\n this.onChangeMobile2 = this.onChangeMobile2.bind(this);\n this.onChangeMobile3 = this.onChangeMobile3.bind(this);\n this.onChangePoiEntity = this.onChangePoiEntity.bind(this);\n this.geometryHandler = this.geometryHandler.bind(this);\n this.setGeofence = this.setGeofence.bind(this);\n\n this.onChangeSpTravelTime = this.onChangeSpTravelTime.bind(this);\n this.onChangeSpDistance = this.onChangeSpDistance.bind(this);\n\n this.searchPlace = this.searchPlace.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this._currentUserRole = AclService.getRole();\n if (this._currentUserRole === \"user\") {\n this._permittedBrands = _.map(AclService.getBrandPermissions(), \"id\");\n }\n\n this.state = {\n\n //on page states\n buttonDisabled: false,\n showLoader: false,\n error: null,\n success: null,\n dependencyComplete: false,\n typeList: [],\n provinceList: [],\n hasSubType: false,\n subTypeList: [],\n isEditMode: true,\n isRegister: true,\n\n //dropdown states\n districts: [],\n brands: [],\n types: [],\n provinces: [],\n municipalities: [],\n // owners: [],\n refillingPlants: [],\n\n //field states\n name: \"\",\n district: \"\",\n brand: \"\",\n type: \"\",\n subType: \"\",\n address: \"\",\n province: \"\",\n owner: \"\",\n municipality: \"\",\n landMark: \"\",\n landLine: \"\",\n landLine2: \"\",\n landLine3: \"\",\n mobile: \"\",\n mobile2: \"\",\n mobile3: \"\",\n remarks: \"\",\n geometry: {},\n poientity: \"\",\n geofence: {},\n spDistance: \"\",\n spTravelTime: \"\"\n \n };\n\n }\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n geometryHandler (coords) {\n let geometry = {\n \"type\": \"Point\",\n \"coordinates\": [coords.lat(), coords.lng()]\n };\n\n this.setState({\n geometry: geometry \n });\n }\n\n onChangeDistrict (e) {\n this.setState({\n district: e.target.value\n });\n }\n\n onChangeBrand (e) {\n this.setState({\n brand: e.target.value\n });\n }\n\n onChangeSubType (e) {\n this.setState({\n subType: e.target.value\n });\n }\n\n onChangeAddress (e) {\n this.setState({\n address: e.target.value\n });\n }\n\n onChangeLandMark (e) {\n this.setState({\n landMark: e.target.value\n });\n }\n\n onChangeOwner (e) {\n this.setState({\n owner: e.target.value\n });\n }\n\n onChangeRemarks (e) {\n this.setState({\n remarks: e.target.value\n });\n }\n\n onChangeMobile (e) {\n this.setState({\n mobile: e.target.value\n });\n }\n onChangeMobile2 (e) {\n this.setState({\n mobile2: e.target.value\n });\n }\n onChangeMobile3 (e) {\n this.setState({\n mobile3: e.target.value\n });\n }\n\n onChangeLandline (e) {\n this.setState({\n landLine: e.target.value\n });\n }\n\n onChangeLandline2 (e) {\n this.setState({\n landLine2: e.target.value\n });\n }\n\n onChangeLandline3 (e) {\n this.setState({\n landLine3: e.target.value\n });\n }\n\n onChangePoiEntity (e) {\n this.setState({\n poientity: e.target.value\n });\n }\n\n onChangeSpDistance (e) {\n this.setState({\n spDistance: e.target.value\n });\n }\n\n onChangeSpTravelTime (time) {\n // const {value} = e.target;\n // let timeSplit = value.split(\":\");\n // if (timeSplit[0] > 12) {\n // timeSplit[0] = `0${(timeSplit[0] - 12)}`;\n // }\n // timeSplit = timeSplit.join(\":\");\n this.setState({\n spTravelTime: time\n });\n }\n\n onChangeProvince (e) {\n let provinceId = e.target.value;\n let provinceList = this.state.provinceList;\n let selectedProvince = _.find(provinceList, {id: provinceId}) || {};\n let municipalities = [];\n if (_.size(selectedProvince.municipalities) > 0) {\n _.each(selectedProvince.municipalities, (item) => {\n municipalities.push({\n key: item.id,\n value: item.id,\n label: item.name\n });\n } );\n }\n this.setState({\n province: e.target.value,\n municipalities: municipalities\n });\n }\n\n onChangeMunicipality (e) {\n this.setState({\n municipality: e.target.value\n });\n }\n\n setGeofence (gValues) {\n this.setState({\n geofence: gValues\n });\n }\n\n onChangeType (e) {\n let typeId = e.target.value;\n let typeList = this.state.typeList;\n let selectedType = _.find(typeList, {id: typeId}) || {};\n let hasSubType = false;\n let subTypeList = [];\n if (_.size(selectedType.subTypeList) > 0) {\n hasSubType = true;\n _.each(selectedType.subTypeList, (item) => {\n subTypeList.push({\n key: item,\n value: item,\n label: item\n });\n } ); \n }\n this.setState({\n type: e.target.value,\n hasSubType: hasSubType,\n subTypeList: subTypeList\n });\n }\n\n async onSubmit (e) {\n e.preventDefault();\n let {geometry, geofence} = this.state;\n\n if (_.isEmpty(geometry)) {\n // this.setState({\n // error: \"Please pin a location on the map.\"\n // });\n alert(\"Please pin a location on the map.\");\n return false;\n } \n \n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let params = {\n name: this.state.name,\n address: this.state.address,\n district: this.state.district,\n brand: this.state.brand,\n municipality: this.state.municipality,\n province: this.state.province,\n type: this.state.type,\n subType: this.state.subType,\n landMark: this.state.landMark,\n landLine: this.state.landLine,\n landLine2: this.state.landLine2,\n landLine3: this.state.landLine3,\n owner: this.state.owner,\n mobile: this.state.mobile,\n mobile2: this.state.mobile2,\n mobile3: this.state.mobile3,\n remarks: this.state.remarks,\n geometry: geometry,\n poientity: this.state.poientity,\n spDistance: this.state.spDistance,\n spTravelTime: this.state.spTravelTime\n };\n\n\n let {data, error} = await Poi.Create(params);\n if (data) {\n geofence.poiId = data.data.id;\n await PoiGeofence.Create(geofence);\n this.setState({success: \"New Point of Interest Registered\"});\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n window.scrollTo(0, 0);\n } \n\n }\n\n\n async getDropdownValues () {\n //district\n let districtResult = await District.GetDropdownList();\n if (districtResult.error) { \n this.setState({ dependencyError: districtResult.error});\n } else {\n this.setState({districts: districtResult.data});\n }\n\n //brand\n let brandResult = await Brand.GetDropdownList();\n if (brandResult.error) { \n this.setState({ dependencyError: brandResult.error});\n } else {\n let brandList = brandResult.data;\n\n // limit dropdown choice to permitted brands if role = user\n if (this._currentUserRole === \"user\") {\n let brandManageAccess = _.map(_.filter(AclService.getBrandPermissions(), (obj) => {return obj.manage}), \"id\");\n brandList = _.filter(brandList, (obj) => {\n return (_.includes(brandManageAccess, obj.value)) ? obj : null;\n });\n }\n this.setState({brands: brandList});\n }\n\n\n //type\n let typeResult = await Type.GetDropdownList();\n if (typeResult.error) { \n this.setState({ dependencyError: typeResult.error});\n } else {\n this.setState({types: typeResult.data, typeList: typeResult.list});\n }\n\n //provinces\n let provinceResult = await Province.GetDropdown();\n if (provinceResult.error) { \n this.setState({ dependencyError: provinceResult.error});\n } else {\n this.setState({provinces: provinceResult.data, provinceList: provinceResult.list});\n }\n\n // //owners\n // let ownerResult = await Owner.GetDropdownList();\n // if (ownerResult.error) { \n // this.setState({ dependencyError: ownerResult.error});\n // } else {\n // this.setState({owners: ownerResult.data});\n // }\n\n //refilling plants\n let refillingPlantResult = await RefillingPlant.GetDropdownList();\n if (refillingPlantResult.error) { \n this.setState({dependencyError: refillingPlantResult.error});\n } else {\n this.setState({refillingPlants: refillingPlantResult.data});\n }\n\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n\n searchPlace (map, maps) {\n let input = ReactDOM.findDOMNode(this.refs.input);\n if (maps.places) {\n this.searchBox = new maps.places.SearchBox(input);\n this.searchBox.addListener('places_changed', () => {\n let places = this.searchBox.getPlaces();\n\n let bounds = new maps.LatLngBounds();\n places.forEach(function(place) {\n if (!place.geometry) {\n console.log(\"Returned place contains no geometry\");\n return;\n }\n bounds.extend(place.geometry.location);\n }); \n map.fitBounds(bounds);\n map.setZoom(17.4); \n });\n }\n }\n\n async componentDidMount () {\n // check if role === user and if permittedBrands is empty, throw error\n \n if (this._currentUserRole === \"user\") {\n if (_.isEmpty(this._permittedBrands)) {\n this.setState({\n permissionError: \"No Brand is associated with yout account, contact your administrator.\",\n dependencyComplete: true\n });\n return false;\n } \n let brandManageAccess = _.map(_.filter(AclService.getBrandPermissions(), (obj) => {return obj.manage}), \"id\"); \n if (_.isEmpty(brandManageAccess)) {\n this.setState({\n permissionError: \"Your account cannot `manage` any brand. contact your administrator\",\n dependencyComplete: true\n });\n return false;\n } \n }\n await this.getDropdownValues();\n }\n\n render () {\n let {dependencyComplete, dependencyError, error, success, permissionError} = this.state;\n\n if (dependencyError) {\n return (\n \n \n
    \n \n

    Click here to try again.

    \n
    \n
    \n );\n }\n if (success) {\n return () \n }\n if (permissionError) {\n return (\n \n \n
    \n \n
    \n
    \n ) \n }\n if (dependencyComplete || error) {\n return (\n \n \n
    \n \n
    \n
    \n
    \n {/*

    Register Point of Interest

    */}\n\n
    \n\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n \n \n \n
    \n
    \n
    \n
    \n );\n } else {\n return
    \n }\n }\n}\n\nexport default PointOfInterest;","import React, {Fragment} from \"react\";\nimport {NavLink} from \"react-router-dom\";\nimport Util from \"../../services/Util\";\n\n\nconst RecordMetaData = ({createdAt, updatedAt, updatedBy, createdBy}) => {\n return (\n \n Meta Data \n
    \n
    \n { createdBy &&
    Created By: { createdBy }
    }\n
    Date Created: { Util.readableDateFormat(createdAt) }
    \n
    Last Updated: { Util.readableDateFormat(updatedAt) }
    \n { updatedBy &&
    Last Updated By: { updatedBy }
    }\n{/*
    Updated By: Juan Dela Cruz
    \n
    Created By: Makmak Garcia
    \n*/} \n
    \n
    \n
    \n\n );\n}\n\nexport default RecordMetaData;\n","import React, { Component, Fragment } from \"react\";\nimport _ from \"lodash\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport {Redirect} from \"react-router-dom\";\nimport RecordMetaData from \"../../layout/metadata\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\n\n/*Load Models*/\nimport Poi from \"../../../models/Poi\";\nimport _PoiEntity from \"../../../models/PoiEntity\";\n// import District from \"../../../models/District\";\nimport Brand from \"../../../models/Brand\";\nimport Type from \"../../../models/Type\";\nimport Province from \"../../../models/Province\";\n// import Owner from \"../../../models/Owner\";\nimport PoiGeofence from \"../../../models/PoiGeofence\";\n\nimport AclService from \"../../../services/AclService\";\n\n\n/**/\nimport Form from \"../../views/point-of-interest/pin/form\";\nlet RefillingPlant = new _PoiEntity(\"refilling plant\");\n\nclass PointOfInterest extends Component {\n _currentUserRole = null;\n _permittedBrands = null;\n _brandManageAccess = null;\n\n constructor (props) {\n super(props);\n this.poiId = _.get(this.props, \"match.params.id\");\n\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeDistrict = this.onChangeDistrict.bind(this);\n this.onChangeBrand = this.onChangeBrand.bind(this);\n this.onChangeType = this.onChangeType.bind(this);\n this.onChangeSubType = this.onChangeSubType.bind(this);\n this.onChangeAddress = this.onChangeAddress.bind(this);\n this.onChangeProvince = this.onChangeProvince.bind(this);\n this.onChangeMunicipality = this.onChangeMunicipality.bind(this);\n this.onChangeLandMark = this.onChangeLandMark.bind(this);\n this.onChangeOwner = this.onChangeOwner.bind(this);\n this.onChangeRemarks = this.onChangeRemarks.bind(this);\n this.onChangeLandline = this.onChangeLandline.bind(this);\n this.onChangeLandline2 = this.onChangeLandline2.bind(this);\n this.onChangeLandline3 = this.onChangeLandline3.bind(this);\n this.onChangeMobile = this.onChangeMobile.bind(this);\n this.onChangeMobile2 = this.onChangeMobile2.bind(this);\n this.onChangeMobile3 = this.onChangeMobile3.bind(this);\n this.geometryHandler = this.geometryHandler.bind(this);\n this.onChangePoiEntity = this.onChangePoiEntity.bind(this);\n this.enableEditMode = this.enableEditMode.bind(this);\n this.disableEditMode = this.disableEditMode.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n this.setGeofence = this.setGeofence.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.onChangeSpTravelTime = this.onChangeSpTravelTime.bind(this);\n this.onChangeSpDistance = this.onChangeSpDistance.bind(this);\n\n\n this._currentUserRole = AclService.getRole();\n if (this._currentUserRole === \"user\") {\n this._permittedBrands = _.map(AclService.getBrandPermissions(), \"id\");\n this._brandManageAccess = _.map(_.filter(AclService.getBrandPermissions(), (obj) => {return obj.manage}), \"id\"); \n }\n\n\n\n this.state = {\n\n //on page states\n buttonDisabled: false,\n showLoader: false,\n error: null,\n success: null,\n dependencyComplete: false,\n typeList: [],\n provinceList: [],\n hasSubType: false,\n subTypeList: [],\n isEditMode: false,\n\n //dropdown states\n districts: [],\n brands: [],\n types: [],\n provinces: [],\n municipalities: [],\n owners: [],\n refillingPlants: [], \n\n //field states\n name: \"\",\n district: \"\",\n brand: \"\",\n brandObject: {},\n type: \"\",\n subType: \"\",\n address: \"\",\n province: \"\",\n municipality: \"\",\n landMark: \"\",\n landLine: \"\",\n landLine2: \"\",\n landLine3: \"\",\n mobile: \"\",\n mobile2: \"\",\n mobile3: \"\",\n remarks: \"\",\n geometry: {},\n poientity: \"\", \n createdAt: \"\",\n updatedAt: \"\",\n geofence: {},\n geofenceData: {},\n updatedBy: \"\",\n createdBy: \"\",\n spDistance: \"\",\n spTravelTime: \"\"\n\n \n };\n\n }\n\n\n setGeofence (gValues) {\n this.setState({\n geofence: gValues\n });\n }\n\n\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: false\n });\n\n let {data, error} = await Poi.Delete(this.poiId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Point of Interest Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n window.scrollTo(0, 0); \n } \n } \n\n onChangeSpDistance (e) {\n this.setState({\n spDistance: e.target.value\n });\n }\n\n onChangeSpTravelTime (time) {\n this.setState({\n spTravelTime: time\n });\n }\n\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n geometryHandler (coords) {\n let geometry = {\n \"type\": \"Point\",\n \"coordinates\": [coords.lat(), coords.lng()]\n };\n this.setState({\n geometry: geometry \n });\n }\n\n onChangeDistrict (e) {\n this.setState({\n district: e.target.value\n });\n }\n\n onChangeBrand (e) {\n this.setState({\n brand: e.target.value\n });\n }\n\n onChangeSubType (e) {\n this.setState({\n subType: e.target.value || undefined\n });\n }\n\n onChangeAddress (e) {\n this.setState({\n address: e.target.value\n });\n }\n\n onChangeLandMark (e) {\n this.setState({\n landMark: e.target.value\n });\n }\n\n onChangeOwner (e) {\n this.setState({\n owner: e.target.value || \"\"\n });\n }\n\n onChangeRemarks (e) {\n this.setState({\n remarks: e.target.value\n });\n }\n\n onChangeMobile (e) {\n this.setState({\n mobile: e.target.value\n });\n }\n onChangeMobile2 (e) {\n this.setState({\n mobile2: e.target.value\n });\n }\n onChangeMobile3 (e) {\n this.setState({\n mobile3: e.target.value\n });\n }\n\n onChangeLandline (e) {\n this.setState({\n landLine: e.target.value\n });\n }\n\n onChangeLandline2 (e) {\n this.setState({\n landLine2: e.target.value\n });\n }\n\n onChangeLandline3 (e) {\n this.setState({\n landLine3: e.target.value\n });\n }\n\n enableEditMode () {\n this.setState({\n isEditMode: true\n });\n }\n\n disableEditMode () {\n this.setState({\n isEditMode: false\n });\n }\n\n onChangeProvince (e) {\n \n let provinceId = e.target.value;\n let provinceList = this.state.provinceList;\n let selectedProvince = _.find(provinceList, {id: provinceId}) || {};\n let municipalities = [];\n if (_.size(selectedProvince.municipalities) > 0) {\n _.each(selectedProvince.municipalities, (item) => {\n municipalities.push({\n key: item.id,\n value: item.id,\n label: item.name\n });\n } );\n }\n this.setState({\n province: e.target.value,\n municipalities: municipalities\n });\n }\n\n onChangeMunicipality (e) {\n this.setState({\n municipality: e.target.value\n });\n }\n\n onChangeType (e) {\n let typeId = e.target.value;\n let typeList = this.state.typeList;\n let selectedType = _.find(typeList, {id: typeId}) || {};\n let hasSubType = false;\n let subTypeList = [];\n if (_.size(selectedType.subTypeList) > 0) {\n hasSubType = true;\n _.each(selectedType.subTypeList, (item) => {\n subTypeList.push({\n key: item,\n value: item,\n label: item\n });\n } ); \n }\n this.setState({\n type: e.target.value || undefined,\n hasSubType: hasSubType,\n subTypeList: subTypeList\n });\n }\n\n onChangePoiEntity (e) {\n this.setState({\n poientity: e.target.value\n });\n } \n\n\n async onSubmit (e) {\n e.preventDefault();\n let {geometry, geofence} = this.state;\n if (_.isEmpty(geometry)) {\n this.setState({\n error: \"Please pin a location on the map.\"\n });\n window.scrollTo(0, 0); \n return false;\n } \n \n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let params = {\n name: this.state.name,\n address: this.state.address,\n district: this.state.district,\n brand: this.state.brand,\n municipality: this.state.municipality,\n province: this.state.province,\n type: this.state.type || null,\n subType: this.state.subType || null,\n landMark: this.state.landMark,\n landLine: this.state.landLine,\n landLine2: this.state.landLine2,\n landLine3: this.state.landLine3,\n owner: this.state.owner || \"\",\n mobile: this.state.mobile,\n mobile2: this.state.mobile2,\n mobile3: this.state.mobile3,\n remarks: this.state.remarks,\n geometry: geometry,\n poientity: this.state.poientity,\n spDistance: this.state.spDistance,\n spTravelTime: this.state.spTravelTime\n\n };\n\n let {data, error} = await Poi.Update(this.poiId, params);\n if (data) {\n geofence.poiId = this.poiId;\n await PoiGeofence.Create(geofence);\n\n this.setState({\n success: \"Point of Interest Updated.\",\n error: null,\n showLoader: false,\n buttonDisabled: false\n }); \n window.scrollTo(0, 0); \n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n window.scrollTo(0, 0); \n } \n\n }\n\n\n async getDropdownValues () {\n //district\n // let districtResult = await District.GetDropdownList();\n // if (districtResult.error) { \n // this.setState({ dependencyError: districtResult.error});\n // } else {\n // this.setState({districts: districtResult.data});\n // }\n\n //brand\n let brandResult = await Brand.GetDropdownList();\n if (brandResult.error) { \n this.setState({ dependencyError: brandResult.error});\n } else {\n this.setState({brands: brandResult.data});\n }\n\n //type\n let typeResult = await Type.GetDropdownList();\n if (typeResult.error) { \n this.setState({ dependencyError: typeResult.error});\n } else {\n this.setState({types: typeResult.data, typeList: typeResult.list});\n }\n\n //provinces\n let provinceResult = await Province.GetDropdown();\n if (provinceResult.error) { \n this.setState({ dependencyError: provinceResult.error});\n } else {\n this.setState({provinces: provinceResult.data, provinceList: provinceResult.list});\n }\n\n //owners\n // let ownerResult = await Owner.GetDropdownList();\n // if (ownerResult.error) { \n // this.setState({ dependencyError: ownerResult.error});\n // } else {\n // this.setState({owners: ownerResult.data});\n // }\n\n\n //refilling plants\n let refillingPlantResult = await RefillingPlant.GetDropdownList();\n if (refillingPlantResult.error) { \n this.setState({dependencyError: refillingPlantResult.error});\n } else {\n this.setState({refillingPlants: refillingPlantResult.data});\n }\n\n\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n\n async componentDidMount () {\n let {data} = this.state;\n await this.getDropdownValues();\n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.poiId);\n }\n }\n\n async getData ( id ) {\n let {data, error} = await Poi.Show( id );\n let geofenceResult = await PoiGeofence.Show( id );\n if (error) this.setState({error: error});\n const provinceId = _.get(data, \"province.id\");\n const typeId = _.get(data, \"type.id\");\n this.onChangeProvince({target: {value: provinceId}});\n this.onChangeType({target: {value: typeId}});\n if (data && _.size(data) > 0) {\n this.setState({\n data: data,\n name: data.name,\n address: data.address,\n district: _.get(data, \"district.id\"),\n province: _.get(data, \"province.id\"),\n municipality: _.get(data, \"municipality.id\"),\n landMark: data.landMark,\n landLine: data.landLine,\n landLine2: data.landLine2,\n landLine3: data.landLine3,\n mobile: data.mobile,\n mobile2: data.mobile2,\n mobile3: data.mobile3,\n owner: data.owner,\n brand: _.get(data, \"brand.id\"),\n brandObject: data.brand,\n type: _.get(data, \"type.id\"),\n poientity: _.get(data, \"poientity.id\"),\n subType: data.subType,\n remarks: data.remarks,\n geometry: data.geometry,\n updatedAt: data.updatedAt,\n createdAt: data.createdAt,\n geofenceData: geofenceResult.data || {},\n updatedBy: data.updatedBy,\n createdBy: data.createdBy,\n spDistance: data.spDistance,\n spTravelTime: data.spTravelTime,\n dependencyComplete: true,\n\n });\n \n } else {\n this.setState({error: \"No Record\"});\n }\n } \n\n render () {\n\n let {dependencyComplete, dependencyError, error, success, redirect} = this.state;\n const btnClass = (this.state.isEditMode) ? \"hide \" : null; \n const recordMetaData = {createdAt: this.state.createdAt, updatedAt: this.state.updatedAt, updatedBy: this.state.updatedBy, createdBy: this.state.createdBy};\n let showEdit = true;\n if (this._currentUserRole === \"user\") {\n if (!_.includes(this._brandManageAccess, this.state.brand)) {\n showEdit = false;\n }\n }\n if (dependencyError) {\n return (\n \n \n
    \n \n

    Click here to try again.

    \n
    \n
    \n );\n }\n if (redirect) {\n return () \n }\n let wazeNavUrl = null;\n if (dependencyComplete || error || success) {\n let {geometry} = this.state;\n if (!_.isEmpty(geometry)){\n wazeNavUrl = `https://www.waze.com/ul?ll=${geometry.coordinates[0]},${geometry.coordinates[1]}&navigate=yes`;\n }\n \n \n return (\n \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n

    Viewing Point of Interest     \n { wazeNavUrl && Waze Navigation }\n

    \n
    \n { \n (showEdit) ?\n
    \n \n
    \n : null\n }\n \n
    \n
    \n\n
    \n
    \n \n
    \n \n
    \n
    \n\n
    \n \n
    \n );\n } else {\n return
    \n }\n }\n};\n\nexport default PointOfInterest;","import React from \"react\";\n\nconst TableHeader = props => {\n return (\n \n \n {\n props.headers.map( (column, i) => {\n return {column}\n })\n }\n \n \n );\n}\n\nexport default TableHeader;","\nimport React from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport _ from \"lodash\";\n\n\nconst TableBody = props => {\n return (\n 0) ? \"table-container\" : null}>\n \n \n ); \n};\n\nconst Rows = props => {\n return props.data.map((row, i) => {\n return \n \n \n });\n\n};\n\nconst Columns = ({row, linkField, linkPath}) => {\n return _.keys(row).map((prop, key) => {\n if (prop !== \"id\") {\n return (prop === linkField) ? : {row[prop]};\n }\n return null;\n }); \n};\n\nconst TableLink = ({props}) => {\n const {link, id, label} = props;\n return {label}\n};\n\nexport default TableBody;","import React from \"react\";\nimport TableHeader from \"./table-header\";\nimport TableBody from \"./table-body\";\n\nconst Table = props => {\n return (\n
    \n
    \n
    \n \n\n \n \n
    \n
    \n
    \n
    \n );\n};\n\nexport default Table;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nclass Filter extends Component {\n\n //Reference::: https://codepen.io/mtclmn/pen/QyPVJp\n constructor (props) {\n super(props);\n this.filterList = this.filterList.bind(this);\n this.state = {\n items: props.data,\n initialItems: [],\n setFilter: props.setFilter,\n message: \"\"\n }\n }\n\n\n componentWillMount () {\n this.setState({initialItems: this.state.items } )\n }\n\n filterList (e) {\n let updatedList = this.state.initialItems;\n const filtered = _.filter(updatedList, (item) => {\n return _.find( _.values(item), (column) => {\n return _.includes( _.toLower(column), _.toLower( e.target.value) );\n });\n });\n this.state.setFilter(filtered);\n }\n\n render () {\n const { message } = this.state;\n return (\n
    \n
    \n \n \n
    \n {message}\n
    \n );\n }\n\n}\n\nexport default Filter;","import React from \"react\";\nimport Filter from \"./filter\";\n\nconst ControlBox = ({element, setFilter, data, children}) => {\n return (\n
    \n
    \n
    \n\n \n\n { element && (\n
    \n \n
    \n )\n }\n\n { children && children}\n
    \n\n
    \n
    \n
    \n );\n}\n\nexport default ControlBox;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\nimport PoiEntity from \"./PoiEntity\";\n\nclass RefillingPlant extends PoiEntity{\n\n constructor (category) {\n\n super(category);\n\n this.table = {\n headers: [ \"Name\", \"Date Created\", \"Last Updated\"],\n listKeys: [\"name\", \"createdAt\", \"updatedAt\", \"id\"],\n linkPath: \"/admin/refilling-plants\",\n linkField: \"name\"\n }\n\n }\n\n async UploadIcon (id, file) {\n let result = { data: null, error: null };\n let headers = {\n 'Content-Type': 'multipart/form-data', \n 'Accept': 'application/json', \n 'Access-Control-Allow-Origin': '*'\n };\n try {\n let response = await CoreService.post(`${this.path}/${id}/icon`, file, { headers: headers});\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async GetDropdownList () {\n let {data, error} = await this.Get({raw: true}); \n\n // dito ka nag stop mak, display ng brands with configured filterEnabled\n let _data = [];\n _.each(data, (item) => {\n\n if (item.filterEnabled) {\n _data.push({\n key: item.id,\n value: item.id,\n label: `${item.code}`\n });\n } \n\n } );\n return {data: _data, error};\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get (params = {}) {\n const {raw = false} = params;\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n (raw) ? _.set(result, \"data\", response.data.data ) : _.set(result, \"data\", this.reduceData( response.data ) );\n // _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n console.log(e);\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new RefillingPlant();","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport {NavLink} from \"react-router-dom\";\n\n\n//common\nimport Table from \"../../common/table/table\";\nimport ControlBox from \"../../common/table/control-box\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n\n//model\nimport RefillingPlant from \"../../../models/RefillingPlant\";\n \n//misc\n// import Create from \"./create\";\n\nclass List extends Component {\n\n constructor (props) {\n super(props);\n this.isSuccessful = this.isSuccessful.bind( this );\n this.setFilter = this.setFilter.bind( this );\n\n this.modalElement = \"#refillingplant-modal\";\n\n this.state = {\n data: [],\n error: null,\n success: _.get(props, \"location.state.success\", \"\"),\n dependencyComplete: false \n }\n }\n\n isSuccessful (message, e) {\n this.setState({\n success: message,\n dependencyComplete: false,\n data: []\n });\n }\n\n setFilter (data, e) {\n this.setState({ \n data: data\n });\n }\n\n async componentDidUpdate(prevProps) {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n } \n\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n\n let _deleteNotif = _.get(this, \"props.location.state.deleteSuccess\", null);\n this.setState({\n success: _deleteNotif\n });\n \n }\n async getData() {\n let {data, error} = await RefillingPlant.Get();\n let {retryCount} = this.state;\n retryCount++;\n if (error) {\n this.setState({\n error: error,\n retryCount: retryCount\n });\n }\n if (data && _.size(data) > 0) {\n this.setState({ data: data, error: null });\n } else {\n this.setState({ error: \"No Record\"});\n }\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n render () {\n return (\n \n \n {/* */}\n {this.DisplayTable()}\n \n );\n }\n\n DisplayTable () {\n\n let {data, error, success} = this.state;\n if (_.size(data) > 0 || error) {\n return (\n \n
    \n \n \n
    \n\n \n
    \n \n Add New\n \n
    \n
    \n\n \n \n );\n } else {\n return
    \n }\n }\n\n}\n\nexport default List;","import React, {Fragment} from \"react\";\n\n//common\nimport Input from \"../../../common/form/input\";\nimport Select from \"../../../common/form/select\";\n\n\n\nconst Form = props => {\n const {isEditMode} = props.state; \n\n\n const DeleteRefillingPlant = () => {\n const ans = window.confirm(\"Are you sure you want to delete this Refilling Plant\");\n if (ans) {\n props.deleteAction();\n }\n } \n return (\n \n
    \n
    \n
    Plant Info & Location Details
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n\n {/* OTHER HALF OF THE FORM */}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n {/*
    \n
    \n \n
    \n
    \n \n
    \n
    */} \n\n
    \n\n
    \n
    \n\n \n\n\n { props.poiEntityId && ( <>\n  \n
    \n \n
    \n \n\n )}\n\n\n\n\n \n
    \n );\n}\n\n\n// const MapContainer = props => {\n\n// let createMapOptions = function (maps) {\n// return {\n// styles: [{\n// \"featureType\": \"all\",\n// \"elementType\": \"labels\",\n// \"stylers\": [{\n// \"visibility\": \"#on\"\n// }]\n// }],\n// streetViewControl: true \n// }\n// } \n// let bootstrapURLKeys = {\n// key: MapConfig.apiKey,\n// libraries: ['drawing', 'places', 'geometry'].join(',')\n// } \n \n// if (!_.isEmpty(props.geometry)) {\n// return (\n//
    \n//

    Click anywhere on the map to pin location..

    \n// pinLocation(map, maps, props.geometryHandler, props.geometry)}\n// yesIWantToUseGoogleMapApiInternals >\n// \n\n//
    \n// ); \n// }\n// if (props.isRegister) {\n// return (\n//
    \n//

    Click anywhere on the map to pin location..

    \n// pinLocation(map, maps, props.geometryHandler, {})}\n// yesIWantToUseGoogleMapApiInternals >\n// \n//
    \n// );\n// }\n// return null; \n\n// }\n\n\n// const pinLocation = (map, maps, geometryHandler, geometry) => {\n// if (searchPlace) {\n// searchPlace(map, maps);\n// }\n \n// let _marker = null;\n// map.mapTypeControl = true;\n// let icon = {\n// url: iconUrl || refillingPlantIcon,\n// scaledSize: new maps.Size(iconWidth || 50, iconHeight || 50)\n// }\n// if (!_.isEmpty(geometry)) {\n// const coords = {\n// lat: _.get(geometry, \"coordinates[0]\"),\n// lng: _.get(geometry, \"coordinates[1]\"),\n// };\n\n// let markerParams = {\n// position:coords,\n// map:map,\n// draggable: (PageisEditMode) ? true : false,\n// icon:icon\n// }\n// _marker = new maps.Marker(markerParams);\n// }\n\n// maps.event.addListener(map, \"click\", function(event) {\n// if (!PageisEditMode) {\n// return false;\n// }\n// if (_marker) {\n// _marker.setPosition(event.latLng);\n// } else {\n\n// _marker = new maps.Marker({\n// position: event.latLng,\n// map: map,\n// draggable:true,\n// icon: icon\n// });\n// }\n// geometryHandler(event.latLng);\n// });\n// };\n\nexport default Form;","import React, { Component, Fragment } from \"react\";\nimport {Redirect} from \"react-router-dom\";\nimport _ from \"lodash\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport ReactDOM from \"react-dom\";\nimport Errors from \"../../common/notif/errors\";\nimport Loader from \"../../common/loader\";\n\n/*Load Models*/\nimport _PoiEntity from \"../../../models/PoiEntity\";\nimport District from \"../../../models/District\";\nimport Brand from \"../../../models/Brand\";\nimport Province from \"../../../models/Province\";\n\n//config\nimport MapConfig from \"../../../config/map\";\n\n\n\n/**/\nimport Form from \"../../views/point-of-interest/refilling-plant/form\";\nconst PoiEntity = new _PoiEntity(\"refilling plant\");\nclass RegisterRefillingPlant extends Component {\n \n constructor (props) {\n super(props);\n\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeDistrict = this.onChangeDistrict.bind(this);\n this.onChangeAddress = this.onChangeAddress.bind(this);\n this.onChangeProvince = this.onChangeProvince.bind(this);\n this.onChangeMunicipality = this.onChangeMunicipality.bind(this);\n this.onChangeRemarks = this.onChangeRemarks.bind(this);\n this.geometryHandler = this.geometryHandler.bind(this);\n this.onChangeWidth = this.onChangeWidth.bind(this);\n this.onChangeHeight = this.onChangeHeight.bind(this);\n this.onChangeIcon = this.onChangeIcon.bind(this);\n\n this.searchPlace = this.searchPlace.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n\n //on page states\n buttonDisabled: false,\n showLoader: false,\n error: null,\n success: null,\n dependencyComplete: false,\n typeList: [],\n provinceList: [],\n hasSubType: false,\n subTypeList: [],\n isEditMode: true,\n isRegister: true,\n\n //dropdown states\n districts: [],\n provinces: [],\n municipalities: [],\n\n //field states\n name: \"\",\n district: \"\",\n address: \"\",\n province: \"\",\n municipality: \"\",\n remarks: \"\",\n geometry: {\n \"type\": \"Point\",\n \"coordinates\": [0, 0]\n },\n width: MapConfig.pin.width,\n height: MapConfig.pin.width,\n icon: \"\",\n iconUrl: \"\",\n\n rpId: \"\"\n\n\n \n };\n\n }\n\n onChangeIcon (e) {\n let _file = _.first(e.target.files);\n if (_file) {\n let reader = new FileReader();\n reader.onload = (e) => {\n this.setState({\n iconUrl: e.target.result,\n icon: _file\n });\n };\n reader.readAsDataURL(_file);\n }\n\n } \n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n geometryHandler (coords) {\n let geometry = {\n \"type\": \"Point\",\n \"coordinates\": [coords.lat(), coords.lng()]\n };\n\n this.setState({\n geometry: geometry \n });\n }\n\n onChangeDistrict (e) {\n this.setState({\n district: e.target.value\n });\n }\n\n onChangeAddress (e) {\n this.setState({\n address: e.target.value\n });\n }\n\n onChangeRemarks (e) {\n this.setState({\n remarks: e.target.value\n });\n }\n\n\n onChangeWidth (e) {\n this.setState({\n width: e.target.value\n });\n }\n\n onChangeHeight (e) {\n this.setState({\n height: e.target.value\n });\n } \n\n onChangeProvince (e) {\n let provinceId = e.target.value;\n let provinceList = this.state.provinceList;\n let selectedProvince = _.find(provinceList, {id: provinceId}) || {};\n let municipalities = [];\n if (_.size(selectedProvince.municipalities) > 0) {\n _.each(selectedProvince.municipalities, (item) => {\n municipalities.push({\n key: item.id,\n value: item.id,\n label: item.name\n });\n } );\n }\n this.setState({\n province: e.target.value,\n municipalities: municipalities\n });\n }\n\n onChangeMunicipality (e) {\n this.setState({\n municipality: e.target.value\n });\n }\n\n async onSubmit (e) {\n e.preventDefault();\n let {geometry} = this.state;\n if (_.isEmpty(geometry)) {\n this.setState({\n error: \"Please pin a location on the map.\"\n });\n window.scrollTo(0, 0); \n return false;\n } \n \n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let params = {\n name: this.state.name,\n address: this.state.address,\n district: this.state.district,\n municipality: this.state.municipality,\n province: this.state.province,\n remarks: this.state.remarks,\n geometry: geometry,\n height: this.state.height,\n width: this.state.height\n };\n\n let {data, error} = await PoiEntity.Create(params);\n if (data) {\n let iconResult = null;\n if (this.state.icon) {\n let formData = new FormData();\n formData.append(\"icon\", this.state.icon);\n iconResult = await PoiEntity.UploadIcon(data.id, formData);\n if (iconResult.error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n return false;\n }\n } \n this.setState({success: true, rpId: data.id});\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n } \n\n window.scrollTo(0, 0);\n return false; \n\n }\n\n searchPlace (map, maps) {\n let input = ReactDOM.findDOMNode(this.refs.input);\n if (maps.places) {\n this.searchBox = new maps.places.SearchBox(input);\n this.searchBox.addListener('places_changed', () => {\n let places = this.searchBox.getPlaces();\n\n let bounds = new maps.LatLngBounds();\n places.forEach(function(place) {\n if (!place.geometry) {\n console.log(\"Returned place contains no geometry\");\n return;\n }\n bounds.extend(place.geometry.location);\n }); \n map.fitBounds(bounds);\n map.setZoom(17.4); \n });\n }\n }\n\n\n\n async getDropdownValues () {\n //district\n let districtResult = await District.GetDropdownList();\n if (districtResult.error) { \n this.setState({ dependencyError: districtResult.error});\n } else {\n this.setState({districts: districtResult.data});\n }\n\n //brand\n let brandResult = await Brand.GetDropdownList();\n if (brandResult.error) { \n this.setState({ dependencyError: brandResult.error});\n } else {\n this.setState({brands: brandResult.data});\n }\n\n //provinces\n let provinceResult = await Province.GetDropdown();\n if (provinceResult.error) { \n this.setState({ dependencyError: provinceResult.error});\n } else {\n this.setState({provinces: provinceResult.data, provinceList: provinceResult.list});\n }\n\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n async componentDidMount () {\n await this.getDropdownValues();\n }\n\n render () {\n let {dependencyComplete, dependencyError, error, success, rpId} = this.state;\n if (dependencyError) {\n return (\n \n \n
    \n \n

    Click here to try again.

    \n
    \n
    \n );\n }\n if (success) {\n\n return (\n \n ) \n\n }\n if (dependencyComplete || error) {\n return (\n \n \n
    \n \n
    \n
    \n
    \n
    \n \n {/*
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    */} \n\n
    \n \n \n
    \n
    \n
    \n
    \n );\n } else {\n return
    \n }\n }\n}\n\nexport default RegisterRefillingPlant;","import CoreService from \"../services/Core\";\nimport _ from \"lodash\";\n\nclass Owner {\n\n constructor () {\n this.path = \"/owners\";\n \n this.table = {\n headers: [\"Name\", \"Type\", \"Email\", \"Contact Number\"],\n listKeys: [\"name\", \"type\", \"email\", \"contactNumber\", \"id\"],\n linkPath: \"/admin/owners\",\n linkField: \"name\"\n }\n }\n\n\n async GetDropdownList () {\n let {data, error} = await this.Get();\n let _data = [];\n _.each(data, (item) => {\n _data.push({\n key: item.id,\n value: item.id,\n label: item.name\n });\n } );\n return {data: _data, error};\n } \n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n\n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Owner();","import React, {useEffect, useState} from \"react\";\nimport Table from \"../../../common/table/table\";\nimport Poi from \"../../../../models/Poi\";\nimport ElasticSearch from \"../../../../models/ElasticSearch\";\nimport Loader from \"../../../common/loader\";\n\nconst PoiList = props => {\n\n const {poiEntityId} = props;\n\n const [pois, setPois] = useState([]);\n const [complete, setComplete] = useState(false);\n\n useEffect(() => {\n\n const GetPoiList = async () => {\n // //poi list\n let {data} = await ElasticSearch.GetPOIs({poientity: poiEntityId});\n if (data) setPois(data); \n setComplete(true);\n };\n\n GetPoiList();//eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); \n\n if (!complete) {\n return \n }\n // console.log(\"Poi.reduceData( pois ):\", Poi.reduceData( pois ));\n return (\n <>\n
    \n
    Point of Interests linked to this refilling plant
    \n
    \n
    \n
    \n \n \n );\n\n\n};\n\nexport default PoiList;","import React, { Component, Fragment } from \"react\";\nimport _ from \"lodash\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport RecordMetaData from \"../../layout/metadata\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\nimport {Redirect} from \"react-router-dom\";\n\n/*Load Models*/\nimport _PoiEntity from \"../../../models/PoiEntity\";\nimport District from \"../../../models/District\";\nimport Brand from \"../../../models/Brand\";\nimport Type from \"../../../models/Type\";\nimport Province from \"../../../models/Province\";\nimport Owner from \"../../../models/Owner\";\n\n\n/*load services*/\nimport AclService from \"../../../services/AclService\";\n\nimport PoiList from \"./list/poi\";\n\n\n\n/**/\nimport Form from \"../../views/point-of-interest/refilling-plant/form\";\nconst PoiEntity = new _PoiEntity(\"refilling plant\");\n\n\nclass RefillingPlantShow extends Component {\n\n _currentUserRole = null;\n\n constructor (props) {\n super(props);\n this.poiEntityId = _.get(this.props, \"match.params.id\");\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeDistrict = this.onChangeDistrict.bind(this);\n this.onChangeAddress = this.onChangeAddress.bind(this);\n this.onChangeProvince = this.onChangeProvince.bind(this);\n this.onChangeMunicipality = this.onChangeMunicipality.bind(this);\n this.onChangeRemarks = this.onChangeRemarks.bind(this);\n this.geometryHandler = this.geometryHandler.bind(this);\n this.enableEditMode = this.enableEditMode.bind(this);\n this.disableEditMode = this.disableEditMode.bind(this);\n this.onChangeWidth = this.onChangeWidth.bind(this);\n this.onChangeHeight = this.onChangeHeight.bind(this);\n this.onChangeIcon = this.onChangeIcon.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n\n this.onSubmit = this.onSubmit.bind(this);\n\n\n this._currentUserRole = AclService.getRole();\n if (this._currentUserRole === \"user\") {\n this._permittedBrands = _.map(AclService.getBrandPermissions(), \"id\");\n this._brandManageAccess = _.map(_.filter(AclService.getBrandPermissions(), (obj) => {return obj.manage}), \"id\"); \n }\n\n\n this.state = {\n\n //on page states\n buttonDisabled: false,\n showLoader: false,\n error: null,\n success: _.get(props, \"location.state.success\", \"\"),\n dependencyComplete: false,\n typeList: [],\n provinceList: [],\n hasSubType: false,\n subTypeList: [],\n isEditMode: true,\n\n //dropdown states\n districts: [],\n provinces: [],\n municipalities: [],\n poi: [],\n\n //field states\n name: \"\",\n district: \"\",\n address: \"\",\n province: \"\",\n municipality: \"\",\n remarks: \"\",\n geometry: {},\n icon: \"\",\n iconUrl: \"\",\n width: \"\",\n height: \"\",\n\n };\n\n }\n\n\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: true\n });\n\n let {data, error} = await PoiEntity.Delete(this.poiEntityId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Refilling Plant Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n window.scrollTo(0, 0); \n } \n } \n\n\n onChangeIcon (e) {\n let _file = _.first(e.target.files);\n if (_file) {\n let reader = new FileReader();\n reader.onload = (e) => {\n this.setState({\n iconUrl: e.target.result,\n icon: _file\n });\n };\n reader.readAsDataURL(_file);\n }\n\n } \n\n\n onChangeWidth (e) {\n this.setState({\n width: e.target.value\n });\n }\n\n onChangeHeight (e) {\n this.setState({\n height: e.target.value\n });\n } \n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n geometryHandler (coords) {\n let geometry = {\n \"type\": \"Point\",\n \"coordinates\": [coords.lat(), coords.lng()]\n };\n this.setState({\n geometry: geometry \n });\n }\n\n onChangeDistrict (e) {\n this.setState({\n district: e.target.value\n });\n }\n\n onChangeBrand (e) {\n this.setState({\n brand: e.target.value\n });\n }\n\n onChangeSubType (e) {\n this.setState({\n subType: e.target.value\n });\n }\n\n onChangeAddress (e) {\n this.setState({\n address: e.target.value\n });\n }\n\n onChangeLandMark (e) {\n this.setState({\n landMark: e.target.value\n });\n }\n\n onChangeOwner (e) {\n this.setState({\n owner: e.target.value\n });\n }\n\n onChangeRemarks (e) {\n this.setState({\n remarks: e.target.value\n });\n }\n\n onChangeMobile (e) {\n this.setState({\n mobile: e.target.value\n });\n }\n\n onChangeLandline (e) {\n this.setState({\n landLine: e.target.value\n });\n }\n\n enableEditMode () {\n this.setState({\n isEditMode: true\n });\n }\n\n disableEditMode () {\n this.setState({\n isEditMode: true\n });\n }\n\n onChangeProvince (e) {\n \n let provinceId = e.target.value;\n let provinceList = this.state.provinceList;\n let selectedProvince = _.find(provinceList, {id: provinceId}) || {};\n let municipalities = [];\n if (_.size(selectedProvince.municipalities) > 0) {\n _.each(selectedProvince.municipalities, (item) => {\n municipalities.push({\n key: item.id,\n value: item.id,\n label: item.name\n });\n } );\n }\n this.setState({\n province: e.target.value,\n municipalities: municipalities\n });\n }\n\n onChangeMunicipality (e) {\n this.setState({\n municipality: e.target.value\n });\n }\n\n onChangeType (e) {\n let typeId = e.target.value;\n let typeList = this.state.typeList;\n let selectedType = _.find(typeList, {id: typeId}) || {};\n let hasSubType = false;\n let subTypeList = [];\n if (_.size(selectedType.subTypeList) > 0) {\n hasSubType = true;\n _.each(selectedType.subTypeList, (item) => {\n subTypeList.push({\n key: item,\n value: item,\n label: item\n });\n } ); \n }\n this.setState({\n type: e.target.value,\n hasSubType: hasSubType,\n subTypeList: subTypeList\n });\n }\n\n\n async onSubmit (e) {\n e.preventDefault();\n let {geometry} = this.state;\n // if (_.isEmpty(geometry)) {\n // this.setState({\n // error: \"Please pin a location on the map.\"\n // });\n // return false;\n // } \n \n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let params = {\n name: this.state.name,\n address: this.state.address,\n district: this.state.district,\n brand: this.state.brand,\n municipality: this.state.municipality,\n province: this.state.province,\n type: this.state.type,\n subType: this.state.subType,\n landMark: this.state.landMark,\n landLine: this.state.landLine,\n owner: this.state.owner,\n mobile: this.state.mobile,\n remarks: this.state.remarks,\n geometry: geometry,\n height: this.state.height,\n width: this.state.width\n };\n \n let {data, error} = await PoiEntity.Update(this.poiEntityId, params);\n if (data) {\n let iconResult = null;\n if (this.state.icon) {\n let formData = new FormData();\n formData.append(\"icon\", this.state.icon);\n iconResult = await PoiEntity.UploadIcon(data.id, formData);\n if (iconResult.error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n return false;\n }\n }\n this.setState({\n success: \"Refilling Plant Details Updated\",\n error: null,\n buttonDisabled: false,\n showLoader: false,\n isEditMode: true,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n\n } \n\n window.scrollTo(0, 0);\n return false; \n \n }\n\n\n async getDropdownValues () {\n //district\n let districtResult = await District.GetDropdownList();\n if (districtResult.error) { \n this.setState({ dependencyError: districtResult.error});\n } else {\n this.setState({districts: districtResult.data});\n }\n\n //brand\n let brandResult = await Brand.GetDropdownList();\n if (brandResult.error) { \n this.setState({ dependencyError: brandResult.error});\n } else {\n this.setState({brands: brandResult.data});\n }\n\n //type\n let typeResult = await Type.GetDropdownList();\n if (typeResult.error) { \n this.setState({ dependencyError: typeResult.error});\n } else {\n this.setState({types: typeResult.data, typeList: typeResult.list});\n }\n\n //provinces\n let provinceResult = await Province.GetDropdown();\n if (provinceResult.error) { \n this.setState({ dependencyError: provinceResult.error});\n } else {\n this.setState({provinces: provinceResult.data, provinceList: provinceResult.list});\n }\n\n //owners\n let ownerResult = await Owner.GetDropdownList();\n if (ownerResult.error) { \n this.setState({ dependencyError: ownerResult.error});\n } else {\n this.setState({owners: ownerResult.data});\n }\n\n // //poi list\n // let poiResult = await Poi.Get({poientity: this.poiEntityId});\n // if (poiResult.error) { \n // this.setState({ dependencyError: poiResult.error});\n // } else {\n // this.setState({poi: Poi.reduceData( poiResult )});\n // }\n\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n\n async componentDidMount () {\n let {data} = this.state;\n await this.getDropdownValues(); \n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.poiEntityId);\n }\n }\n\n async getData ( id ) {\n let {data, error} = await PoiEntity.Show( id );\n if (error) this.setState({error: error});\n const provinceId = _.get(data, \"province.id\");\n this.onChangeProvince({target: {value: provinceId}});\n if (data && _.size(data) > 0) {\n this.setState({\n data: data,\n name: data.name,\n address: data.address,\n district: _.get(data, \"district.id\"),\n province: _.get(data, \"province.id\"),\n municipality: _.get(data, \"municipality.id\"),\n remarks: data.remarks,\n geometry: data.geometry,\n updatedAt: data.updatedAt,\n width: data.width,\n height: data.height,\n iconUrl: data.iconUrl,\n createdAt: data.createdAt\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n } \n\n render () {\n let {dependencyComplete, dependencyError, error, success} = this.state;\n const recordMetaData = {createdAt: this.state.createdAt, updatedAt: this.state.updatedAt};\n let showEdit = true; //eslint-disable-line no-unused-vars\n if (this._currentUserRole === \"user\") {\n showEdit = AclService.checkModulePermission(\"refilling-plants\", true);\n } \n if (dependencyError) {\n return (\n \n \n
    \n \n

    Click here to try again.

    \n
    \n
    \n );\n }\n let {redirect = null} = this.state;\n if (redirect) {\n return ()\n } \n if (dependencyComplete || error) {\n return (\n \n \n
    \n \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n\n
    \n
    \n\n \n\n \n
    \n \n
    \n );\n } else {\n return
    \n }\n }\n};\n\nexport default RefillingPlantShow;","import React from \"react\";\nimport GoogleMapReact from \"google-map-react\";\nimport MapConfig from \"../../../config/map\";\n\nconst MapContainer = props => {\n\n let bootstrapURLKeys = {\n key: MapConfig.apiKey,\n libraries: ['drawing', 'places', 'geometry'].join(',')\n }\n\n let createMapOptions = function (maps) {\n return {\n styles: [{\n \"featureType\": \"all\",\n \"elementType\": \"labels\",\n \"stylers\": [{\n \"visibility\": \"#on\"\n }]\n }] \n }\n }\n\n return (\n \n
    \n props.handler(map, maps)}\n yesIWantToUseGoogleMapApiInternals />\n
    \n
    \n );\n};\n\nexport default MapContainer; ","import React, {Component} from \"react\";\nimport _ from \"lodash\";\nimport MapContainer from \"./list/map\";\nimport {Redirect} from \"react-router-dom\";\nimport Errors from \"../common/notif/errors\";\nimport Success from \"../common/notif/success\";\nimport Loader from \"../common/loader\";\n// import GeofenceItemList from \"./list/item-list\";\nimport Geofence from \"../../models/Geofence\";\n\nimport Util from \"../../services/Util\";\n\nlet polygonList = [];\nclass List extends Component {\n constructor (props) {\n super(props);\n this.mapHandler = this.mapHandler.bind(this);\n this.state = {\n data: [],\n dependencyComplete: false, \n dependencyError: \"\",\n geofenceRedirectId: \"\"\n };\n\n } \n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete > 0) {\n await this.getData();\n }\n\n let updateNotif = _.get(this, \"props.location.state.updateNotif\", null);\n this.setState({\n success: updateNotif\n }); \n }\n\n async getData () {\n let {data, error} = await Geofence.Get();\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({data: data, error: null});\n } else {\n this.setState({error: \"No Record\"});\n } \n this.setState({\n dependencyComplete: true\n });\n\n }\n\n clickPolygon (id) {\n this.setState({\n geofenceRedirectId: id\n });\n }\n\n\n mapHandler (map, maps) {\n map.mapTypeControl = true;\n let fences = this.state.data;\n let self = this;\n\n maps.event.addListener(map, \"maptypeid_changed\", function (e) {\n const mapType = map.getMapTypeId();\n if (mapType === \"satellite\" || mapType === \"hybrid\") {\n _.each(polygonList, (i) => {\n i.setOptions({ fillOpacity: 0.7});\n });\n } else {\n _.each(polygonList, (i) => {\n i.setOptions({ fillOpacity: 0.3});\n });\n }\n });\n\n _.each(fences, (geofence, k) => {\n let coords = Util.convertCoordinates(geofence.polygonCoords);\n let polygon = new maps.Polygon({\n path: coords,\n strokeColor: geofence.strokeColor,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: geofence.fillColor,\n fillOpacity: 0.3,\n editable: false\n });\n\n if (maps.geometry) {\n let area = maps.geometry.spherical.computeArea(polygon.getPath());\n _.set(geofence, \"area\", `${(area / 1e+6).toFixed(2)} sqkm`);\n }\n\n polygon.setMap(map)\n\n polygonList.push(polygon);\n _.set(geofence, \"polygon\", polygon);\n \n let infowindow = new maps.InfoWindow({\n content: PolygonInfoTemplate({name: geofence.name, owner: geofence.owner || \"Unassigned\" })\n });\n\n polygon.set(\"id\", geofence.id);\n polygon.addListener(\"click\", function() {\n self.clickPolygon(this.get(\"id\"));\n });\n\n polygon.addListener(\"mouseover\", function(event) {\n infowindow.setPosition(event.latLng); \n infowindow.open(map);\n });\n\n polygon.addListener(\"mouseout\", function () {\n infowindow.close(map);\n });\n\n });\n\n this.setState({\n data: fences\n });\n\n }\n\n render () {\n\n let {dependencyComplete, data, error, success, geofenceRedirectId} = this.state;\n\n if (geofenceRedirectId) {\n return \n }\n if (dependencyComplete) {\n return (\n \n
    \n \n \n { (error || success) ?
    : null}\n
    \n
    \n
    \n
    \n\n \n\n
    \n\n{/*
    \n \n
    \n*/}\n
    \n
    \n
    \n ) \n } else {\n return
    \n } \n\n }\n}\n\nexport default List;\n\nconst PolygonInfoTemplate = _.template(`
    \n
    <%- name %>
    \n

    Owner: <%- owner %>

    \n
    `);\n","import React from \"react\";\nimport { TwitterPicker } from 'react-color';\nimport {Redirect} from \"react-router-dom\";\nimport Input from \"../../common/form/input\";\n// import Select from \"../../common/form/select\";\nimport MapConfig from \"../../../config/map\";\nimport Loader from \"../../common/loader\";\nclass RegisterForm extends React.Component {\n\n constructor (props) {\n super(props);\n this.colorPickerFillColorOnClick = this.colorPickerFillColorOnClick.bind(this);\n this.colorPickerFillColorChange = this.colorPickerFillColorChange.bind(this);\n\n this.colorPickerStrokeColorOnClick = this.colorPickerStrokeColorOnClick.bind(this);\n this.colorPickerStrokeColorOnChange = this.colorPickerStrokeColorOnChange.bind(this);\n this.deletePolygon = this.deletePolygon.bind(this);\n this.returnToList = this.returnToList.bind(this);\n\n this.polygonUpdate = props.updatePolygonProps;\n this.removePolygon = props.removePolygon;\n this.deleteAction = props.deleteAction;\n this.onChangeOwner = props.onChangeOwner;\n this.onChangeName = props.onChangeName;\n\n this.state = {\n fillColor: MapConfig.polygon.fillColor,\n strokeColor: MapConfig.polygon.strokeColor,\n displayColorPickerFillColor: false,\n displayColorPickerStrokeColor: false,\n\n buttonDisabled: props.state.buttonDisabled,\n owners: props.state.owners,\n owner: props.state.owner,\n name: props.state.name,\n\n redirectToList: false\n\n\n };\n }\n\n colorPickerFillColorOnClick () {\n this.setState({\n displayColorPickerFillColor: !this.state.displayColorPickerFillColor\n });\n }\n\n colorPickerFillColorChange (color) {\n this.setState({\n fillColor: color.hex\n });\n this.polygonUpdate({fillColor: color.hex});\n }\n\n colorPickerStrokeColorOnClick () {\n this.setState({\n displayColorPickerStrokeColor: !this.state.displayColorPickerStrokeColor\n });\n }\n\n colorPickerStrokeColorOnChange (color) {\n this.setState({\n strokeColor: color.hex\n });\n this.polygonUpdate({strokeColor: color.hex});\n }\n\n deletePolygon () {\n this.removePolygon();\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.setState({\n name: nextProps.state.name,\n owner: nextProps.state.owner,\n owners: nextProps.state.owners,\n buttonDisabled: nextProps.state.buttonDisabled,\n showLoader: nextProps.state.showLoader\n });\n }\n\n returnToList () {\n this.setState({\n redirectToList: true\n });\n }\n\n render () {\n let {fillColor, strokeColor, displayColorPickerFillColor, displayColorPickerStrokeColor, buttonDisabled, showLoader, redirectToList} = this.state;\n let loader = (showLoader) ? : null;\n if (redirectToList) {\n return \n }\n return (\n \n
    \n
    \n
    \n
    Basic Information
    \n \n \n {/*\n
    \n
    \n \n \n\n
    \n
    \n \n
    \n\n
    \n \n \n \n \n \n
    \n )\n\n } else {\n return
    \n }\n }\n\n};\n\nexport default Register;","import React, { Component } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport BreadCrumbs from \"../layout/breadcrumbs\";\nimport {Redirect} from \"react-router-dom\";\nimport _ from \"lodash\";\nimport MapConfig from \"../../config/map\";\nimport MapContainer from \"./list/map\";\nimport Loader from \"../common/loader\";\nimport Errors from \"../common/notif/errors\";\nimport Success from \"../common/notif/success\";\nimport ShowForm from \"../views/geofence/form\";\nimport Owner from \"../../models/Owner\";\nimport Geofence from \"../../models/Geofence\";\nimport Util from \"../../services/Util\";\n\nlet selectedShape;\nlet drawingManager;\nlet polygonList = [];\n\nclass Show extends Component {\n\n constructor (props) {\n super(props);\n\n this.geofenceId = _.get(this.props, \"match.params.id\");\n\n this.updatePolygonProps = this.updatePolygonProps.bind(this);\n this.mapHandler = this.mapHandler.bind(this);\n this.onChangeOwner = this.onChangeOwner.bind(this);\n this.onChangeName = this.onChangeName.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.removePolygon = this.removePolygon.bind(this);\n\n this.state = {\n\n //on page states\n hasPolygon: false,\n dependencyError: false,\n dependencyComplete: false,\n buttonDisabled: false,\n showLoader: false,\n error: null,\n success: null,\n\n //field states\n data: [],\n currentGeofence: null,\n owner: \"\",\n name: \"\",\n polygonCoords: [],\n fillColor: \"\",\n strokeColor: \"\",\n\n //dropdown states\n owners: [],\n geofences: [],\n redirect: \"\"\n };\n\n }\n\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: false\n });\n\n let {data, error} = await Geofence.Delete(this.geofenceId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Geofence Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n } \n } \n\n onChangeOwner (e) {\n this.setState({\n owner: e.target.value || undefined\n });\n }\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n getUpdatedCoords () {\n let len = selectedShape.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(selectedShape.getPath().getAt(i).toUrlValue(5));\n }\n return coords;\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let params = {\n owner: this.state.owner || \"\",\n name: this.state.name,\n polygonCoords: this.getUpdatedCoords(),\n fillColor: this.state.fillColor || MapConfig.polygon.fillColor,\n strokeColor: this.state.strokeColor || MapConfig.polygon.strokeColor\n };\n\n if (_.isEmpty(params.polygonCoords)) {\n this.setState({\n error: \"Please draw fence boundary on the map.\",\n buttonDisabled: false,\n showLoader: false\n });\n window.scrollTo(0, 0); \n return false;\n }\n let {data, error} = await Geofence.Update(this.geofenceId, params);\n if (data) {\n this.setState({\n success: \"Geofence Updated\",\n error: null,\n buttonDisabled: false,\n showLoader: false\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n window.scrollTo(0, 0); \n } \n\n\n async componentDidUpdate(prevProps) {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete > 0) {\n await this.getData();\n }\n }\n\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete > 0) {\n await this.getData();\n await this.getDropdownValues();\n }\n }\n\n async getDropdownValues () {\n if ( _.isEmpty(this.state.owners) ) {\n //owners\n let ownerResult = await Owner.GetDropdownList();\n if (ownerResult.error) { \n this.setState({ dependencyError: ownerResult.error});\n } else {\n this.setState({owners: ownerResult.data});\n }\n this.setState({\n dependencyComplete: true\n });\n }\n } \n\n async getData () {\n let {data, error} = await Geofence.Get();\n\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n let currentGeofence = _.find(data, {id: this.geofenceId});\n this.setState({\n geofences: data, \n currentGeofence: currentGeofence, \n owner: currentGeofence.owner,\n name: currentGeofence.name,\n polygonCoords: currentGeofence.polygonCoords || [],\n fillColor: currentGeofence.fillColor,\n strokeColor: currentGeofence.strokeColor,\n error: null\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n this.setState({\n dependencyComplete: true\n });\n }\n\n updatePolygonProps (params) {\n this.setState(params);\n if (!_.isEmpty(selectedShape)) {\n selectedShape.setOptions(params);\n } else {\n let polygonOptions = drawingManager.polygonOptions;\n drawingManager.setOptions({polygonOptions: _.merge(polygonOptions, params)});\n }\n }\n\n\n drawingManager (map, maps) {\n map.mapTypeControl = true;\n let self = this;\n\n if (maps.drawing) {\n drawingManager = new maps.drawing.DrawingManager({\n // drawingMode: maps.drawing.OverlayType.POLYGON,\n drawingControl: false,\n drawingControlOptions: {\n position: maps.ControlPosition.TOP_CENTER,\n drawingModes: [\n maps.drawing.OverlayType.POLYGON,\n ]\n },\n polygonOptions: {\n clickable: true,\n draggable: true,\n editable: true,\n fillColor: MapConfig.polygon.fillColor,\n fillOpacity: 0.5,\n strokeWeight: MapConfig.polygon.strokeWeight,\n strokeColor: MapConfig.polygon.strokeColor\n }\n }); \n\n drawingManager.setMap(map);\n\n maps.event.addListener(drawingManager, 'polygoncomplete', function(event) {\n let len = event.getPath().getLength();\n let coords = [];\n for (let i = 0; i < len; i++) {\n coords.push(event.getPath().getAt(i).toUrlValue(5));\n self.setState({\n hasPolygon: true,\n polygonCoords: coords\n });\n }\n });\n\n maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {\n let all_overlays = [];\n all_overlays.push(event);\n if (event.type !== maps.drawing.OverlayType.MARKER) {\n drawingManager.setDrawingMode(null);\n //Write code to select the newly selected object.\n\n var newShape = event.overlay;\n newShape.type = event.type;\n maps.event.addListener(newShape, 'click', function() {\n setSelection(newShape);\n });\n\n setSelection(newShape);\n }\n }); \n\n function setSelection(shape) {\n clearSelection();\n selectedShape = shape;\n shape.setEditable(true);\n }\n function clearSelection() {\n if (selectedShape) {\n selectedShape.setEditable(false);\n selectedShape = null;\n }\n }\n\n }\n \n }\n\n removePolygon () {\n\n if (selectedShape) {\n const answer = window.confirm(\"Are you sure you want to delete the current fence and start all over?\");\n if (answer) {\n selectedShape.setMap(null);\n drawingManager.setOptions({drawingMode: this.maps.drawing.OverlayType.POLYGON });\n this.setState({\n hasPolygon: false\n });\n }\n }\n\n }\n\n searchPlace (map, maps) {\n let input = ReactDOM.findDOMNode(this.refs.input);\n this.searchBox = new maps.places.SearchBox(input);\n this.searchBox.addListener('places_changed', this.onPlacesChanged);\n }\n\n onPlacesChanged = () => {\n let places = this.searchBox.getPlaces();\n\n let bounds = new this.maps.LatLngBounds();\n places.forEach(function(place) {\n if (!place.geometry) {\n console.log(\"Returned place contains no geometry\");\n return;\n }\n bounds.extend(place.geometry.location);\n }); \n this.map.fitBounds(bounds); \n this.map.setZoom(MapConfig.geofenceZoom);\n }\n\n mapHandler (map, maps) {\n this.map = map;\n this.maps = maps;\n\n if (!maps) {\n return false;\n }\n\n maps.event.addListener(map, \"maptypeid_changed\", function (e) {\n const mapType = map.getMapTypeId();\n if (mapType === \"satellite\" || mapType === \"hybrid\") {\n _.each(polygonList, (i) => {\n i.setOptions({ fillOpacity: 0.7, fillColor: \"#efefef\"});\n });\n } else {\n _.each(polygonList, (i) => {\n i.setOptions({ fillOpacity: 0.3});\n });\n }\n });\n\n this.showCurrentFences(map, maps);\n\n this.drawingManager(map, maps);\n this.searchPlace(map, maps);\n\n } \n\n showCurrentFences (map, maps) {\n\n let fences = this.state.geofences;\n\n _.each(fences, (geofence, k) => {\n\n if (geofence.id === this.state.currentGeofence.id) {\n let coords = Util.convertCoordinates(geofence.polygonCoords);\n let polygon = new maps.Polygon({\n path: coords,\n strokeColor: geofence.strokeColor,\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: geofence.fillColor,\n fillOpacity: 0.3,\n editable: true,\n draggable: true\n });\n polygon.setMap(map);\n _.set(geofence, \"polygon\", polygon);\n polygonList.push(polygon);\n\n //set the selected polygon\n selectedShape = polygon; \n\n //re-center map based on current geofence\n let bounds = new maps.LatLngBounds();\n\n _.each(polygon.getPath().getArray(), (element) => {\n bounds.extend(element);\n });\n map.fitBounds(bounds); \n map.setZoom(MapConfig.geofenceZoom); \n } else {\n let coords = Util.convertCoordinates(geofence.polygonCoords);\n let polygon = new maps.Polygon({\n path: coords,\n strokeColor: \"#8C8484\",\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: \"#8C8484\",\n fillOpacity: 0.3,\n editable: false\n });\n\n \n\n polygon.setMap(map);\n\n polygon.addListener(\"mouseover\", () => {\n console.log(\"test-hover\");\n console.log(this);\n });\n\n _.set(geofence, \"polygon\", polygon);\n polygonList.push(polygon);\n\n }\n\n }); \n }\n\n render () {\n let {dependencyComplete, error, success, redirect} = this.state;\n if (redirect) {\n return () \n } \n if (dependencyComplete) {\n return (\n \n \n
    \n \n \n
    \n
    \n
    \n

    View / Update Geofence

    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n\n
    \n \n \n
    \n
    \n
    \n
    \n
    \n )\n\n } else {\n return
    \n }\n }\n\n};\n\nexport default Show;","import React from \"react\";\nimport { Route } from \"react-router-dom\";\nimport { withRouter } from \"react-router\";\nimport AclService from \"../services/AclService\";\nimport Errors from \"./common/notif/errors\";\n\nconst AclRoute = props => {\n let {roles = []} = props;\n let isRoleAllowed = AclService.checkRolePermission(roles);\n const currentRole = AclService.getRole();\n let isAllowed = true;\n\n if (isRoleAllowed) {//role based checking\n \n if ( props.module && props.roleChecking === currentRole) {\n isAllowed = AclService.checkModulePermission(props.module, props.manage);\n } else {\n isAllowed = true;\n }\n\n } else {\n isAllowed = false;\n }\n return (isAllowed) ? : ;\n}\n\nconst NotAllowed = props => {\n return (\n
    \n \n
    \n )\n}\n\n\n\nexport default withRouter(AclRoute);","import React from \"react\";\nimport _ from \"lodash\";\n\nconst Modal = ({element, title, FormBody, isSuccessful, size=\"lg\"}) => {\n const modalClass = `modal-dialog modal-dialog-centered modal-${size}`;\n let formBody = (_.isFunction (FormBody) ) ? : FormBody;\n return (\n
    \n
    \n
    \n
    \n
    { title }
    \n \n
    \n\n
    \n { formBody }\n
    \n
    \n
    \n
    \n );\n\n};\n\nexport default Modal;","import React from \"react\";\nimport \"./css/style.css\";\n\nconst ToggleSwitch = props => {\n const {label, value = 0, name, handler, disabled} = props;\n return (\n
    \n \n
    \n );\n};\n\nexport default ToggleSwitch;","import React, { Fragment } from \"react\";\n\n//common\nimport Input from \"../../../common/form/input\";\nimport ToggleSwitch from \"../../../common/toggle-switch\";\n\nconst Form = props => {\n const {isEditMode} = props.state; \n return (\n\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n {\n (props.state.iconUrl) ? \"Brand : null\n }\n
    \n
    \n\n
    \n\n
    \n
    \n );\n}\n\n\nexport default Form;\n","\nimport React, { Fragment } from \"react\";\nimport Form from \"./form\";\nimport Loader from \"../../../common/loader\";\n\nconst Create = (props) => {\n props.state.isEditMode = true; \n return (\n
    \n \n
    \n \n\n \n );\n}\n\n\nconst ButtonRow = ({buttonDisabled, showLoader}) => {\n let loader = (showLoader) ? : null;\n return (\n
    \n
    \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n \n  \n \n \n
    \n
    \n
    \n );\n\n}\nexport default Create;","import React, { Component, Fragment } from \"react\";\nimport Error from \"../../common/notif/errors\";\nimport _ from \"lodash\";\n\n//model\nimport Brand from \"../../../models/Brand\";\n\n//config\nimport MapConfig from \"../../../config/map\";\n\n//view\nimport View from \"../../views/admin/brand/create\";\n\nclass Create extends Component {\n\n constructor (props) {\n super(props);\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeCode = this.onChangeCode.bind(this);\n this.onChangeIcon = this.onChangeIcon.bind(this);\n this.onChangeWidth = this.onChangeWidth.bind(this);\n this.onChangeHeight = this.onChangeHeight.bind(this);\n this.onChangeFilterEnabled = this.onChangeFilterEnabled.bind(this); \n this.onChangeToggleBarEnabled = this.onChangeToggleBarEnabled.bind(this); \n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\",\n icon: \"\",\n iconUrl: \"\",\n filterEnabled: true,\n toggleBarEnabled: false,\n width: MapConfig.pin.width,\n height: MapConfig.pin.height,\n isSuccessful: props.isSuccessful\n };\n }\n\n onChangeIcon (e) {\n let _file = _.first(e.target.files);\n if (_file) {\n let reader = new FileReader();\n reader.onload = (e) => {\n this.setState({\n iconUrl: e.target.result,\n icon: _file\n });\n };\n reader.readAsDataURL(_file);\n }\n\n }\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n onChangeCode (e) {\n this.setState({\n code: e.target.value\n });\n }\n\n\n onChangeWidth (e) {\n this.setState({\n width: e.target.value\n });\n }\n\n onChangeHeight (e) {\n this.setState({\n height: e.target.value\n });\n } \n\n onChangeFilterEnabled (checked) {\n this.setState({\n filterEnabled: checked\n });\n }\n\n\n onChangeToggleBarEnabled (checked) {\n this.setState({\n toggleBarEnabled: checked\n });\n }\n\n\n\n closeModal () {\n window.$(\"#brand-modal\").modal(\"hide\").on(\"hidden.bs.modal\", (e) => {\n this.setState({\n buttonDisabled: false\n });\n });\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let { name, code, height, width, filterEnabled, toggleBarEnabled } = this.state; \n let {data, error} = await Brand.Create( {name, code, height, width, filterEnabled, toggleBarEnabled} );\n if (data) {\n let iconResult = null;\n if (this.state.icon) {\n let formData = new FormData();\n formData.append(\"icon\", this.state.icon);\n iconResult = await Brand.UploadIcon(data.id, formData);\n if (iconResult.error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n return false;\n }\n } \n this.reset();\n this.closeModal();\n this.state.isSuccessful(\"New Brand Added\");\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n }\n\n reset () {\n this.setState({\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\"\n });\n }\n\n render () {\n const {error, showLoader} = this.state;\n let hasError = (error) ? : null;\n \n return (\n \n
    {hasError}
    \n \n
    \n );\n }\n\n\n}\n\nexport default Create;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\n\n\n//common\nimport Table from \"../../common/table/table\";\nimport Modal from \"../../common/modal\";\nimport ControlBox from \"../../common/table/control-box\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n\n//model\nimport Brand from \"../../../models/Brand\";\n\n//misc\nimport Create from \"./create\";\n\nclass List extends Component {\n\n constructor (props) {\n super(props);\n\n this.isSuccessful = this.isSuccessful.bind( this );\n this.setFilter = this.setFilter.bind( this ); \n this.modalElement = \"#brand-modal\";\n\n this.brandId = _.get(this.props, \"match.params.id\");\n\n this.state = {\n data: [],\n error: null,\n success: null,\n dependencyComplete: false\n }\n }\n\n isSuccessful (message, e) {\n this.setState({\n success: message,\n data: [],\n dependencyComplete: false\n });\n } \n\n\n setFilter (data, e) {\n this.setState({ \n data: data\n });\n }\n\n async componentDidUpdate(prevProps) {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n } \n\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n\n let _deleteNotif = _.get(this, \"props.location.state.deleteSuccess\", null);\n this.setState({\n success: _deleteNotif\n });\n \n \n }\n\n async getData() {\n let {data, error} = await Brand.Get();\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({data: data, error: null});\n } else {\n this.setState({error: \"No Record\"});\n }\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n render () {\n return (\n \n\n \n \n {this.DisplayTable()}\n\n \n );\n }\n\n DisplayTable () {\n\n let {data, error, success} = this.state;\n if (_.size(data) > 0 || error) {\n return (\n \n
    \n \n \n
    \n \n
    \n \n );\n } else {\n return
    \n }\n } \n\n}\n\nexport default List;","import React from \"react\";\nimport {NavLink} from \"react-router-dom\";\nimport RecordMetaData from \"./metadata\";\nimport ButtonRow from \"./button-loader\";\n\nconst EditFormContainer = props => {\n\n const {\n cols = 8, \n listLink, \n isEditMode,\n form: Form,\n enableEditMode,\n recordMetaData,\n onSubmit } = props;\n\n const btnClass = (isEditMode) ? \"hide \" : null; \n const columnClass = `col-md-${cols}`;\n return (\n\n
    \n
    \n
    \n
    \n « back to list \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {Form}\n \n
    \n \n \n
    \n
    \n
    \n\n );\n\n};\n\nexport default EditFormContainer;","import React, { Component } from \"react\";\n\n\nimport EditFormContainer from \"../../../layout/edit-form\";\nimport Form from \"./form\";\n\nclass Show extends Component {\n\n constructor (props) {\n super(props);\n this.enableEditMode = this.enableEditMode.bind(this);\n this.disableEditMode = this.disableEditMode.bind(this);\n\n this.onChangeName = props.onChangeName;\n this.onChangeIcon = props.onChangeIcon;\n this.onChangeCode = props.onChangeCode;\n this.onChangeWidth = props.onChangeWidth;\n this.onChangeHeight = props.onChangeHeight;\n this.onChangeFilterEnabled = props.onChangeFilterEnabled;\n this.onChangeToggleBarEnabled = props.onChangeToggleBarEnabled;\n this.deleteAction = props.deleteAction;\n this.onSubmit = props.onSubmit;\n\n this.state = {\n\n //form control\n isEditMode: props.isEditMode,\n\n //model fields\n data: props.state.data,\n name: props.state.name,\n code: props.state.code,\n width: props.state.width,\n height: props.state.height,\n filterEnabled: props.state.filterEnabled,\n toggleBarEnabled: props.state.toggleBarEnabled,\n iconUrl: props.state.iconUrl,\n createdAt: props.state.createdAt,\n updatedAt: props.state.updatedAt,\n\n }\n\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.setState({\n code: nextProps.state.code,\n name: nextProps.state.name,\n data: nextProps.state.data, \n iconUrl: nextProps.state.iconUrl, \n icon: nextProps.state.icon, \n width: nextProps.state.width, \n height: nextProps.state.height, \n filterEnabled: nextProps.state.filterEnabled, \n toggleBarEnabled: nextProps.state.toggleBarEnabled, \n buttonDisabled: nextProps.state.buttonDisabled,\n showLoader: nextProps.state.showLoader,\n createdAt: nextProps.state.createdAt,\n updatedAt: nextProps.state.updatedAt\n });\n }\n\n\n enableEditMode (e) {\n this.setState({\n isEditMode: true\n });\n }\n\n disableEditMode (e) {\n this.setState({\n isEditMode: false,\n code: this.state.data.code,\n name: this.state.data.name\n });\n } \n\n render () {\n const { isEditMode } = this.state;\n const recordMetaData = {\n createdAt: this.state.createdAt,\n updatedAt: this.state.updatedAt\n };\n return (\n\n }\n recordMetaData={recordMetaData}\n button={{disableEditMode: this.disableEditMode, buttonDisabled: this.state.buttonDisabled, showLoader:this.state.showLoader, isEditMode: isEditMode, deleteAction: this.deleteAction }}\n onSubmit={this.onSubmit}\n />\n\n );\n }\n\n};\nexport default Show;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport FormData from 'form-data';\n// import {Redirect} from \"react-router-dom\";\n//common\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport Loader from \"../../common/loader\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\n\n//model\nimport Brand from \"../../../models/Brand\";\n\n\n//view\nimport ShowView from \"../../views/admin/brand/show\";\n\nclass Show extends Component {\n\n constructor (props) {\n\n super(props);\n\n this.modalElement = \"#brand-modal\";\n this.brandId = _.get(this.props, \"match.params.id\");\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeCode = this.onChangeCode.bind(this);\n this.onChangeWidth = this.onChangeWidth.bind(this);\n this.onChangeHeight = this.onChangeHeight.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n this.onChangeIcon = this.onChangeIcon.bind(this);\n this.onChangeFilterEnabled = this.onChangeFilterEnabled.bind(this);\n this.onChangeToggleBarEnabled = this.onChangeToggleBarEnabled.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\",\n icon: \"\",\n iconUrl: \"\",\n width: \"\",\n height: \"\",\n filterEnabled: \"\",\n toggleBarEnabled: \"\",\n isSuccessful: props.isSuccessful\n };\n\n }\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: false\n });\n\n let {data, error} = await Brand.Delete(this.brandId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Brand Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n } \n } \n\n onChangeIcon (e) {\n let _file = _.first(e.target.files);\n if (_file) {\n let reader = new FileReader();\n reader.onload = (e) => {\n this.setState({\n iconUrl: e.target.result,\n icon: _file\n });\n };\n reader.readAsDataURL(_file);\n }\n\n }\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n onChangeCode (e) {\n this.setState({\n code: e.target.value\n });\n }\n\n onChangeWidth (e) {\n this.setState({\n width: e.target.value\n });\n }\n\n onChangeHeight (e) {\n this.setState({\n height: e.target.value\n });\n }\n\n onChangeFilterEnabled (checked) {\n this.setState({\n filterEnabled: checked\n });\n }\n\n onChangeToggleBarEnabled (checked) {\n this.setState({\n toggleBarEnabled: checked\n });\n }\n\n async componentDidMount () {\n let {data} = this.state;\n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.brandId);\n }\n }\n\n async getData ( id ) {\n let {data, error} = await Brand.Show( id );\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({\n data: data,\n name: data.name,\n code: data.code,\n iconUrl: data.iconUrl,\n width: data.width,\n height: data.height,\n filterEnabled: data.filterEnabled,\n toggleBarEnabled: data.toggleBarEnabled,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let { name, code, width, height, filterEnabled, toggleBarEnabled} = this.state; \n\n let {data, error} = await Brand.Update(this.brandId, { name, code, width, height, filterEnabled, toggleBarEnabled} );\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n return;\n } \n if (data) {\n let iconResult = {};\n if (this.state.icon) {\n \n let formData = new FormData();\n formData.append(\"icon\", this.state.icon);\n iconResult = await Brand.UploadIcon(this.brandId, formData);\n if (iconResult.error) {\n this.setState({\n error: iconResult.error,\n buttonDisabled: false,\n showLoader: false\n });\n return false;\n }\n }\n\n this.setState({\n data: iconResult.data || data ,\n iconUrl: _.get(iconResult, \"data.iconUrl\", this.state.iconUrl),\n success: \"Brand Details Updated\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n updatedAt: data.updatedAt\n });\n }\n\n } \n\n render () {\n let {data, error, success} = this.state; \n // let {redirect = null} = this.state;\n // // if (redirect) {\n // // return () \n // // }\n if (_.size(data) > 0 || error) {\n return (\n \n \n\n
    \n \n \n
    \n\n \n\n\n
    \n );\n } else {\n return
    \n } \n }\n\n}\n\n\nexport default Show;","import React, { Fragment } from \"react\";\n\n//common\nimport Input from \"../../../common/form/input\";\n\nconst Form = props => {\n const {isEditMode} = props.state; \n return (\n\n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n );\n}\n\n\nexport default Form;\n","\nimport React, { Fragment } from \"react\";\nimport Form from \"./form\";\nimport Loader from \"../../../common/loader\";\n\nconst Create = (props) => {\n props.state.isEditMode = true; \n return (\n
    \n \n
    \n \n\n \n );\n}\n\n\nconst ButtonRow = ({buttonDisabled, showLoader}) => {\n let loader = (showLoader) ? : null;\n return (\n
    \n
    \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n \n  \n \n \n
    \n
    \n
    \n );\n\n}\nexport default Create;","import React, { Component, Fragment } from \"react\";\nimport Error from \"../../common/notif/errors\";\n\n\n//model\nimport Province from \"../../../models/Province\";\n\n//view\nimport View from \"../../views/admin/province/create\";\n\nclass Create extends Component {\n\n constructor (props) {\n super(props);\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeCode = this.onChangeCode.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\",\n isSuccessful: props.isSuccessful\n };\n }\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n onChangeCode (e) {\n this.setState({\n code: e.target.value\n });\n }\n\n closeModal () {\n window.$(\"#province-modal\").modal(\"hide\").on(\"hidden.bs.modal\", (e) => {\n this.setState({\n buttonDisabled: false\n });\n });\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let { name, code } = this.state; \n const params = {\n name: name,\n code: code\n };\n let {data, error} = await Province.Create(params);\n if (data) {\n this.reset();\n this.closeModal();\n this.state.isSuccessful(\"New Province Added\");\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n }\n\n reset () {\n this.setState({\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\"\n });\n }\n\n render () {\n const {error, showLoader} = this.state;\n let hasError = (error) ? : null;\n \n return (\n \n
    {hasError}
    \n \n
    \n );\n }\n\n\n}\n\nexport default Create;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\n\n\n//common\nimport Table from \"../../common/table/table\";\nimport Modal from \"../../common/modal\";\nimport ControlBox from \"../../common/table/control-box\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n\n//model\nimport Province from \"../../../models/Province\";\n\n//misc\nimport Create from \"./create\";\n\nclass List extends Component {\n\n constructor (props) {\n super(props);\n\n this.isSuccessful = this.isSuccessful.bind( this );\n this.setFilter = this.setFilter.bind( this );\n\n this.modalElement = \"#province-modal\";\n\n this.state = {\n data: [],\n error: null,\n success: null,\n dependencyComplete: false \n }\n }\n\n isSuccessful (message, e) {\n this.setState({\n success: message,\n dependencyComplete: false,\n data: []\n });\n }\n\n setFilter (data, e) {\n this.setState({ \n data: data\n });\n }\n\n async componentDidUpdate(prevProps) {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n } \n\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n let _deleteNotif = _.get(this, \"props.location.state.deleteSuccess\", null);\n this.setState({\n success: _deleteNotif\n });\n \n }\n\n async getData() {\n let {data, error} = await Province.Get();\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({data: data, error: null});\n } else {\n this.setState({error: \"No Record\"});\n }\n this.setState({\n dependencyComplete: true\n });\n \n }\n\n render () {\n return (\n \n \n \n {this.DisplayTable()}\n \n );\n }\n\n DisplayTable () {\n\n let {data, error, success} = this.state;\n\n if (_.size(data) > 0 || error) {\n return (\n \n
    \n \n \n
    \n \n
    \n \n );\n } else {\n return
    \n }\n }\n\n}\n\nexport default List;","import CoreService from \"../services/Core\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\n\nclass Municipality {\n\n constructor () {\n this.path = \"/municipalities\";\n \n this.table = {\n headers: [\"Code\", \"Name\", \"Date Created\", \"Last Updated\"],\n listKeys: [\"code\", \"name\", \"createdAt\", \"updatedAt\", \"id\"],\n linkPath: \"/admin/municipalities\",\n linkField: \"code\"\n }\n }\n\n async Show (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n async Get () {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.get(this.path);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n async Create (params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.post(this.path, params);\n _.set(result, \"data\", this.reduceData( response.data ) );\n } catch (e) {\n console.log(e);\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n async Update (id, params) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.patch(`${this.path}/${id}`, params);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n\n\n async Delete (id) {\n let result = { data: null, error: null };\n try {\n let response = await CoreService.delete(`${this.path}/${id}`);\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n let _error = \"Cannot Communicate to the API Server.\";\n if (e.response) {\n _error = _.get(e, \"response.data.meta.message\");\n }\n _.set(result, \"error\", _error);\n }\n return result;\n }\n \n\n //------------------------------------------------------------------------ \n /**helpers*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n \n _.set(n, \"createdAt\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"updatedAt\", Util.readableDateFormat(n.updatedAt) );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n }, []);\n return newData;\n }\n\n}\n\nexport default new Municipality();","import React, { Component } from \"react\";\n\n\nimport EditFormContainer from \"../../../layout/edit-form\";\nimport Form from \"./form\";\n\nclass Show extends Component {\n\n constructor (props) {\n super(props);\n this.enableEditMode = this.enableEditMode.bind(this);\n this.disableEditMode = this.disableEditMode.bind(this);\n\n this.onChangeName = props.onChangeName;\n this.onChangeCode = props.onChangeCode;\n this.deleteAction = props.deleteAction;\n this.onSubmit = props.onSubmit;\n\n this.state = {\n\n //form control\n isEditMode: props.isEditMode,\n\n //model fields\n data: props.state.data,\n name: props.state.name,\n code: props.state.code,\n createdAt: props.state.createdAt,\n updatedAt: props.state.updatedAt,\n\n }\n\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.setState({\n code: nextProps.state.code,\n name: nextProps.state.name,\n data: nextProps.state.data, \n buttonDisabled: nextProps.state.buttonDisabled,\n showLoader: nextProps.state.showLoader,\n createdAt: nextProps.state.createdAt,\n updatedAt: nextProps.state.updatedAt\n });\n }\n\n\n enableEditMode (e) {\n this.setState({\n isEditMode: true\n });\n }\n\n disableEditMode (e) {\n this.setState({\n isEditMode: false,\n code: this.state.data.code,\n name: this.state.data.name\n });\n } \n\n render () {\n const { isEditMode } = this.state;\n const recordMetaData = {\n createdAt: this.state.createdAt,\n updatedAt: this.state.updatedAt\n };\n return (\n\n }\n recordMetaData={recordMetaData}\n button={{disableEditMode: this.disableEditMode, buttonDisabled: this.state.buttonDisabled, showLoader:this.state.showLoader, isEditMode: isEditMode, deleteAction: this.deleteAction }}\n onSubmit={this.onSubmit}\n />\n\n );\n }\n\n};\nexport default Show;","// import React, { Component, Fragment } from \"react\";\n// import _ from \"lodash\";\n\n// //common\n// import Input from \"../../../common/form/input\";\n// import Select from \"../../../common/form/select\";\n\n// //Model\n// import Province from \"../../../../models/Province\";\n\n// class Form extends Component {\n// constructor (props) {\n// super(props);\n\n// this.onChangeCode = props.onChangeCode;\n// this.onChangeName = props.onChangeName;\n\n// this.state = {\n// province: props.state.province,\n// code: props.state.code,\n// name: props.state.name,\n// isEditMode: props.state.isEditMode,\n// provinces: []\n// }\n// }\n\n// async componentDidMount () {\n// let {provinces} = this.state;\n// if ( _.isEmpty(provinces) ) {\n// await this.getProvinces();\n// this.forceUpdate();\n// }\n// }\n\n// async getProvinces () {\n// let {data} = await Province.GetDropdownList();\n// if (data && _.size(data) > 0) {\n// this.setState({provinces: data});\n// } else {\n// this.setState({provinces: []});\n// }\n// }\n\n// loadSelection () {\n \n// }\n\n// render () {\n// const {isEditMode} = this.state;\n// return (\n// \n//
    \n//
    \n// \n//
    \n//
    \n// \n//
    \n//
    \n//
    \n// );\n// }\n// }\n\n// export default Form;\n\n\nimport React, { Fragment } from \"react\";\n\n//common\nimport Input from \"../../../common/form/input\";\n\nconst Form = props => {\n const {isEditMode} = props.state; \n return (\n\n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n );\n}\n\n\nexport default Form;\n","import React, { Fragment } from \"react\";\nimport Form from \"./form\";\nimport Loader from \"../../../common/loader\";\n\nconst Create = (props) => {\n props.state.isEditMode = true; \n return (\n
    \n \n
    \n \n\n \n );\n}\n\n\nconst ButtonRow = ({buttonDisabled, showLoader}) => {\n let loader = (showLoader) ? : null;\n return (\n
    \n
    \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n \n  \n \n \n
    \n
    \n
    \n );\n\n}\nexport default Create;","import React, { Component, Fragment } from \"react\";\nimport Error from \"../../common/notif/errors\";\n\n//model\nimport Municipality from \"../../../models/Municipality\";\n\n//view\nimport View from \"../../views/admin/municipality/create\";\n\nclass Create extends Component {\n _isMounted = false;\n constructor (props) {\n\n super(props);\n\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeCode = this.onChangeCode.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.isSuccess = props.isSuccess;\n\n this.state = {\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n province: props.provinceId,\n updatedAt: \"\",\n createdAt: \"\",\n isSuccessful: \"\"\n };\n }\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n onChangeCode (e) {\n this.setState({\n code: e.target.value\n });\n }\n\n closeModal () {\n window.$(\"#municipality-modal\").modal(\"hide\").on(\"hidden.bs.modal\", (e) => {\n if (this._isMounted) {\n this.setState({\n buttonDisabled: false\n });\n }\n });\n }\n\n componentWillUnmount () {\n this._isMounted = false;\n }\n\n componentDidMount () {\n this._isMounted = true;\n }\n\n async onSubmit (e) {\n e.preventDefault();\n\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let { name, code, province } = this.state; \n\n let {data, error} = await Municipality.Create({name, code, province});\n if (data) {\n this.reset();\n this.closeModal();\n this.isSuccess(\"New Municipality Added\");\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n }\n\n reset () {\n this.setState({\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\"\n });\n }\n\n render () {\n const {error, showLoader} = this.state;\n let hasError = (error) ? : null;\n \n return (\n \n
    {hasError}
    \n \n
    \n );\n }\n\n\n}\n\nexport default Create;","import React, { Component, Fragment } from \"react\";\nimport _ from \"lodash\";\nimport {Redirect} from \"react-router-dom\";\n\n//common\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport Loader from \"../../common/loader\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Table from \"../../common/table/table\";\nimport Modal from \"../../common/modal\";\n\n//model\nimport Province from \"../../../models/Province\";\nimport Municipality from \"../../../models/Municipality\";\n\n//view\nimport ShowView from \"../../views/admin/province/show\";\n//misc\nimport MunicipalityCreate from \"../municipality/create-modal\";\n\n\nclass Show extends Component {\n\n constructor (props) {\n\n super(props);\n\n this.modalElement = \"#municipality-modal\";\n\n this.provinceId = _.get(this.props, \"match.params.id\");\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeCode = this.onChangeCode.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.municipalitySuccess = this.municipalitySuccess.bind(this);\n\n this.state = {\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n municipalities: [],\n updatedAt: \"\",\n createdAt: \"\",\n isSuccessful: props.isSuccessful,\n error: null,\n success: \"\",\n successMunicipality: \"\",\n data: []\n };\n\n }\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: false\n });\n\n let {data, error} = await Province.Delete(this.provinceId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Province Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n } \n } \n\n\n\n municipalitySuccess (message, e) {\n this.setState({\n successMunicipality: message,\n data: []\n });\n } \n\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n onChangeCode (e) {\n this.setState({\n code: e.target.value\n });\n }\n\n async componentDidUpdate(prevProps) {\n let {data} = this.state;\n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.provinceId);\n }\n } \n\n async componentDidMount () {\n let {data} = this.state;\n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.provinceId);\n }\n let _deleteNotif = _.get(this, \"props.location.state.deleteSuccess\", null);\n this.setState({\n success: _deleteNotif\n });\n \n }\n\n async getData ( id ) {\n let {data, error} = await Province.Show( id );\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({\n data: data,\n name: data.name,\n code: data.code,\n municipalities: data.municipalities,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let {name, code } = this.state; \n const params = {\n name: name,\n code: code,\n };\n let {data, error} = await Province.Update(this.provinceId, params);\n if (data) {\n this.setState({\n data: data,\n success: \"Province Details Updated\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n updatedAt: data.updatedAt\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n } \n\n render () {\n let {data, error, success, successMunicipality} = this.state; \n let {redirect = null} = this.state;\n if (redirect) {\n return () \n } \n if (_.size(data) > 0 || error) {\n return (\n \n \n\n }\n isSuccessful={this.isSuccessful} \n size={\"\"} /> \n\n
    \n \n \n
    \n\n \n\n\n \n\n\n
    \n );\n } else {\n return
    \n } \n }\n\n}\n\n\n\nconst MunicipalityTable = props => {\n const mTable = _.clone(Municipality.table);\n _.set(mTable, \"linkPath\", `/admin/provinces/${props.provinceId}/municipalities`)\n return ( \n \n\n
    \n
    \n\n

    \n Municipalities  \n \n

    \n \n
    \n
    \n
    \n
    \n \n \n\n\n );\n};\n\n\n\nexport default Show;","import React, { Component } from \"react\";\n\n\nimport EditFormContainer from \"../../../layout/edit-form\";\nimport Form from \"./form\";\n\nclass Show extends Component {\n\n constructor (props) {\n super(props);\n this.enableEditMode = this.enableEditMode.bind(this);\n this.disableEditMode = this.disableEditMode.bind(this);\n\n this.onChangeName = props.onChangeName;\n this.onChangeCode = props.onChangeCode;\n this.deleteAction = props.deleteAction;\n this.onSubmit = props.onSubmit;\n\n this.state = {\n\n //form control\n isEditMode: props.isEditMode,\n\n //model fields\n data: props.state.data,\n name: props.state.name,\n code: props.state.code,\n createdAt: props.state.createdAt,\n updatedAt: props.state.updatedAt,\n\n }\n\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.setState({\n code: nextProps.state.code,\n name: nextProps.state.name,\n data: nextProps.state.data, \n buttonDisabled: nextProps.state.buttonDisabled,\n showLoader: nextProps.state.showLoader,\n createdAt: nextProps.state.createdAt,\n updatedAt: nextProps.state.updatedAt\n });\n }\n\n\n enableEditMode (e) {\n this.setState({\n isEditMode: true\n });\n }\n\n disableEditMode (e) {\n this.setState({\n isEditMode: false,\n code: this.state.data.code,\n name: this.state.data.name\n });\n } \n\n render () {\n const { isEditMode } = this.state;\n const recordMetaData = {\n createdAt: this.state.createdAt,\n updatedAt: this.state.updatedAt\n };\n return (\n\n }\n recordMetaData={recordMetaData}\n button={{disableEditMode: this.disableEditMode, buttonDisabled: this.state.buttonDisabled, showLoader:this.state.showLoader, isEditMode: isEditMode, deleteAction: this.deleteAction }}\n onSubmit={this.onSubmit}\n />\n\n );\n }\n\n};\nexport default Show;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport {Redirect} from \"react-router-dom\";\n\n//common\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport Loader from \"../../common/loader\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\n\n//model\nimport Municipality from \"../../../models/Municipality\";\n\n//view\nimport ShowView from \"../../views/admin/municipality/show\";\n\nclass Show extends Component {\n\n constructor (props) {\n\n super(props);\n\n this.provinceId = _.get(this.props, \"match.params.province_id\");\n this.municipalityId = _.get(this.props, \"match.params.id\");\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangeCode = this.onChangeCode.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n code: \"\",\n updatedAt: \"\",\n createdAt: \"\",\n isSuccessful: props.isSuccessful\n };\n\n }\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: false\n });\n\n let {data, error} = await Municipality.Delete(this.municipalityId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Municipality Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n } \n } \n\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n onChangeCode (e) {\n this.setState({\n code: e.target.value\n });\n }\n\n\n async componentDidMount () {\n let {data} = this.state;\n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.municipalityId);\n }\n }\n\n async getData ( id ) {\n let {data, error} = await Municipality.Show( id );\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({\n data: data,\n name: data.name,\n code: data.code,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let {name, code } = this.state; \n const params = {\n name: name,\n code: code,\n };\n let {data, error} = await Municipality.Update(this.municipalityId, params);\n if (data) {\n this.setState({\n data: data,\n success: \"Municipality Details Updated\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n updatedAt: data.updatedAt\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n } \n\n render () {\n let {data, error, success} = this.state; \n let {redirect = null} = this.state;\n if (redirect) {\n return () \n }\n\n if (_.size(data) > 0 || error) {\n return (\n \n \n\n
    \n \n \n
    \n\n \n\n {/**/}\n\n
    \n );\n } else {\n return
    \n } \n }\n\n}\n\n\nexport default Show;","import React, { Fragment } from \"react\";\n\n//common\nimport Input from \"../../../common/form/input\";\n\n//config\nconst Form = props => {\n const {isEditMode} = props.state;\n \n return (\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n\n );\n}\n\n\nconst SubTypeBadge = ({list, remove, isEditMode = false}) => {\n return list.map( (item, i) => {\n return (\n {item}\n { \n (!isEditMode) ?\n \n : null\n }\n \n )\n\n }); \n};\n\nexport default Form;","import React, { Fragment } from \"react\";\nimport Loader from \"../../../common/loader\";\n\nimport Form from \"./form\";\n\nconst Create = props => {\n //map fns\n props.state.isEditMode = true;\n return (\n
    \n \n \n
    \n \n\n
    \n \n );\n}\n\n\nconst ButtonRow = ({buttonDisabled, showLoader}) => {\n let loader = (showLoader) ? : null;\n return (\n
    \n
    \n
    \n
    \n {loader}\n
    \n
    \n
    \n \n \n  \n \n \n
    \n
    \n
    \n );\n\n}\n\nexport default Create;","import React, { Component, Fragment } from \"react\";\nimport Type from \"../../../models/Type\";\nimport Error from \"../../common/notif/errors\";\nimport _ from \"lodash\";\n\n// import _ from \"lodash\";\n\n//view\nimport View from \"../../views/admin/type/create\";\n\nclass Create extends Component {\n\n constructor (props) {\n super(props);\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangePinColor = this.onChangePinColor.bind(this);\n this.addSubSelection = this.addSubSelection.bind(this);\n this.removeSubSelection = this.removeSubSelection.bind(this);\n this.showColorPicker = this.showColorPicker.bind(this);\n this.closeColorPicker = this.closeColorPicker.bind(this);\n this.colorPickerChange = this.colorPickerChange.bind(this);\n \n \n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n error: null,\n buttonDisabled: false,\n showLoader: false,\n name: \"\",\n pinColor: \"\",\n hasSubType: \"\",\n subType: \"\",\n subTypeList: [],\n isSuccessful: props.isSuccessful,\n displayColorPicker: false\n\n };\n }\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n colorPickerChange (color) {\n this.setState({\n pinColor: color.hex\n });\n }\n\n closeColorPicker (color) {\n this.setState({ displayColorPicker: false })\n }\n\n showColorPicker () {\n this.setState({ displayColorPicker: !this.state.displayColorPicker })\n }\n\n onChangePinColor (e) {\n this.setState({\n pinColor: e.target.value\n });\n } \n\n addSubSelection (e) {\n if (e.key === \"Enter\") {\n let tmpSubtype = _.clone(this.state.subTypeList);\n if ( !_.isEmpty(e.target.value) ) {\n tmpSubtype.push(e.target.value);\n }\n e.target.value = \"\";\n e.preventDefault();\n this.setState({\n subType: \"\",\n subTypeList: tmpSubtype\n });\n }\n }\n\n removeSubSelection (e) {\n let tmpSubtype = _.clone(this.state.subTypeList);\n _.pullAt(tmpSubtype, e.currentTarget.value) \n this.setState({\n subTypeList: tmpSubtype\n });\n \n }\n\n closeModal () {\n window.$(\"#type-modal\").modal(\"hide\").on(\"hidden.bs.modal\", (e) => {\n this.setState({\n buttonDisabled: false\n }); \n });\n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n\n let {name, pinColor, subTypeList} = this.state; \n const params = { name, pinColor, subTypeList}\n _.set(params, \"hasSubType\", (_.size(subTypeList) > 0) );\n let {data, error} = await Type.Create(params);\n if (data) {\n this.reset();\n this.closeModal();\n this.state.isSuccessful(\"New Type Added\");\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n }\n\n reset () {\n this.setState({\n showLoader: false,\n error: null,\n buttonDisabled: false,\n name: \"\",\n type: \"\",\n email: \"\",\n contactNumber: \"\",\n address: \"\"\n });\n }\n\n render () {\n const {error, showLoader} = this.state;\n let hasError = (error) ? : null;\n \n return (\n \n
    {hasError}
    \n \n
    \n );\n }\n\n\n}\n\nexport default Create;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\n\n\n//common\nimport Table from \"../../common/table/table\";\nimport Modal from \"../../common/modal\";\nimport ControlBox from \"../../common/table/control-box\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n\n//model\nimport Type from \"../../../models/Type\";\n\n//misc\nimport Create from \"./create\";\n\nclass List extends Component {\n\n constructor (props) {\n super(props);\n\n this.isSuccessful = this.isSuccessful.bind( this );\n this.setFilter = this.setFilter.bind( this );\n\n this.modalElement = \"#type-modal\";\n\n this.state = {\n data: [],\n error: null,\n success: null,\n dependencyComplete: false \n }\n }\n\n isSuccessful (message, e) {\n this.setState({\n success: message,\n dependencyComplete: false,\n data: []\n });\n }\n\n setFilter (data, e) {\n this.setState({ \n data: data\n });\n }\n\n async componentDidUpdate(prevProps) {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n } \n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n if (!dependencyComplete) {\n await this.getData();\n }\n\n let _deleteNotif = _.get(this, \"props.location.state.deleteSuccess\", null);\n this.setState({\n success: _deleteNotif\n });\n \n }\n\n async getData() {\n let {data, error} = await Type.Get();\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({data: data, error: null});\n } else {\n this.setState({error: \"No Record\"});\n }\n this.setState({\n dependencyComplete: true\n });\n\n }\n\n render () {\n return (\n \n \n \n {this.DisplayTable()}\n \n );\n }\n\n DisplayTable () {\n\n let {data, error, success} = this.state;\n\n if (_.size(data) > 0 || error) {\n return (\n \n
    \n \n \n
    \n\n\n \n
    \n\n \n );\n } else {\n return
    \n }\n }\n\n}\n\nexport default List;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\n\nimport EditFormContainer from \"../../../layout/edit-form\";\nimport Form from \"./form\";\n\nclass Show extends Component {\n\n constructor (props) {\n super(props);\n\n this.enableEditMode = this.enableEditMode.bind(this);\n this.disableEditMode = this.disableEditMode.bind(this);\n\n this.onChangeName = props.onChangeName;\n this.onChangePinColor = props.onChangePinColor;\n this.addSubSelection = props.addSubSelection;\n this.removeSubSelection = props.removeSubSelection;\n this.showColorPicker = props.showColorPicker;\n this.closeColorPicker = props.colorPickerChange;\n this.colorPickerChange = props.colorPickerChange;\n this.deleteAction = props.deleteAction;\n \n this.onSubmit = props.onSubmit;\n\n this.state = {\n\n //form control\n isEditMode: false,\n displayColorPicker: false,\n data: props.state.data,\n name: props.state.name,\n pinColor: props.state.pinColor,\n hasSubType: props.state.hasSubType,\n subType: props.state.subType,\n subTypeList: props.state.subTypeList,\n createdAt: props.state.createdAt,\n updatedAt: props.state.updatedAt,\n isSuccessful: props.isSuccessful\n }\n\n }\n\n onChangeName (e) {\n this.setState({\n name: e.target.value\n });\n }\n\n colorPickerChange (color) {\n this.setState({\n pinColor: color.hex\n });\n }\n\n closeColorPicker (color) {\n this.setState({ displayColorPicker: false })\n }\n\n showColorPicker () {\n this.setState({ displayColorPicker: !this.state.displayColorPicker })\n }\n\n onChangePinColor (e) {\n this.setState({\n pinColor: e.target.value\n });\n } \n\n addSubSelection (e) {\n if (e.key === \"Enter\") {\n let tmpSubtype = _.clone(this.state.subTypeList);\n tmpSubtype.push(e.target.value);\n e.target.value = \"\";\n e.preventDefault();\n this.setState({\n subType: \"\",\n subTypeList: tmpSubtype\n });\n }\n }\n\n removeSubSelection (e) {\n let tmpSubtype = _.clone(this.state.subTypeList);\n _.pullAt(tmpSubtype, e.currentTarget.value) \n this.setState({\n subTypeList: tmpSubtype\n });\n \n }\n\n\n enableEditMode (e) {\n this.setState({\n isEditMode: true\n });\n } \n\n disableEditMode (e) {\n this.setState({\n isEditMode: false,\n name: this.state.data.name,\n type: this.state.data.type,\n email: this.state.data.email,\n contactNumber: this.state.data.contactNumber,\n address: this.state.data.address \n });\n } \n\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.setState({\n data: nextProps.state.data,\n name: nextProps.state.name,\n pinColor: nextProps.state.pinColor,\n hasSubType: nextProps.state.hasSubType,\n subTypeList: nextProps.state.subTypeList,\n buttonDisabled: nextProps.state.buttonDisabled,\n showLoader: nextProps.state.showLoader,\n createdAt: nextProps.state.createdAt,\n updatedAt: nextProps.state.updatedAt,\n isSuccessful: nextProps.isSuccessful,\n displayColorPicker: nextProps.state.displayColorPicker\n });\n }\n\n render () {\n const { isEditMode } = this.state;\n const recordMetaData = {\n createdAt: this.state.createdAt,\n updatedAt: this.state.updatedAt\n };\n return (\n\n }\n recordMetaData={recordMetaData}\n button={{disableEditMode: this.disableEditMode, buttonDisabled: this.state.buttonDisabled, showLoader:this.state.showLoader, deleteAction: this.deleteAction}}\n onSubmit={this.onSubmit}\n />\n\n );\n }\n\n};\n\nexport default Show;","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport {Redirect} from \"react-router-dom\";\n//common\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\nimport Loader from \"../../common/loader\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\n\n//model\nimport Type from \"../../../models/Type\";\n\n//view\nimport ShowView from \"../../views/admin/type/show\";\n\n\nclass Show extends Component {\n\n constructor (props) {\n\n super(props);\n this.typeId = _.get(this.props, \"match.params.id\");\n this.onChangeName = this.onChangeName.bind(this);\n this.onChangePinColor = this.onChangePinColor.bind(this);\n this.addSubSelection = this.addSubSelection.bind(this);\n this.removeSubSelection = this.removeSubSelection.bind(this);\n this.showColorPicker = this.showColorPicker.bind(this);\n this.closeColorPicker = this.closeColorPicker.bind(this);\n this.colorPickerChange = this.colorPickerChange.bind(this);\n this.deleteAction = this.deleteAction.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n\n this.state = {\n\n //ownerfields\n name: \"\",\n pinColor: \"\",\n email: \"\",\n hasSubType: \"\",\n subType: \"\",\n subTypeList: [],\n createdAt: \"\",\n updatedAt: \"\",\n\n //onpage states\n data: props.datam,\n error: null,\n success: null,\n isEditMode: false,\n buttonDisabled: false,\n showLoader: false,\n displayColorPicker: false\n\n };\n }\n\n async deleteAction () {\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null,\n isEditMode: false\n });\n\n let {data, error} = await Type.Delete(this.typeId);\n if (data) {\n this.setState({\n redirect: true,\n success: \"Type Deleted\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n } \n } \n\n onChangeName (e) {\n this.setState({\n name:\n e.target.value\n });\n }\n\n colorPickerChange (color) {\n this.setState({\n pinColor: color.hex\n });\n }\n\n closeColorPicker (color) {\n this.setState({ displayColorPicker: false })\n }\n\n showColorPicker () {\n this.setState({ displayColorPicker: !this.state.displayColorPicker })\n }\n\n onChangePinColor (e) {\n this.setState({\n pinColor: e.target.value\n });\n } \n\n\n addSubSelection (e) {\n if (e.key === \"Enter\") {\n let tmpSubtype = _.clone(this.state.subTypeList);\n if ( !_.isEmpty(e.target.value) ) {\n tmpSubtype.push(e.target.value);\n }\n e.target.value = \"\";\n e.preventDefault();\n this.setState({\n subType: \"\",\n subTypeList: tmpSubtype\n });\n }\n }\n\n removeSubSelection (e) {\n let tmpSubtype = _.clone(this.state.subTypeList);\n _.pullAt(tmpSubtype, e.currentTarget.value) \n this.setState({\n subTypeList: tmpSubtype\n });\n \n }\n\n async onSubmit (e) {\n e.preventDefault();\n this.setState({\n buttonDisabled: true,\n showLoader: true,\n error: null\n });\n let {name, pinColor, subTypeList} = this.state; \n const params = { name, pinColor, subTypeList}\n _.set(params, \"hasSubType\", (_.size(subTypeList) > 0) );\n let {data, error} = await Type.Update(this.typeId, params);\n\n if (data) {\n this.setState({\n data: data,\n success: \"Type Details Updated\",\n error: null,\n showLoader: false,\n buttonDisabled: false,\n updatedAt: data.updatedAt\n });\n }\n if (error) {\n this.setState({\n error: error,\n buttonDisabled: false,\n showLoader: false\n });\n }\n } \n\n\n async componentDidMount () {\n let {data} = this.state;\n if (_.isEmpty(data) || _.isNil(data) ) {\n await this.getData(this.typeId);\n }\n }\n\n async getData ( id ) {\n let {data, error} = await Type.Show( id );\n if (error) {\n return this.setState({error: error});\n }\n if (data) {\n this.setState({\n data: data,\n name: data.name,\n pinColor: data.pinColor,\n hasSubType: data.hasSubType,\n subTypeList: data.subTypeList,\n createdAt: data.createdAt,\n updatedAt: data.updatedAt\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n }\n\n render () {\n let {data, error, success} = this.state;\n let {redirect = null} = this.state;\n if (redirect) {\n return () \n } \n if (_.size(data) > 0 || error) {\n\n return (\n \n\n \n \n
    \n \n \n
    \n\n \n \n
    \n ); \n\n } else {\n return
    \n }\n\n\n }\n\n}\n\n\nexport default Show;","import React from \"react\";\nimport _ from \"lodash\";\n\nconst Modal = props => {\n const {title, element} = props;\n const modalClass = `modal-dialog modal-dialog-centered modal-md`;\n // let formBody = (_.isFunction (FormBody) ) ? : FormBody;\n return (\n
    \n
    \n
    \n
    \n
    { title }
    \n \n
    \n\n
    \n { props.children }\n
    \n
    \n
    \n
    \n );\n\n};\n\nexport default Modal;","import axios from \"axios\";\nimport Exception from \"./Exception\";\nimport Util from \"./Util\";\n\nclass AuthApi {\n\n constructor (authConfig, token, apiVersion = 'v1') {\n this.config = authConfig;\n this.axios = axios.create({\n baseURL: `${authConfig.baseUrl}${apiVersion}`,\n headers: {\n \"X-Requested-By\": \"Twisted Logix\",\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\",\n \"Authorization\": `bearer ${token}`,\n },\n responseType: \"json\"\n }); \n this.apiVersion = apiVersion;\n this.token = token;\n this.util = new Util(authConfig);\n }\n\n\n async EmployeeSearch (keyword) {\n\n let result = null;\n try {\n result = await this.axios.get(`/employees?keyword=${keyword}`);\n } catch (e) {\n if (e && e.response) {\n throw e.response.data;\n } else {\n throw Exception.authErrorFormat( new Exception.ServerError(e.message) );\n }\n }\n return (result && result.data) ? result.data : false;\n }\n\n}\n\n\nexport default AuthApi;","import React, {useState} from \"react\";\nimport _ from \"lodash\";\nimport Input from \"../../../common/form/input\";\nimport Loader from \"../../../common/loader\";\nimport AuthConfig from \"../../../../config/auth\";\nimport AuthSDKApi from \"../../../../libs/identity-server/Api\";\nimport AclConfig from \"../../../../config/acl\";\nimport Select from \"../../../common/form/select\";\nimport {toLower, upperFirst} from \"lodash\";\nimport UserModel from \"../../../../models/User\";\nimport ErrorNotif from \"../../../common/notif/errors\";\nimport SuccessNotif from \"../../../common/notif/success\";\n\nconst Form = props => {\n\n const {data} = props;\n\n const employeeNos = _.map(data, \"employeeNo\");\n\n let token = localStorage.getItem( AuthConfig.tokenKey );\n const AuthSDKObj = new AuthSDKApi( AuthConfig, token );\n\n const onSubmit = async e => {\n e.preventDefault();\n setDisabled(true);\n\n let result = null;\n try {\n result = await AuthSDKObj.EmployeeSearch(keyword); \n } catch (e) {\n console.log(\"e:\", e);\n }\n let employees = [];\n _.each(result.data, (i) => {\n if (!_.includes(employeeNos, i.employeeNo)) {\n employees.push(i);\n }\n });\n setEmployees(employees);\n setDisabled(false);\n };\n\n\n const [keyword, setKeyword] = useState(\"\");\n const [disabled, setDisabled] = useState(false);\n const [employees, setEmployees] = useState([]);\n\n return (\n <>\n
    \n
    \n\n
    \n setKeyword(e.target.value)}\n value={keyword}\n placeHolder=\"search for employee id or name\"\n required={false}\n disabled={disabled}\n />\n
    \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n {disabled && }\n
    \n
    \n \n\n {\n (employees && employees.length > 0) && \n }\n \n\n );\n};\n\nconst RenderDataResult = props => {\n const {employees = []} = props;\n\n const [disableAll, setDisableAll] = useState(false);\n\n return (\n
      \n
    • \n
      \n
      \n
      Employee
      \n
      \n\n
      \n
      Role
      \n
      \n\n
      \n
      \n
      \n
    • \n { employees.map( (emp, i) => ) }\n
    \n );\n\n};\n\nconst Employee = props => {\n const {disableAll, disableHandler} = props;\n\n const [role, setRole] = useState(\"user\");\n const [showLoader, setShowLoader] = useState(false);\n const [disabled, setDisabled] = useState(disableAll);\n const [error, setError] = useState(\"\");\n const [success, setSuccess] = useState(\"\");\n\n const InviteUser = async props => {\n\n // const ans = window.confirm(\"Are you sure you want to invite this user?\");\n // if (ans) {\n \n setShowLoader(true);\n disableHandler(true);\n\n let params = {\n userId: props.userId,\n employeeNo: props.employeeNo,\n lastName: props.lastName,\n firstName: props.firstName,\n email: props.companyEmail,\n role: role\n };\n let {data, error} = await UserModel.Create(params);\n if (error) {\n setError(error);\n }\n if (data) {\n setSuccess(\"User Added, Redirecting...\");\n setDisabled(true);\n window.location = `/admin/users/${data.data.id}`;\n }\n setShowLoader(false);\n // }\n\n };\n\n return (\n
  • \n { error && }\n { success && }\n
    \n
    \n { upperFirst (toLower( props.firstName ) ) } { upperFirst (toLower( props.lastName) ) }\n
    \n {props.employeeNo}\n
    \n\n
    \n
  • \n \n );\n } else {\n return
    \n } \n\n }\n}\n\nexport default List;","import React from \"react\";\nimport {NavLink} from \"react-router-dom\";\n\nconst Wrapper = props => {\n const {listLink} = props;\n return (\n
    \n
    \n
    \n
    \n « back to list \n
    \n
    \n
    \n
    \n {props.children}\n
    \n
    \n
    \n );\n};\n\nexport default Wrapper;","import React from \"react\";\n\nconst CheckItem = props => {\n\n const {id, name, handler, permissionHandler, current} = props;\n\n let defaultChecked = null;\n if (current && current.id === id) {\n defaultChecked = \"checked\";\n }\n let defaultCheckedManage = null;\n if (current && current.id === id && current.manage) {\n defaultCheckedManage = \"checked\";\n }\n return (\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n );\n\n};\n\nexport default CheckItem;","import React, {useEffect, useState} from \"react\";\nimport {remove, includes} from \"lodash\";\n\nimport TileModel from \"../../../../models/Tile\";\n\nconst TilePermissions = props => {\n\n const {permittedTiles = [], tileHandler} = props;\n\n const [tileList, setTileList] = useState( [] ); //eslint-disable-line no-unused-vars\n const [error, setError] = useState( \"\" ); //eslint-disable-line no-unused-vars\n const [selectedTiles, setSelectedTiles] = useState( permittedTiles ); //eslint-disable-line no-unused-vars\n\n //------------------------------------------------------------------------------------\n useEffect(() => {\n\n const GetTiles = async () => {\n const {data, error} = await TileModel.Get();\n if (error) setError(\"Error Loading Tile Lists...\");\n if (data) setTileList(data);\n };\n \n GetTiles();\n\n }, []); \n\n //------------------------------------------------------------------------------------\n useEffect (() => {\n tileHandler ( selectedTiles );\n\n }, [selectedTiles]); //eslint-disable-line react-hooks/exhaustive-deps\n //------------------------------------------------------------------------------------\n\n const CheckTileHandler = e => {\n const {checked, value} = e.target;\n if (checked) {\n setSelectedTiles(selectedTiles => [...selectedTiles, value]);\n } else {\n setSelectedTiles( remove(selectedTiles, (v) => v !== value) );\n }\n } \n //------------------------------------------------------------------------------------\n\n if (!tileList) {\n return loading...\n }\n return (\n <>\n

    Dashboard Settings:

    \n\n {\n (tileList.length > 0) && (\n <>\n {\n tileList.map( tile => {\n let currentTile = includes(permittedTiles, tile.id); \n return (\n
    \n
    \n \n \n
    \n
    \n );\n })\n }\n \n )\n } \n \n );\n};\n\nexport default TilePermissions;","import React, {useState, useEffect} from \"react\";\nimport CheckItem from \"./check-item\";\nimport {remove, includes, each, find, map, compact} from \"lodash\";\nimport ErrorNotif from \"../../../common/notif/errors\";\nimport BrandModel from \"../../../../models/Brand\";\nimport Tile from \"./tile\";\n\nconst Permission = props => {\n\n const {moduleHandler, brandHandler, tileHandler, data} = props;\n const {permissions} = data;\n\n let _moduleList = map(permissions.modules, \"id\") || [];\n let _modulePermission = map(permissions.modules, (module) => {\n if (module.manage) return module.id; \n });\n\n let _brandsList = map(permissions.brands, \"id\") || [];\n let _brandPermission = map(permissions.brands, (brand) => {\n if (brand.manage) return brand.id; \n });\n\n\n const [selectedModules, setSelectedModules] = useState( _moduleList ); //eslint-disable-line no-unused-vars\n const [permittedModules, setPermittedModules] = useState( compact(_modulePermission) ); //eslint-disable-line no-unused-vars\n const [brandError, setBrandError] = useState(\"\");\n const [brandsList, setBrandsList] = useState([]);\n const [selectedBrands, setSelectedBrands] = useState( _brandsList );\n const [permittedBrands, setPermittedBrands] = useState( _brandPermission );\n\n //------------------------------------------------------------------------------------\n\n useEffect(() => {\n\n const GetBrands = async () => {\n const {data, error} = await BrandModel.Get();\n if (error) setBrandError(\"Error Loading Brands Lists...\");\n if (data) setBrandsList(data);\n };\n\n GetBrands();\n\n }, []); \n\n //------------------------------------------------------------------------------------\n useEffect (() => {\n moduleHandler ( BuildModulePermission() );\n brandHandler ( BuildBrandPermmission() );\n }, [selectedModules, permittedModules, selectedBrands, permittedBrands]); //eslint-disable-line react-hooks/exhaustive-deps\n\n //------------------------------------------------------------------------------------\n const BuildBrandPermmission = () => {\n let brands = [];\n each(selectedBrands, (id) => {\n brands.push({\n id: id,\n manage: includes(permittedBrands, id)\n });\n });\n return brands; \n };\n\n //------------------------------------------------------------------------------------\n const BuildModulePermission = () => {\n let modules = [];\n each(selectedModules, (id) => {\n modules.push({\n id: id,\n manage: includes(permittedModules, id)\n });\n });\n return modules; \n };\n\n //------------------------------------------------------------------------------------\n const CheckBrandHandler = e => {\n const {checked, value} = e.target;\n if (checked) {\n setSelectedBrands(selectedBrands => [...selectedBrands, value]);\n } else {\n setSelectedBrands( remove(selectedBrands, (v) => v !== value) );\n }\n }\n\n //------------------------------------------------------------------------------------ \n const BrandPermissionHandler = e => {\n const {checked, value} = e.target;\n if (checked) {\n setPermittedBrands(permittedBrands => [...permittedBrands, value]);\n } else {\n setPermittedBrands( remove(permittedBrands, (v) => v !== value) );\n }\n }\n\n //------------------------------------------------------------------------------------\n\n return (\n
    \n
    \n
    \n

    PERMISSION SETTINGS:

    \n
    \n\n \n\n
    \n\n

    Brand View Settings:

    \n\n {\n brandError && \n }\n\n {\n (brandsList.length > 0) && (\n <>\n
    Brand
    \n
    Permission
    \n {\n brandsList.map( brand => {\n let currentBrand = find(data.permissions.brands, {id: brand.id}); \n return \n })\n }\n \n )\n }\n\n\n
    \n
    \n )\n};\n\n\nexport default Permission;","import React from \"react\";\nimport Loader from \"../../../common/loader\";\nimport UserModel from \"../../../../models/User\";\n\nconst ButtonRow = props => {\n const {showLoader, data} = props;\n //---------------------------\n const DeleteUser = async id => {\n const ans = window.confirm(\"Are you sure you want to remove this user?\");\n if (ans) {\n await UserModel.DeleteUser(id);\n window.location = \"/admin/users\";\n }\n }\n\n \n return (\n
    \n
    \n \n
    \n
    \n {showLoader && }\n
    \n\n
    \n
    \n \n   \n \n
    \n
    \n
    \n );\n};\n\nexport default ButtonRow;","import React, {useState} from \"react\";\nimport Input from \"../../../common/form/input\";\nimport Select from \"../../../common/form/select\";\nimport AclConfig from \"../../../../config/acl\";\nimport Permission from \"./permission\";\nimport Button from \"./button\";\nimport {withRouter} from \"react-router\";\nimport SuccessNotif from \"../../../common/notif/success\";\nimport ErrorNotif from \"../../../common/notif/errors\";\n\n//models\nimport UserModel from \"../../../../models/User\";\n\nconst Form = props => {\n \n const {data, match} = props;\n\n const userId = match.params.id;\n\n const [selectedRole, setSelectedRole] = useState(data.role);\n const [showPermissionSetup, setShowPermissionSetup] = useState( !!(data.role === \"user\") );\n const [modulePermission, setModulePermission] = useState();\n const [brandPermission, setBrandPermission] = useState([]);\n const [tilePermission, setTilePermission] = useState([]);\n \n //page state \n const [errorMessage, setErrorMessage] = useState(\"\");\n const [success, setSuccess] = useState(\"\");\n const [showLoader, setShowLoader] = useState(false);\n\n // console.log(\"\\n\");\n // console.log(\"\\n\");\n // console.log(\"tilePermission:\", tilePermission); \n // console.log(\"\\n\");\n // console.log(\"\\n\");\n\n const OnSubmit = async e => {\n e.preventDefault();\n setShowLoader( true );\n let params = {\n role: selectedRole,\n permissions: {\n modules: modulePermission,\n brands: brandPermission,\n tiles: tilePermission\n }\n };\n let {data, error} = await UserModel.Update(userId, params);\n if (error) {\n setErrorMessage(error);\n }\n if (data) {\n setSuccess(\"User details updated!\");\n }\n setShowLoader( false );\n window.scrollTo({\n top: 0,\n behavior: \"smooth\"\n }); \n\n }\n\n const ChangeRole = e => {\n const {value} = e.target;\n setShowPermissionSetup( !(value !== \"user\") );\n setSelectedRole(value);\n }\n\n return (\n \n\n { success && }\n { errorMessage && }\n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n \n\n );\n}\n\nexport default withRouter(ChangePassword);","import axios from \"axios\";\nimport _ from \"lodash\";\nimport AuthConfig from \"../config/auth\";\nimport SimpleEncryptor from \"simple-encryptor\";\n\n//load config\nimport Services from '../config/services';\n\nimport Login from \"../models/Login\";\n\nclass Auth {\n\n constructor () {\n\n let userInfo = this.extractUserInfo();\n\n let instance = axios.create({\n baseURL: Services.audit.url,\n headers: {\n 'X-Requested-By': 'Twisted Logix',\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Access-Control-Allow-Origin': '*'\n },\n validateStatus: function (status) {\n return status === 200 || status === 401; // default\n },\n });\n\n instance.interceptors.request.use( (config) => {\n config.headers.authorization = `bearer ${localStorage.getItem(AuthConfig.tokenKey)}`;\n return config;\n }, (error) => {\n return error;\n });\n\n instance.interceptors.response.use( async (response) => {\n let _error = _.get(response, \"data.error\", {});\n if (_error.code === 401) {\n let response = await Login.Token(userInfo.id);\n //update localstorage\n localStorage.setItem(AuthConfig.tokenKey, response.data.access_token);\n localStorage.setItem(AuthConfig.storageKey, response.data.id_token);\n localStorage.setItem(AuthConfig.adminKey, response.data.admin_token);\n return response;\n } else {\n return response;\n }\n }, (error) => {\n return Promise.reject(error)\n });\n\n return instance;\n\n }\n\n\n extractUserInfo () {\n const Cipher = SimpleEncryptor(AuthConfig.decryptKey);\n return Cipher.decrypt( localStorage.getItem(AuthConfig.storageKey) );\n }\n\n\n}\n\n\nexport default new Auth();","import React from \"react\";\nimport AuditService from \"../services/Audit\";\nimport Util from \"../services/Util\";\nimport _ from \"lodash\";\nimport querystring from \"querystring\";\n\nclass AuditLog {\n\n constructor () {\n this.path = \"/audit\";\n this.table = {\n headers: [\"Module\", \"Action\", \"User ID\", \"Date & Time\", \"Record ID\", \"User Full Name\" ],\n listKeys: [\"entity\", \"action\", \"actorId\", \"timestamp\", \"recordId\", \"userFullName\",]\n } \n this.moduleMap = {\n users: \"/admin/users\",\n types: \"/admin/types\",\n brands: \"/admin/brands\",\n provinces: \"/admin/provinces\",\n municipalities: \"/admin/provinces/{province_id}/municipalities\",\n point_of_interests: \"/point-of-interests\",\n poi_entities: \"/refilling-plants\",\n\n };\n }\n\n async Get (params) {\n let result = { data: null, error: null, meta: null };\n try {\n let response = await AuditService.get(`${this.path}?${querystring.stringify(params)}` );\n _.set(result, \"data\",this.reduceData( response.data ));\n _.set(result, \"meta\", response.data.meta || null);\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n\n return result; \n }\n\n async GetRecent (params) {\n let result = { data: null, error: null };\n try {\n let response = await AuditService.get(`${this.path}?${querystring.stringify(params)}` );\n _.set(result, \"data\", response.data.data );\n } catch (e) {\n _.set(result, \"error\", ((e.response)) ? _.get(e, \"response.data.error.message\") : \"Cannot Communicate to the API Server.\" );\n }\n return result;\n }\n\n\n /*helper functions*/\n reduceData (result) {\n let newData = _.transform(result.data, (r, n, k) => { \n let tableName = n.table;\n let href = `${this.moduleMap[n.table]}/${n.recordId}`;\n if (tableName === \"municipalities\") {\n if (n.data) {\n href = `/admin/provinces/${n.data.province}/municipalities/${n.recordId}`;\n }\n }\n if (n.entity === \"Brand\") {\n _.set(n, \"entity\", \"Category\");\n }\n _.set(n, \"timestamp\", Util.readableDateFormat(n.createdAt) );\n _.set(n, \"recordId\", {n.recordId} );\n r.push( _.pick(n, _.get(this, \"table.listKeys\")) );\n\n }, []);\n return newData;\n } \n\n}\n\nexport default new AuditLog();","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport {withRouter} from \"react-router-dom\";\nimport qs from \"querystring\";\n//common\nimport Table from \"../../common/table/table\";\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\nimport Loader from \"../../common/loader\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n\n//model\nimport AuditLog from \"../../../models/AuditLog\";\nimport User from \"../../../models/User\";\n\n\nclass List extends Component {\n\n constructor (props) {\n super(props);\n\n // this.loadPage = this.loadPage.bind( this );\n this.state = {\n data: [],\n error: null,\n dependencyComplete: false,\n paginationMeta: {},\n currentPage: 0,\n users: [] \n }\n }\n\n isSuccessful (message, e) {\n this.setState({\n success: message,\n dependencyComplete: false,\n data: []\n });\n }\n\n // setFilter (data, e) {\n // this.setState({ \n // data: data\n // });\n // }\n\n // async componentDidUpdate (prevProps, prevState) {\n // console.log(\"prevProps:\", prevProps);\n // console.log(\"prevState:\", prevState);\n // console.log(\"currentState:\", this.state.currentPage);\n // const previousPage = prevState.currentPage;\n // const {currentPage} = this.state;\n // if (currentPage != previousPage) {\n // await this.getData( 10, currentPage);\n // }\n\n // }\n\n async componentDidMount () {\n let {dependencyComplete} = this.state;\n const {location} = this.props;\n let {search} = location;\n search = qs.parse( _.trim(search, \"?\") );\n\n if (!dependencyComplete) {\n await this.getData( search.limit || 50, search.page);\n }\n }\n\n async getData (limit = 10, pageNumber = 1) {\n let params = {\n limit: limit,\n page: pageNumber\n };\n let {data, error, meta} = await AuditLog.Get(params);\n let userResult = await User.Get(); \n let users = {};\n // console.log(\"userResult:\",userResult)\n if (userResult.data) {\n _.each(userResult.data, (u) => {\n users[u.userId] = _.startCase(_.toLower(`${u.firstName} ${u.lastName}`));\n });\n _.each(data, log => {\n log.userFullName = users[ log.actorId ] || log.actorId;\n });\n }\n if (error) this.setState({error: error});\n if (data && _.size(data) > 0) {\n this.setState({\n data: data, \n error: null,\n paginationMeta: meta\n });\n } else {\n this.setState({error: \"No Record\"});\n }\n this.setState({\n dependencyComplete: true\n });\n \n }\n\n // loadPage = data => {\n // window.location = `/admin/system-logs?limit=10&page=${(data.selected + 1)}`\n // // const pageNumber = data.selected;\n // // this.setState({\n // // currentPage: pageNumber + 1,\n // // dependencyComplete: false\n // // });\n\n // }; \n\n render () {\n let {data, error, success, dependencyComplete, paginationMeta} = this.state;\n\n if (!dependencyComplete) {\n return
    \n }\n\n return (\n \n \n
    \n \n \n
    \n
    \n\n
    \n \n
    \n \n\n\n );\n\n }\n}\n\nconst Paginate = props => {\n // console.log(\"props:\", props);\n const {totalPages, page} = props;\n const items = [];\n for (let i = 1; i <= totalPages; i++) {\n let isActive = (page === i) ? `active` : null;\n let params = qs.stringify({\n limit: props.limit,\n page: i\n });\n items.push(
  • {i}
  • )\n }\n return (\n
      \n {items}\n
    \n )\n};\n\nexport default withRouter(List);","import React, {useEffect, useState} from \"react\";\nimport { withRouter } from \"react-router\";\nimport AuthConfig from \"../../config/auth\";\nimport qs from \"querystring\";\nimport Loader from \"../common/loader\";\n\nimport AuthSDK from \"../../libs/identity-server/Auth\";\nimport AuthUtilSDK from \"../../libs/identity-server/Util\";\nimport User from \"../../models/User\";\n\nconst AuthCallback = props => {\n\n const [error, setError] = useState(\"\");\n const AuthSDKObj = new AuthSDK(AuthConfig);\n const AuthUtilSDKObj = new AuthUtilSDK(AuthConfig);\n const TokenExchange = async code => {\n const {search} = props.location;\n const params = qs.parse( search );\n \n let token = null;\n try {\n token = await AuthSDKObj.AuthCodeToAccessToken( params[\"?code\"] );\n } catch (e) {\n setError(e);\n }\n if (token) {\n localStorage.setItem(AuthConfig.tokenKey, token.access_token);\n localStorage.setItem(AuthConfig.storageKey, token.id_token);\n\n let decoded = AuthUtilSDKObj.decode( token.id_token );\n let {data, error} = await User.ValidateUserLogin( decoded.userid, decoded.employee_no );\n if (error) {\n localStorage.removeItem(AuthConfig.storageKey);\n localStorage.removeItem(AuthConfig.tokenKey);\n setError({message: \"Restricted! Please contact your system administrator!\"});\n return;\n }\n localStorage.setItem(AuthConfig.rbacKey, AuthUtilSDKObj.encrypt(data));\n window.location = \"/\";\n }\n }\n\n useEffect( () => {\n\n TokenExchange();\n\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (error) {\n return (\n
    \n
    \n
    \n
    \n

    {error.message || \"Oops! Server responded with an error.\" }

    \n Please try again..\n \n \n Login\n \n\n
    \n
    \n
    \n
    \n \n );\n }\n return (\n\n
    \n
    \n
    \n
    \n
    Obtaining login information...
    \n \n
    \n
    \n
    \n
    \n \n );\n}\n\n\nexport default withRouter(AuthCallback);","import React, {useEffect, useState} from \"react\";\n\nimport Input from \"../../common/form/input\";\nimport Brand from \"../../../models/Brand\";\nimport {includes, pull, uniq} from \"lodash\";\n\nimport Tile from \"../../../models/Tile\";\n// import ButtonLoader from \"../../layout/button-loader\";\n\nconst Form = props => {\n\n const [brandsSelection, setBrandsSelection] = useState([]);\n const [disabled, setDisabled] = useState(false);\n const [name, setName] = useState(\"\");\n const [brands, setBrands] = useState([]);\n\n useEffect( () => {\n\n const GetBrandList = async () => {\n let {data} = await Brand.GetDropdownList();\n if (data) {\n setBrandsSelection(data);\n }\n };\n GetBrandList(); \n }, []);\n\n\n const onSubmit = async e => {\n e.preventDefault();\n const params = {\n name, brands\n };\n await Tile.Create(params);\n setDisabled(true);\n window.location = \"/admin/tiles?created=true\";\n };\n\n return (\n \n
    \n
    \n {setName(e.target.value)}}\n value={name}\n /> \n
    \n\n
    \n \n\n
    \n
      \n {\n brandsSelection.map( ( d ) => )\n }\n
    \n
    \n\n
    \n\n
    \n\n \n
    \n
    \n\n\n \n );\n};\n\nconst CheckItem = props => {\n\n const {value, label, checkHandler, checkedItems} = props;\n\n\n const checkItem = (e) => {\n const {checked, value} = e.target;\n let _checkedItems = checkedItems;\n if (checked) {\n _checkedItems.push(value);\n } else {\n _checkedItems = pull(_checkedItems, value);\n }\n checkHandler( uniq(_checkedItems) ); \n }\n\n return (\n
  • \n \n
  • \n ); \n}\n\nexport default Form;","import React, { Component } from \"react\";\n\nimport Modal from \"../../common/modal\";\nimport Form from \"./form\";\nimport Loader from \"../../common/loader\";\nimport Tile from \"../../../models/Tile\";\nimport {remove, includes} from \"lodash\";\nimport DragSortableList from \"react-drag-sortable\";\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n\nimport Errors from \"../../common/notif/errors\";\nimport Success from \"../../common/notif/success\";\n\n\nclass DragAndDropApp extends Component {\n\n constructor (props) {\n \n super(props);\n this.onSort = this.onSort.bind(this);\n this.deleteHandler = this.deleteHandler.bind(this);\n\n this.state = {\n data: [],\n error: \"\",\n success: \"\",\n dependencyComplete: false,\n }\n }\n\n onDragStart = (ev, id) => {\n ev.dataTransfer.setData(\"id\", id);\n };\n\n async onSort (list, e) {\n const orders = {};\n list.forEach( item => {\n orders[item.content.props.id] = (item.rank + 1); //always increase rank by 1 (starts with zero)\n });\n\n await Tile.UpdateOrder( orders );\n }\n\n\n async componentDidMount () {\n const {dependencyComplete} = this.state;\n\n const {search} = this.props.location;\n\n if (includes(search, \"create\")) {\n this.setState({\n success: \"New Tile Added.\"\n });\n }\n\n if (!dependencyComplete) {\n await this.getData();\n }\n }\n\n async getData() {\n let {data, error} = await Tile.Get();\n this.setState({\n data: data,\n error: error,\n dependencyComplete: true\n });\n } \n\n async deleteHandler(id) {\n const ans = window.confirm(\"Are you sure you want to delete this tile?\");\n if (ans) {\n await Tile.Delete(id);\n const _data = this.state.data;\n remove(_data, {id: id});\n this.setState({\n data: _data,\n success: \"Tile Deleted.\"\n });\n }\n \n } \n\n render() {\n\n const {dependencyComplete, data, success, error} = this.state;\n\n if (!dependencyComplete) {\n return \n }\n\n const list = [];\n if (data) {\n data.map( (tile, i) => list.push( \n {\n content: \n }) \n )\n\n }\n\n var placeholder = (\n
    drop here.
    \n );\n\n return (\n <>\n \n\n \n\n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n \n\n \n );\n }\n};\n\n\nconst TilePattern = props => {\n let {brands = []} = props;\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n

    {props.name}

    \n
    \n
    \n
    Selected Brands:   {brands.length}
    \n
    \n
    \n \n
    \n
    \n
    \n Edit \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default DragAndDropApp;\n\n\n\n/**\n*\n* ref: https://codepen.io/abechiyo/pen/aJdQXm\n**/","import React, {useEffect, useState} from \"react\";\n\nimport Input from \"../../../common/form/input\";\nimport Loader from \"../../../common/loader\";\nimport Brand from \"../../../../models/Brand\";\nimport {includes, pull, uniq} from \"lodash\";\nimport {withRouter} from \"react-router-dom\";\nimport Tile from \"../../../../models/Tile\";\n\nimport Errors from \"../../../common/notif/errors\";\nimport Success from \"../../../common/notif/success\";\n\n// import ButtonLoader from \"../../layout/button-loader\";\n\nconst Form = props => {\n\n const tileId = props.match.params.id;\n const [brandsSelection, setBrandsSelection] = useState([]);\n const [disabled, setDisabled] = useState(false);\n const [name, setName] = useState(\"\");\n const [brands, setBrands] = useState([]);\n const [loadComplete, setLoadComplete] = useState(false);\n // const [tileInfo, setTileInfo] = useState({}); \n\n const [error, setError] = useState(\"\");\n const [success, setSuccess] = useState(\"\");\n\n useEffect( () => {\n\n const GetBrandList = async () => {\n let {data} = await Brand.GetDropdownList();\n if (data) {\n setBrandsSelection(data);\n \n }\n };\n const GetTileDetails = async () => {\n let {data} = await Tile.Show( tileId );\n if (data) {\n // setTileInfo(data);\n setName(data.name);\n setLoadComplete(true);\n setBrands(data.brands);\n }\n }\n GetBrandList(); \n GetTileDetails();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []); \n\n\n const onSubmit = async e => {\n setDisabled(true);\n e.preventDefault();\n const params = {\n name, brands\n };\n let {data, error} = await Tile.Update(tileId, params);\n if (data) {\n setSuccess(\"Tile Updated!\");\n }\n if (error) {\n setError(\"Oops!, an error occured. Please try again later.\");\n }\n setDisabled(false);\n };\n\n if (!loadComplete) {\n return \n }\n\n return (\n\n
    \n \n \n \n
    \n
    \n {setName(e.target.value)}}\n value={name}\n /> \n
    \n\n
    \n \n\n
    \n
      \n {\n brandsSelection.map( ( d ) => )\n }\n
    \n
    \n\n
    \n\n
    \n\n \n
    \n
    \n\n\n \n );\n};\n\nconst CheckItem = props => {\n\n const {value, label, checkHandler, checkedItems} = props;\n\n\n const checkItem = (e) => {\n const {checked, value} = e.target;\n let _checkedItems = checkedItems;\n if (checked) {\n _checkedItems.push(value);\n } else {\n _checkedItems = pull(_checkedItems, value);\n }\n checkHandler( uniq(_checkedItems) ); \n }\n\n return (\n
  • \n \n
  • \n ); \n}\n\nexport default withRouter(Form);","import React, { Component } from \"react\";\n//common\nimport BreadCrumbs from \"../../layout/breadcrumbs\";\n// import Loader from \"../../common/loader\";\n// import Errors from \"../../common/notif/errors\";\n// import Success from \"../../common/notif/success\";\n\n//model\n// import Tile from \"../../../models/Tile\";\n\n//view\nimport Form from \"./show/form\";\n\nclass Show extends Component {\n\n \n render () {\n\n\n return (\n <>\n \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n );\n\n \n // let {data, error, success} = this.state; \n // let {redirect = null} = this.state;\n // if (redirect) {\n // return () \n // } \n // if (_.size(data) > 0 || error) {\n // return (\n // \n // \n\n //
    \n // \n // \n //
    \n\n // \n\n\n //
    \n // );\n // } else {\n // return
    \n // } \n }\n\n}\n\n\nexport default Show;","import React, { Component } from \"react\";\nimport { Switch } from \"react-router-dom\";\nimport AuthConfig from \"../config/auth\";\nimport { withRouter } from \"react-router\";\n\n/*Dynamic Components*/\nimport NotFound from \"./layout/notfound\";\nimport Dashboard from \"./Dashboard\";\nimport Profile from \"./Profile\";\nimport ChangePassword from \"./ChangePassword\";\nimport Login from \"./Login\";\nimport MapOverview from \"./MapOverview\";\n\n/*PIN Components*/\nimport PinList from \"./point-of-interest/pin/list\";\nimport PinRegister from \"./point-of-interest/pin/register\";\nimport PinShow from \"./point-of-interest/pin/show\";\n\n/*Refilling Plants Components*/\nimport RefillingPlantList from \"./admin/refilling-plants/list\"\nimport RefillingPlantRegister from \"./point-of-interest/refilling-plants/register\";\nimport RefillingPlantShow from \"./point-of-interest/refilling-plants/show\";\n\n/*Geofence Components*/\nimport GeofenceList from \"./geofence/list\";\nimport GeofenceRegister from \"./geofence/register\";\nimport GeofenceShow from \"./geofence/show\";\n\nimport AclRoute from \"./AclRoute\";\n\nimport BrandList from \"./admin/brand/list\";\nimport BrandShow from \"./admin/brand/show\";\n\nimport ProvinceList from \"./admin/province/list\";\nimport ProvinceShow from \"./admin/province/show\";\n\n\n// import MunicipalityList from \"./admin/municipality/list\";\nimport MunicipalityShow from \"./admin/municipality/show\";\n\nimport TypeList from \"./admin/type/list\";\nimport TypeShow from \"./admin/type/show\";\n\n\nimport UserList from \"./admin/user/list\";\nimport UserShow from \"./admin/user/show\";\nimport UserChangePassword from \"./admin/user/change-password\";\n\nimport SystemLogs from \"./admin/system-logs/list\";\nimport AuthCallBack from \"./auth/callback\";\n\nimport TileList from \"./admin/tile/list\";\nimport TileListShow from \"./admin/tile/show\";\n\nclass Routes extends Component {\n\n render () {\n return (\n \n\n \n {\n localStorage.removeItem(AuthConfig.storageKey);\n localStorage.removeItem(AuthConfig.tokenKey);\n localStorage.removeItem(AuthConfig.adminKey);\n localStorage.removeItem(AuthConfig.rbacKey);\n window.location.href=\"/login\";\n }} roles={\"*\"} >\n\n \n\n \n \n \n \n\n \n\n \n \n \n \n\n\n \n \n \n\n{/* \n \n \n \n*/}\n \n \n \n \n\n \n \n\n \n \n \n \n\n \n \n\n \n \n \n\n\n \n \n\n \n\n }>\n \n );\n }\n}\n\nexport default withRouter(Routes);","/**\nMAIN ENTRY POINT FOR DYNAMIC COMPONENTS & ROUTING\n**/\n\nimport React, { Component } from \"react\";\n\n/*Load Routes*/\nimport Routes from \"../Routes\";\n\nclass Main extends Component {\n render () {\n return ( \n \n );\n }\n}\n\nexport default Main;","import React, { Component } from \"react\";\nimport {NavLink} from \"react-router-dom\";\nimport AuthConfig from \"../../config/auth\";\nimport AuthSDKUtil from \"../../libs/identity-server/Util\";\n\nclass TopNav extends Component {\n\n\n constructor (props) {\n super(props);\n this.state = {\n user: this.extractUserInfo()\n }\n\n }\n\n\n extractUserInfo () {\n const AuthSDKUtilObj = new AuthSDKUtil( AuthConfig );\n return AuthSDKUtilObj.decode( localStorage.getItem(AuthConfig.storageKey) );\n }\n\n responsiveToggle () {\n return (\n
    \n \n

    \n
    \n );\n }\n\n profileBar () {\n const user = this.state.user;\n return (\n
    \n \n
    \n )\n }\n\n\n \n render () {\n\n return (\n \n );\n\n }\n\n}\n\nexport default TopNav;","import React, { Component } from \"react\";\nimport Sidebar from \"./components/layout/sidebar\";\nimport Main from \"./components/layout/main\";\nimport Login from \"./components/Login\";\nimport AuthConfig from \"./config/auth\";\nimport jsonwebtoken from \"jsonwebtoken\";\nimport AclService from \"./services/AclService\";\nimport { withRouter } from \"react-router\";\n\n\nimport AuthCallback from \"./components/auth/callback\";\n\n// import Errors from \"./components/common/notif/errors\";\n//layout\nimport TopNav from \"./components/layout/topnav\";\n\nclass App extends Component {\n\n constructor (props) {\n super(props);\n this.authenticated = false;\n let hasLocalStorage = localStorage.getItem(AuthConfig.storageKey);\n if (hasLocalStorage) {\n this.authenticated = true;\n }\n this.callBackPath = \"/auth/callback\";\n }\n\n initPermission () {\n let currentPath = window.location.pathname;\n return AclService.checkPagePermission(currentPath);\n }\n\n render() {\n\n let {location} = this.props;\n \n if (location.pathname === this.callBackPath) {\n return \n }\n\n\n\n if (!this.authenticated) {\n return \n } else {\n // if ( !this.initPermission() ) {\n // return (\n // \n //
    \n //
    \n // \n //
    \n //
    \n //
    \n // )\n // }\n const sessionExpired = this.isSessionExpired();\n if (sessionExpired) {\n return window.location.href=\"/login?session-expired\";\n }\n return (\n \n \n
    \n { }\n
    \n
    \n
    \n
    \n
    \n ); \n }\n\n }\n\n isSessionExpired () {\n let accessToken = localStorage.getItem(AuthConfig.tokenKey);\n let decoded = jsonwebtoken.decode(accessToken) || {};\n let currentTime = ((Date.parse( new Date() ) / 1000) - 300);\n let isExpired = false;\n if (currentTime > decoded.exp) {\n isExpired = true;\n localStorage.removeItem(AuthConfig.storageKey);\n localStorage.removeItem(AuthConfig.tokenKey);\n localStorage.removeItem(AuthConfig.adminKey);\n }\n return isExpired;\n }\n}\n\nexport default withRouter(App);","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport { BrowserRouter } from \"react-router-dom\";\nrequire(\"dotenv\").config();\nReactDOM.render(\n \n \n , \n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();","const _ = require(\"lodash\");\n\nmodule.exports = {\n\n readableDateFormat: (date) => {\n let converted = new Date(date);\n return converted.toLocaleString(\"en-US\", {\n month: 'numeric', day: 'numeric', year: 'numeric',\n hour: 'numeric', minute: 'numeric', hour12: true\n });\n\n },\n\n convertCoordinates: (flatCoords) => {\n let coords = [];\n _.each(flatCoords, (position) => {\n let ltLng = _.split(position, \",\");\n coords.push({\n lat: _.toNumber(ltLng[0]),\n lng: _.toNumber(ltLng[1])\n });\n });\n return coords;\n }\n\n\n};\n","module.exports = __webpack_public_path__ + \"static/media/logo.9726296c.png\";","module.exports = \"data:image/jpeg;base64,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\"","module.exports = {\n roles: [\n {\n key: \"super_admin\",\n value: \"super_admin\",\n label: \"Super Administrator\"\n },\n {\n key: \"admin\",\n value: \"admin\",\n label: \"Administrator\"\n },\n {\n key: \"user\",\n value: \"user\",\n label: \"User\"\n }\n ],\n\n \n};"],"sourceRoot":""}