UNPKG

167 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/lib/ArcticMapButton.js","../src/lib/ArcticMapLoader.js","../src/lib/ArcticMapPanel.js","../src/lib/ArcticMap.js","../src/lib/ArcticMapLayer.js","../src/lib/ArcticMapEdit.js","../src/lib/ArcticMapLLDSearch.js","../src/lib/ArcticMapLayerPopup.js","../src/lib/ArcticMapControlArea.js","../src/lib/ArcticMapIdentify.js","../src/lib/ArcticMapBaseControl.js","../src/lib/ArcticMapLayerRenderer.js","../src/lib/ArcticMapLocator.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React from 'react';\n\n\n\n\nclass ArcticMapButton extends React.Component {\n static displayName = 'ArcticMapButton';\n\n\n\n constructor(props) {\n super(props)\n this.state = {\n enabled: true,\n useEsriIcon: props.esriicon !== null,\n active: props.showactive !== undefined && props.showactive === true\n\n }\n\n \n\n this.fireclick = function (e) {\n if (this.props.onclick) {\n this.props.onclick(e);\n }\n };\n\n }\n\n\n\n render() {\n\n var style = {\n arcticButton: {\n padding: \"5px\",\n height: \"32px\",\n width: \"32px\",\n backgroundColor: \"#fff\",\n color: '#6e6e6e',\n border: 'none',\n display: 'flex',\n flexFlow: 'row nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: \"#ccc\"\n }\n }\n };\n\n if(this.props.padtop){\n style.arcticButton.marginTop = '10px';\n }\n if(this.props.padbottom){\n style.arcticButton.marginBOttom = '10px';\n }\n \n\n if (this.state.useEsriIcon) {\n if (this.props.showactive && this.props.showactive === true) {\n style.arcticButton.backgroundColor = \"#d4d1d1\";\n }\n else{\n style.arcticButton.backgroundColor = \"#fff\";\n }\n\n var esriClassName = 'esri-icon esri-icon-' + this.props.esriicon;\n\n return (<button style={style.arcticButton} onClick={this.fireclick.bind(this)} title={this.props.title} >\n <span style={{ height: \"15px\", width: \"15px\" }} aria-hidden className={esriClassName} ></span>\n </button>);\n\n\n } else {\n return (<div></div>);\n }\n }\n\n\n\n}\n\nexport default ArcticMapButton","import React from 'react';\nimport { transform } from 'async';\n\nvar style = {\n bg: {\n zIndex: \"100\",\n position: \"absolute\",\n top: 0,\n width: '100%',\n height: '100%',\n backgroundColor: '#5856569e'\n\n },\n\n}\nvar loadingtext = {\n position: \"absolute\",\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n color: 'white'\n};\n\nclass ArcticMapLoader extends React.Component {\n static displayName = 'ArcticMapLoader';\n constructor(props) {\n super(props);\n\n\n\n }\n\n\n\n render() {\n\n \n if (this.props.loading === true) {\n\n\n return (\n\n <div style={style.bg}>\n <h1 style={loadingtext}>Working...</h1>\n </div>\n\n\n )\n }\n return null;\n }\n\n}\n\nexport default ArcticMapLoader;","import React from 'react';\nimport ReactDOM from \"react-dom\";\nimport ArcticMapButton from './ArcticMapButton';\n\nvar styles = {\n rightWidgetFull: {\n \"position\": \"absolute\",\n \"right\": \"2px\",\n \"top\": \"2px\",\n \"bottom\": \"2px\",\n \"zIndex\": \"100\",\n\n \"minWidth\": '30%',\n paddingTop: '20px'\n },\n widgetContainer: {\n position: 'realative',\n \"paddingRight\": \"20px\",\n \"paddingLeft\": \"20px\",\n \n \"overflowY\": 'auto',\n \"maxHeight\": '100%'\n }\n\n};\n\nclass ArcticMapPanel extends React.Component {\n static displayName = 'ArcticMapPanel';\n constructor(props) {\n super(props)\n\n this.toggle = function () {\n\n var currvalue = this.state.open;\n this.setState({ open: !currvalue });\n };\n this.toggle = this.toggle.bind(this);\n\n this.mapFrame = document.getElementsByClassName('esri-view-root')[0];\n this.renderEle = document.createElement(\"span\");\n this.mapFrame.appendChild(this.renderEle);\n this.state = {\n hidden: !this.props.hidden ? false : true,\n open: this.props.open || false\n };\n \n if(props.map){\n this.map = props.map;\n }\n if(props.view){\n this.view = props.view;\n this.view.on('click', (e) => {\n this.setState({ open: false });\n });\n }\n\n\n }\n\n componentDidMount() {\n var self = this;\n \n // console.log(self.props);\n // self.props.view.on('click', (event) => {\n\n // self.setState({ open: false });\n\n // });\n }\n\n componentDidUpdate() {\n this.renderPanel();\n }\n\n render() {\n\n return (<span visibility={this.state.hidden}><ArcticMapButton padtop={this.props.padtop} padbottom={this.props.padbottom} esriicon={this.props.esriicon} onclick={this.toggle.bind(this)} title={this.props.title} ></ArcticMapButton></span>);\n }\n renderPanel() {\n // refactor this\n if (this.state.open) {\n var ele = React.createElement(\n 'div',\n { className: 'esri-widget', style: styles.rightWidgetFull },\n React.createElement(\n 'h2',\n { style: { \"paddingLeft\": \"20px\", marginTop: '6px', fontSize: '28px', marginBottom : '10px' } },\n this.props.title\n ),\n React.createElement(\n 'span',\n { style: { position: 'absolute', top: '20px', right: '20px' } },\n React.createElement(\n 'button',\n {\n onClick : this.toggle,\n title : 'Close',\n style : { border : 'none', background : 'transparent', cursor : 'pointer'}\n },\n React.createElement(\n 'span',\n {\n style : { fontSize: '28px' },\n 'aria-hidden' : true,\n className : 'esri-icon esri-icon-close'\n },\n \n )\n )\n //React.createElement(ArcticMapButton, { esriicon: 'close', onclick: this.toggle, style : { fontSize : '28px'} })\n ),\n React.createElement(\n 'div',\n { style: styles.widgetContainer },\n React.createElement(\n 'div',\n null,\n this.props.children\n )\n )\n );\n\n // <button style={style.arcticButton} onClick={this.fireclick.bind(this)} title={this.props.title} >\n // <span style={{ height: \"15px\", width: \"15px\" }} aria-hidden className={esriClassName} ></span>\n // </button>\n\n ReactDOM.render(ele, this.renderEle);\n } else {\n var eleempty = React.createElement('span', null);\n ReactDOM.render(eleempty, this.renderEle);\n }\n }\n\n}\n\nexport default ArcticMapPanel","import React from 'react';\nimport async from 'async';\nimport './ArcticMap.css';\n\nimport { Map, loadModules } from 'react-arcgis'\nimport ArcticMapButton from './ArcticMapButton';\nimport ArcticMapLoader from './ArcticMapLoader';\nimport ArcticMapPanel from './ArcticMapPanel';\n\n\nvar style = document.createElement('style');\nstyle.id = \"esri-overrides\"\nstyle.innerHTML =\n '.esri-ui-bottom-right {' +\n 'flex-flow: column;' +\n '}' +\n '.esri-ui-bottom-right .esri-component {' +\n 'margin-top: 10px;' +\n '}' +\n '.esri-layer-list { background-color: transparent; padding: 1px; }' +\n '.esri-layer-list__item--has-children .esri-layer-list__item { box-shadow: none; }' +\n '.esri-layer-list__item--has-children { border-bottom: none; box-shadow: 0px 0px 3px 0px black; border-radius: 4px; margin-bottom: 10px; }' +\n '.esri-basemap-gallery { position: absolute; bottom: 0; right: 0; }'\n ;\ndocument.head.appendChild(style);\n\n\nclass ArcticMap extends React.Component {\n static displayName = 'ArcticMap';\n constructor(props) {\n super(props)\n this.state = {\n map: null,\n view: null,\n hideBasemapButton: false,\n loading: false,\n lat: props.lat,\n lng: props.lng,\n mode: props.mode || \"view\",\n basemap: props.basemap || \"hybrid\",\n sr: Number.parseInt(props.sr || \"102100\"),\n }\n\n this.handleMapLoad = this.handleMapLoad.bind(this)\n this.handleMapClick = this.handleMapClick.bind(this)\n this.layers = []\n }\n\n\n\n\n render() {\n var self = this\n var index = 0\n this.layers = []\n\n self.childrenElements = [];\n\n\n\n\n\n\n var children = React.Children.map(this.props.children, function (child) {\n if (child.type.displayName === 'ArcticMapLayer') {\n return React.cloneElement(child, {\n ref: (c) => { if (c) { self.layers.push(c) } }\n })\n } else if (child.type.displayName === 'ArcticMapEdit') {\n // console.log(self.refs);\n return React.cloneElement(child, {\n am: self,\n // ref: 'editor'\n\n })\n\n }\n\n // else if (child.type.name === 'ArcticMapLLDSearch') {\n\n // return React.cloneElement(child, {\n // })\n\n // } \n\n else {\n return React.cloneElement(child, {\n am: self,\n\n map: self.state.map,\n view: self.state.view,\n //ref: 'child-' + (index++)\n ref: (c) => { if (c) { self.childrenElements.push(c); } return 'child-' + (index++) }\n })\n }\n })\n\n if (children) {\n children = children.sort(l => l.type.displayName === 'ArcticMapEdit').reverse()\n\n } else {\n children = (<div />)\n }\n\n\n\n\n // console.log(this.props.children);\n // this.props.children.forEach((child) =>{\n // child.ref = (c) => {this.layers.push(c) };\n // });\n\n\n\n\n return (\n\n <Map class='full-screen-map'\n mapProperties={{ basemap: this.state.basemap }} onLoad={this.handleMapLoad} onClick={this.handleMapClick} >\n {children}\n\n {/* <div id='bottombar' style={{ position: 'absolute', right: '10px', bottom: '20px' }}> */}\n\n {/* </div> */}\n\n\n\n\n <ArcticMapLoader loading={this.state.loading} />\n\n\n\n {/* <div id='bottomleftbar'>\n {this.state.loading === true &&\n <p>Loading...</p>\n }\n </div>\n */}\n </Map>\n\n );\n }\n\n handleShowBasemaps(event) {\n this.state.view.ui.add(this.basemapGallery, {\n position: 'bottom-right'\n })\n\n this.setState({ hideBasemapButton: true })\n }\n\n handleMapClick(event) {\n // console.log(event);\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n\n // Change this to div.childNodes to support multiple top-level nodes\n return div.firstChild;\n }\n\n\n setEdit(json, nofire, type) {\n if (nofire === null) {\n nofire = false;\n }\n\n if (type === null) {\n type = \"polygon\";\n }\n\n\n\n if (this.state.map.editor) {\n this.state.map.editor.setEditFeature(json, nofire, type);\n }\n }\n\n setMode(val) {\n this.setState({ mode: val });\n if (val === \"identify\") {\n this.state.view.cursor = \"help\";\n }\n if (val === \"view\") {\n this.state.view.cursor = \"grab\";\n }\n if (val === \"select\") {\n this.state.view.cursor = \"auto\";\n }\n if (val === \"edit\") {\n this.state.view.cursor = \"crosshairs\";\n }\n }\n\n setJson(json) {\n if (this.state.map.editor) {\n this.state.map.editor.setEditFeature(json, true);\n }\n }\n\n\n handleMapLoad(map, view) {\n\n\n this.setState({ map, view })\n\n var self = this\n self.state.map.amlayers = [];\n var centerSplit = this.props.center.split('|');\n view.center = [parseFloat(centerSplit[1]), parseFloat(centerSplit[0])];\n view.zoom = parseInt(centerSplit[2]);\n self.cntrlIsPressed = false;\n\n loadModules([\n\n 'esri/widgets/Locate',\n 'esri/widgets/BasemapGallery',\n 'esri/widgets/Home',\n\n 'esri/widgets/Search',\n 'esri/layers/FeatureLayer',\n // 'esri/tasks/Locator',\n 'esri/geometry/geometryEngine',\n\n \"esri/request\",\n\n ]).then(([\n\n Locate,\n BasemapGallery,\n Home,\n\n Search,\n FeatureLayer,\n // Locator,\n geometryEngine,\n\n Request,\n\n ]) => {\n window._request = Request;\n window._map = self;\n self.request = Request;\n\n\n\n\n\n if (self.state.mode === \"identify\") {\n self.state.view.cursor = \"help\";\n }\n if (self.state.mode === \"view\") {\n self.state.view.cursor = \"grab\";\n }\n if (self.state.mode === \"edit\") {\n self.state.view.cursor = \"crosshairs\";\n }\n\n if (self.state.mode === \"select\") {\n self.state.view.cursor = \"auto\";\n }\n\n\n // self.state.view.spatialReference = {\n // wkid: self.state.sr,\n // };\n\n // var layerList = new LayerList({\n // view: self.state.view,\n // listItemCreatedFunction: function (event) {\n // const item = event.item\n // item.panel = {\n // content: 'legend',\n // open: false\n // }\n // }\n // })\n\n\n\n view.popup.dockEnabled = true\n view.popup.dockOptions.position = 'bottom-left'\n //var layers = React.Children.toArray(this.props.children).filter((ele) => ele.type.name === \"ArcticMapLayer\");\n\n\n\n // console.log(layers);\n view.popup.watch(\"visible\", function (visible) {\n \n if (!visible) {\n view.graphics.removeAll();\n }\n\n })\n\n view.popup.watch('selectedFeature', function (graphic) {\n view.graphics.removeAll();\n if (graphic) {\n var graphicTemplate = graphic.getEffectivePopupTemplate()\n graphicTemplate.actions = [{\n id: 'select-item',\n title: 'Select',\n image: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTQyREM3RDkwQzVGMTFFNTk4QkI4OTBEOTYzQTg5MzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTQyREM3REEwQzVGMTFFNTk4QkI4OTBEOTYzQTg5MzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDJEQzdENzBDNUYxMUU1OThCQjg5MEQ5NjNBODkzMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1NDJEQzdEODBDNUYxMUU1OThCQjg5MEQ5NjNBODkzMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Prb3PqgAAACTSURBVHjaYvz//z8DJYCJgVJAjgsiIyMFQBjEZgQZwMjISJJmILUXynVmIdVmqGZ9qFAe0S7AonnR8uXLk5jItBmsGSUWgIriSdUMNwCoaB6QmgulidaM7AKYgjiYIcRohkdjVFQUhmIoG69mlHSAxUYGQppRAhGo6AMoYQDxRWI1Y02JSC65SEgz3IABzY0AAQYAhIhWWCl3Pj0AAAAASUVORK5CYII=\",\n\n\n }]\n\n graphicTemplate.actions.items[0].visible = self.state.map.editor !== undefined// graphic.attributes.website ? true : false;\n loadModules(['esri/symbols/SimpleFillSymbol'])\n .then(([SimpleFillSymbol]) => {\n var symbol = new SimpleFillSymbol({\n color: [135, 206, 235, 0.5],\n style: \"solid\",\n outline: {\n color: [0, 191, 255],\n width: 1\n }\n });\n if (graphic) {\n graphic.symbol = symbol;\n var popupGraphic = graphic\n view.graphics.add(popupGraphic);\n } else {\n view.graphics.removeAll();\n view.popup.content.graphic = null;\n } \n })\n //self.state.view.goTo(graphic);\n }\n })\n view.popup.viewModel.on('trigger-action', function (event) {\n if (event.action.id === 'select-item') {\n self.state.map.editor.setEditFeature(event.target.selectedFeature, null, null, false, true);\n view.popup.close();\n }\n })\n\n window.addEventListener(\"keydown\",function (event) {\n if (event.which == \"17\") self.cntrlIsPressed = true;\n });\n\n window.addEventListener(\"contextmenu\", function(event){\n self.contextmenuPressed = true;\n });\n\n window.addEventListener(\"keyup\",function (event) {\n self.cntrlIsPressed = false;\n });\n\n view.on('click', (event) => {\n if (event.button == 0 ) {\n self.contextmenuPressed = false;\n }\n \n //console.log(event);\n\n //hide stuff\n\n\n if (self.state.hideBasemapButton && self.state.hideBasemapButton === true) {\n self.state.view.ui.remove(self.basemapGallery);\n self.setState({ hideBasemapButton: false });\n return;\n }\n\n\n if (self.state.mode === \"view\") { return; }\n\n if (self.state.map.editor && self.state.map.editor.state.editing === true) {\n return;\n }\n\n var currentmode = self.state.mode;\n if (currentmode !== 'select') {\n self.setMode(\"view\");\n }\n\n\n\n // console.log(event);\n // need to work on identify and add to a single popup\n // https://developers.arcgis.com/javascript/latest/sample-code/sandbox/index.html?sample=tasks-identify\n\n var identresults = [];\n //document.getElementsByClassName('esri-view-root')[0].style.cursor = 'wait';\n self.setState({ loading: true });\n\n var identLayers = self.layers.filter(function (layer) {\n var mapzoom = view.zoom;\n\n if (layer.props.identMaxZoom !== undefined) {\n if (Number.parseInt(layer.props.identMaxZoom, 10) > mapzoom) {\n return layer;\n }\n else {\n return;\n }\n }\n\n return layer;\n\n });\n\n identLayers = identLayers.concat(self.state.map.amlayers);\n\n async.eachSeries(identLayers, function (layer, cb) {\n layer.identify(event, function (results) {\n if (results) {\n results.layer = layer;\n identresults.push(results);\n }\n cb();\n });\n }, function (err) {\n var results = identresults.map(function (ir) {\n ir.results.forEach(function (res) {\n res.layer = ir.layer;\n res.acres = -1;\n if (res.feature.geometry) {\n res.acres = geometryEngine.geodesicArea(res.feature.geometry, 'acres');\n }\n });\n return ir.results;\n }) || [].reduce(function (a, b) {\n return a.concat(b);\n });\n self.setState({ loading: false });\n\n\n\n results = results.flat();\n\n results = results.sort(function (r1, r2) {\n if (r1.acres > r2.acres) {\n return 1;\n }\n return -1\n //r.feature.attributes.Shape_Area\n });\n\n\n if (currentmode === \"identify\") {\n\n //results = results.reverse();\n var popupresults = results.map(function (result) {\n var feature = result.feature;\n var layerName = result.layerName;\n\n feature.attributes.layerName = layerName;\n\n\n feature.popupTemplate = { // autocasts as new PopupTemplate()\n //title: layerName,\n title: result.layer.renderPopupTitle(feature, result),\n content: result.layer.renderPopup(feature, result),\n actions: [{ title: \"Select\", id: \"select-action\" }]\n };\n\n return feature;\n });\n\n if (popupresults.length > 0) {\n view.popup.close();\n view.popup.currentSearchResultFeature = null;\n self.state.view.popup.open({\n features: popupresults,\n location: event.mapPoint\n });\n // popupresults[0].setCurrentPopup();\n\n self.state.view.popup.on('trigger-action', function (e) {\n if (e.action.id === 'select-action');\n });\n }\n self.setState({ loading: false });\n }\n\n if (currentmode === \"select\") {\n if (self.contextmenuPressed === true) {\n\n self.state.map.editor.setEditFeature(results[0].feature, null, null, false, true, true);\n }\n else {\n\n self.state.map.editor.setEditFeature(results[0].feature, null, null, false, true);\n }\n }\n\n\n //document.getElementsByClassName('esri-view-root')[0].style.cursor = 'auto';\n });\n\n // self.layers.forEach(layer => {\n // layer.identify(event);\n // })\n //}, 100);\n\n })\n\n // Add widget to the top right corner of the view\n // self.state.view.ui.add(layerList, 'top-left')\n\n\n if (this.props.locate) {\n var locateBtn = new Locate({\n view: self.state.view\n })\n\n self.state.view.ui.add(locateBtn, {\n position: 'top-right'\n })\n }\n\n this.basemapGallery = new BasemapGallery({\n view: self.state.view\n })\n\n this.basemapGallery.watch('activeBasemap', function (newValue, oldValue, property, object) {\n self.state.view.ui.remove(self.basemapGallery)\n self.setState({ hideBasemapButton: false })\n });\n\n\n map.on(\"basemap-change\", function (a) {\n //this.basemapGallery.on('click', function () {\n\n alert(\"BM CHanegd\")\n })\n\n\n // Add the widget to the top-right corner of the view\n\n if (this.props.home) {\n var homeBtn = new Home({\n view: view\n })\n\n // Add the home button to the top left corner of the view\n view.ui.add(homeBtn, 'top-right')\n }\n\n view.ui.remove('zoom')\n\n this.getEditFeature = () => {\n this.state.map.editor.state.tempGraphicsLayer.graphics.items[0];\n }\n\n setTimeout(() => {\n var evt = new Event('mapready', { bubbles: true });\n Object.defineProperty(evt, 'target', { value: self, enumerable: true });\n\n if (self.props.onmapready) {\n self.props.onmapready(evt);\n }\n }, 500)\n\n\n\n })\n\n }\n\n\n}\n\nexport default ArcticMap\n","import React from \"react\";\nimport ReactDOM from 'react-dom'\nimport { geojsonToArcGIS } from '@esri/arcgis-to-geojson-utils';\n\nimport {\n loadModules\n} from 'react-arcgis';\n\nclass ArcticMapLayer extends React.Component {\n static displayName = \"ArcticMapLayer\";\n constructor(props) {\n super(props);\n\n this.state = {\n map: props.map,\n view: props.view,\n graphic: null,\n title: props.title,\n blockSelect: props.blockIdentSelect !== undefined\n };\n }\n\n componentWillUnmount() {\n this.props.view.graphics.remove(this.state.graphic);\n }\n\n componentDidMount() {\n var self = this;\n loadModules(['esri/Graphic',\n \"esri/layers/FeatureLayer\",\n \"esri/layers/MapImageLayer\",\n \"esri/layers/ImageryLayer\",\n\n \"esri/layers/GraphicsLayer\",\n \"esri/tasks/IdentifyTask\",\n \"esri/tasks/support/IdentifyParameters\",\n \"esri/geometry/Point\",\n \"esri/symbols/SimpleMarkerSymbol\",\n \"esri/layers/GroupLayer\",\n \"esri/renderers/Renderer\"\n ]).then(([\n Graphic,\n FeatureLayer,\n MapImageLayer,\n ImageryLayer,\n\n GraphicsLayer,\n IdentifyTask,\n IdentifyParameters,\n Point,\n SimpleMarkerSymbol,\n GroupLayer,\n Renderer\n ]) => {\n // Create a polygon geometry\n\n\n var children = React.Children.map(this.props.children, function (child) {\n if (child.type.displayName === 'ArcticMapLayerPopup') {\n return child;\n // return React.cloneElement(child, {\n // // ref: 'editor'\n // })\n }\n })\n\n\n self.layerRenderers = children;\n\n\n\n\n var childrenEles = [];\n if (self.props.children) {\n if (Array.isArray(self.props.children)) {\n childrenEles = self.props.children;\n }\n else {\n childrenEles.push(self.props.children);\n }\n }\n\n var renderers = childrenEles.filter(child => {\n if (child.type.displayName === 'ArcticMapLayerRenderer') {\n return child;\n }\n });\n\n\n\n\n // this.setState({ graphic });\n\n if (self.props.type === \"feature\") {\n\n var featureLayer = new FeatureLayer({\n url: self.props.src,\n outFields: [\"*\"],\n });\n self.layerRef = featureLayer;\n self.state.map.add(featureLayer);\n }\n\n if (self.props.type === \"group\") {\n var gtrans = 1;\n if (self.props.transparency) {\n gtrans = Number.parseFloat(self.props.transparency);\n }\n var srcsplit = self.props.src.split(',');\n\n var gmaplayer = new GroupLayer({\n //url: self.props.src,\n opacity: gtrans\n\n });\n if (self.props.title) {\n\n gmaplayer.title = self.props.title;\n }\n\n srcsplit.forEach(function (src) {\n var glayer = new MapImageLayer({\n url: src,\n opacity: gtrans\n\n });\n gmaplayer.layers.add(glayer);\n\n\n glayer.when(() => {\n\n\n var layerids = [];\n //console.log(\"Maplayer: \", maplayer);\n glayer.allSublayers.items.forEach(sublayer => {\n layerids.push(sublayer.id);\n //console.log(\"Sublayer:\", sublayer);\n\n var renderer = renderers.find(r => {\n if (r.props.layer === sublayer.title || r.props.layer === `${sublayer.id}`) {\n return r;\n }\n });\n if (renderer !== undefined) {\n //console.log(\"Sublayer renderer:\", renderer.props.style);\n sublayer.renderer = renderer.props.style;\n }\n //sublayer.renderer = Renderer.fromJSON(renderer);\n\n });\n layerids.reverse();\n\n self.identifyTask = new IdentifyTask(self.props.src);\n self.params = new IdentifyParameters();\n self.params.tolerance = 3;\n self.params.layerIds = layerids;\n self.params.layerOption = \"visible\";\n self.params.width = self.state.view.width;\n self.params.height = self.state.view.height;\n self.params.returnGeometry = true;\n self.params.returnGeometry = self.state.blockSelect;\n\n // console.log(self.params);\n\n });\n\n });\n\n self.layerRef = gmaplayer;\n self.state.map.add(gmaplayer);\n }\n\n if (self.props.type === \"dynamic\") {\n\n var trans = 1;\n if (self.props.transparency) {\n trans = Number.parseFloat(self.props.transparency);\n }\n\n\n\n\n\n\n\n var maplayer = new MapImageLayer({\n url: self.props.src,\n opacity: trans\n\n });\n\n if (self.props.childsrc);\n\n if (self.props.title) {\n\n maplayer.title = self.props.title;\n }\n\n maplayer.on(\"layerview-create\", function (event) {\n // console.lof(\"Layerview:\" , event)\n });\n\n maplayer.when(() => {\n\n\n var layerids = [];\n //console.log(\"Maplayer: \", maplayer);\n maplayer.allSublayers.items.forEach(sublayer => {\n layerids.push(sublayer.id);\n //console.log(\"Sublayer:\", sublayer);\n\n var renderer = renderers.find(r => {\n if (r.props.layer === sublayer.title || r.props.layer === `${sublayer.id}`) {\n return r;\n }\n });\n if (renderer !== undefined) {\n //console.log(\"Sublayer renderer:\", renderer.props.style);\n sublayer.renderer = renderer.props.style;\n }\n //sublayer.renderer = Renderer.fromJSON(renderer);\n\n });\n layerids.reverse();\n\n self.identifyTask = new IdentifyTask(self.props.src);\n self.params = new IdentifyParameters();\n self.params.tolerance = 3;\n self.params.layerIds = layerids;\n self.params.layerOption = \"visible\";\n self.params.width = self.state.view.width;\n self.params.height = self.state.view.height;\n self.params.returnGeometry = true;\n self.params.returnGeometry = self.state.blockSelect;\n\n // console.log(self.params);\n\n });\n\n self.layerRef = maplayer;\n self.state.map.add(maplayer);\n }\n\n\n if (self.props.type === \"image\") {\n\n\n var imagelayer = new ImageryLayer({\n url: self.props.src,\n format: \"jpgpng\" // server exports in either jpg or png format\n });\n self.layerRef = imagelayer;\n self.state.map.add(imagelayer);\n\n }\n\n // if (self.props.type === \"geojson\") {\n\n // var geojsonLayer = new GraphicsLayer({ title: 'GeoJSON Layer', listMode: \"hide\" });\n // // var geojsonLayer = new GeoJSONLayer({\n // // //source: self.props.src,\n // // //copyright: \"USGS Earthquakes\",\n // // //popupTemplate: template\n // // });\n // var dataarr = [];\n\n // if (typeof self.props.src === 'object') {\n // if (self.props.src.features) {\n // dataarr = self.props.src.features;\n // }\n // else {\n // dataarr = self.props.src;\n // }\n // }\n\n // if (self.props.title) {\n\n // geojsonLayer.title = self.props.title;\n // }\n\n\n // dataarr.forEach(obj => {\n // //var esrijson = geojsonToArcGIS(obj);\n // if (obj.geometry.type === \"Point\") {\n\n // var popupTemplate = {\n // title: \"{Name}\",\n // content: self.props.template,\n // };\n\n\n // var point = new Point({\n // longitude: obj.geometry.coordinates[1],\n // latitude: obj.geometry.coordinates[0],\n\n // });\n\n // // Create a symbol for drawing the point\n // var markerSymbol = new SimpleMarkerSymbol({\n // color: [226, 119, 40],\n // outline: {\n // color: [255, 255, 255],\n // width: 1\n // }\n // });\n\n // // Create a graphic and add the geometry and symbol to it\n // var pointGraphic = new Graphic({\n // geometry: point,\n // symbol: markerSymbol,\n // attributes: obj.properties,\n // popupTemplate: popupTemplate,\n // // extent : new Extent().centerAt(point)\n // });\n\n // // Add the graphic to the view\n // geojsonLayer.graphics.add(pointGraphic);\n // }\n\n\n // })\n\n\n // self.layerRef = geojsonLayer;\n // self.state.map.add(geojsonLayer);\n // // var imagelayer = new ImageryLayer({\n // // url: self.props.src,\n // // format: \"jpgpng\" // server exports in either jpg or png format\n // // });\n // // self.layerRef = imagelayer;\n // // self.state.map.add(imagelayer);\n\n // }\n\n\n self.layerRef.when(function () {\n setTimeout(() => {\n var evt = new Event('ready', { bubbles: true });\n Object.defineProperty(evt, 'target', { value: self, enumerable: true });\n\n if (self.props.onready) {\n self.props.onready(evt);\n }\n }, 500)\n });\n\n //this.state.view.graphics.add(graphic);\n }); //.catch ((err) => console.error(err));\n }\n\n zoomto() {\n if (this.layerRef.graphics) {\n this.state.view.goTo(this.layerRef.graphics.items);\n }\n\n }\n\n renderPopupTitle(feature, result){\n if(result.layerId !== undefined && this.layerRenderers) {\n var popupTitle = this.layerRenderers.find(l => l.props.layerid === result.layerId.toString());\n if (popupTitle && result.layerId == popupTitle.props.layerid) {\n return popupTitle.props.popuptitle;\n } else {\n return result.layerName;\n }\n } else {\n return result.layerName;\n }\n }\n\n renderPopup(feature, result) {\n\n\n if (result.layerId !== undefined && this.layerRenderers) {\n var popuprender = this.layerRenderers.find(l => l.props.layerid === result.layerId.toString());\n if (popuprender && popuprender.props.popup !== undefined) {\n var ele = popuprender.props.popup(feature, result);\n\n\n\n\n if (ele) {\n var workingdiv = document.createElement('div');\n ReactDOM.render(ele, workingdiv);\n return workingdiv;\n }\n }\n }\n\n\n\n\n var popupText = \"\";\n var atts = Object.getOwnPropertyNames(feature.attributes);\n atts.forEach(att => {\n if (att === 'layerName') {\n\n }\n else {\n popupText += `<b>${att}</b> : ${feature.attributes[att]}<br/>`;\n }\n });\n\n return popupText;\n\n }\n\n render() {\n return null;\n }\n\n identify(event, callback) {\n\n var self = this;\n if (this.props.type === \"geojson\") {\n\n this.state.view.hitTest(event).then((htresponse) => {\n\n // console.log(\"Identify on geojson\");\n //console.log(htresponse);\n var mapPoint = event.mapPoint;\n var response = {\n layer: self.layerRef,\n results: htresponse.results.map(r => { return { feature: r.graphic, layerName: self.layerRef.title }; }),\n }\n callback(response)\n });\n\n }\n else {\n\n\n if (!this.params) { callback(null); return; }\n\n this.params.geometry = event.mapPoint;\n this.params.mapExtent = this.state.view.extent;\n this.params.returnGeometry = true;\n //document.getElementById(\"viewDiv\").style.cursor = \"wait\";\n this.identifyTask.execute(this.params).then(function (response) {\n\n callback(response);\n\n\n });\n }\n\n }\n\n\n}\n\nexport default ArcticMapLayer;","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { arcgisToGeoJSON } from '@esri/arcgis-to-geojson-utils';\nimport ArcticMapButton from './ArcticMapButton';\nimport ArcticMapPanel from './ArcticMapPanel';\nimport ArcticMapLayer from './ArcticMapLayer';\nimport { geojsonToArcGIS } from '@esri/arcgis-to-geojson-utils';\nimport style from './ArcticMapEdit.css';\n\nimport {\n loadModules\n} from 'react-arcgis';\n\n\nclass ArcticMapEdit extends React.Component {\n static displayName = 'ArcticMapEdit';\n constructor(props) {\n super(props);\n\n props.map.editor = this;\n this.state = {\n map: props.map,\n view: props.view,\n graphic: null,\n hideEditors: false,\n editing: false,\n showUploading: false,\n hidden: !this.props.hidden ? false : true,\n };\n\n this.uploadPanel = React.createRef();\n }\n\n\n\n componentWillUnmount() {\n this.props.view.graphics.remove(this.state.graphic);\n }\n\n componentDidMount() {\n\n\n\n var self = this;\n loadModules([\"esri/Graphic\",\n \"esri/layers/GraphicsLayer\",\n \"esri/widgets/Sketch/SketchViewModel\",\n \"esri/geometry/Geometry\",\n \"esri/geometry/Polygon\",\n \"esri/geometry/geometryEngine\"\n ]).then(([\n Graphic,\n GraphicsLayer,\n SketchViewModel,\n Geometry,\n Polygon,\n geometryEngine\n ]) => {\n const tempGraphicsLayer = new GraphicsLayer({ title: 'Edit Layer', listMode: \"hide\" });\n self.setState({ tempGraphicsLayer });\n\n self.state.map.add(tempGraphicsLayer);\n\n\n const sketchViewModel = new SketchViewModel({\n view: self.state.view,\n layer: tempGraphicsLayer,\n defaultUpdateOptions :{\n // toggleToolOnClick : false\n },\n pointSymbol: {\n type: \"simple-marker\", // autocasts as new SimpleMarkerSymbol()\n style: \"circle\",\n color: \"yellow\",\n size: \"3px\",\n outline: { // autocasts as new SimpleLineSymbol()\n color: [255, 255, 255],\n width: 3\n }\n },\n polylineSymbol: {\n type: \"simple-line\", // autocasts as new SimpleLineSymbol()\n color: \"yellow\",\n width: \"3\",\n style: \"solid\"\n },\n polygonSymbol: {\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\n color: \"rgba(224, 206, 69, 0.8)\",\n style: \"solid\",\n outline: {\n color: \"yellow\",\n width: 3\n }\n }\n });\n\n\n self.setState({ tempGraphicsLayer, sketchViewModel });\n\n self.setUpClickHandler.bind(this);\n\n sketchViewModel.on(\"create\", (event) => {\n\n if (event.state === 'complete') {\n\n tempGraphicsLayer.graphics = [event.graphic];\n if (this.props.single) {\n\n this.setState({ hideEditors: true });\n }\n\n\n\n setTimeout(() => {\n\n self.setState({ geojson: arcgisToGeoJSON(event.graphic.geometry.toJSON()), datajson: event.graphic.toJSON(), editing: false });\n self.firenewfeature();\n }, 1000);\n\n\n }\n });\n\n\n sketchViewModel.on(\"update\", (event) => {\n self.setState({ editing: true });\n if(event.state === 'start' && self.state.mode === 'select'){\n return false;\n }\n if (event.state === 'complete' || event.state === 'cancel') {\n // const graphic = new Graphic({\n // geometry: event.graphic.geometry,\n // symbol: event.graphic.symbol\n // });\n //tempGraphicsLayer.add(event.graphic);\n // if (this.props.single) {\n // console.log(\"Added one feature\");\n // this.setState({ hideEditors: true });\n // }\n\n setTimeout(() => {\n self.setState({ geojson: arcgisToGeoJSON(event.graphics[0].geometry.toJSON()), datajson: event.graphics[0].toJSON(), });\n //this.geojson = event.geometry;\n self.firenewfeature();\n }, 1000);\n\n }\n });\n\n // Listen the sketchViewModel's update-complete and update-cancel events\n sketchViewModel.on(\"update-complete\", (event) => {\n event.graphic.geometry = event.geometry;\n tempGraphicsLayer.graphics = [event.graphic];\n //tempGraphicsLayer.add(event.graphic);\n\n // set the editGraphic to null update is complete or cancelled.\n self.state.editGraphic = null;\n\n\n\n });\n\n\n\n this.top_right_node = document.createElement(\"div\");\n self.state.view.ui.add(this.top_right_node, \"top-right\");\n\n self.setState({ loaded: true })\n\n //self.setUpClickHandler();\n\n\n // scoped methods\n self.setEditFeature = (feature, nofire, type, zoomto, addto, trim) => {\n \n if (nofire === null) {\n nofire = false;\n }\n\n if (type === null) {\n type = \"polygon\";\n }\n\n if (zoomto === null) {\n zoomto = true;\n }\n\n if (addto === null) {\n addto = false;\n }\n if (trim === null) {\n trim = false;\n }\n\n if (feature.attributes.layerName) {\n feature.sourceLayer = feature.attributes.layerName.trim();\n } else {\n feature.sourceLayer = 'PLSS';\n }\n\n if (!feature.geometry.type) {\n if (type === \"polygon\") {\n \n feature.geometry = new Polygon(feature.geometry);\n feature.geometry.type = \"polygon\";\n }\n }\n\n this.state.sketchViewModel.cancel();\n if (!addto) {\n this.state.tempGraphicsLayer.removeAll();\n }\n this.setState({ hideEditors: false, geojson: null });\n\n\n var graphic = null;\n if (!feature.geometry.toJSON && feature.symbol) {\n graphic = Graphic.fromJSON(feature);\n\n }\n else {\n\n\n\n graphic = new Graphic({\n geometry: feature.geometry,\n symbol: this.state.sketchViewModel.polygonSymbol\n });\n \n\n }\n\n if (graphic.geometry === null) {\n graphic.geometry = feature.geometry;\n \n }\n\n\n if (trim) {\n if (this.state.tempGraphicsLayer.graphics.items.length > 0) {\n\n var geometrys = this.state.tempGraphicsLayer.graphics.items.map(i => i.geometry);\n \n var merge = geometryEngine.union(geometrys);\n var isEqual = geometryEngine.equals(merge, graphic.geometry);\n if(!isEqual) {\n merge = geometryEngine.difference(merge, graphic.geometry);\n graphic = new Graphic({\n geometry: merge,\n symbol: this.state.sketchViewModel.polygonSymbol\n });\n graphic.geometry.sourceLayer = feature.sourceLayer;\n this.state.tempGraphicsLayer.graphics = [graphic];\n } else {\n this.state.tempGraphicsLayer.graphics = null;\n }\n \n\n }\n }\n else {\n this.state.tempGraphicsLayer.add(graphic);\n\n if (this.state.tempGraphicsLayer.graphics.items.length > 0) {\n\n var geometrys = this.state.tempGraphicsLayer.graphics.items.map(i => i.geometry);\n\n\n var merge = geometryEngine.union(geometrys);\n\n graphic = new Graphic({\n geometry: merge,\n symbol: this.state.sketchViewModel.polygonSymbol\n })\n graphic.geometry.sourceLayer = feature.sourceLayer;\n this.state.tempGraphicsLayer.graphics = [graphic]\n }\n }\n //this.state.tempGraphicsLayer.graphics = [graphic];\n if (this.props.single) {\n\n this.setState({ hideEditors: true });\n }\n\n if (zoomto) {\n\n self.state.view.goTo(graphic);\n }\n\n\n var geometry = feature.geometry;\n if (geometry && !geometry.toJSON) {\n geometry = Geometry.fromJSON(geometry);\n }\n\n this.setState({ geojson: arcgisToGeoJSON(geometry.toJSON()), datajson: graphic.toJSON(), });\n\n if (nofire === true) {\n\n }\n else {\n self.firenewfeature();\n }\n\n };\n\n\n self.setEditFeature = self.setEditFeature.bind(self);\n\n\n\n self.setGeoJson = (geojson) => {\n //var esrijson = geojsonToArcGIS(geojson);\n\n\n }\n self.setGeoJson = self.setGeoJson.bind(self);\n\n\n }); //.catch ((err) => console.error(err));\n\n\n }\n\n\n firenewfeature() {\n var self = this;\n var evt = new Event('newfeature', { bubbles: true });\n Object.defineProperty(evt, 'target', { value: this, enumerable: true });\n evt.data = self.state.datajson;\n\n if (self.props.onnewfeature) {\n self.props.onnewfeature(evt);\n }\n\n setTimeout(() => {\n self.setState({ editing: false });\n }, 200);\n }\n\n addPointClick() {\n this.state.sketchViewModel.create(\"point\", { mode: \"click\" });\n this.setState({ editing: true });\n }\n\n addLineClick() {\n this.state.sketchViewModel.create(\"polyline\", { mode: \"click\" });\n this.setState({ editing: true });\n }\n addPolyClick() {\n this.state.sketchViewModel.create(\"polygon\", { mode: \"click\" });\n this.setState({ editing: true });\n }\n addRecClick() {\n this.state.sketchViewModel.create(\"rectangle\", { mode: \"click\" });\n this.setState({ editing: true });\n }\n addCircleClick() {\n this.state.sketchViewModel.create(\"circle\", { mode: \"click\" });\n this.setState({ editing: true });\n }\n\n\n\n fileUploaded(evt) {\n var self = this;\n var fileName = evt.target.value.toLowerCase();\n if (fileName.indexOf(\".zip\") !== -1) {\n // console.log(\"addEventListener\", self);\n self.processShapeFile(fileName, evt.target);\n }\n else if (fileName.indexOf(\".kml\") !== -1) {\n // console.log(\"addEventListener\", self);\n self.processKMLFile(fileName, evt.target);\n }\n else if (fileName.indexOf(\".geojson\") !== -1) {\n // console.log(\"addEventListener\", self);\n\n self.processGeojsonFile(fileName, evt.target);\n }\n else if (fileName.indexOf(\".gml\") !== -1) {\n // console.log(\"addEventListener\", self);\n\n self.processGMLFile(fileName, evt.target);\n }\n else if (fileName.indexOf(\".gpx\") !== -1) {\n // console.log(\"addEventListener\", self);\n\n self.processGPXFile(fileName, evt.target);\n }\n else {\n document.getElementById(\"upload-status\").innerHTML =\n '<p style=\"color:red\">Only shapefile(.zip), .gml, .gpx, .kml, or .geojson are supported</p>'\n }\n\n\n }\n\n\n readTextFile(file) {\n return new Promise((res, rej) => {\n var fr = new FileReader();\n fr.onload = (evt) => {\n res(evt.target.result);\n }\n fr.readAsText(file);\n });\n }\n\n kmlColor(v) {\n var color, opacity;\n v = v || '';\n if (v.substr(0, 1) === '#') { v = v.substr(1); }\n if (v.length === 6 || v.length === 3) { color = v; }\n if (v.length === 8) {\n opacity = parseInt(v.substr(0, 2), 16) / 255;\n color = '#' + v.substr(6, 2) +\n v.substr(4, 2) +\n v.substr(2, 2);\n }\n return [color, isNaN(opacity) ? undefined : opacity];\n }\n\n processGPXFile(fileName, form) {\n var file = fileName.replace(/^.*[\\\\\\/]/, '');\n var self = this;\n this.readTextFile(form.files[0]).then(text =>{\n var parser = new DOMParser();\n var gj = self.fc();\n var xmlDoc = parser.parseFromString(text, \"text/xml\");\n var trkMember = self.get(xmlDoc,\"trk\");\n for (var j = 0; j < trkMember.length; j++) {\n gj.features = gj.features.concat(self.getTRKMember(trkMember[j]));\n }\n var features = [];\n gj.features.forEach(f=> {\n var esrijson = geojsonToArcGIS(f);\n features.push(esrijson);\n });\n self.addGeojsonToMap(features, file, \"GPX\");\n self.uploadPanel.current.toggle();\n });\n }\n getTRKMember(root) {\n var geometryProperty = this.get(root, \"trkseg\");\n var geomsCoord = this.getGeometry(geometryProperty[0]);\n var feature = {\n type: 'Feature',\n geometry: (geomsCoord.geoms.length === 1) ? geomsCoord.geoms[0] : {\n type: 'GeometryCollection',\n geometries: geomsCoord.geoms\n },\n //properties: properties\n };\n if (this.attr(root, 'id')) feature.id = this.attr(root, 'id');\n return [feature];\n }\n\n processGMLFile(fileName, form) {\n var file = fileName.replace(/^.*[\\\\\\/]/, '');\n var self = this;\n this.readTextFile(form.files[0]).then(text =>{\n var parser = new DOMParser();\n var gj = self.fc();\n var xmlDoc = parser.parseFromString(text, \"text/xml\");\n var Polygon = self.get(xmlDoc,\"gml:Polygon\");\n var featureMember = self.get(xmlDoc,\"gml:featureMember\");\n for (var j = 0; j < featureMember.length; j++) {\n gj.features = gj.features.concat(self.getFeatureMember(featureMember[j]));\n }\n var features = [];\n \n gj.features.forEach(f=> {\n var esrijson = geojsonToArcGIS(f);\n features.push(esrijson);\n });\n self.addGeojsonToMap(features, file, \"GML\");\n self.uploadPanel.current.toggle();\n });\n \n }\n\n getFeatureMember(root) {\n var geometryProperty = this.get(root, \"ogr:geometryProperty\");\n var geomsCoord = this.getGeometry(geometryProperty[0]);\n var feature = {\n type: 'Feature',\n geometry: (geomsCoord.geoms.length === 1) ? geomsCoord.geoms[0] : {\n type: 'GeometryCollection',\n geometries: geomsCoord.geoms\n },\n //properties: properties\n };\n if (this.attr(root, 'id')) feature.id = this.attr(root, 'id');\n return [feature];\n }\n\n getGeometry(root) {\n \n var geotypes = [ 'LineString','Polygon', 'Point', 'Track', 'gx:Track', 'gml:Polygon', 'trkpt'];\n var geomNode, geomNodes, i, j, k, geoms = [], coordTimes = [];\n if (this.get1(root, 'MultiGeometry')) { return this.getGeometry(this.get1(root, 'MultiGeometry')); }\n if (this.get1(root, 'MultiTrack')) { return this.getGeometry(this.get1(root, 'MultiTrack')); }\n if (this.get1(root, 'gx:MultiTrack')) { return this.getGeometry(this.get1(root, 'gx:MultiTrack')); }\n if (this.get1(root, 'trkpt')) {\n geomNodes = this.get(root, 'trkpt');\n coords = [];\n for (k = 0; k < geomNodes.length; k ++) {\n coords.push([parseFloat(geomNodes[k].attributes[1].nodeValue), parseFloat(geomNodes[k].attributes[0].nodeValue)]); \n }\n geoms.push({\n type: 'Polygon',\n coordinates: [coords]\n });\n }\n for (i = 0; i < geotypes.length; i++) {\n geomNodes = this.get(root, geotypes[i]);\n if (geomNodes) {\n for (j = 0; j < geomNodes.length; j++) {\n geomNode = geomNodes[j];\n if (geotypes[i] === 'Point') {\n geoms.push({\n type: 'Point',\n coordinates: this.coord1(this.nodeVal(this.get1(geomNode, 'coordinates')))\n });\n } else if (geotypes[i] === 'LineString') {\n geoms.push({\n type: 'LineString',\n coordinates: this.coord(this.nodeVal(this.get1(geomNode, 'coordinates')))\n });\n } else if (geotypes[i] === 'Polygon') {\n var rings = this.get(geomNode, 'LinearRing'),\n coords = [];\n for (k = 0; k < rings.length; k++) {\n \n coords.push(this.coord(this.nodeVal(this.get1(rings[k], 'coordinates'))));\n }\n geoms.push({\n type: 'Polygon',\n coordinates: coords\n });\n } else if (geotypes[i] === 'gml:Polygon') {\n var rings = this.get(geomNode, 'gml:LinearRing'),\n coords = [];\n for (k = 0; k < rings.length; k++) {\n \n coords.push(this.coord(this.nodeVal(this.get1(rings[k], 'gml:coordinates'))));\n }\n geoms.push({\n type: 'Polygon',\n coordinates: coords\n });\n } else if (geotypes[i] === 'Track' ||\n geotypes[i] === 'gx:Track') {\n var track = this.gxCoords(geomNode);\n geoms.push({\n type: 'LineString',\n coordinates: track.coords\n });\n if (track.times.length) coordTimes.push(track.times);\n }\n }\n }\n }\n \n return {\n geoms: geoms,\n coordTimes: coordTimes\n };\n \n }\n\n nodeVal(x) {\n if (x) { this.norm(x); }\n return (x && x.textContent) || '';\n }\n\n fc() {\n return {\n type: 'FeatureCollection',\n features: []\n }\n }\n xml2str(str) {\n var serializer;\n if (typeof XMLSerializer !== 'undefined') {\n /* istanbul ignore next */\n serializer = new XMLSerializer();\n } \n if (str.xml !== undefined) return str.xml;\n return serializer.serializeToString(str);\n }\n\n okhash(x) {\n if (!x || !x.length) return 0;\n for (var i = 0, h = 0; i < x.length; i++) {\n h = ((h << 5) - h) + x.charCodeAt(i) | 0;\n } return h;\n }\n\n\n get(x, y) {return x.getElementsByTagName(y); }\n attr(x, y) { return x.getAttribute(y); }\n attrf(x, y) { return parseFloat(this.attr(x, y)); }\n get1(x, y) { \n var n = this.get(x, y); \n return n.length ? n[0] : null; }\n norm(el) { if (el.normalize) { el.normalize(); } return el; }\n coord1(v) { \n var removeSpace = /\\s*/g;\n return this.numarray(v.replace(removeSpace, '').split(',')); \n }\n coord(v) {\n var trimSpace = /^\\s*|\\s*$/g;\n var splitSpace = /\\s+/;\n var coords = v.replace(trimSpace, '').split(splitSpace),o = [];\n \n for (var i = 0; i < coords.length; i++) {\n o.push(this.coord1(coords[i]));\n }\n \n return o;\n }\n gxCoord(v) { return this.numarray(v.split(' ')); }\n numarray(x) {\n \n for (var j = 0, o = []; j < x.length; j++) { o[j] = parseFloat(x[j]); }\n return o;\n }\n gxCoords(root) {\n var elems = this.get(root, 'coord', 'gx'), coords = [], times = [];\n if (elems.length === 0) elems = this.get(root, 'gx:coord');\n for (var i = 0; i < elems.length; i++) coords.push(this.gxCoord(this.nodeVal(elems[i])));\n var timeElems = this.get(root, 'when');\n for (var j = 0; j < timeElems.length; j++) times.push(this.nodeVal(timeElems[j]));\n return {\n coords: coords,\n times: times\n };\n }\n\n processKMLFile(fileName, form) {\n var file = fileName.replace(/^.*[\\\\\\/]/, '')\n var self = this;\n\n\n\n this.readTextFile(form.files[0]).then(text => {\n var parser = new DOMParser();\n var gj = self.fc()\n var xmlDoc = parser.parseFromString(text, \"text/xml\");\n var placemarks = self.get(xmlDoc, \"Placemark\");\n var styles = self.get(xmlDoc, \"Style\");\n var styleMaps = self.get(xmlDoc, \"StyleMap\");\n var styleIndex = {};\n var styleByHash = {};\n var styleMapIndex = {};\n for (var k = 0; k < styles.length; k++) {\n var hash = self.okhash(self.xml2str(styles[k])).toString(16);\n styleIndex['#' + self.attr(styles[k], 'id')] = hash;\n styleByHash[hash] = styles[k];\n }\n for (var l = 0; l < styleMaps.length; l++) {\n styleIndex['#' + self.attr(styleMaps[l], 'id')] = self.okhash(self.xml2str(styleMaps[l])).toString(16);\n var pairs = self.get(styleMaps[l], 'Pair');\n var pairsMap = {};\n for (var m = 0; m < pairs.length; m++) {\n pairsMap[self.nodeVal(self.get1(pairs[m], 'key'))] = self.nodeVal(self.get1(pairs[m], 'styleUrl'));\n }\n styleMapIndex['#' + self.attr(styleMaps[l], 'id')] = pairsMap;\n\n }\n for (var j = 0; j < placemarks.length; j++) {\n gj.features = gj.features.concat(self.getPlacemark(placemarks[j]));\n }\n \n var features = [];\n\n gj.features.forEach(f=> {\n var esrijson = geojsonToArcGIS(f);\n \n \n features.push(esrijson);\n });\n self.addGeojsonToMap(features, file, \"KML\");\n self.uploadPanel.current.toggle();\n\n });\n\n\n }\n getPlacemark(root) {\n var geomsAndTimes = this.getGeometry(root), i, properties = {},\n name = this.nodeVal(this.get1(root, 'name')),\n address = this.nodeVal(this.get1(root, 'address')),\n styleUrl = this.nodeVal(this.get1(root, 'styleUrl')),\n styleIndex = {},\n styleMapIndex = {},\n styleByHash = {},\n description = this.nodeVal(this.get1(root, 'description')),\n timeSpan = this.get1(root, 'TimeSpan'),\n timeStamp = this.get1(root, 'TimeStamp'),\n extendedData = this.get1(root, 'ExtendedData'),\n lineStyle = this.get1(root, 'LineStyle'),\n polyStyle = this.get1(root, 'PolyStyle'),\n visibility = this.get1(root, 'visibility');\n\n if (!geomsAndTimes.geoms.length) return [];\n if (name) properties.name = name;\n if (address) properties.address = address;\n\n if (styleUrl) {\n if (styleUrl[0] !== '#') {\n styleUrl = '#' + styleUrl;\n }\n properties.styleUrl = styleUrl;\n if (styleIndex[styleUrl]) {\n properties.styleHash = styleIndex[styleUrl];\n }\n if (styleMapIndex[styleUrl]) {\n properties.styleMapHash = styleMapIndex[styleUrl];\n properties.styleHash = styleIndex[styleMapIndex[styleUrl].normal];\n }\n var style = styleByHash[properties.styleHash];\n if (style) {\n if (!lineStyle) lineStyle = this.get1(style, 'LineStyle');\n if (!polyStyle) polyStyle = this.get1(style, 'PolyStyle');\n var iconStyle = this.get1(style, 'IconStyle');\n if (iconStyle) {\n var icon = this.get1(iconStyle, 'Icon');\n if (icon) {\n var href = this.nodeVal(this.get1(icon, 'href'));\n if (href) properties.icon = href;\n }\n }\n }\n if (description) properties.description = description;\n if (timeSpan) {\n var begin = this.nodeVal(this.get1(timeSpan, 'begin'));\n var end = this.nodeVal(this.get1(timeSpan, 'end'));\n properties.timespan = { begin: begin, end: end };\n }\n if (timeStamp) {\n properties.timestamp = this.nodeVal(this.get1(timeStamp, 'when'));\n }\n if (lineStyle) {\n var linestyles = this.kmlColor(this.nodeVal(this.get1(lineStyle, 'color'))),\n color = linestyles[0],\n opacity = linestyles[1],\n width = parseFloat(this.nodeVal(this.get1(lineStyle, 'width')));\n if (color) properties.stroke = color;\n if (!isNaN(opacity)) properties['stroke-opacity'] = opacity;\n if (!isNaN(width)) properties['stroke-width'] = width;\n }\n if (polyStyle) {\n var polystyles = this.kmlColor(this.nodeVal(this.get1(polyStyle, 'color'))),\n pcolor = polystyles[0],\n popacity = polystyles[1],\n fill = this.nodeVal(this.get1(polyStyle, 'fill')),\n outline = this.nodeVal(this.get1(polyStyle, 'outline'));\n if (pcolor) properties.fill = pcolor;\n if (!isNaN(popacity)) properties['fill-opacity'] = popacity;\n if (fill) properties['fill-opacity'] = fill === '1' ? properties['fill-opacity'] || 1 : 0;\n if (outline) properties['stroke-opacity'] = outline === '1' ? properties['stroke-opacity'] || 1 : 0;\n }\n if (extendedData) {\n var datas = this.get(extendedData, 'Data'),\n simpleDatas = this.get(extendedData, 'SimpleData');\n\n for (i = 0; i < datas.length; i++) {\n properties[datas[i].getAttribute('name')] = this.nodeVal(this.get1(datas[i], 'value'));\n }\n for (i = 0; i < simpleDatas.length; i++) {\n properties[simpleDatas[i].getAttribute('name')] = this.nodeVal(simpleDatas[i]);\n }\n }\n\n if (visibility) {\n properties.visibility = this.nodeVal(visibility);\n }\n\n if (geomsAndTimes.coordTimes.length) {\n properties.coordTimes = (geomsAndTimes.coordTimes.length === 1) ?\n geomsAndTimes.coordTimes[0] : geomsAndTimes.coordTimes;\n }\n\n var feature = {\n type: 'Feature',\n geometry: (geomsAndTimes.geoms.length === 1) ? geomsAndTimes.geoms[0] : {\n type: 'GeometryCollection',\n geometries: geomsAndTimes.geoms\n },\n properties: properties\n };\n if (this.attr(root, 'id')) feature.id = this.attr(root, 'id');\n return [feature];\n\n } else {\n\n var feature = {\n type: 'Feature',\n geometry: (geomsAndTimes.geoms.length === 1) ? geomsAndTimes.geoms[0] : {\n type: 'GeometryCollection',\n geometries: geomsAndTimes.geoms\n },\n properties: properties\n };\n if (this.attr(root, 'id')) feature.id = this.attr(root, 'id');\n return [feature];\n\n }\n\n }\n\n processGeojsonFile(fileName, form) {\n\n var file = fileName.replace(/^.*[\\\\\\/]/, '')\n var self = this;\n \n this.readTextFile(form.files[0]).then(text => {\n\n var geojson = JSON.parse(text);\n var features = [];\n\n geojson.features.forEach(f => {\n var esrijson = geojsonToArcGIS(f);\n\n\n features.push(esrijson);\n });\n\n self.addGeojsonToMap(features, file, \"GEOJSON\");\n self.uploadPanel.current.toggle();\n });\n\n }\n\n processShapeFile(fileName, form) {\n\n\n var self = this;\n self.uploadPanel.current.toggle();\n var name = fileName.split(\".\");\n name = name[0].replace(\"c:\\\\fakepath\\\\\", \"\");\n\n var parms = {\n name: name,\n targetSR: self.state.view.extent.spatialReference,\n maxRecordCount: 1000,\n enforceInputFileSizeLimit: true,\n enforceOutputJsonSizeLimit: true,\n };\n\n parms.generalize = true;\n parms.maxAllowableOffset = 10;\n parms.reducePrecision = true;\n parms.numberOfDigitsAfterDecimal = 0;\n var myContent = {\n filetype: \"shapefile\",\n publishParameters: JSON.stringify(parms),\n f: \"json\",\n 'content-type': 'multipart/form-data',\n };\n\n var portalUrl = \"https://www.arcgis.com\";\n\n var query = Object.keys(myContent)\n .map(k => escape(k) + '=' + escape(myContent[k]))\n .join('&');\n\n\n\n loadModules(['esri/request'])\n .then(([request]) => {\n request(portalUrl + \"/sharing/rest/content/features/generate\",\n {\n query: myContent,\n body: new FormData(form.form),\n //body: document.getElementById(\"uploadForm\"),\n responseType: \"json\"\n })\n .then(function (response) {\n var layerName = response.data.featureCollection.layers[0].layerDefinition.name;\n self.addShapefileToMap(response.data.featureCollection, layerName);\n })\n })\n\n\n }\n\n addShapefileToMap(featureCollection, layerName) {\n var self = this;\n loadModules(['esri/Graphic', 'esri/layers/FeatureLayer', 'esri/layers/support/Field', 'esri/PopupTemplate'])\n .then(([Graphic, FeatureLayer, Field, PopupTemplate]) => {\n var sourceGraphics = [];\n var layers = featureCollection.layers.map(function (layer) {\n\n var graphics = layer.featureSet.features.map(function (feature) {\n var gfx = Graphic.fromJSON(feature);\n gfx.symbol = {\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\n color: \"rgba(224, 206, 69, 0.8)\",\n style: \"solid\",\n outline: {\n color: \"yellow\",\n width: 3\n }\n };\n return gfx;\n });\n sourceGraphics = sourceGraphics.concat(graphics);\n var featureLayer = new FeatureLayer({\n title: \"SHP File: \" + layerName,\n //objectIDField: \"FID\",\n source: graphics,\n fields: layer.layerDefinition.fields.map(function (field) {\n return Field.fromJSON(field);\n })\n });\n return featureLayer;\n\n });\n\n\n layers[0].title = layerName;\n\n\n self.state.map.addMany(layers);\n\n self.state.view.goTo(sourceGraphics);\n\n var props = {\n title: \"Shape File: \" + layerName,\n transparency: \".32\",\n identmaxzoom: \"13\",\n blockidentselect: true,\n type: \"geojson\",\n src: \"\",\n map: self.state.map,\n view: self.state.view\n };\n\n var aml = new ArcticMapLayer(props);\n aml.layerRef = layers[0];\n aml.context = window._map.layers[0].context;\n aml.layerRef.title = props.title;\n\n self.state.map.amlayers.push(aml);\n\n });\n }\n\n\n addGeojsonToMap(featureCollection, layerName, filetype) {\n var self = this;\n loadModules(['esri/Graphic', 'esri/layers/FeatureLayer', 'esri/layers/support/Field', 'esri/PopupTemplate', \"esri/renderers/SimpleRenderer\"])\n .then(([Graphic, FeatureLayer, Field, PopupTemplate, SimpleRenderer]) => {\n var sourceGraphics = [];\n var symbol = {\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\n color: \"rgba(224, 206, 69, 0.8)\",\n style: \"solid\",\n outline: {\n color: \"red\",\n width: 2\n }\n };\n\n var i = 0;\n var graphics = featureCollection.map(feature => {\n\n feature.attributes[\"OBJECTID\"] = i++;\n var gfx = Graphic.fromJSON(feature);\n\n gfx.symbol = symbol;\n return gfx;\n\n });\n\n\n var featureLayer = new FeatureLayer({\n title: filetype +\" File: \" + layerName,\n objectIdField: \"OBJECTID\",\n //renderer : SimpleRenderer.fromJSON(symbol) ,\n source: graphics,\n // fields: layer.layerDefinition.fields.map(function (field) {\n // return Field.fromJSON(field);\n // })\n\n });\n\n\n self.state.map.add(featureLayer);\n self.state.view.goTo(graphics);\n\n\n\n\n var props = {\n title: filetype +\" File: \" + layerName,\n transparency: \".32\",\n identmaxzoom: \"13\",\n blockidentselect: true,\n type: \"geojson\",\n src: \"\",\n map: self.state.map,\n view: self.state.view\n };\n\n var aml = new ArcticMapLayer(props);\n aml.layerRef = featureLayer;\n aml.context = window._map.layers[0].context;\n aml.layerRef.title = props.title;\n\n self.state.map.amlayers.push(aml);\n\n\n\n\n\n });\n }\n\n\n\n\n\n\n reset() {\n this.state.sketchViewModel.cancel();\n this.state.tempGraphicsLayer.removeAll();\n this.setState({ hideEditors: false, geojson: null });\n\n }\n\n setmaptoselect() {\n\n if (this.props.am.state.mode === \"select\") {\n this.props.am.setMode(\"view\");\n this.setState({ mode: \"view\" });\n }\n else {\n\n this.props.am.setMode(\"select\");\n this.setState({ mode: \"select\" });\n }\n }\n\n widgetRender() {\n\n var self = this;\n var children = React.Children.map(this.props.children, function (child) {\n\n return React.cloneElement(child, {\n\n\n map: self.state.map,\n view: self.state.view,\n //ref: 'child-' + (index++)\n hidden : self.state.hideEditors\n })\n\n })\n\n if (this.state.hidden === true) {\n return <div id=\"topbar\"></div>;\n }\n\n return <div id=\"topbar\">\n\n {this.state.hideEditors === false &&\n <span>\n <ArcticMapButton showactive={this.props.am.state.mode === \"select\"} esriicon='cursor' title='Click to select/ Rightclick to remove' onclick={this.setmaptoselect.bind(this)} />\n {this.props.point &&\n\n <ArcticMapButton esriicon=\"blank-map-pin\" onclick={this.addPointClick.bind(this)} title=\"Draw point\" ></ArcticMapButton>\n }\n {this.props.line &&\n\n <ArcticMapButton esriicon=\"polyline\" onclick={this.addLineClick.bind(this)} title=\"Draw polyline\" ></ArcticMapButton>\n }\n {this.props.polygon &&\n\n <ArcticMapButton esriicon=\"polygon\" onclick={this.addPolyClick.bind(this)} title=\"Draw polygon\" ></ArcticMapButton>\n }\n {this.props.square &&\n\n <ArcticMapButton esriicon=\"checkbox-unchecked\" onclick={this.addRecClick.bind(this)} title=\"Draw rectangle\" ></ArcticMapButton>\n }\n {this.props.circle &&\n <ArcticMapButton esriicon=\"radio-unchecked\" onclick={this.addCircleClick.bind(this)} title=\"Draw circle\" ></ArcticMapButton>\n\n }\n </span>\n }\n {children}\n {this.props.upload &&\n <ArcticMapPanel hidden={this.state.hideEditors} esriicon=\"upload\" title=\"Upload Polygon\" ref={this.uploadPanel} >\n <br />\n <p className={style.infoarea} >Do you already have a shope of your plot? Upload your file\n here. Supported file types:\n Shapefiles (.zip), kml, glm, gpx, and geojson\n </p>\n <form encType=\"multipart/form-data\" method=\"post\" id=\"uploadForm\">\n <div className=\"field\">\n <p><strong>Select File</strong></p>\n <label className={style.btm_primary_file}>\n <input type=\"file\" name=\"file\" id=\"inFile\" onChange={this.fileUploaded.bind(this)} />\n Upload Image\n </label>\n </div>\n </form>\n <br />\n <span id=\"upload-status\"></span>\n\n </ArcticMapPanel>}\n <ArcticMapButton esriicon=\"refresh\" onclick={this.reset.bind(this)} title=\"Clear graphics\" ></ArcticMapButton>\n\n\n\n </div>;\n }\n\n componentDidUpdate() {\n if (this.top_right_node) {\n ReactDOM.render(\n this.widgetRender(),\n this.top_right_node\n );\n }\n }\n\n\n render() {\n\n //return (<h2>Test</h2>);\n\n\n return (<span>\n {this.state.fileLayer}\n\n\n\n </span>);\n }\n\n addGraphic(event) {\n // Create a new graphic and set its geometry to\n // `create-complete` event geometry.\n // const graphic = new Graphic({\n // geometry: event.geometry,\n // symbol: sketchViewModel.graphic.symbol\n // });\n // tempGraphicsLayer.add(graphic);\n }\n\n updateGraphic(event) {\n // event.graphic is the graphic that user clicked on and its geometry\n // has not been changed. Update its geometry and add it to the layer\n // event.graphic.geometry = event.geometry;\n // tempGraphicsLayer.add(event.graphic);\n\n // // set the editGraphic to null update is complete or cancelled.\n // editGraphic = null;\n }\n\n setUpClickHandler() {\n var self = this;\n self.state.view.on(\"click\", function (event) {\n event.stopPropagation();\n\n self.state.view.hitTest(event).then(function (response) {\n var results = response.results;\n // Found a valid graphic\n if (results.length && results[results.length - 1].graphic && self.map.mode != 'identify') {\n // Check if we're already editing a graphic\n // if (!self.state.editGraphic) {\n // Save a reference to the graphic we intend to update\n self.state.editGraphic = results[results.length - 1].graphic;\n // Remove the graphic from the GraphicsLayer\n // Sketch will handle displaying the graphic while being updated\n // self.state.tempGraphicsLayer.spatialReference = self.state.editGraphic.geometry.spatialReference;\n // self.state.view.spatialReference = self.state.editGraphic.geometry.spatialReference;\n //self.state.tempGraphicsLayer.remove(self.state.editGraphic);\n self.state.tempGraphicsLayer.graphics = [self.state.editGraphic];\n //self.state.sketchViewModel.updateGraphics = [self.state.editGraphic];\n\n self.state.sketchViewModel.update([self.state.editGraphic]);\n\n //self.state.tempGraphicsLayer.graphics = [self.state.editGraphic];\n\n //}\n }\n });\n });\n }\n\n setActiveButton(selectedButton) {\n // focus the view to activate keyboard shortcuts for sketching\n // view.focus();\n // var elements = document.getElementsByClassName(\"active\");\n // for (var i = 0; i < elements.length; i++) {\n // elements[i].classList.remove(\"active\");\n // }\n // if (selectedButton) {\n // selectedButton.classList.add(\"active\");\n // }\n }\n\n\n}\n\nexport default ArcticMapEdit;","// WY060140N0660W0SN180ANENE\n\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport style from './ArcticMapLLDSearch.css';\n\nimport {\n loadModules\n} from 'react-arcgis';\n\nclass ArcticMapLLDSearch extends React.Component {\nstatic displayName = 'ArcticMapLLDSearch';\n constructor(props) {\n super(props);\n\n this.state = {\n map: props.map,\n view: props.view,\n graphic: null\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n\n\n\n\n componentDidMount() {\n var self = this;\n loadModules(['esri/Graphic',\n \"esri/geometry/geometryEngine\",\n 'esri/geometry/Geometry',\n 'esri/geometry/Polygon',\n \"esri/widgets/Search/SearchSource\",\n 'esri/request'\n\n ]).then(([\n Graphic,\n geometryEngine,\n Geometry,\n Polygon,\n SearchSource,\n esriRequest\n\n ]) => {\n\n\n //var elestring = this.createElementFromHTML( `<input type=\"text\" placeholder=\"Find address or place\" aria-label=\"Search\" autocomplete=\"off\" tabindex=\"0\" class=\"esri-input esri-search__input\" aria-autocomplete=\"list\" aria-haspopup=\"true\" aria-owns=\"1687b00a338-widget-1-suggest-menu\" role=\"textbox\" data-node-ref=\"_inputNode\" title=\"Find address or place\">`);\n\n self.top_right_node = document.createElement(\"div\");\n\n self.Graphic = Graphic;\n self.Geometry = Geometry;\n self.Polygon = Polygon;\n\n self.state.view.ui.add(self.top_right_node, {\n position: \"top-right\",\n index: 0\n });\n\n\n\n // ReactDOM.render(\n // self.widgetRender(),\n // self.top_right_node\n // );\n\n\n\n var url = \"https://gis.blm.gov/arcgis/rest/services/Cadastral/BLM_Natl_PLSS_CadNSDI/MapServer/exts/CadastralSpecialServices/FindLD\"\n\n self.search = new SearchSource({\n name: 'Legal Land Description',\n placeholder: \"example: NV 21 T38N R56E SEC 10 ALIQ SESW\",\n \n getSuggestions: function (params) {\n \n var serarcParams = params.suggestTerm.replace(/\\+/g,' ');\n var options = {\n query :{\n \"legaldescription\": serarcParams,\n \"returnalllevels\": \"true\",\n f:\"pjson\"\n },\n responseType: \"json\"\n }\n return esriRequest(url, options).then(function(results) {\n \n return results.data.features.map(function (feature) {\n return {\n key: \"name\",\n text: feature.attributes.landdescription,\n sourceIndex: params.sourceIndex\n };\n });\n });\n\n\n },\n \n getResults: function (params) {\n var serarchParams = params.suggestResult.text.replace(/\\+/g,' ');\n var options = {\n query :{\n \"legaldescription\": serarchParams,\n \"returnalllevels\": \"true\",\n f:\"pjson\"\n },\n responseType: \"json\"\n }\n\n return esriRequest(url, options).then(function(results) {\n \n var searchResults = results.data.features.map(function (feature) {\n\n var outfeature = Graphic.fromJSON(feature);\n\n var buffer = geometryEngine.geodesicBuffer(outfeature.geometry, 100, \"feet\");\n\n var searchResult = {\n extent: buffer.extent,\n feature: outfeature,\n name: feature.attributes.landdescription\n };\n return searchResult;\n });\n return searchResults;\n });\n \n \n }\n });\n \n\n\n });\n }\n\n searchLLD(event) {\n\n var self = this;\n\n fetch(`https://gis.blm.gov/arcgis/rest/services/Cadastral/BLM_Natl_PLSS_CadNSDI/MapServer/exts/CadastralSpecialServices/FindLD?legaldescription=${this.state.searchinput}+&returnalllevels=&f=json`).then(r => r.json()).then(data => {\n \n\n\n var popupresults = data.features.map(function (feature) {\n\n feature.geometry = self.Polygon.fromJSON(feature.geometry);\n\n feature = new self.Graphic(feature);\n\n\n var displayValue = feature.attributes.landdescription;\n\n\n feature.popupTemplate = { // autocasts as new PopupTemplate()\n title: 'Legal Land Description',\n content: `<b>LLD</b>: ${displayValue}`,\n actions: [{ title: \"Select\", id: \"select-action\" }]\n }\n\n\n\n return feature\n })\n\n if (popupresults.length > 0) {\n self.state.view.popup.open({\n features: popupresults,\n location: event.mapPoint\n })\n\n\n\n\n }\n\n\n })\n\n }\n\n handleChange(event) {\n this.setState({ searchinput: event.target.value });\n }\n\n widgetRender() {\n return <div className={style.lldsearchbar}>\n\n\n <div style={{ display: 'inline-block', height: '32px', marginTop: '0px' }} >\n\n\n <input style={{ display: 'inline-block', height: '32px', verticalAlign: 'top' }} value={this.state.searchinput} onChange={this.handleChange} type=\"text\" placeholder=\"Find legal land description\" aria-label=\"Search\" className=\"esri-input\" title=\"Find leagal land desription\" />\n\n <div style={{ display: 'inline-block', width: '32px', height: '32px', verticalAlign: 'top' }} role=\"button\" title=\"Search\" className=\"esri-search__submit-button esri-widget--button\" onClick={this.searchLLD.bind(this)}>\n <span style={{ display: 'block', paddingTop: '8px' }} aria-hidden=\"true\" role=\"presentation\" className=\"esri-icon-search\"></span>\n\n </div>\n </div>\n\n\n\n </div>;\n }\n\n\n render() {\n return null;\n }\n\n\n\n\n}\n\nexport default ArcticMapLLDSearch;","import React from 'react';\nclass ArcticMapLayerPopup extends React.Component {\n static displayName = 'ArcticMapLayerPopup';\n constructor(props) {\n super(props)\n }\n\n render() {\n \n return <span></span>;\n\n }\n\n renderPopup(context){\n if(this.props.popup){\n return this.props.popup(context);\n }\n }\n\n}\n\n\nexport default ArcticMapLayerPopup;","import React from 'react';\nimport ReactDOM from \"react-dom\";\n\nclass ArcticMapControlArea extends React.Component {\n static displayName = 'ArcticMapControlArea';\n constructor(props) {\n super(props)\n \n this.controlNode = document.createElement(\"div\");\n this.props.view.ui.add(this.controlNode, this.props.location);\n \n }\n\n componentDidUpdate() {\n \n if (this.controlNode) {\n ReactDOM.render(this.widgetRender(), this.controlNode, ()=>{\n \n });\n }\n }\n\n append(ele){\n this.props.children.push(ele);\n }\n\n widgetRender() {\n\n var self = this;\n var index = 0\n \n\n var children = React.Children.map(this.props.children, function (child) {\n \n \n // else if (child.type.name === 'ArcticMapLLDSearch') {\n \n // return React.cloneElement(child, {\n // })\n \n // } \n \n \n return React.cloneElement(child, {\n am : self.props.am,\n map : self.props.am.state.map,\n view : self.props.am.state.view,\n //hostDiv : self.controlNode\n //ref: 'child-' + (index++)\n //ref: (c) => { if (c) { self.childrenElements.push(c); } return 'child-' + (index++) }\n })\n \n });\n\n \n\n return (<span className='arcticmap-area'>{children}</span>)\n }\n render() {\n return (<span></span>);\n }\n\n}\n\nexport default ArcticMapControlArea;","import React from 'react';\nimport ReactDOM from \"react-dom\";\nimport ArcticMapButton from './ArcticMapButton';\n\n\n\nclass ArcticMapIdentify extends React.Component {\n static displayName = 'ArcticMapIdentify';\n constructor(props) {\n super(props);\n\n this.state = { mode: 1 };\n\n }\n\n setmaptoidentify() {\n this.props.am.setMode(\"identify\");\n this.setState({ mode: \"identify\" });\n\n }\n\n\n\n render() {\n\n //cursor\n\n return (\n <span>\n\n <ArcticMapButton showactive={this.props.am.state.mode === \"description\"} esriicon='question' title='Identify' onclick={this.setmaptoidentify.bind(this)} />\n </span>\n\n\n )\n }\n\n}\n\nexport default ArcticMapIdentify;","import React from \"react\";\nimport ReactDOM from 'react-dom'\nimport { geojsonToArcGIS } from '@esri/arcgis-to-geojson-utils';\nimport ArcticMapButton from './ArcticMapButton';\nimport ArcticMapPanel from './ArcticMapPanel';\nimport ArcticMapControlArea from './ArcticMapControlArea';\nimport { loadModules } from 'react-arcgis';\nimport styles from './ArcticMap.css';\n\n\nclass ArcticMapBaseControl extends React.Component {\n static displayName = \"ArcticMapBaseControl\";\n constructor(props) {\n super(props)\n\n \n this.state = {\n zoomControl: null,\n renderElements: [],\n canReset: this.props.reset !== undefined,\n\n }\n var self = this;\n this.zoomControlDiv = document.createElement(\"div\");\n this.layersDiv = document.createElement(\"div\");\n this.legendDiv = document.createElement(\"div\");\n\n\n loadModules([\n 'esri/widgets/Zoom',\n 'esri/widgets/LayerList',\n 'esri/widgets/Legend',\n 'esri/widgets/BasemapGallery',\n ]).then(([\n Zoom,\n LayerList,\n Legend,\n BasemapGallery\n ]) => {\n\n self.props.view.on('click', (event) => {\n\n self.props.view.ui.remove(self.basemapGallery);\n\n });\n\n self.basemapGallery = new BasemapGallery({\n view: props.view\n })\n self.basemapGallery.watch('activeBasemap', function (newValue, oldValue, property, object) {\n self.props.view.ui.remove(self.basemapGallery);\n\n });\n\n var zoom = new Zoom({\n view: props.view,\n container: self.zoomControlDiv,\n position: \"top-left\"\n })\n self.state.zoomControl = zoom;\n \n //this.props.hostDiv.appendChild(zoom);\n //props.view.ui.add(zoom, props.hostDiv);\n //self.state.children.push(self.zoomControlDiv);\n\n var legend = new Legend({\n view: props.view,\n container: self.legendDiv,\n });\n\n var layerList = new LayerList({\n view: props.view,\n container: self.layersDiv,\n listItemCreatedFunction: function (event) {\n const item = event.item\n item.panel = {\n content: 'legend',\n open: false\n }\n }\n });\n //self.state.view.ui.add(layerList, 'top-left')\n //var joined = self.state.renderElements.concat(self.zoomControlDiv);\n this.setState({ renderElements: self.state.renderElements.concat(self.zoomControlDiv) })\n })\n\n }\n\n\n handleShowBasemaps() {\n\n }\n\n renderZoomcontrol() {\n \n return this.zoomControlDiv;\n }\n\n basemapclick() {\n this.props.view.ui.add(this.basemapGallery, {\n position: 'bottom-right'\n })\n //this.setState({ hideBasemapButton: true })\n // self.state.view.ui.remove(self.basemapGallery);\n }\n\n render() {\n return (\n <div >\n\n <ArcticMapControlArea am={this.props.am} view={this.props.view} location=\"top-left\">\n <div ref={(e) => { e && e.appendChild(this.zoomControlDiv) }} />\n </ArcticMapControlArea>\n\n <ArcticMapControlArea am={this.props.am} view={this.props.view} location=\"bottom-right\" className={styles.ArcticMap} >\n <ArcticMapPanel esriicon='layers' title='Data Filters' >\n <p>Toggle visibility of each data layer.</p>\n {this.state.canReset &&\n <p><a href=\"#\" style={{ color: '#71A3AF', textDecoration: 'none' }} onClick={this.props.reset}>\n <span style={{ height: \"10px\", width: \"10px\", marginRight: '10px', color: 'black' }} aria-hidden className=\"esri-icon esri-icon-trash\" ></span>\n Reset to Default Data Visibility</a></p>\n }\n <div ref={(e) => { e && e.appendChild(this.layersDiv) }} />\n </ArcticMapPanel>\n <ArcticMapPanel esriicon='layer-list' title='Legend'>\n <div ref={(e) => { e && e.appendChild(this.legendDiv) }} />\n </ArcticMapPanel>\n <ArcticMapButton esriicon='basemap' title='Basemaps' onclick={this.basemapclick.bind(this)} />\n </ArcticMapControlArea>\n\n\n\n\n </div>\n\n )\n\n }\n}\n\nexport default ArcticMapBaseControl;","import React from 'react';\nimport ReactDOM from \"react-dom\";\n\nclass ArcticMapLayerRenderer extends React.Component {\n static displayName = 'ArcticMapLayerRenderer';\n constructor(props) {\n super(props)\n if(props.style === undefined){\n console.log(\"Missing style: Build Styles @ https://developers.arcgis.com/javascript/latest/sample-code/playground/live/index.html\")\n }\n \n }\n\n \n render() {\n return (<span></span>);\n }\n\n}\n\nexport default ArcticMapLayerRenderer;","import React from \"react\";\nimport ReactDOM from 'react-dom'\n\nimport {\n loadModules\n} from 'react-arcgis';\n\n\nclass ArcticMapLocator extends React.Component {\n static displayName = \"ArcticMapLocator\";\n constructor(props) {\n super(props);\n\n }\n\n componentWillMount() {\n\n }\n\n componentDidMount() {\n var self = this;\n loadModules([\n\n 'esri/widgets/Locate',\n 'esri/widgets/BasemapGallery',\n 'esri/widgets/Home',\n \n 'esri/widgets/Search',\n 'esri/layers/FeatureLayer',\n 'esri/tasks/Locator',\n 'esri/geometry/geometryEngine',\n \n \"esri/request\",\n \n ]).then(([\n \n Locate,\n BasemapGallery,\n Home,\n \n Search,\n FeatureLayer,\n Locator,\n geometryEngine,\n \n Request,\n \n ]) => {\n var searchsources = []\n \n \n var devaultSource = {\n locator: new Locator({ url: \"https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer\" }),\n singleLineFieldName: \"SingleLine\",\n name: \"Standard Geocoder\",\n placeholder: \"Find address\",\n maxResults: 3,\n maxSuggestions: 6,\n suggestionsEnabled: true,\n minSuggestCharacters: 0\n }\n searchsources.push(devaultSource);\n var searchitems = self.props.am.childrenElements.filter(ele => {\n\n if (ele.search) {\n return ele;\n }\n // if (ele.constructor.name.toLowerCase().includes('search')) {\n // return ele;\n // }\n \n });\n\n var lldsSarchsources = searchitems.map(i => {\n if (i.search) { return i.search; }\n });\n\n searchsources.push(lldsSarchsources[0]);\n \n if (self.props.searchSources) {\n self.props.searchSources.map(searchSource => {\n \n var searchFeature = new FeatureLayer({\n url: searchSource.scr + searchSource.layerid\n });\n searchSource.layer=searchFeature;\n \n searchsources.push(searchSource);\n })\n }\n\n var searchWidget2 = new Search({\n view: self.props.view,\n sources: searchsources,\n includeDefaultSources: false // true will include standard locator\n });\n\n self.props.view.ui.add(searchWidget2, {\n position: \"top-right\",\n index: 1\n });\n\n searchWidget2.on('select-result', function (evt) {\n\n self.props.view.popup.currentSearchResultFeature = evt.result.feature;\n self.props.view.popup.close();\n //self.props.view.popup.close();\n // view.popup.open({\n // location: evt.result.feature.geometry, // location of the click on the view\n // feature: evt.result.feature,\n // title: \"Search Result\", // title displayed in the popup\n // content: evt.result.name, // content displayed in the popup\n // });\n });\n\n });\n\n\n }\n render() {\n return null;\n }\n}\n\nexport default ArcticMapLocator;"],"names":["ArcticMapButton","props","state","esriicon","showactive","undefined","fireclick","e","onclick","style","padtop","arcticButton","marginTop","padbottom","marginBOttom","useEsriIcon","backgroundColor","esriClassName","bind","title","height","width","React","Component","displayName","loadingtext","ArcticMapLoader","loading","bg","styles","ArcticMapPanel","toggle","currvalue","open","setState","mapFrame","document","getElementsByClassName","renderEle","createElement","appendChild","hidden","map","view","on","renderPanel","ele","className","rightWidgetFull","fontSize","marginBottom","position","top","right","border","background","cursor","widgetContainer","children","render","eleempty","id","innerHTML","head","ArcticMap","lat","lng","mode","basemap","Number","parseInt","sr","handleMapLoad","handleMapClick","layers","self","index","childrenElements","Children","child","type","cloneElement","c","push","sort","l","reverse","event","ui","add","basemapGallery","hideBasemapButton","htmlString","div","trim","firstChild","json","nofire","editor","setEditFeature","val","amlayers","centerSplit","center","split","parseFloat","zoom","cntrlIsPressed","then","Locate","BasemapGallery","Home","Search","FeatureLayer","Request","_request","_map","request","popup","dockEnabled","dockOptions","watch","visible","graphics","removeAll","graphic","graphicTemplate","getEffectivePopupTemplate","actions","items","SimpleFillSymbol","symbol","popupGraphic","content","viewModel","action","target","selectedFeature","close","addEventListener","which","contextmenuPressed","button","remove","editing","currentmode","setMode","identresults","identLayers","filter","layer","mapzoom","identMaxZoom","concat","eachSeries","cb","identify","results","err","ir","forEach","res","acres","feature","geometry","geometryEngine","geodesicArea","reduce","a","b","flat","r1","r2","popupresults","result","layerName","attributes","popupTemplate","renderPopupTitle","renderPopup","length","currentSearchResultFeature","mapPoint","locate","locateBtn","newValue","oldValue","property","object","home","homeBtn","getEditFeature","tempGraphicsLayer","evt","Event","bubbles","defineProperty","value","enumerable","onmapready","ArcticMapLayer","blockIdentSelect","Graphic","MapImageLayer","ImageryLayer","GraphicsLayer","IdentifyTask","IdentifyParameters","Point","SimpleMarkerSymbol","GroupLayer","Renderer","layerRenderers","childrenEles","Array","isArray","renderers","featureLayer","src","layerRef","gtrans","transparency","srcsplit","gmaplayer","glayer","when","layerids","allSublayers","sublayer","renderer","find","r","identifyTask","params","tolerance","layerIds","layerOption","returnGeometry","blockSelect","trans","maplayer","childsrc","imagelayer","onready","goTo","layerId","popupTitle","layerid","toString","popuptitle","popuprender","workingdiv","popupText","atts","Object","getOwnPropertyNames","att","callback","hitTest","htresponse","response","mapExtent","extent","execute","ArcticMapEdit","uploadPanel","createRef","SketchViewModel","Geometry","Polygon","listMode","sketchViewModel","setUpClickHandler","single","hideEditors","geojson","arcgisToGeoJSON","toJSON","datajson","firenewfeature","editGraphic","top_right_node","loaded","zoomto","addto","sourceLayer","cancel","fromJSON","polygonSymbol","geometrys","i","merge","union","isEqual","equals","difference","setGeoJson","data","onnewfeature","create","fileName","toLowerCase","indexOf","processShapeFile","processKMLFile","processGeojsonFile","processGMLFile","processGPXFile","getElementById","file","Promise","rej","fr","FileReader","onload","readAsText","v","color","opacity","substr","isNaN","form","replace","readTextFile","files","parser","DOMParser","gj","fc","xmlDoc","parseFromString","text","trkMember","get","j","features","getTRKMember","esrijson","geojsonToArcGIS","f","addGeojsonToMap","current","root","geometryProperty","geomsCoord","getGeometry","geoms","attr","featureMember","getFeatureMember","geotypes","geomNode","geomNodes","k","coordTimes","get1","nodeValue","coords","coord1","nodeVal","coord","rings","track","gxCoords","times","x","norm","textContent","str","serializer","XMLSerializer","xml","serializeToString","h","charCodeAt","y","getElementsByTagName","getAttribute","n","el","normalize","removeSpace","numarray","trimSpace","splitSpace","o","elems","gxCoord","timeElems","placemarks","styleMaps","styleIndex","styleByHash","styleMapIndex","hash","okhash","xml2str","pairs","pairsMap","m","getPlacemark","geomsAndTimes","properties","name","address","styleUrl","description","timeSpan","timeStamp","extendedData","lineStyle","polyStyle","visibility","styleHash","styleMapHash","normal","iconStyle","icon","href","begin","end","timespan","timestamp","linestyles","kmlColor","stroke","polystyles","pcolor","popacity","fill","outline","datas","simpleDatas","JSON","parse","parms","spatialReference","generalize","maxAllowableOffset","reducePrecision","numberOfDigitsAfterDecimal","myContent","stringify","portalUrl","query","keys","escape","join","FormData","featureCollection","layerDefinition","addShapefileToMap","Field","PopupTemplate","sourceGraphics","featureSet","gfx","fields","field","addMany","aml","context","window","filetype","SimpleRenderer","am","setmaptoselect","point","addPointClick","line","addLineClick","polygon","addPolyClick","square","addRecClick","circle","addCircleClick","upload","infoarea","btm_primary_file","fileUploaded","reset","widgetRender","fileLayer","stopPropagation","update","selectedButton","ArcticMapLLDSearch","handleChange","SearchSource","esriRequest","url","search","serarcParams","suggestTerm","options","landdescription","sourceIndex","serarchParams","suggestResult","searchResults","outfeature","buffer","geodesicBuffer","searchResult","searchinput","displayValue","lldsearchbar","display","verticalAlign","searchLLD","paddingTop","ArcticMapLayerPopup","ArcticMapControlArea","controlNode","location","ArcticMapIdentify","setmaptoidentify","ArcticMapBaseControl","zoomControlDiv","layersDiv","legendDiv","Zoom","LayerList","Legend","zoomControl","legend","layerList","item","panel","renderElements","canReset","textDecoration","marginRight","basemapclick","ArcticMapLayerRenderer","log","ArcticMapLocator","Locator","searchsources","devaultSource","searchitems","lldsSarchsources","searchSources","searchFeature","searchSource","scr","searchWidget2"],"mappings":"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"}
\No newline at end of file