{"version":3,"sources":["../../../../src/app/js/stores/CriteriaStore.js"],"names":[],"mappings":"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","file":"CriteriaStore.js","sourcesContent":["import alt from 'js/alt';\nimport { mapActions } from 'actions/MapActions';\nimport { criteriaActions } from 'actions/CriteriaActions';\nimport { loads } from 'js/config/config';\n\nimport _ from 'lodash';\n\nimport webMercatorUtils from 'esri/geometry/webMercatorUtils';\n\nclass CriteriaStore {\n constructor() {\n this.riskLevel = 'default';\n this.soilClass = 0;\n this.standardsVersion = '7-22';\n this.measurement = 'imperial';\n this.latitude = 'Latitude';\n this.longitude = 'Longitude';\n this.loads = loads;\n this.streetAddress = '';\n this.cityState = '';\n this.postal = '';\n this.search = {};\n this.selectionState = 'address';\n this.readyForReport = false;\n this.disableSoilClass = true;\n this.elevation = 0;\n this.elevationReferenceDatum = '';\n this.snapToAddress = false;\n this.activeLocationDiv = 'address';\n\n this.on('afterEach', () => {\n this.validateItemsForReport();\n });\n\n this.bindListeners({\n setCheckedLoads: criteriaActions.setCheckedLoads,\n setLatLon: criteriaActions.setLatLon,\n setRiskLevel: criteriaActions.riskLevelSelection,\n setStandardsVersion: criteriaActions.standardsVersionSelection,\n setMeasurement: criteriaActions.measurementsSelection,\n loadsClick: criteriaActions.loadsClick,\n toggleLocationDiv: criteriaActions.toggleLocationDiv,\n updateLocation: mapActions.searchSelectResult,\n setSoilClassSelection: criteriaActions.soilClassSelection,\n selectAllLoads: criteriaActions.selectAllLoads,\n setElevation: mapActions.setElevation,\n setElevationReferenceDatum: mapActions.setElevationReferenceDatum,\n updatedSnapToAddress: criteriaActions.updatedSnapToAddress,\n });\n }\n\n setCheckedLoads(selectedLoads) {\n selectedLoads.forEach((selectedLoad) => {\n const foundLoad = this.loads.find((load) => {\n return load.label === selectedLoad;\n });\n foundLoad.checked = 'checked';\n });\n }\n\n setLatLon(location) {\n this.latitude = location.latitude;\n this.longitude = location.longitude;\n }\n\n updatedSnapToAddress(value) {\n this.snapToAddress = value;\n this.emitChange();\n }\n\n selectAllLoads() {\n _.forEach(this.loads, (load) => {\n if (load.label === 'Tsunami') {\n if (this.standardsVersion === '7-10') {\n return;\n } else {\n load.checked = 'checked';\n }\n } else {\n load.checked = 'checked';\n }\n });\n this.disableSoilClass = false;\n }\n\n setElevation(elevation) {\n this.setState({ elevation: elevation });\n }\n\n setElevationReferenceDatum(datumCode) {\n let datum;\n switch (datumCode) {\n case '0':\n datum = 'Unknown';\n break;\n case '1':\n datum = 'Local Mean Sea Level';\n break;\n case '29':\n datum = 'National Geodetic Vertical Datum of 1929 (NGVD 29)';\n break;\n case '88':\n datum = 'North American Vertical Datum of 1988 (NAVD 88)';\n break;\n case '99':\n datum = 'Other';\n break;\n case '-1000000':\n datum = '';\n break;\n // case 'hawaii': datum = 'Mean High Water (MHW) datum';\n // break;\n }\n this.setState({ elevationReferenceDatum: datum });\n }\n\n setRiskLevel(roman) {\n this.riskLevel = Number(roman);\n }\n\n setSoilClassSelection(level) {\n this.soilClass = level;\n }\n\n setStandardsVersion(version) {\n this.standardsVersion = version;\n this.setSoilClassSelection(-1);\n\n _.forEach(this.loads, (load) => {\n if (\n ((this.standardsVersion === '7-10' && load.label === 'Tsunami') ||\n (this.standardsVersion !== '7-22' && load.label === 'Tornado')) &&\n load.checked === 'checked'\n ) {\n load.checked = '';\n }\n });\n }\n\n setMeasurement(id) {\n this.measurement = id;\n }\n\n loadsClick(obj) {\n _.find(this.loads, { label: obj.id }).checked = obj.checked ? 'checked' : '';\n if (obj.id === 'Seismic') {\n this.disableSoilClass = !obj.checked;\n }\n }\n\n updateLocation(result) {\n this.setStreetAddress(result.address.Address);\n this.cityState = `${result.address.City}, ${result.address.Region}`;\n this.postal = result.address.Postal;\n this.setLocationValues(result.location);\n this.validateItemsForReport();\n this.emitChange();\n }\n\n toggleLocationDiv(selectionID) {\n this.activeLocationDiv = selectionID;\n }\n\n setLocationValues(feature) {\n let lnglat = webMercatorUtils.xyToLngLat(feature.x, feature.y);\n this.longitude = parseFloat(lnglat[0].toFixed(6));\n this.latitude = parseFloat(lnglat[1].toFixed(6));\n }\n\n clearLocationValues() {\n this.streetAddress = '';\n this.cityStatePostal = '';\n }\n\n setStreetAddress(name) {\n this.streetAddress = name;\n }\n\n validateItemsForReport() {\n // To be ready: must have risk category, latitude & longitude, at least 1 load checked, and if seismic, must have valid soil class\n const ignoreRiskCategorySelection = this.standardsVersion === '41-17' || this.standardsVersion === '41-23';\n let validRiskLevel = this.riskLevel > 0 || ignoreRiskCategorySelection;\n let validLocation = this.latitude !== 0 && this.longitude !== 0;\n let loadChecked = !_.every(this.loads, { checked: '' });\n let validSoilClass = false;\n\n let seismicCheck = _.find(this.loads, { label: 'Seismic', checked: 'checked' });\n if (seismicCheck) {\n if ((this.standardsVersion === '7-10' && this.soilClass > 5) || this.soilClass === -1) {\n validSoilClass = false;\n } else {\n validSoilClass = true;\n }\n } else {\n validSoilClass = true;\n }\n\n if (validRiskLevel && validLocation && loadChecked && validSoilClass) {\n this.readyForReport = true;\n } else {\n this.readyForReport = false;\n }\n }\n}\n\nexport const criteriaStore = alt.createStore(CriteriaStore, 'CriteriaStore');\n"]}