{"version":3,"sources":["webpack:///./node_modules/@stencil/core/internal/client lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///./src/components/styled/ListItemContainer.tsx","webpack:///./src/components/styled/SearchResultsHeaderContainer.tsx","webpack:///./src/components/styled/SearchContentFooterNavigatorContainer.tsx","webpack:///./src/components/SearchResultCard.tsx","webpack:///./src/components/styled/ListContainer.tsx","webpack:///./src/components/SearchResultsHeader.tsx","webpack:///./src/components/SearchItemDetailsHeader.tsx","webpack:///./src/components/styled/AssessorDetailsContainer.tsx","webpack:///./src/components/styled/ListContainerHolder.tsx","webpack:///./src/components/AssessorDetails.tsx","webpack:///./src/components/SearchBox.tsx","webpack:///./src/components/SearchContentFooter.tsx","webpack:///./src/utils/CreatePDF.ts","webpack:///./src/components/SearchContentNavigator.tsx","webpack:///./src/components/SearchContent.tsx"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","ListItemContainer","ListItem","SearchResultsHeaderConatiner","div","SearchContentFooterNavigatotConatiner","SearchResultCard","item","i","checked","state","setState","itemNum","onItemClick","evt","target","type","currentSearchItem","searchResultDetailsItems","selectedSearchResultDetail","onCheckedChange","select","mapHoveredHighlightItem","tempAssessorSelectionResults","LayerName","operationalLayerName","filteredOpLayer","operationalLayers","filter","opLayer","Key","assessorSelectionResults","tempArr","selelectionItem","whereClause","AssessLink","assessorInfo","GIS_ID","executeMapSelect","results","forEach","result","push","updateMapSelection","app","newGraphic","GeometryType","attributes","geometry","rings","Geometry","spatialReference","symbol","color","style","outline","width","join","miterLimit","x","y","size","paths","addToMapSelection","removeFromMapSelection","length","undefined","toString","splice","ObjectIDField","addMapHighlightOnHover","removeMapHighlightOnHover","List","className","onClick","onMouseOver","onMouseOut","Checkbox","label","onChange","event","persist","currentTarget","ListItemGraphic","key","icon","Icon","ListItemText","DisplayFields","map","field","idx","Fragment","ListItemSecondaryText","getFormattedValue","getResultItems","ListItemMeta","getResultCardItems","ListContainer","searchResultsCount","displayedSearchItems","selectedResultsCount","displayedSelectedItems","assessorSearchResults","displaySelectionResults","searchItemsCopy","displayedSelectedItemLayerNames","displayedSearchItemLayerNames","searchItems","obj","selectedItemsCopy","selectedItems","downloadData","setDownloadData","selectedDisplayedItemLayerName","setSelectedDisplayedItemLayerName","cleardisplayedItems","zoomToDisplayedItems","mode","navigate","currentZoomTodisplayedItems","debounce","changeResultFilter","value","downloadDataClicked","done","alert","useEffect","searchItemLayerNames","tempDownloadData","layerNames","newObj","Object","reduce","object","FieldsExcludedinCSVExport","indexOf","prepareDownLoadData","paddingTop","display","textAlign","Typography","use","margin","Fab","disabled","CSVLink","data","filename","asyncOnClick","Select","placeholder","options","selectedItemLayerNameItems","headerUniqueKey","SingleUniqueField","FieldName","AliasName","clearAssessorDetailsItem","mapView","selectFunction","performMapSelect","justifyContent","flexDirection","IsSelected","Array","from","document","getElementsByClassName","classList","remove","add","getElementById","element","contains","AssessorDetailsContainer","ListContainerHolder","detailsItem","detailItem","relatedPlanAreaDetailsObj","relatedPlanAreaDetails","relatedData","planAreafields","isValidHttpUrl","str","url","URL","_","protocol","suffixedAddress1","StreetViewImgLink","StreetViewLinkFields","LocationCityState","googleAPIKey","googleImageHref","excludeProps","ExcludeDetailFields","activeTab","setActiveTab","showGoogleImage","href","src","MUGISHasPlan","TabFields","tabField","CollapsibleList","startOpen","handle","console","log","TabName","onOpen","onClose","fields","Fields","LinkUrl","DisplayText","FieldKey","toUpperCase","getFormattedLocationValue","renderAssessorDetailsTabs","TabBar","activeTabIndex","onActivate","detail","index","Tab","includes","renderGISDetails","objectIdField","RelatedObjectIDField","relatedItem","renderRelatedDetails","planItem","searchWidget","urlUtils","addProxyRule","urlPrefix","proxyDomain","proxyUrl","getAliasAttributes","featureObj","featureAttributes","getFldAlias","fieldName","retVal","layer","some","name","alias","attr","searchSources","outFields","SearchToolText","maxResults","maxSuggestions","suggestionsEnabled","minSuggestCharacters","getSuggestions","params","AssessorTableUrl","query","f","responseType","AssessorSearchFields","searchField","fieldItem","re","searchTerm","suggestTerm","replace","Number","isInteger","parseInt","where","features","feature","CombineDisDisplayFieldsinSearch","option","first","second","text","sourceIndex","n","getResults","suggestResult","split","trim","graphic","extent","oplayer","Search","gisSearchSource","searchFields","displayField","exactMatch","locationSearchSources","toLowerCase","locSearchSource","GeocodeURL","singleLineFieldName","autoNavigate","outSpatialReference","xmin","initialExtent","ymin","xmax","ymax","wkid","destroyed","sources","includeDefaultSources","popupEnabled","locationEnabled","SearchLocationEnabled","container","autoSelect","on","start","clear","blur","assessorResultFeatures","resultsHandledPromise","viewModel","getRelatedData","featuresWithGeom","source","addressFeatures","locationSearchResults","featureWithAlias","all","hasOwnProperty","getRelatedGISData","view","allPlaceholder","searchAssessorItem","getItemAt","searchLocationItem","countryCode","categories","withinViewEnabled","searchExtent","destroy","showSelectedMailLabels","setshowSelectedMailLabels","showResultMailLabels","setshowResultMailLabels","height","float","CreateMailingLabelsPDF","columns","marginLeft","labelCount","columnCount","MailingLabelFeatureSet","a","sort","b","keyA","UniqueAssessID","keyB","getUniqueAssessFeatures","doc","setFontSize","dx","fld","setFillColor","setLineWidth","rect","labelWidth","MailingLabelFields","substring","addPage","save","renderCards","items","addressItem","ListDivider","renderAssessorDetails","assessorDetailsProps","sidePanelShown","findThisDetail","isEqual","changeSelectedSearchResultDetailNext","getCurrentIndex","findIndex","changeSelectedSearchResultDetailPrev","mounted"],"mappings":"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","file":"38.3dc91b5fc0a51c2a11c0.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 1067;","import styled from \"@emotion/styled\";\r\nimport { ListItem } from \"@rmwc/list\";\r\n\r\nconst ListItemContainer = styled(ListItem)`\r\n cursor: pointer;\r\n span > small {\r\n vertical-align: top;\r\n },\r\n @media only screen \r\n and (min-device-width : 375px) \r\n and (max-device-width : 812px) \r\n and (-webkit-device-pixel-ratio : 3)\r\n and (orientation : portrait) {\r\n --mdc-ripple-fg-size: 0;\r\n --mdc-ripple-left: 0;\r\n --mdc-ripple-top: 0;\r\n --mdc-ripple-fg-scale: 1;\r\n --mdc-ripple-fg-translate-end: 0;\r\n --mdc-ripple-fg-translate-start: 0;\r\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\r\n will-change: transform, opacity;\r\n }\r\n`;\r\n\r\nexport default ListItemContainer;\r\n","import styled from \"@emotion/styled\";\r\n\r\nconst SearchResultsHeaderConatiner = styled.div`\r\n flex-grow: 1;\r\n display: block;\r\n margin: 0 auto;\r\n height: 120px;\r\n width:100%;\r\n background-color: var(--mdc-theme-on-surface);\r\n`;\r\n\r\nexport default SearchResultsHeaderConatiner;\r\n","import styled from \"@emotion/styled\";\r\n\r\nconst SearchContentFooterNavigatotConatiner = styled.div`\r\nheight: 50px;\r\ndisplay: block;\r\nwidth: 100%;\r\nbackground-color: var(--mdc-theme-primary);\r\nbottom: 0px;\r\nposition: sticky;\r\nmargin: 0px auto;\r\n`;\r\n\r\nexport default SearchContentFooterNavigatotConatiner;\r\n","import {\r\n ListItemGraphic,\r\n ListItemMeta,\r\n ListItem,\r\n ListItemSecondaryText,\r\n ListItemPrimaryText,\r\n ListItemText,\r\n List,\r\n} from \"@rmwc/list\";\r\nimport { Checkbox } from \"@rmwc/checkbox\";\r\nimport React, { useContext, useState } from \"react\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport ListItemContainer from \"./styled/ListItemContainer\";\r\nimport Graphic from \"@arcgis/core/Graphic\";\r\nimport Polygon from \"@arcgis/core/geometry/Polygon\";\r\nimport Point from \"@arcgis/core/geometry/Point\";\r\nimport Polyline from \"@arcgis/core/geometry/Polyline\";\r\nimport {\r\n operationalLayerName,\r\n operationalLayers,\r\n assessorInfo,\r\n} from \"../appConfig\";\r\nimport { getFormattedValue } from \"../utils/mapHelper\";\r\nimport { navigate } from \"../utils/routerHistory\";\r\n\r\nexport const SearchResultCard = (item: any, i: number) => {\r\n const [checked, setChecked] = useState(item.IsSelected);\r\n const { state, setState } = useContext(AppContext);\r\n const itemNum = item.i;\r\n\r\n const performMapSelect = async (select: boolean) => {\r\n /* if (state.mode === \"list\") {\r\n navigate(\"/map\");\r\n } */\r\n //(await state.mapView).when(async () => {\r\n let tempAssessorSelectionResults: any[] = [];\r\n if (select) {\r\n if (item.LayerName === operationalLayerName) {\r\n let filteredOpLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === operationalLayerName;\r\n }\r\n );\r\n const app = await import(\"../data/map\");\r\n tempAssessorSelectionResults =\r\n state.assessorSelectionResults === null\r\n ? []\r\n : state.assessorSelectionResults;\r\n\r\n let tempArr = tempAssessorSelectionResults.filter(\r\n (selelectionItem: any) => {\r\n return selelectionItem.LayerName !== operationalLayerName;\r\n }\r\n );\r\n tempAssessorSelectionResults = tempArr; //keeping the nonparcel ones\r\n let whereClause: string = \"\";\r\n whereClause =\r\n filteredOpLayer[0].AssessLink +\r\n \" = '\" +\r\n item[assessorInfo.GIS_ID] +\r\n \"'\";\r\n //tempAssessorSelectionResults = state.assessorSelectionResults === null? [] : state.assessorSelectionResults;\r\n await app\r\n .executeMapSelect(null, whereClause, true, item)\r\n .then(async (results) => {\r\n results.forEach((result: Graphic) => {\r\n tempAssessorSelectionResults.push(result);\r\n });\r\n await app.updateMapSelection(\r\n tempAssessorSelectionResults,\r\n setState\r\n );\r\n });\r\n } else {\r\n const app = await import(\"../data/map\");\r\n\r\n if (state.assessorSelectionResults !== null) {\r\n tempAssessorSelectionResults =\r\n state.assessorSelectionResults === null\r\n ? []\r\n : state.assessorSelectionResults;\r\n } else {\r\n tempAssessorSelectionResults = [];\r\n }\r\n let newGraphic;\r\n switch (item.GeometryType) {\r\n case \"polygon\":\r\n newGraphic = new Graphic({\r\n attributes: { ...item },\r\n geometry: new Polygon({\r\n rings: item.Geometry.rings,\r\n spatialReference: item.Geometry.spatialReference,\r\n }),\r\n\r\n symbol: {\r\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\r\n color: [0, 255, 255, 0.0],\r\n style: \"solid\",\r\n outline: {\r\n // autocasts as new SimpleLineSymbol()\r\n color: [0, 255, 255, 0.7],\r\n width: 6,\r\n join: \"round\",\r\n miterLimit: \"20px\",\r\n },\r\n },\r\n LayerName: item.LayerName,\r\n });\r\n\r\n break;\r\n case \"point\":\r\n newGraphic = new Graphic({\r\n attributes: { ...item },\r\n geometry: new Point({\r\n x: item.Geometry.x,\r\n y: item.Geometry.y,\r\n spatialReference: item.Geometry.spatialReference,\r\n }),\r\n symbol: {\r\n type: \"simple-marker\", // autocasts as new SimpleMarkerSymbol()\r\n style: \"circle\",\r\n color: \"blue\",\r\n size: \"20px\", // pixels\r\n outline: {\r\n // autocasts as new SimpleLineSymbol()\r\n color: [255, 255, 0, 0.7],\r\n width: 12,\r\n },\r\n },\r\n LayerName: item.LayerName,\r\n });\r\n break;\r\n case \"polyline\":\r\n newGraphic = new Graphic({\r\n attributes: { ...item },\r\n geometry: new Polyline({\r\n paths: item.Geometry.paths,\r\n spatialReference: item.Geometry.spatialReference,\r\n }),\r\n symbol: {\r\n type: \"simple-line\", // autocasts as new SimpleLineSymbol()\r\n color: [0, 255, 255, 0.9],\r\n width: \"12px\",\r\n style: \"solid\",\r\n join: \"round\",\r\n miterLimit: \"20px\",\r\n },\r\n LayerName: item.LayerName,\r\n });\r\n break;\r\n }\r\n tempAssessorSelectionResults.push(newGraphic);\r\n app.addToMapSelection(newGraphic);\r\n app.updateMapSelection(tempAssessorSelectionResults, setState);\r\n }\r\n } else {\r\n const app = await import(\"../data/map\");\r\n await app.removeFromMapSelection(item);\r\n //now remove from the display\r\n tempAssessorSelectionResults =\r\n state.assessorSelectionResults === null\r\n ? []\r\n : state.assessorSelectionResults;\r\n tempAssessorSelectionResults.forEach(\r\n (selelectionItem: any, i: number) => {\r\n let filteredOpLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === selelectionItem.LayerName;\r\n }\r\n );\r\n if (filteredOpLayer.length !== 0) {\r\n if (\r\n selelectionItem.LayerName === operationalLayerName &&\r\n item[assessorInfo.GIS_ID] !== undefined\r\n ) {\r\n if (\r\n selelectionItem.attributes[assessorInfo.GIS_ID].toString() ===\r\n item[assessorInfo.GIS_ID].toString()\r\n ) {\r\n tempAssessorSelectionResults.splice(i, 1);\r\n }\r\n } else if (\r\n item[filteredOpLayer[0].ObjectIDField] !== undefined &&\r\n selelectionItem.attributes[filteredOpLayer[0].ObjectIDField] !==\r\n undefined\r\n ) {\r\n if (\r\n selelectionItem.attributes[\r\n filteredOpLayer[0].ObjectIDField\r\n ].toString() ===\r\n item[filteredOpLayer[0].ObjectIDField].toString()\r\n ) {\r\n tempAssessorSelectionResults.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n );\r\n app.updateMapSelection(tempAssessorSelectionResults, setState);\r\n setState({\r\n mapHoveredHighlightItem: null,\r\n });\r\n }\r\n //});\r\n };\r\n\r\n const onItemClick = (evt) => {\r\n if (evt.target.type === \"checkbox\") {\r\n //do nothing\r\n } else {\r\n setState({\r\n currentSearchItem: item,\r\n searchResultDetailsItems: [item],\r\n selectedSearchResultDetail: item,\r\n });\r\n }\r\n };\r\n const onCheckedChange = (checked: boolean) => {\r\n //if (state.mode === \"normal\") {\r\n //setChecked(checked);\r\n setState({\r\n mapHoveredHighlightItem: null,\r\n });\r\n performMapSelect(checked);\r\n //}\r\n };\r\n const addMapHighlightOnHover = (evt) => {\r\n setState({\r\n mapHoveredHighlightItem: item,\r\n });\r\n };\r\n const removeMapHighlightOnHover = (evt) => {\r\n setState({\r\n mapHoveredHighlightItem: null,\r\n });\r\n };\r\n const getResultItems = (item: any) => {\r\n if (item) {\r\n let filteredOpLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === item.LayerName;\r\n }\r\n );\r\n return filteredOpLayer && filteredOpLayer.length > 0\r\n ? filteredOpLayer[0].DisplayFields.map((field, idx) => (\r\n \r\n {idx === 0 && \r\n \r\n {getFormattedValue(item, field)}\r\n \r\n }\r\n {idx !== 0 && \r\n \r\n {getFormattedValue(item, field)}\r\n \r\n }\r\n {/* {idx === 0 && getFormattedValue(item, field)}\r\n {idx !== 0 && (\r\n \r\n {getFormattedValue(item, field)}\r\n \r\n )} */}\r\n \r\n ))\r\n : null;\r\n }\r\n };\r\n const getResultCardItems = (item: any) => {\r\n if (item) {\r\n let filteredOpLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === item.LayerName;\r\n }\r\n );\r\n return (\r\n \r\n {\r\n event.persist();\r\n let checked = event.currentTarget.checked; //store whatever values we need from from the event here\r\n onCheckedChange(checked);\r\n }}\r\n />\r\n {filteredOpLayer && filteredOpLayer.length > 0 && (\r\n \r\n )}\r\n \r\n {getResultItems(item)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n };\r\n return {getResultCardItems(item)};\r\n};\r\n","import styled from \"@emotion/styled\";\r\nimport { List } from \"@rmwc/list\";\r\n\r\nconst ListContainer = styled(List)`\r\n margin-top: 0px;\r\n max-height: calc(100% - 349px); /* 64+65+120+50-64 */\r\n min-height: calc(100% - 285px); /* -64 */\r\n overflow-y: scroll;\r\n @media (min-width: 800px) {\r\n min-width: 425px;\r\n }\r\n @media (max-width: 800px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport default ListContainer;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { Fab } from \"@rmwc/fab\";\r\nimport { Select } from \"@rmwc/select\";\r\nimport { Typography } from \"@rmwc/typography\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport SearchResultsHeaderContainer from \"./styled/SearchResultsHeaderContainer\";\r\nimport { debounce } from \"@arcgis/core/core/promiseUtils\";\r\nimport { navigate } from \"../utils/routerHistory\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport { assessorInfo } from '../appConfig';\r\n\r\nconst SearchResultsHeader = () => {\r\n const { state, setState } = useContext(AppContext);\r\n const searchResultsCount = state.displayedSearchItems\r\n ? state.displayedSearchItems.length\r\n : 0; //state.assessorSearchResults ? state.assessorSearchResults.length : (state.displayedSearchItems ? state.displayedSearchItems.length : 0);\r\n const selectedResultsCount = state.displayedSelectedItems\r\n ? state.displayedSelectedItems.length\r\n : 0;\r\n const {\r\n assessorSearchResults,\r\n displayedSearchItems,\r\n assessorSelectionResults,\r\n displayedSelectedItems,\r\n displaySelectionResults,\r\n displayedSelectedItemLayerNames,\r\n displayedSearchItemLayerNames,\r\n } = state;\r\n const searchItemsCopy = state.searchItems.map((obj) => ({ ...obj }));\r\n const selectedItemsCopy = state.selectedItems\r\n ? state.selectedItems.map((obj) => ({ ...obj }))\r\n : null;\r\n //const downloadData: any = [];\r\n const [downloadData, setDownloadData] = React.useState([]);\r\n const [\r\n selectedDisplayedItemLayerName,\r\n setSelectedDisplayedItemLayerName,\r\n ] = React.useState(\"\");\r\n const clearMapSelection = async () => {\r\n const app = await import(\"../data/map\");\r\n const whereClause = \"1 <> 1\";\r\n await app\r\n .executeMapSelect(null, whereClause, true, null)\r\n .then(async (results) => {\r\n await app.updateMapSelection(results, setState);\r\n });\r\n };\r\n const cleardisplayedItems = () => {\r\n if (state.displaySelectionResults) {\r\n setState({\r\n displayedSelectedItems: [],\r\n });\r\n setState({\r\n assessorSelectionResults: [],\r\n });\r\n clearMapSelection();\r\n } else {\r\n setState({\r\n displayedSearchItems: [],\r\n });\r\n setState({\r\n assessorSearchResults: [],\r\n });\r\n }\r\n setDownloadData([]);\r\n };\r\n const zoomToDisplayedItems = async () => {\r\n if (state.mode === \"list\") {\r\n navigate(\"/map\");\r\n }\r\n\r\n if (state.mode === \"normal\") {\r\n if (state.displaySelectionResults) {\r\n setState({ currentZoomTodisplayedItems: displayedSelectedItems });\r\n } else {\r\n setState({ currentZoomTodisplayedItems: displayedSearchItems });\r\n }\r\n } else {\r\n // need to debounce as the route tansitions to the map\r\n debounce(async () => {\r\n if (state.displaySelectionResults) {\r\n setState({ currentZoomTodisplayedItems: displayedSelectedItems });\r\n } else {\r\n setState({ currentZoomTodisplayedItems: displayedSearchItems });\r\n }\r\n }, 500)();\r\n }\r\n };\r\n const changeResultFilter = (evt) => {\r\n if (state.displaySelectionResults) {\r\n if (evt.target.value === \"\") {\r\n setState({\r\n displayedSelectedItems: selectedItemsCopy,\r\n });\r\n setState({\r\n displayedSelectedItemLayerNames: [],\r\n });\r\n setSelectedDisplayedItemLayerName(\"\");\r\n } else {\r\n setState({\r\n displayedSelectedItems: selectedItemsCopy.filter((item) => {\r\n return item.LayerName === evt.target.value;\r\n }),\r\n });\r\n setState({\r\n displayedSelectedItemLayerNames: [evt.target.value],\r\n });\r\n setSelectedDisplayedItemLayerName(evt.target.value);\r\n }\r\n } else {\r\n if (evt.target.value === \"\") {\r\n setState({\r\n displayedSearchItems: searchItemsCopy,\r\n });\r\n setState({\r\n displayedSearchItemLayerNames: [],\r\n });\r\n setSelectedDisplayedItemLayerName(\"\");\r\n } else {\r\n setState({\r\n displayedSearchItems: searchItemsCopy.filter((item) => {\r\n return item.LayerName === evt.target.value;\r\n }),\r\n });\r\n setState({\r\n displayedSearchItemLayerNames: [evt.target.value],\r\n });\r\n setSelectedDisplayedItemLayerName(evt.target.value);\r\n }\r\n }\r\n };\r\n const prepareDownLoadData = () => {\r\n setState({ downloadData: [] });\r\n let tempDownloadData: any = [];\r\n let layerNames: string[] = [];\r\n if (displaySelectionResults) {\r\n displayedSelectedItems.forEach((item: any) => {\r\n const newObj = Object.keys(item).reduce((object, key) => {\r\n if (assessorInfo.FieldsExcludedinCSVExport.indexOf(key) === -1) {\r\n object[key] = item[key];\r\n }\r\n return object;\r\n }, {});\r\n tempDownloadData.push(newObj);\r\n if (layerNames.indexOf(item.LayerName) === -1) {\r\n layerNames.push(item.LayerName);\r\n }\r\n });\r\n } else {\r\n displayedSearchItems.forEach((item: any) => {\r\n const newObj = Object.keys(item).reduce((object, key) => {\r\n if (assessorInfo.FieldsExcludedinCSVExport.indexOf(key) === -1) {\r\n object[key] = item[key];\r\n }\r\n return object;\r\n }, {});\r\n tempDownloadData.push(newObj);\r\n if (layerNames.indexOf(item.LayerName) === -1) {\r\n layerNames.push(item.LayerName);\r\n }\r\n });\r\n }\r\n if (layerNames.length === 1) {\r\n setSelectedDisplayedItemLayerName(layerNames[0]);\r\n }\r\n setDownloadData(tempDownloadData);\r\n };\r\n const downloadDataClicked = (event, done) => {\r\n if (downloadData.length > 0) {\r\n if (selectedDisplayedItemLayerName !== \"\") {\r\n //alert(\"done\");\r\n done(true);\r\n } else {\r\n alert(\"Please select a feature type to export data\");\r\n done(false);\r\n }\r\n } else {\r\n done(false);\r\n }\r\n };\r\n useEffect(() => {\r\n if (state.searchItemLayerNames)\r\n //alert(\"ok\")\r\n //alert(state.searchItemLayerNames.length)\r\n return () => {};\r\n }, [state.searchItemLayerNames]);\r\n useEffect(() => {\r\n prepareDownLoadData();\r\n return () => {};\r\n }, [state.displayedSearchItems, state.displayedSelectedItems]);\r\n\r\n return (\r\n \r\n \r\n {displaySelectionResults && assessorSelectionResults && (\r\n \r\n Selected results: {selectedResultsCount}\r\n \r\n )}\r\n {!displaySelectionResults &&\r\n assessorSearchResults &&\r\n assessorSearchResults.length >= 0 ? (\r\n \r\n Search results: {searchResultsCount}\r\n \r\n ) : !displaySelectionResults &&\r\n displayedSearchItems &&\r\n displayedSearchItems.length >= 0 ? (\r\n \r\n Search results: {searchResultsCount}\r\n \r\n ) : null}\r\n {/* */}\r\n \r\n {!displaySelectionResults && (\r\n \r\n \r\n \r\n {state.mode === \"normal\" && (\r\n \r\n {\r\n {}}\r\n />\r\n }\r\n \r\n )}\r\n \r\n )}\r\n {displaySelectionResults && (\r\n \r\n \r\n \r\n {state.mode === \"normal\" && (\r\n \r\n {\r\n {}}\r\n />\r\n }\r\n \r\n )}\r\n \r\n )}\r\n
\r\n {!displaySelectionResults &&\r\n state.searchItemLayerNames.length > 1 &&\r\n displayedSearchItems &&\r\n searchResultsCount > 0 && (\r\n \r\n )}\r\n {displaySelectionResults &&\r\n state.selectedItemLayerNameItems &&\r\n state.selectedItemLayerNameItems.length > 1 &&\r\n displaySelectionResults &&\r\n selectedResultsCount > 0 && (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SearchResultsHeader;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { Fab } from \"@rmwc/fab\";\r\nimport { Typography } from \"@rmwc/typography\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport SearchResultsHeaderContainer from \"./styled/SearchResultsHeaderContainer\";\r\nimport { debounce } from \"@arcgis/core/core/promiseUtils\";\r\nimport { navigate } from \"../utils/routerHistory\";\r\nimport Graphic from \"@arcgis/core/Graphic\";\r\nimport Polygon from \"@arcgis/core/geometry/Polygon\";\r\nimport Point from \"@arcgis/core/geometry/Point\";\r\nimport Polyline from \"@arcgis/core/geometry/Polyline\";\r\nimport {\r\n operationalLayerName,\r\n assessorInfo,\r\n operationalLayers,\r\n} from \"../appConfig\";\r\n\r\nconst SearchItemDetailsHeader = (item: any) => {\r\n let headerUniqueKey = null;\r\n let filteredOpLayer = operationalLayers.filter((opLayer: any, i: number) => {\r\n return opLayer.Key === item.LayerName;\r\n });\r\n if (filteredOpLayer.length !== 0) {\r\n headerUniqueKey =\r\n item[filteredOpLayer[0].SingleUniqueField.FieldName] !== undefined\r\n ? item[filteredOpLayer[0].SingleUniqueField.FieldName]\r\n : item[filteredOpLayer[0].SingleUniqueField.AliasName];\r\n }\r\n\r\n const { state, setState } = useContext(AppContext);\r\n /* const searchResultsCount = state.displayedSearchItems\r\n ? state.displayedSearchItems.length\r\n : 0; //state.assessorSearchResults ? state.assessorSearchResults.length : (state.displayedSearchItems ? state.displayedSearchItems.length : 0);\r\n const selectedResultsCount = state.displayedSelectedItems\r\n ? state.displayedSelectedItems.length\r\n : 0;\r\n const {\r\n assessorSearchResults,\r\n displayedSearchItems,\r\n assessorSelectionResults,\r\n displayedSelectedItems,\r\n displaySelectionResults,\r\n } = state;\r\n const searchItemsCopy = state.searchItems.map((obj) => ({ ...obj })); */\r\n const clearAssessorDetailsItem = () => {\r\n setState({\r\n selectedSearchResultDetail: null,\r\n });\r\n setState({\r\n searchResultDetailsItems: null,\r\n });\r\n state.mapView.searchResultDetailsItems = null;\r\n };\r\n const performMapSelect = async (select: boolean) => {\r\n let tempAssessorSelectionResults: any = [];\r\n if (select) {\r\n if (item.LayerName === operationalLayerName) {\r\n let filteredOpLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === operationalLayerName;\r\n }\r\n );\r\n const app = await import(\"../data/map\");\r\n tempAssessorSelectionResults =\r\n state.assessorSelectionResults === null\r\n ? []\r\n : state.assessorSelectionResults;\r\n\r\n let tempArr = tempAssessorSelectionResults.filter(\r\n (selelectionItem: any) => {\r\n return selelectionItem.LayerName !== operationalLayerName;\r\n }\r\n );\r\n tempAssessorSelectionResults = tempArr; //keeping the nonparcel ones\r\n let whereClause: string = \"\";\r\n whereClause =\r\n filteredOpLayer[0].AssessLink +\r\n \" = '\" +\r\n item[assessorInfo.GIS_ID] +\r\n \"'\";\r\n //tempAssessorSelectionResults = state.assessorSelectionResults !== null ? state.assessorSelectionResults : [];\r\n await app\r\n .executeMapSelect(null, whereClause, true, item)\r\n .then(async (results) => {\r\n results.forEach((result: Graphic) => {\r\n tempAssessorSelectionResults.push(result);\r\n });\r\n await app.updateMapSelection(\r\n tempAssessorSelectionResults,\r\n setState\r\n );\r\n });\r\n } else {\r\n const app = await import(\"../data/map\");\r\n\r\n tempAssessorSelectionResults =\r\n state.assessorSelectionResults === null\r\n ? []\r\n : state.assessorSelectionResults;\r\n let newGraphic;\r\n switch (item.GeometryType) {\r\n case \"polygon\":\r\n newGraphic = new Graphic({\r\n attributes: { ...item },\r\n geometry: new Polygon({\r\n rings: item.Geometry.rings,\r\n spatialReference: item.Geometry.spatialReference,\r\n }),\r\n\r\n symbol: {\r\n type: \"simple-fill\", // autocasts as new SimpleFillSymbol()\r\n color: [0, 255, 255, 0.0],\r\n style: \"solid\",\r\n outline: {\r\n // autocasts as new SimpleLineSymbol()\r\n color: [0, 255, 255, 0.7],\r\n width: 6,\r\n join: \"round\",\r\n miterLimit: \"20px\",\r\n },\r\n },\r\n LayerName: item.LayerName,\r\n });\r\n\r\n break;\r\n case \"point\":\r\n newGraphic = new Graphic({\r\n attributes: { ...item },\r\n geometry: new Point({\r\n x: item.Geometry.x,\r\n y: item.Geometry.y,\r\n spatialReference: item.Geometry.spatialReference,\r\n }),\r\n symbol: {\r\n type: \"simple-marker\", // autocasts as new SimpleMarkerSymbol()\r\n style: \"circle\",\r\n color: \"blue\",\r\n size: \"20px\", // pixels\r\n outline: {\r\n // autocasts as new SimpleLineSymbol()\r\n color: [255, 255, 0, 0.7],\r\n width: 12,\r\n },\r\n },\r\n LayerName: item.LayerName,\r\n });\r\n break;\r\n case \"polyline\":\r\n newGraphic = new Graphic({\r\n attributes: { ...item },\r\n geometry: new Polyline({\r\n paths: item.Geometry.paths,\r\n spatialReference: item.Geometry.spatialReference,\r\n }),\r\n symbol: {\r\n type: \"simple-line\", // autocasts as new SimpleLineSymbol()\r\n color: [0, 255, 255, 0.9],\r\n width: \"12px\",\r\n style: \"solid\",\r\n join: \"round\",\r\n miterLimit: \"20px\",\r\n },\r\n LayerName: item.LayerName,\r\n });\r\n break;\r\n }\r\n tempAssessorSelectionResults.push(newGraphic);\r\n app.addToMapSelection(newGraphic);\r\n app.updateMapSelection(tempAssessorSelectionResults, setState);\r\n }\r\n } else {\r\n const app = await import(\"../data/map\");\r\n await app.removeFromMapSelection(item);\r\n //now remove from the display\r\n tempAssessorSelectionResults =\r\n state.assessorSelectionResults === null\r\n ? []\r\n : state.assessorSelectionResults;\r\n tempAssessorSelectionResults.forEach(\r\n (selelectionItem: any, i: number) => {\r\n let filteredOpLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === selelectionItem.LayerName;\r\n }\r\n );\r\n if (filteredOpLayer.length !== 0) {\r\n if (\r\n selelectionItem.LayerName === operationalLayerName &&\r\n item[assessorInfo.GIS_ID] !== undefined\r\n ) {\r\n if (\r\n selelectionItem.attributes[assessorInfo.GIS_ID].toString() ===\r\n item[assessorInfo.GIS_ID].toString()\r\n ) {\r\n tempAssessorSelectionResults.splice(i, 1);\r\n }\r\n } else if (\r\n item[filteredOpLayer[0].ObjectIDField] !== undefined &&\r\n selelectionItem.attributes[filteredOpLayer[0].ObjectIDField] !==\r\n undefined\r\n ) {\r\n if (\r\n selelectionItem.attributes[\r\n filteredOpLayer[0].ObjectIDField\r\n ].toString() ===\r\n item[filteredOpLayer[0].ObjectIDField].toString()\r\n ) {\r\n tempAssessorSelectionResults.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n );\r\n app.updateMapSelection(tempAssessorSelectionResults, setState);\r\n }\r\n clearAssessorDetailsItem();\r\n };\r\n const selectFunction = (select: boolean) => {\r\n performMapSelect(select);\r\n };\r\n const zoomToDisplayedItem = async () => {\r\n if (state.mode === \"list\") {\r\n navigate(\"/map\");\r\n }\r\n if (state.mode === \"normal\") {\r\n setState({ currentZoomTodisplayedItems: [item] });\r\n } else {\r\n // need to debounce as the route tansitions to the map\r\n debounce(async () => {\r\n setState({ currentZoomTodisplayedItems: [item] });\r\n }, 500)();\r\n }\r\n };\r\n\r\n const bufferDisplayedItem = async () => {\r\n if (state.mode === \"list\") {\r\n navigate(\"/map\");\r\n }\r\n if (state.mode === \"normal\") {\r\n let visiblePanels = Array.from(\r\n document.getElementsByClassName(\"esri-widget--panel slidein\")\r\n );\r\n visiblePanels.forEach((item: any) => {\r\n item.classList.remove(\"slidein\");\r\n item.classList.add(\"slideout\");\r\n }, {});\r\n if (document.getElementById(\"abuttersToolsHolder\")) {\r\n let element = document.getElementById(\"abuttersToolsHolder\");\r\n if (element.classList.contains(\"slideout\")) {\r\n element.classList.remove(\"slideout\");\r\n element.classList.add(\"slidein\");\r\n } else {\r\n element.classList.remove(\"slidein\");\r\n element.classList.add(\"slideout\");\r\n }\r\n }\r\n } else {\r\n // need to debounce as the route tansitions to the map\r\n debounce(async () => {\r\n let visiblePanels = Array.from(\r\n document.getElementsByClassName(\"esri-widget--panel slidein\")\r\n );\r\n visiblePanels.forEach((item: any) => {\r\n item.classList.remove(\"slidein\");\r\n item.classList.add(\"slideout\");\r\n }, {});\r\n if (document.getElementById(\"abuttersToolsHolder\")) {\r\n let element = document.getElementById(\"abuttersToolsHolder\");\r\n if (element.classList.contains(\"slideout\")) {\r\n element.classList.remove(\"slideout\");\r\n element.classList.add(\"slidein\");\r\n } else {\r\n element.classList.remove(\"slidein\");\r\n element.classList.add(\"slideout\");\r\n }\r\n }\r\n }, 500)();\r\n }\r\n const app = await import(\"../data/map\");\r\n if (state.mapView !== null) {\r\n state.mapView.searchResultDetailsItems = state.searchResultDetailsItems;\r\n //app.createBufferfromSelectedGeom(setState);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (state.searchItemLayerNames) return () => {};\r\n }, [state.searchItemLayerNames]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n chevron_left\r\n \r\n
\r\n
\r\n
\r\n {headerUniqueKey}\r\n
\r\n
\r\n {item.LayerName}\r\n
\r\n {\r\n \r\n {!item.IsSelected && (\r\n selectFunction(true)}\r\n />\r\n )}\r\n {item.IsSelected && (\r\n selectFunction(false)}\r\n />\r\n )}\r\n {state.mode === \"normal\" && bufferDisplayedItem()}\r\n />}\r\n zoomToDisplayedItem()}\r\n />\r\n
\r\n }\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SearchItemDetailsHeader;\r\n","import styled from \"@emotion/styled\";\r\n\r\nconst AssessorDetailsContainer = styled.div`\r\n overflow-y: scroll;\r\n margin-top: 0px;\r\n max-height: calc(100% - 299px); /* 64+65+120+50-64 */\r\n min-height: calc(100% - 235px); /* -64 */\r\n @media (min-width: 800px) {\r\n min-width: 400px;\r\n }\r\n @media (max-width: 800px) {\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport default AssessorDetailsContainer;\r\n","import styled from \"@emotion/styled\";\r\n\r\nconst ListContainerHolder = styled.div`\r\n margin-top: 64px;\r\n \r\n @media (min-width: 800px) {\r\n min-width: 425px;\r\n overflow-y: hidden;\r\n margin-bottom: 0px;\r\n max-width: 425px;\r\n }\r\n @media (max-width: 800px) {\r\n width: 100%;\r\n margin-bottom: 0px;\r\n }\r\n`;\r\n\r\nexport default ListContainerHolder;\r\n","import {\r\n List,\r\n CollapsibleList,\r\n ListItemText,\r\n ListItemGraphic,\r\n ListItemSecondaryText,\r\n ListItemMeta,\r\n} from \"@rmwc/list\";\r\nimport React from \"react\";\r\n\r\nimport ListItemContainer from \"./styled/ListItemContainer\";\r\nimport {\r\n operationalLayerName,\r\n assessorInfo,\r\n googleAPIKey,\r\n showGoogleImage,\r\n ExcludeDetailFields,\r\n planAreafields,\r\n operationalLayers,\r\n} from \"../appConfig\";\r\nimport {\r\n getFormattedLocationValue,\r\n getFormattedValue,\r\n} from \"../utils/mapHelper\";\r\nimport { Tab, TabBar } from \"@rmwc/tabs\";\r\n\r\n//local state for TabFields\r\n\r\nconst AssessorDetails = (item: any) => {\r\n let detailsItem: any = { ...item.detailItem };\r\n let relatedPlanAreaDetailsObj: any = { ...item.relatedPlanAreaDetails };\r\n let relatedData: any = item.relatedData ? item.relatedData : [] ;\r\n let relatedPlanAreaDetails: any[] = [];\r\n Object.keys(relatedPlanAreaDetailsObj).map(function(key) {\r\n relatedPlanAreaDetails.push({\r\n [relatedPlanAreaDetailsObj[key][planAreafields[0]]]:\r\n relatedPlanAreaDetailsObj[key][planAreafields[1]],\r\n });\r\n return relatedPlanAreaDetails;\r\n });\r\n //const relatedPlanAreaDetails = Object.entries(relatedPlanAreaDetailsObj);\r\n\r\n const renderTabItems = (fields: any, tabNum: number) => {\r\n return fields.map((field: any, idx: number) => [\r\n \r\n {/* {idx === 0 && field.DisplayText + ': ' + getFormattedValue(item, field)} */}\r\n {field.LinkUrl === undefined ? (\r\n \r\n \r\n {field.DisplayText}:{\" \"}\r\n {getFormattedValue(detailsItem, field)}\r\n \r\n \r\n ) : (field.FieldKey === \"PROPERTYLINK\" ||\r\n field.FieldKey.toUpperCase().indexOf(\"LINK\") != -1) &&\r\n field.FieldKey !== \"PICTOMETRYLINK\" ? (\r\n \r\n \r\n {field.DisplayText}:{\" \"}\r\n \r\n {/* {getFormattedValue(item, field)} */}\r\n Click to see\r\n \r\n \r\n \r\n ) : field.FieldKey === \"PICTOMETRYLINK\" ? (\r\n \r\n \r\n {field.DisplayText}:{\" \"}\r\n \r\n {\"Click to see\"}\r\n \r\n \r\n \r\n ) : null}\r\n ,\r\n ]);\r\n };\r\n\r\n const renderRelatedTabItems = (attributes: any, tabNum: number) => {\r\n return Object.keys(attributes).map((key, i) => {\r\n if (!excludeProps.includes(key))\r\n return [\r\n \r\n \r\n \r\n {isValidHttpUrl(attributes[key]) ? (\r\n <>\r\n {key}:{\" \"}\r\n \r\n {attributes[key]}\r\n \r\n \r\n ) : (\r\n <>\r\n {key}: {attributes[key]}\r\n \r\n )}\r\n \r\n \r\n ,\r\n ];\r\n });\r\n \r\n };\r\n const isValidHttpUrl = (str: string) => {\r\n let url;\r\n\r\n try {\r\n url = new URL(str);\r\n } catch (_) {\r\n return false;\r\n }\r\n\r\n return url.protocol === \"http:\" || url.protocol === \"https:\";\r\n };\r\n const renderAssessorDetailsTabs = (item: any) => {\r\n if (item) {\r\n return assessorInfo.TabFields.map((tabField, idx) => [\r\n console.log(\"clicked\")}>\r\n {/* */}\r\n \r\n {tabField.TabName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n onOpen={() => console.log(\"open\")}\r\n onClose={() => console.log(\"close\")}\r\n >\r\n {renderTabItems(tabField.Fields, idx)}\r\n ,\r\n ]);\r\n }\r\n };\r\n\r\n const renderGISDetails = (detailsItem: any) => {\r\n return Object.keys(detailsItem).map((key, i) => {\r\n if (!excludeProps.includes(key))\r\n return [\r\n \r\n \r\n \r\n {isValidHttpUrl(detailsItem[key]) ? (\r\n <>\r\n {key}:{\" \"}\r\n \r\n {detailsItem[key]}\r\n \r\n \r\n ) : (\r\n <>\r\n {key}: {detailsItem[key]}\r\n \r\n )}\r\n \r\n \r\n ,\r\n ];\r\n });\r\n };\r\n\r\n const renderRelatedDetails = (relatedData: any[]) => {\r\n let filteredOpLayer = operationalLayers.filter((opLayer: any, i: number) => {\r\n return opLayer.Key === detailsItem.LayerName;\r\n });\r\n const objectIdField: string = filteredOpLayer[0].RelatedObjectIDField;\r\n return relatedData.map((relatedItem, idx) => [\r\n console.log(\"clicked\")}>\r\n {/* */}\r\n \r\n {relatedItem.attributes[objectIdField]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n onOpen={() => console.log(\"open\")}\r\n onClose={() => console.log(\"close\")}\r\n >\r\n {renderRelatedTabItems(relatedItem.attributes, idx)}\r\n ,\r\n ]);\r\n }\r\n //const StreetViewImgLink =\r\n //assessorInfo.StreetViewImgLink + '';\r\n let suffixedAddress1 = assessorInfo.StreetViewImgLink;\r\n assessorInfo.StreetViewLinkFields.forEach((field: any) => {\r\n suffixedAddress1 = suffixedAddress1 + detailsItem[field] + \",\";\r\n });\r\n\r\n suffixedAddress1 =\r\n suffixedAddress1 + \" \" + assessorInfo.LocationCityState + \"&t=h&z=18&g=\";\r\n assessorInfo.StreetViewLinkFields.forEach((field: any) => {\r\n suffixedAddress1 = suffixedAddress1 + detailsItem[field] + \",\";\r\n });\r\n suffixedAddress1 = suffixedAddress1 + \" \" + assessorInfo.LocationCityState;\r\n\r\n const StreetViewImgLink =\r\n suffixedAddress1 + \"&pitch=-0.76&key=\" + googleAPIKey;\r\n\r\n let googleImageHref =\r\n \"http://maps.google.com/maps?f=1&hl=en&map_action=pano&geocode=&q=\";\r\n assessorInfo.StreetViewLinkFields.forEach((field: any) => {\r\n googleImageHref = googleImageHref + detailsItem[field] + \",\";\r\n });\r\n\r\n googleImageHref =\r\n googleImageHref + \" \" + assessorInfo.LocationCityState + \"&t=h&z=18&g=\";\r\n assessorInfo.StreetViewLinkFields.forEach((field: any) => {\r\n googleImageHref = googleImageHref + detailsItem[field] + \",\";\r\n });\r\n googleImageHref =\r\n googleImageHref + \" \" + assessorInfo.LocationCityState + \"&iwloc=addr\";\r\n\r\n const excludeProps: any[] = ExcludeDetailFields;\r\n const [activeTab, setActiveTab] = React.useState(0);\r\n const setActiveTabView = (evt: any) => {\r\n setActiveTab(evt.detail.index);\r\n }\r\n //const { state, setState } = useContext(AppContext);\r\n return (\r\n \r\n {detailsItem.LayerName === operationalLayerName && showGoogleImage && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n {detailsItem.LayerName === operationalLayerName && (\r\n \r\n {renderAssessorDetailsTabs(detailsItem)}\r\n \r\n )}\r\n {detailsItem.LayerName !== operationalLayerName && (\r\n \r\n \r\n \r\n \r\n \r\n {activeTab === 0 ? renderGISDetails(detailsItem): relatedData.length > 0 ? renderRelatedDetails(relatedData) :
No related data available
}\r\n
\r\n )}\r\n \r\n {detailsItem.MUGISHasPlan &&\r\n relatedPlanAreaDetails &&\r\n relatedPlanAreaDetails.length !== 0 && (\r\n \r\n \r\n Plan Area Items\r\n \r\n {relatedPlanAreaDetails &&\r\n relatedPlanAreaDetails.length !== 0 &&\r\n relatedPlanAreaDetails.map((planItem, i) => {\r\n return Object.keys(planItem).map((key, i) => {\r\n return [\r\n \r\n
\r\n \r\n \r\n {isValidHttpUrl(planItem[key].toString()) ? (\r\n <>\r\n \r\n {key}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n
\r\n
,\r\n ];\r\n });\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default AssessorDetails;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport nprogress from \"nprogress\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport FeatureLayer from \"@arcgis/core/layers/FeatureLayer\";\r\nimport SearchWidget from \"@arcgis/core/widgets/Search\";\r\nimport SearchSource from \"@arcgis/core/widgets/Search/SearchSource\";\r\n\r\nimport esriRequest from \"@arcgis/core/request\";\r\nimport Graphic from \"@arcgis/core/Graphic\";\r\nimport Point from \"@arcgis/core/geometry/Point\";\r\nimport LayerSearchSource from \"@arcgis/core/widgets/Search/LayerSearchSource\";\r\n//import LocatorSearchSource from \"@arcgis/core/widgets/Search/LocatorSearchSource\";\r\nimport { proxyUrl } from \"../config\";\r\nimport {\r\n assessorInfo,\r\n locationSearchSources,\r\n initialExtent,\r\n operationalLayerName,\r\n operationalLayers,\r\n proxyDomain,\r\n SearchToolText,\r\n GeocodeURL,\r\n SearchLocationEnabled,\r\n} from \"../appConfig\";\r\nimport urlUtils = require(\"@arcgis/core/core/urlUtils\");\r\nimport Extent from \"@arcgis/core/geometry/Extent\";\r\nimport { getRelatedGISData } from \"../utils/mapHelper\";\r\nurlUtils.addProxyRule({\r\n urlPrefix: proxyDomain,\r\n proxyUrl: proxyUrl,\r\n});\r\n\r\nlet searchWidget: SearchWidget;\r\n\r\nconst SearchBox = () => {\r\n const { state, setState } = useContext(AppContext);\r\n\r\n const handleSearchResults = async (results: any[]) => {\r\n setState({\r\n searchResultDetailsItems: null, //clear the details\r\n relatedPlanAreaDetails: [],\r\n });\r\n const assessorResultFeatures: any[] = [];\r\n\r\n const resultsHandledPromise = results.map(async (result) => {\r\n switch (result.sourceIndex) {\r\n case 0:\r\n if (result.results.length > 0) {\r\n const app = await import(\"../data/map\");\r\n result.results.forEach((item: any) => {\r\n item.LayerName = operationalLayerName;\r\n });\r\n\r\n const featuresWithGeom = await app.getRelatedData(\r\n result.results,\r\n false\r\n );\r\n if (featuresWithGeom !== undefined && featuresWithGeom.length > 0) {\r\n featuresWithGeom.forEach((item: any) => {\r\n assessorResultFeatures.push(item.feature);\r\n });\r\n }\r\n }\r\n break;\r\n case searchWidget.viewModel.sources.length - 1:\r\n //This is the geocoder result, last one\r\n if (\r\n result.results.length === 1 &&\r\n results.length === 1 &&\r\n result.source.name === \"Addresses or places\"\r\n ) {\r\n //only when address search was the case\r\n const addressFeatures = result.results.map((item: any) => {\r\n return item.feature;\r\n });\r\n setState({\r\n locationSearchResults: addressFeatures, //await handleGISSearch(gisResultFeatures)\r\n });\r\n } else if (result.source.name !== \"Addresses or places\") {\r\n result.results.forEach((item: any) => {\r\n item.feature.LayerName = result.source.name;\r\n let featureWithAlias = getAliasAttributes(item.feature);\r\n assessorResultFeatures.push(featureWithAlias);\r\n });\r\n }\r\n break;\r\n default:\r\n if (result.results.length > 0) {\r\n await Promise.all(result.results.map(async (item:any) => {\r\n //result.results.forEach(async (item: any) => {\r\n item.feature.LayerName = result.source.name;\r\n let featureWithAlias = getAliasAttributes(item.feature);\r\n let filteredLayer = operationalLayers.filter(\r\n (opLayer: any, i: number) => {\r\n return opLayer.Key === item.feature.LayerName;\r\n }\r\n );\r\n if (filteredLayer[0].hasOwnProperty(\"QueryRelationShipId\")) {\r\n let relatedData = await getRelatedGISData(item);\r\n featureWithAlias.relatedData = relatedData;\r\n }\r\n assessorResultFeatures.push(featureWithAlias);\r\n }));\r\n }\r\n\r\n break;\r\n }\r\n });\r\n await Promise.all(resultsHandledPromise);\r\n nprogress.done();\r\n setState({\r\n assessorSearchResults: assessorResultFeatures, //await handleGISSearch(gisResultFeatures)\r\n });\r\n };\r\n\r\n //get alias field attributes\r\n const getAliasAttributes = (result: Graphic) => {\r\n var featureObj = {};\r\n featureObj.attributes = {};\r\n var featureAttributes = result.attributes;\r\n const getFldAlias = (fieldName: string) => {\r\n var retVal = \"\";\r\n result.layer.fields.some((item: any) => {\r\n if (item.name === fieldName) {\r\n retVal = item.alias;\r\n return true;\r\n }\r\n });\r\n return retVal;\r\n };\r\n for (var attr in featureAttributes) {\r\n featureObj.attributes[getFldAlias(attr)] = featureAttributes[attr];\r\n }\r\n result.attributes = {};\r\n result.attributes = featureObj.attributes;\r\n return result;\r\n };\r\n\r\n let whereClause = \"\";\r\n //adding searchWidget\r\n const customSearchSource = new SearchSource({\r\n outFields: [\"*\"],\r\n placeholder: SearchToolText,\r\n maxResults: 3,\r\n maxSuggestions: 3,\r\n suggestionsEnabled: true,\r\n minSuggestCharacters: 3,\r\n getSuggestions: (params: any) => {\r\n return esriRequest(assessorInfo.AssessorTableUrl, {\r\n query: {\r\n f: \"json\",\r\n },\r\n responseType: \"json\",\r\n }).then((results) => {\r\n let fields = results.data.fields;\r\n //geting assessor search clause\r\n assessorInfo.AssessorSearchFields.forEach((item: string, i: number) => {\r\n let searchField = fields.filter((fieldItem: any) => {\r\n return fieldItem.name === item;\r\n });\r\n if (i === 0) {\r\n //whereClause = item + \" LIKE \" + \"'%\" + params.suggestTerm.replace(/ /g, \"+\") + \"%'\";\r\n let re = /'/gi;\r\n var searchTerm = params.suggestTerm.toUpperCase().replace(re, \"''\");\r\n if (\r\n searchField[0].type === \"esriFieldTypeString\" // && !Number.isInteger(parseInt(params.suggestTerm))\r\n ) {\r\n whereClause = item + \" LIKE \" + \"'%\" + searchTerm + \"%'\";\r\n } else if (\r\n searchField[0].type === \"esriFieldTypeInteger\" &&\r\n Number.isInteger(parseInt(params.suggestTerm))\r\n ) {\r\n whereClause = item + \" = \" + params.suggestTerm;\r\n }\r\n } else {\r\n //whereClause += \" OR \" + item + \" LIKE '%\" + params.suggestTerm.replace(/ /g, \"+\") + \"%'\";\r\n let re = /'/gi;\r\n var searchTerm = params.suggestTerm.toUpperCase().replace(re, \"''\");\r\n if (searchField[0].type === \"esriFieldTypeString\") {\r\n whereClause.length === 0\r\n ? (whereClause = item + \" LIKE '%\" + searchTerm + \"%'\")\r\n : (whereClause +=\r\n \" OR \" + item + \" LIKE '%\" + searchTerm + \"%'\");\r\n } else if (\r\n searchField[0].type === \"esriFieldTypeInteger\" &&\r\n Number.isInteger(parseInt(params.suggestTerm))\r\n ) {\r\n whereClause.length === 0\r\n ? (whereClause = item + \" = \" + parseInt(params.suggestTerm))\r\n : (whereClause +=\r\n \" OR \" + item + \" = \" + parseInt(params.suggestTerm));\r\n }\r\n }\r\n });\r\n\r\n return esriRequest(assessorInfo.AssessorTableUrl + \"/query\", {\r\n query: {\r\n f: \"json\",\r\n //resultRecordCount: 6, //pagination not supported\r\n where: whereClause,\r\n outFields: [\"*\"], //['Owner1','Location','GISLink','ParcelID'] as string[] CANNOT DO THIS??\r\n },\r\n responseType: \"json\",\r\n }).then((results) => {\r\n // Return Suggestion results to display\r\n // in the Search widget\r\n const suggestionsArr = results.data.features.map(\r\n (feature: any, i: number) => {\r\n if (i <= 5) {\r\n //** THIS IS IMPORTANT AS THE THIS FAILS FOR MORE ITEMS */\r\n let textShow = \"\";\r\n assessorInfo.AssessorSearchFields.forEach(\r\n (item: string, idx: number) => {\r\n if (\r\n assessorInfo.CombineDisDisplayFieldsinSearch.length > 0\r\n ) {\r\n if (\r\n feature.attributes[item] !== null &&\r\n feature.attributes[item] !== undefined &&\r\n feature.attributes[item]\r\n .toString()\r\n .toUpperCase()\r\n .includes(params.suggestTerm.toUpperCase())\r\n ) {\r\n assessorInfo.CombineDisDisplayFieldsinSearch.forEach(\r\n (option) => {\r\n if (idx === option.first) {\r\n textShow =\r\n feature.attributes[\r\n assessorInfo.AssessorSearchFields[\r\n option.first\r\n ]\r\n ] +\r\n \", \" +\r\n feature.attributes[\r\n assessorInfo.AssessorSearchFields[\r\n option.second\r\n ]\r\n ];\r\n } else {\r\n textShow = feature.attributes[item].toString();\r\n }\r\n }\r\n );\r\n }\r\n } else if (\r\n feature.attributes[item] !== null &&\r\n feature.attributes[item] !== undefined &&\r\n feature.attributes[item]\r\n .toString()\r\n .toUpperCase()\r\n .includes(params.suggestTerm.toUpperCase())\r\n ) {\r\n textShow = feature.attributes[\r\n assessorInfo.AssessorSearchFields[idx]\r\n ].toString();\r\n }\r\n }\r\n );\r\n /* feature.attributes[assessorInfo.AssessorSearchFields[0]].toUpperCase().includes(params.suggestTerm.toUpperCase()) ? feature.attributes[assessorInfo.AssessorSearchFields[0]]\r\n : feature.attributes[assessorInfo.AssessorSearchFields[1]].toUpperCase().includes(params.suggestTerm.toUpperCase()) ? feature.attributes[assessorInfo.AssessorSearchFields[1]]\r\n : (feature.attributes[assessorInfo.AssessorSearchFields[2]].toUpperCase().includes(params.suggestTerm.toUpperCase()) ? feature.attributes[assessorInfo.AssessorSearchFields[2]] \r\n : (feature.attributes[assessorInfo.AssessorSearchFields[3]].toUpperCase().includes(params.suggestTerm.toUpperCase()) ? feature.attributes[assessorInfo.AssessorSearchFields[3]] + \",\" + feature.attributes[assessorInfo.AssessorSearchFields[2]] : \"\")) //Owner get's priority */\r\n return {\r\n key: \"name\",\r\n text: textShow,\r\n sourceIndex: params.sourceIndex,\r\n };\r\n }\r\n }\r\n ); //we need max 5 suggestions\r\n let returnSuggestions = suggestionsArr.filter(\r\n (item: string, n: number) => {\r\n return item !== undefined && n <= 4;\r\n }\r\n );\r\n return returnSuggestions;\r\n });\r\n });\r\n },\r\n getResults: (params: any) => {\r\n //geting assessor search clause with suggestresult\r\n return esriRequest(assessorInfo.AssessorTableUrl, {\r\n query: {\r\n f: \"json\",\r\n },\r\n responseType: \"json\",\r\n }).then((results) => {\r\n let fields = results.data.fields;\r\n whereClause = \"\";\r\n assessorInfo.AssessorSearchFields.forEach((item: string, i: number) => {\r\n let searchField = fields.filter((fieldItem: any) => {\r\n return fieldItem.name === item;\r\n });\r\n if (i === 0) {\r\n let re = /'/gi;\r\n var searchTerm = params.suggestResult.text\r\n .toUpperCase()\r\n .replace(re, \"''\");\r\n let tempArr = searchTerm.split(\",\");\r\n if (\r\n tempArr.length === 2 &&\r\n assessorInfo.CombineDisDisplayFieldsinSearch.length > 0\r\n ) {\r\n assessorInfo.CombineDisDisplayFieldsinSearch.forEach(\r\n (option, idx) => {\r\n if (i === 0) {\r\n whereClause =\r\n \"UPPER(\" +\r\n assessorInfo.AssessorSearchFields[option.first] +\r\n \") = '\" +\r\n tempArr[0]\r\n .toString()\r\n .trim()\r\n .toUpperCase() +\r\n \"' AND UPPER(\" +\r\n assessorInfo.AssessorSearchFields[option.second] +\r\n \") = '\" +\r\n tempArr[1]\r\n .toString()\r\n .trim()\r\n .toUpperCase() +\r\n \"'\";\r\n } else {\r\n whereClause =\r\n \" OR UPPER(\" +\r\n assessorInfo.AssessorSearchFields[option.first] +\r\n \") = '\" +\r\n tempArr[0]\r\n .toString()\r\n .trim()\r\n .toUpperCase() +\r\n \"' AND UPPER(\" +\r\n assessorInfo.AssessorSearchFields[option.second] +\r\n \") = '\" +\r\n tempArr[1]\r\n .toString()\r\n .trim()\r\n .toUpperCase() +\r\n \"'\";\r\n }\r\n }\r\n );\r\n } else {\r\n if (searchField[0].type === \"esriFieldTypeString\") {\r\n whereClause =\r\n \"UPPER(\" +\r\n item +\r\n \") LIKE \" +\r\n \"'%\" +\r\n searchTerm.toUpperCase().trim() +\r\n \"%'\";\r\n } else if (\r\n searchField[0].type === \"esriFieldTypeInteger\" &&\r\n Number.isInteger(parseInt(params.suggestResult.text))\r\n ) {\r\n whereClause =\r\n item + \" = \" + parseInt(params.suggestResult.text);\r\n }\r\n }\r\n } else {\r\n if (searchField[0].type === \"esriFieldTypeString\") {\r\n let re = /'/gi;\r\n var searchTerm = params.suggestResult.text\r\n .toUpperCase()\r\n .replace(re, \"''\");\r\n whereClause.length === 0\r\n ? (whereClause =\r\n \" OR UPPER(\" +\r\n item +\r\n \") LIKE '%\" +\r\n searchTerm.toUpperCase().trim() +\r\n \"%'\")\r\n : (whereClause +=\r\n \" OR UPPER(\" +\r\n item +\r\n \") LIKE '%\" +\r\n searchTerm.toUpperCase().trim() +\r\n \"%'\");\r\n } else if (\r\n searchField[0].type === \"esriFieldTypeInteger\" &&\r\n Number.isInteger(parseInt(params.suggestResult.text))\r\n ) {\r\n whereClause.length === 0\r\n ? (whereClause =\r\n item + \" = \" + parseInt(params.suggestResult.text))\r\n : (whereClause +=\r\n \" OR \" +\r\n item +\r\n \" = \" +\r\n parseInt(params.suggestResult.text));\r\n }\r\n }\r\n });\r\n return esriRequest(assessorInfo.AssessorTableUrl + \"/query\", {\r\n query: {\r\n f: \"json\",\r\n //resultRecordCount: 6, //pagination not supported\r\n where: whereClause,\r\n outFields: \"*\",\r\n },\r\n responseType: \"json\",\r\n }).then(function(results) {\r\n // Parse the results of your custom search\r\n let assessorSearchResults = results.data.features.map(function(\r\n feature: any\r\n ) {\r\n // Create a Graphic the Search widget can display\r\n let graphic = new Graphic({\r\n geometry: new Point({\r\n x: 0,\r\n y: 0,\r\n }),\r\n attributes: feature.attributes,\r\n });\r\n // Optionally, you can provide an extent for\r\n // a point result, so the view can zoom to it\r\n /* let buffer = geometryEngine.geodesicBuffer(\r\n graphic.geometry,\r\n 100,\r\n \"meters\"\r\n ); */\r\n // Return a Search Result\r\n let searchResult = {\r\n extent: graphic,\r\n feature: graphic,\r\n };\r\n return searchResult;\r\n });\r\n\r\n // Return an array of Search Results\r\n return assessorSearchResults;\r\n });\r\n });\r\n },\r\n });\r\n //const sr = new SpatialReference({ wkid: 3437 }); //, wkt: \"PROJCS['NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet',GEOGCS['GCS_North_American_1983',DATUM['D_North_American_1983',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',984250.0],PARAMETER['False_Northing',0.0],PARAMETER['Central_Meridian',-71.66666666666667],PARAMETER['Scale_Factor',0.9999666666666667],PARAMETER['Latitude_Of_Origin',42.5],UNIT['Foot_US',0.3048006096012192]]\" });\r\n\r\n let searchSources = [customSearchSource];\r\n\r\n operationalLayers.map((oplayer: any) => {\r\n if (oplayer.Search) {\r\n let item = oplayer.Search;\r\n let gisSearchSource: LayerSearchSource = {\r\n layer: new FeatureLayer({ url: item.url, id: item.name }),\r\n searchFields: item.searchFields,\r\n displayField: item.displayField,\r\n exactMatch: item.exactMatch,\r\n outFields: item.outFields,\r\n name: item.name,\r\n placeholder: item.placeholder,\r\n maxResults: item.maxResults,\r\n maxSuggestions: item.maxSuggestions,\r\n suggestionsEnabled: item.suggestionsEnabled,\r\n minSuggestCharacters: item.suggestionsEnabled,\r\n };\r\n searchSources.push(gisSearchSource);\r\n }\r\n }); // put the esri location search to the end\r\n locationSearchSources.forEach((item: any) => {\r\n if (item.type.toLowerCase() === \"locator\") {\r\n let locSearchSource: any = {\r\n /* locator: new Locator({\r\n url: GeocodeURL,\r\n outSpatialReference: {\r\n wkid: initialExtent.spatialReference.wkid,\r\n },\r\n }), */\r\n url: GeocodeURL,\r\n singleLineFieldName: item.singleLineFieldName,\r\n autoNavigate: item.autoNavigate,\r\n name: item.name,\r\n placeholder: item.placeholder,\r\n maxResults: item.maxResults,\r\n maxSuggestions: item.maxSuggestions,\r\n outSpatialReference: item.outSpatialReference,\r\n suggestionsEnabled: item.suggestionsEnabled,\r\n minSuggestCharacters: item.minSuggestCharacters,\r\n filter: new Extent({\r\n xmin: initialExtent.xmin,\r\n ymin: initialExtent.ymin,\r\n xmax: initialExtent.xmax,\r\n ymax: initialExtent.ymax,\r\n spatialReference: {\r\n wkid: initialExtent.spatialReference.wkid,\r\n },\r\n }),\r\n };\r\n searchSources.push(locSearchSource);\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (searchWidget) {\r\n if (searchWidget.destroyed) {\r\n searchWidget = new SearchWidget({\r\n //view: view,\r\n sources: searchSources,\r\n includeDefaultSources: false,\r\n popupEnabled: false,\r\n locationEnabled: SearchLocationEnabled,\r\n container: \"searchContainer\",\r\n });\r\n searchWidget.autoSelect = false;\r\n }\r\n } else {\r\n searchWidget = new SearchWidget({\r\n //view: view,\r\n sources: searchSources,\r\n includeDefaultSources: false,\r\n popupEnabled: false,\r\n locationEnabled: SearchLocationEnabled,\r\n container: \"searchContainer\",\r\n });\r\n searchWidget.autoSelect = false;\r\n }\r\n if (searchWidget && !searchWidget.destroyed)\r\n searchWidget.on(\"search-start\", function(event) {\r\n nprogress.start();\r\n });\r\n searchWidget.on(\"search-complete\", function(event) {\r\n // The results are stored in the event Object[]\r\n console.log(\"Results of the search: \", event);\r\n searchWidget.clear();\r\n searchWidget.blur();\r\n\r\n handleSearchResults(event.results);\r\n });\r\n return () => {};\r\n }, []);\r\n useEffect(() => {\r\n if (searchWidget) {\r\n if (state.mapView !== null && state.mode === \"normal\") {\r\n searchWidget.view = state.mapView;\r\n }\r\n searchWidget.allPlaceholder = \"Search Parcels, locations,...\";\r\n const searchAssessorItem = searchWidget.viewModel.sources.getItemAt(\r\n 0\r\n ) as LayerSearchSource; //horrible way. Use class extension later using SearchSource\r\n searchAssessorItem.name = operationalLayerName;\r\n searchAssessorItem.maxSuggestions = 3;\r\n const searchLocationItem = searchWidget.viewModel.sources.getItemAt(\r\n searchWidget.viewModel.sources.length - 1\r\n ) as any;\r\n if (searchLocationItem.type === \"locator\") {\r\n searchLocationItem.countryCode = \"US\";\r\n searchLocationItem.categories = [\r\n \"Address\",\r\n \"Postal\",\r\n \"Coordinate System\",\r\n ];\r\n searchLocationItem.withinViewEnabled = false;\r\n const theExtent = new Extent({\r\n xmin: initialExtent.xmin,\r\n ymin: initialExtent.ymin,\r\n xmax: initialExtent.xmax,\r\n ymax: initialExtent.ymax,\r\n spatialReference: {\r\n wkid: initialExtent.spatialReference.wkid,\r\n },\r\n });\r\n\r\n const searchExtent = {\r\n geometry: theExtent,\r\n where: \"1=1\",\r\n };\r\n searchLocationItem.filter = searchExtent;\r\n }\r\n }\r\n return () => {\r\n if (searchWidget && state.mapView !== null) {\r\n searchWidget.destroy();\r\n }\r\n };\r\n }, [state.mapView]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SearchBox;\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport SearchContentFooterNavigatotConatiner from \"./styled/SearchContentFooterNavigatorContainer\";\r\nimport { Typography } from \"@rmwc/typography\";\r\nimport {CreateMailingLabelsPDF} from \"../utils/CreatePDF\"\r\nimport { operationalLayers } from '../appConfig';\r\nimport { useState } from \"react\";\r\n\r\nconst SearchContentFooter = () => {\r\n const { state, setState } = useContext(AppContext);\r\n const [showSelectedMailLabels, setshowSelectedMailLabels] = useState(false);\r\n const [showResultMailLabels, setshowResultMailLabels] = useState(false);\r\n const { assessorSearchResults, displayedSearchItems, displayedSelectedItems, selectedSearchResultDetail, assessorSelectionResults, displaySelectionResults, displayedSearchItemLayerNames, selectedItemLayerNameItems, searchItemLayerNames, displayedSelectedItemLayerNames } = state;\r\n const createMailingLabels = () => {\r\n CreateMailingLabelsPDF(displayedSearchItems);\r\n //alert(\"here\");\r\n }\r\n const createMailingLabelsfromSelect = () => {\r\n CreateMailingLabelsPDF(displayedSelectedItems);\r\n //alert(\"here\");\r\n }\r\n\r\n useEffect(() => {\r\n if (!displaySelectionResults && selectedSearchResultDetail === null && assessorSearchResults && assessorSearchResults.length > 0 && (searchItemLayerNames.length === 0 || (searchItemLayerNames.length >= 1 && displayedSearchItemLayerNames[0] === operationalLayers[0].Key))) {\r\n setshowResultMailLabels(true);\r\n } else {\r\n setshowResultMailLabels(false)\r\n }\r\n return () => {};\r\n }, [!displaySelectionResults && state.displayedSearchItemLayerNames]);\r\n useEffect(() => {\r\n if (selectedSearchResultDetail !== null ) {\r\n setshowResultMailLabels(false);\r\n } else if (!displaySelectionResults && selectedSearchResultDetail === null && assessorSearchResults && assessorSearchResults.length > 0 && (searchItemLayerNames.length === 0 || (searchItemLayerNames.length >= 1 && displayedSearchItemLayerNames[0] === operationalLayers[0].Key))) {\r\n setshowResultMailLabels(true);\r\n }\r\n return () => {};\r\n }, [state.displaySelectionResults && state.assessorSearchResults && state.searchItemLayerNames && state.displayedSearchItemLayerNames]);\r\n\r\n useEffect(() => {\r\n if (displaySelectionResults && assessorSelectionResults && assessorSelectionResults.length > 0 && (selectedItemLayerNameItems.length === 0 || (selectedItemLayerNameItems.length >= 1 && displayedSelectedItemLayerNames[0] === operationalLayers[0].Key))) {\r\n setshowSelectedMailLabels(true);\r\n } else {\r\n setshowSelectedMailLabels(false);\r\n }\r\n return () => {};\r\n }, [displaySelectionResults && state.displayedSelectedItemLayerNames]);\r\n useEffect(() => {\r\n if (selectedSearchResultDetail !== null ) {\r\n setshowSelectedMailLabels(false);\r\n } else if (displaySelectionResults && selectedSearchResultDetail === null && assessorSelectionResults && assessorSelectionResults.length > 0 && (selectedItemLayerNameItems.length === 0 || (selectedItemLayerNameItems.length >= 1 && displayedSelectedItemLayerNames[0] === operationalLayers[0].Key))) {\r\n setshowSelectedMailLabels(true);\r\n }\r\n return () => {};\r\n }, [state.displaySelectionResults && state.selectedSearchResultDetail && state.assessorSelectionResults && state.selectedItemLayerNameItems && state.displayedSelectedItemLayerNames]);\r\n return \r\n <>\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {showResultMailLabels && !displaySelectionResults && assessorSearchResults && assessorSearchResults.length > 0 &&
\r\n Mailing Labels\r\n {/* {!displaySelectionResults && assessorSelectionResults && assessorSelectionResults.length > 0 && (Mailing Labels))}\r\n {displaySelectionResults && assessorSearchResults && assessorSearchResults.length > 0 && (Mailing Labels ({assessorSearchResults.length}))} */}\r\n
}\r\n {showSelectedMailLabels && displaySelectionResults && assessorSelectionResults && assessorSelectionResults.length > 0 &&
\r\n Mailing Labels\r\n
}\r\n \r\n
\r\n};\r\n\r\nexport default SearchContentFooter;\r\n","///this is the JS file for creating mailing labels using jsPDF library\r\nimport jsPDF from \"jspdf\";\r\nimport { assessorInfo } from \"../appConfig\";\r\nlet fromResults;\r\nlet MailingLabelFeatureSet;\r\nlet marginLeft = 0.21975;\r\nlet marginTop = 0.5;\r\nlet labelWidth = 2.625;\r\nlet labelHeight = 1.1;\r\nlet columns = [\r\n marginLeft,\r\n marginLeft * 2 + labelWidth,\r\n marginLeft * 3 + labelWidth * 2,\r\n];\r\nlet rows = 10;\r\nlet labelCount = 0;\r\nlet columnCount = 0;\r\nlet size = 9;\r\nlet strmaxlength = 35;\r\n\r\nexport const CreateMailingLabelsPDF = (features: any[]) => {\r\n const getUniqueAssessFeatures = (a) => {\r\n a.sort(function(a, b) {\r\n let keyA = a[assessorInfo.UniqueAssessID],\r\n keyB = b[assessorInfo.UniqueAssessID];\r\n // Compare the 2 dates\r\n if (keyA < keyB) return -1;\r\n if (keyA > keyB) return 1;\r\n return 0;\r\n });\r\n for (let i = 1; i < a.length; ) {\r\n if (\r\n a[i - 1][assessorInfo.UniqueAssessID] ==\r\n a[i][assessorInfo.UniqueAssessID]\r\n ) {\r\n a.splice(i, 1);\r\n } else {\r\n i++;\r\n }\r\n }\r\n return a;\r\n };\r\n\r\n columnCount = 0;\r\n labelCount = 0;\r\n let MailingLabelFeatureSet: any[] = [];\r\n MailingLabelFeatureSet = getUniqueAssessFeatures(features);\r\n\r\n let doc = new jsPDF(\"portrait\", \"in\", \"a4\");\r\n\r\n doc.setFontSize(size);\r\n for (let i = 0; i < MailingLabelFeatureSet.length; i++) {\r\n let dx = 0;\r\n doc.setFillColor(255, 0, 0);\r\n doc.setLineWidth(0.01);\r\n doc.rect(\r\n columns[columnCount] - 0.1,\r\n marginTop + labelHeight * (labelCount % rows) - 0.03 ,\r\n labelWidth - 0.005,\r\n labelHeight\r\n ); //Fill and Border\r\n for (var fld in MailingLabelFeatureSet[i]) {\r\n if (MailingLabelFeatureSet[i].hasOwnProperty(fld)) {\r\n if (assessorInfo.MailingLabelFields.indexOf(fld) != -1) {\r\n let idx = assessorInfo.MailingLabelFields.indexOf(fld) + 1 - dx;\r\n\r\n if (MailingLabelFeatureSet[i][fld] == null) {\r\n dx = dx + 1;\r\n } else {\r\n doc.text(\r\n columns[columnCount],\r\n marginTop + labelHeight * (labelCount % rows) + 0.2 * idx,\r\n MailingLabelFeatureSet[i][fld].substring(\r\n 0,\r\n strmaxlength\r\n )\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n labelCount++;\r\n if (labelCount % rows == 0) {\r\n columnCount = columnCount + 1;\r\n }\r\n if (columnCount == columns.length) {\r\n columnCount = 0;\r\n doc.addPage();\r\n }\r\n }\r\n\r\n doc.save(\"Mailing Labels.pdf\");\r\n};\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport SearchContentFooterNavigatotConatiner from \"./styled/SearchContentFooterNavigatorContainer\";\r\nimport { TabBar, Tab } from \"@rmwc/tabs\";\r\n\r\n\r\nconst SearchContentNavigator = () => {\r\n const { state, setState } = useContext(AppContext);\r\n const {\r\n assessorSearchResults,\r\n displayedSearchItems,\r\n assessorSelectionResults,\r\n displaySelectionResults,\r\n } = state;\r\n\r\n const tabClicked = (evt: CustomEvent) => {\r\n if (\r\n evt.detail.index === 0 &&\r\n state.assessorSearchResults &&\r\n state.assessorSearchResults.length > 0\r\n ) {\r\n setActiveTab(evt.detail.index);\r\n setState({ displaySelectionResults: false });\r\n } else if (\r\n evt.detail.index === 1 &&\r\n state.assessorSelectionResults &&\r\n state.assessorSelectionResults.length > 0\r\n ) {\r\n setActiveTab(evt.detail.index);\r\n setState({ displaySelectionResults: true });\r\n }\r\n };\r\n const [activeTab, setActiveTab] = React.useState(-1);\r\n useEffect(() => {\r\n if (!state.displaySelectionResults && state.assessorSearchResults && state.assessorSearchResults.length > 0) {\r\n setActiveTab(0);\r\n } else if (\r\n !state.displaySelectionResults && state.assessorSearchResults && \r\n state.assessorSearchResults.length === 0\r\n ) {\r\n if (document.getElementById(\"queryResultsTab\")) {\r\n let element = document.getElementById(\"queryResultsTab\");\r\n if (\r\n element.classList.contains(\r\n \"mdc-tab--active\"\r\n )\r\n ) {\r\n element.classList.remove(\r\n \"mdc-tab--active\"\r\n );\r\n element.classList.remove(\r\n \"mdc-tab--active\"\r\n ); //why twice\r\n }\r\n }\r\n //\r\n \r\n //setActiveTab(-1);\r\n }\r\n }, [state.displaySelectionResults , state.assessorSearchResults]);\r\n\r\n useEffect(() => {\r\n if (\r\n state.displaySelectionResults &&\r\n state.assessorSelectionResults.length > 0\r\n ) {\r\n setActiveTab(1);\r\n } else if (\r\n state.displaySelectionResults &&\r\n state.assessorSelectionResults.length === 0\r\n ) {\r\n if (document.getElementById(\"selectResultsTab\")) {\r\n let element = document.getElementById(\"selectResultsTab\");\r\n if (\r\n element.classList.contains(\r\n \"mdc-tab--active\"\r\n )\r\n ) {\r\n element.classList.remove(\r\n \"mdc-tab--active\"\r\n );\r\n element.classList.remove(\r\n \"mdc-tab--active\"\r\n ); //why twice\r\n }\r\n }\r\n }\r\n }, [state.displaySelectionResults, state.assessorSelectionResults]);\r\n\r\n return (\r\n \r\n \r\n 0\r\n ? \"buttonClickable\"\r\n : \"buttonNotClickable\"\r\n }\r\n >\r\n Query results\r\n \r\n 0\r\n ? \"buttonClickable\"\r\n : \"buttonNotClickable\"\r\n }\r\n >\r\n Selected records\r\n \r\n \r\n {/* {!displaySelectionResults &&\r\n assessorSelectionResults &&\r\n assessorSelectionResults.length > 0 && (\r\n setActiveTab(evt.detail.index)}\r\n >\r\n case 1\r\n Selected records\r\n \r\n )}\r\n {displaySelectionResults &&\r\n assessorSearchResults && assessorSearchResults.length > 0 ? (\r\n setActiveTab(evt.detail.index)}\r\n >\r\n case 2\r\n Selected records\r\n \r\n ) : displaySelectionResults &&\r\n displayedSearchItems &&\r\n displayedSearchItems.length > 0 ? (\r\n setActiveTab(evt.detail.index)}\r\n >\r\n case 3\r\n Selected records\r\n \r\n ) : null} */}\r\n \r\n );\r\n};\r\n\r\nexport default SearchContentNavigator;\r\n\r\n\r\n","import React, { useContext, useEffect } from \"react\";\r\nimport { ListDivider, ListItemGraphic } from \"@rmwc/list\";\r\nimport _ from \"lodash\";\r\nimport { AppContext } from \"../contexts/App\";\r\nimport { SearchResultCard } from \"./SearchResultCard\";\r\nimport ListContainer from \"./styled/ListContainer\";\r\nimport SearchResultHeader from \"../components/SearchResultsHeader\";\r\nimport SearchItemDetailsHeader from \"../components/SearchItemDetailsHeader\";\r\nimport AssessorDetailsContainer from \"./styled/AssessorDetailsContainer\";\r\nimport ListContainerHolder from \"./styled/ListContainerHolder\";\r\n\r\nimport AssessorDetails from \"../components/AssessorDetails\";\r\nimport SearchBox from \"./SearchBox\";\r\nimport SearchContentFooter from \"./SearchContentFooter\";\r\nimport SearchContentNavigator from \"./SearchContentNavigator\";\r\n\r\nconst renderCards = (items: any[]) => {\r\n if (items) {\r\n return items.map((addressItem, idx) => [\r\n ,\r\n ,\r\n ]);\r\n }\r\n};\r\nconst renderAssessorDetails = (item: any, relatedPlanAreaDetails: any) => {\r\n if (item) {\r\n const { relatedData, ...itemDetail } = item;\r\n let assessorDetailsProps = {\r\n 'detailItem': itemDetail,\r\n 'relatedPlanAreaDetails' : relatedPlanAreaDetails,\r\n 'relatedData': relatedData ? relatedData : []\r\n }\r\n return (\r\n \r\n );\r\n\r\n /* const assessorItem = items[0];\r\n return */\r\n }\r\n};\r\n\r\nconst SearchContent = () => {\r\n const { state, setState } = useContext(AppContext);\r\n const {\r\n searchResultDetailsItems: searchResultDetailsItems,\r\n relatedPlanAreaDetails,\r\n sidePanelShown,\r\n displaySelectionResults,\r\n selectedSearchResultDetail,\r\n } = state;\r\n const findThisDetail = (item: any) => {\r\n return _.isEqual(item, selectedSearchResultDetail);\r\n };\r\n const changeSelectedSearchResultDetailNext = () => {\r\n let getCurrentIndex = searchResultDetailsItems.findIndex(findThisDetail);\r\n setState({\r\n selectedSearchResultDetail: searchResultDetailsItems[getCurrentIndex + 1],\r\n });\r\n };\r\n const changeSelectedSearchResultDetailPrev = () => {\r\n let getCurrentIndex = searchResultDetailsItems.findIndex(findThisDetail);\r\n setState({\r\n selectedSearchResultDetail: searchResultDetailsItems[getCurrentIndex - 1],\r\n });\r\n };\r\n useEffect(() => {\r\n setState({\r\n mounted: true,\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {!displaySelectionResults && (\r\n <>\r\n {searchResultDetailsItems ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {searchResultDetailsItems ? (\r\n \r\n
1\r\n ? \"visible\"\r\n : \"hidden\"\r\n }>\r\n
1\r\n ? \" detailsNavigate inline-visible\"\r\n : \"detailsNavigate hidden\"\r\n }>\r\n 1\r\n ? searchResultDetailsItems.findIndex(findThisDetail) > 0\r\n ? \"rmwc-icon material-icons detailsNavigatePrev visible\"\r\n : \"rmwc-icon material-icons detailsNavigatePrev hidden\"\r\n : \"rmwc-icon material-icons detailsNavigatePrev hidden\"\r\n }\r\n onClick={changeSelectedSearchResultDetailPrev}\r\n >\r\n chevron_left\r\n \r\n
\r\n
1\r\n ? \" detailsNavigate inline-visible\"\r\n : \"detailsNavigate hidden\"\r\n }>\r\n 1\r\n ? searchResultDetailsItems.findIndex(findThisDetail) +\r\n 1 <\r\n searchResultDetailsItems.length\r\n ? \"rmwc-icon material-icons detailsNavigateNext visible\"\r\n : \"rmwc-icon material-icons detailsNavigateNext hidden\"\r\n : \"rmwc-icon material-icons detailsNavigateNext hidden\"\r\n }\r\n onClick={changeSelectedSearchResultDetailNext}\r\n >\r\n chevron_right\r\n \r\n
\r\n 1\r\n ? \" detailsNavigateCount visible\"\r\n : \"detailsNavigateCount hidden\"\r\n }\r\n >\r\n {searchResultDetailsItems.findIndex(findThisDetail) + 1} of{\" \"}\r\n {searchResultDetailsItems.length}\r\n
\r\n \r\n {renderAssessorDetails(selectedSearchResultDetail, relatedPlanAreaDetails)}\r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n {renderCards(state.displayedSearchItems)}\r\n \r\n \r\n )}\r\n \r\n )}\r\n {displaySelectionResults && (\r\n <>\r\n {searchResultDetailsItems ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {searchResultDetailsItems ? (\r\n \r\n
\r\n
\r\n 1\r\n ? searchResultDetailsItems.findIndex(findThisDetail) > 0\r\n ? \"rmwc-icon material-icons detailsNavigatePrev visible\"\r\n : \"rmwc-icon material-icons detailsNavigatePrev hidden\"\r\n : \"rmwc-icon material-icons detailsNavigatePrev hidden\"\r\n }\r\n onClick={changeSelectedSearchResultDetailPrev}\r\n >\r\n chevron_left\r\n \r\n
\r\n
\r\n 1\r\n ? searchResultDetailsItems.findIndex(findThisDetail) +\r\n 1 <\r\n searchResultDetailsItems.length\r\n ? \"rmwc-icon material-icons detailsNavigateNext visible\"\r\n : \"rmwc-icon material-icons detailsNavigateNext hidden\"\r\n : \"rmwc-icon material-icons detailsNavigateNext hidden\"\r\n }\r\n onClick={changeSelectedSearchResultDetailNext}\r\n >\r\n chevron_right\r\n \r\n
\r\n 1\r\n ? \" detailsNavigateCount visible\"\r\n : \"detailsNavigateCount hidden\"\r\n }\r\n >\r\n {searchResultDetailsItems.findIndex(findThisDetail) + 1} of{\" \"}\r\n {searchResultDetailsItems.length}\r\n
\r\n \r\n {renderAssessorDetails(selectedSearchResultDetail, relatedPlanAreaDetails)}\r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n {renderCards(state.displayedSelectedItems)}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SearchContent;\r\n"],"sourceRoot":""}