diff --git a/build/assets/js/main.js b/build/assets/js/main.js index 5d03e12..6e945dc 100644 --- a/build/assets/js/main.js +++ b/build/assets/js/main.js @@ -1,2 +1,2 @@ -!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="50f238fa-0e2b-4927-9581-13d5853559fc",e._sentryDebugIdIdentifier="sentry-dbid-50f238fa-0e2b-4927-9581-13d5853559fc")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"375dc456825cc0d59b0c1ade0547fcdfb431c5fc"},(self.webpackChunkd6_business_directory=self.webpackChunkd6_business_directory||[]).push([[590],{780:(e,t,a)=>{class i extends HTMLElement{static get observedAttributes(){return["form","parcelStatus","user"]}constructor(){super(),this.form=null,this.parcelStatus="Invalid",this.user=null,this.styles=document.createElement("style"),this.styles.textContent="\n @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;700&display=swap')\n #geocoder {width: 100%}\n input {width: calc(100% - 2em); padding: 1em; border:.1em solid #e6e6e6; font-size: 1em;}\n ";const e=this.attachShadow({mode:"open"});e.appendChild(this.styles);const t=document.createElement("article");t.id="geocoder";let a=document.createElement("form"),i=document.createElement("label");i.style.fontFamily="Montserrat, sans-serif",i.style.fontWeight="bold";let s=document.createElement("input"),n=(document.createElement("ul"),document.createElement("datalist")),r=document.createElement("i");a.addEventListener("submit",(e=>{this.submit(e,this)})),r.className="fas fa-map-marker-alt";const o=document.getElementsByTagName("my-home-info");i.innerText="Property Address:";try{o[0].getAttribute("data-geocoder-label")&&""!=o[0].getAttribute("data-geocoder-label")&&(i.innerText=o[0].getAttribute("data-geocoder-label"))}catch(c){}i.setAttribute("for","geocoder-input"),s.type="text",s.setAttribute("list","addresses-list"),s.placeholder="Enter address",s.setAttribute("id","geocoder-input"),s.setAttribute("autocomplete","off"),s.addEventListener("keyup",(e=>{this.inputChange(e,this)})),n.setAttribute("id","addresses-list"),a.appendChild(i),a.appendChild(s),a.appendChild(r),a.appendChild(n),this.form=a,t.appendChild(a),e.appendChild(t)}supplementGeocoder(e,t,a){const i=document.getElementsByTagName("my-home-info");let s=e.split(",");s=s[0],s=s.split(" ");let n="",r=s.length;s.forEach((function(e,t){n+=e,te.json())).then((function(s){if("suggestions"===a)s.candidates.forEach((e=>{let a=document.createElement("option");""===e.attributes.parcel_id?(a.value=e.address,a.setAttribute("data-parsel","no-parcel")):(a.value="".concat(e.address," RECOMMENDED"),a.setAttribute("data-parsel",e.attributes.parcel_id)),a.onclick=e=>{t.selectSuggestion(e,t)},t.form.childNodes[3].appendChild(a)}));else if(s.candidates.length){let a="https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/City_of_Detroit_Boundary/FeatureServer/0/query?where=&objectIds=&time=&geometry=".concat(s.candidates[0].location.x,"%2C+").concat(s.candidates[0].location.y,"&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=4326&returnGeometry=true&returnCentroid=false&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnDistinctValues=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=");try{fetch(a).then((e=>e.json())).then((function(a){if(a.features.length){let a,n=null;s.candidates.forEach((e=>{""!==e.attributes.parcel_id&&t.checkParcelValid(e.attributes.parcel_id)&&(n=e)})),a=null==n?s.candidates[0].location:null,null===n?(t.parcelStatus="Invalid",t.needGeocode(e,t,a),t.clearSuggestions(t),i[0].setAttribute("data-parcel-id",JSON.stringify(s.candidates[0]))):(t.parcelStatus="Valid",t.needGeocode(e,t,a),t.clearSuggestions(t),i[0].setAttribute("data-parcel-id",JSON.stringify(n)))}else t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}))}catch(n){t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}}else t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}))}catch(c){t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}}selectSuggestion(e,t){let a=null;a="SPAN"===e.target.tagName?e.target.parentNode:e.target,"no-parcel"===a.attributes[0].value?(t.clearSuggestions(t),t.supplementGeocoder(a.innerText,t,"submit")):t.supplementGeocoder(a.innerText,t,"submit")}inputChange(e,t){switch(e.key){case"Enter":""!=e.target.value&&void 0!=e.target.value&&t.supplementGeocoder(e.target.value,t,"submit");break;case"ArrowDown":case"ArrowUp":case"ArrowRight":case"ArrowLeft":break;case void 0:""!=e.target.value&&void 0!=e.target.value&&t.supplementGeocoder(e.target.value,t,"submit");break;default:t.clearSuggestions(t),t.supplementGeocoder(e.target.value,t,"suggestions")}}clearSuggestions(e){for(;e.form.childNodes[3].firstChild;)e.form.childNodes[3].removeChild(e.form.childNodes[3].firstChild)}needGeocode(e,t,a){fetch("https://us-central1-local-services-loopkup.cloudfunctions.net/getToken").then((e=>e.json())).then((function(i){let s=e.split(" RECOMMENDED")[0],n=[{attributes:{valid_parcel_status:t.parcelStatus,user_input:s},geometry:{x:0,y:0}}];null!=a&&(n[0].geometry.x=a.x,n[0].geometry.y=a.y);let r=new Request("https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/addressvalidator/FeatureServer/0/addFeatures?token=".concat(i.access_token,"&features=").concat(encodeURIComponent(JSON.stringify(n)),"&f=json"),{method:"POST",body:"",headers:new Headers,mode:"cors",cache:"default"});fetch(r).then((e=>{}))}))}checkParcelValid(e){return/\d/.test(e)}submit(e,t){e.preventDefault(),t.supplementGeocoder(e.target[0].value,t,"submit")}}class s extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"});this.navToolsStyle=document.createElement("style"),this.navToolsStyle.textContent="\n #nav-tools-wrapper { display: flex; flex-direction: column;}\n button.clear { font-size: 1.25em; width: 2.5em; height: 2.5em; background-color: #FEB70D; cursor: pointer; border: none; }\n button.nav { width: 3.75em; height: 3.75em; border: none; cursor: pointer;background: #fff; }\n button.nav:hover { background-color: #e6e6e6; transition: all 500ms cubic-bezier(.64,.09,.08,1); }\n button.nav.active { background-color: #9fd5b3; }\n button.nav img { width: 100%; }\n ",this.loadNavTools(this)}clearDisplay(e){const t=e.shadowRoot;for(;t.firstChild;)t.removeChild(t.firstChild)}loadNavTools(e){const t=document.getElementsByTagName("d6-business-map"),a=t[0].getAttribute("data-app-state"),i=t[0].getAttribute("data-app-mode"),s=t[0].getAttribute("data-inital-sets"),n=t[0].getAttribute("data-initial-map-available"),r=e.shadowRoot;r.appendChild(e.navToolsStyle);const o=document.createElement("section");o.id="nav-tools-wrapper",o.setAttribute("role","navigation"),o.setAttribute("aria-label","Data Navigation");const c=document.createElement("cod-button");if(c.addEventListener("click",(e=>{"my-home-info"==t[0].getAttribute("data-app-mode")?(t[0].setAttribute("data-app-state","welcome-screen"),t[0].setAttribute("data-active-sets","assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection")):(t[0].setAttribute("data-app-state","active-screen"),t[0].setAttribute("data-active-sets",s)),"true"==n?t[0].setAttribute("data-map-available","true"):t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-parcel-id","none"),t[0].setAttribute("data-api-stored-datasets","{}"),t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-section","property")})),c.setAttribute("data-primary",!0),c.setAttribute("data-label","x"),c.setAttribute("data-size","lg"),c.setAttribute("data-hover",!1),c.setAttribute("data-extra-classes","fw-bold"),c.setAttribute("data-background-color","warning"),c.setAttribute("data-img",""),c.setAttribute("data-img-alt",""),c.setAttribute("data-shape","square"),c.setAttribute("data-icon",""),o.appendChild(c),"my-home-info"==i&&"error"!=a){const e=document.createElement("cod-button");e.setAttribute("data-label",""),e.setAttribute("data-size","lg"),e.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/home.png"),e.setAttribute("data-img-alt","about this property"),e.setAttribute("data-shape","square"),e.setAttribute("data-nav-value","about this property"),e.setAttribute("data-icon",""),"about this property"==t[0].getAttribute("data-active-section")?(e.setAttribute("data-background-color","success"),e.setAttribute("data-primary",!0)):(e.setAttribute("data-background-color","secondary"),e.setAttribute("data-primary",!1),e.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection"),t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-active-section","about this property"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(e);const a=document.createElement("cod-button");a.setAttribute("data-label",""),a.setAttribute("data-size","lg"),a.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/government.png"),a.setAttribute("data-img-alt","government officials"),a.setAttribute("data-shape","square"),a.setAttribute("data-nav-value","government officials"),a.setAttribute("data-icon",""),"government officials"==t[0].getAttribute("data-active-section")?(a.setAttribute("data-background-color","success"),a.setAttribute("data-primary",!0)):(a.setAttribute("data-background-color","secondary"),a.setAttribute("data-primary",!1),a.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","council,council-members,bop-members,district-managers,business-liaison,district-inspectors,npo"),t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-active-section","government officials"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(a);const i=document.createElement("cod-button");i.setAttribute("data-label",""),i.setAttribute("data-size","lg"),i.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/zone.png"),i.setAttribute("data-img-alt","special areas and zones"),i.setAttribute("data-shape","square"),i.setAttribute("data-nav-value","special areas and zones"),i.setAttribute("data-icon",""),"special areas and zones"==t[0].getAttribute("data-active-section")?(i.setAttribute("data-background-color","success"),i.setAttribute("data-primary",!0)):(i.setAttribute("data-background-color","secondary"),i.setAttribute("data-primary",!1),i.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","nez,nrsa,historicDistrict"),t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-active-section","special areas and zones"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(i);const s=document.createElement("cod-button");s.setAttribute("data-label",""),s.setAttribute("data-size","lg"),s.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/nearby.png"),s.setAttribute("data-img-alt","things nearby"),s.setAttribute("data-shape","square"),s.setAttribute("data-nav-value","things nearby"),s.setAttribute("data-icon",""),"things nearby"==t[0].getAttribute("data-active-section")?(s.setAttribute("data-background-color","success"),s.setAttribute("data-primary",!0)):(s.setAttribute("data-background-color","secondary"),s.setAttribute("data-primary",!1),s.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","schools,demos-data,stabilization-data,improve-det"),t[0].setAttribute("data-active-section","things nearby"),t[0].setAttribute("data-map-available","true"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(s);const n=document.createElement("cod-button");n.setAttribute("data-label",""),n.setAttribute("data-size","lg"),n.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/print.png"),n.setAttribute("data-img-alt","print"),n.setAttribute("data-shape","square"),n.setAttribute("data-nav-value","print"),n.setAttribute("data-icon",""),"print"==t[0].getAttribute("data-active-section")?(n.setAttribute("data-background-color","success"),n.setAttribute("data-primary",!0)):(n.setAttribute("data-background-color","secondary"),n.setAttribute("data-primary",!1),n.addEventListener("click",(e=>{e.target.getAttribute("data-nav-value")&&t[0].setAttribute("data-app-state","print")}))),o.appendChild(n)}r.appendChild(o)}}customElements.define("app-geocoder",i),customElements.define("app-nav-tools",s);class n extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"}).innerHTML='\n \n \n
Offcanvas
\n
\n \n

\n Some text as placeholder. In real life you can have the elements you\n have chosen. Like, text, images, lists, etc.\n

\n
\n
\n '}attributeChangedCallback(e,t,a){"data-panel-data"==a&&this.clearDisplay(this),"data-pagination"==e&&this.clearDisplay(this),this.loadDisplay(this)}clearDisplay(e){const t=e.shadowRoot;for(;t.firstChild;)t.removeChild(t.firstChild)}formatDate(e){const t=new Date(e);return"".concat(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()]," ").concat(t.getDate(),", ").concat(t.getFullYear())}printInfo(e){let t=e.buildDataSection(e),a=window.open("","","height=500, width=500");a.document.write(""),a.document.write(""),a.document.write(""),a.document.write(t.children[1].innerHTML),a.document.write(""),a.document.close(),a.print()}loadDisplay(e){const t=e.shadowRoot,a=document.createElement("section"),i=document.createElement("app-geocoder"),s=document.createElement("app-nav-tools"),n=document.getElementsByTagName("my-home-info");switch(s.printInfo=e.printInfo,a.id="display-wrapper",this.getAttribute("data-display-type")){case"active-panel":console.log("loading panel");let r=JSON.parse(this.getAttribute("data-panel-data")),o=document.createElement("cod-offcanvas");o.id="d6-map-panel",o.setAttribute("data-show","true");let c=document.createElement("cod-offcanvas-header"),l=document.createElement("cod-offcanvas-body");c.innerHTML="
".concat(r.properties.business_name),l.innerHTML="\n

Address: ".concat(r.properties.address,"

\n

Phone: ").concat(r.properties.business_phone_number,"

\n

Website: ").concat(r.properties.business_phone_website,"

\n "),o.appendChild(c),o.appendChild(l),a.appendChild(o),t.appendChild(a),console.log(o);break;case"active":t.appendChild(e.welcomeStyle),a.appendChild(i),t.appendChild(a);break;case"loading":const d=document.createElement("cod-loader");d.setAttribute("data-color","color-3"),a.appendChild(d),t.appendChild(a);break;case"results":let u=JSON.parse(n[0].getAttribute("data-parcel-id"));t.appendChild(e.resultsStyle);let p=document.createElement("section");p.className="results-container",p.appendChild(s);let h=document.createElement("article");h.className="dataset-results";let m=document.createElement("article");m.className="result-address",m.innerText=u.address,h.appendChild(m);let b=e.buildDataSection(e);h.appendChild(b),p.appendChild(h),a.appendChild(p),t.appendChild(a);break;case"error":let g=document.createElement("section");t.appendChild(e.resultsStyle),g.className="results-container",g.appendChild(s);let f=document.createElement("article");f.className="error-result",f.innerHTML='\n \n \n \n \n \n \n \n \n \n \n

No Information found on this address. Please close and try again.

\n ',g.appendChild(f),a.appendChild(g),t.appendChild(a);break;case"print":let y=JSON.parse(n[0].getAttribute("data-parcel-id"));t.appendChild(e.resultsStyle);let A=document.createElement("section");A.className="results-container",A.appendChild(s);let v=document.createElement("article");v.className="dataset-results";let _=document.createElement("article");_.className="result-address",_.innerText=y.address,v.appendChild(_);let k=e.buildDataSection(e);v.appendChild(k),A.appendChild(v),a.appendChild(A),t.appendChild(a),e.printInfo(e)}}}const r=JSON.parse('{"layers":[{"name":"city-facilities","layers":[{"name":"city-facilities","type":"circle","clickable":true,"radius":7,"color":"#004445","active":false,"sort":9,"source":"city-facilities"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/D6CRG_Facilities/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token="},{"name":"neighborhoods","layers":[{"name":"neighborhoods-lines","type":"line","color":"#004445","opacity":null,"width":3,"active":false,"source":"neighborhoods"},{"name":"neighborhoods-fill","type":"fill","color":"#004445","opacity":0.1,"width":null,"active":false,"source":"neighborhoods"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/Current_City_of_Detroit_Neighborhoods/FeatureServer/0/query?where=&objectIds=&time=&geometry=%7B%22rings%22:%5B%5B%5B-83.1320996355041,42.3646518257198%5D,%5B-83.0642768315531,42.356786022708%5D,%5B-83.0409565667773,42.3284742614117%5D,%5B-83.160728943609,42.2553319508101%5D,%5B-83.1641605079943,42.2866738658063%5D,%5B-83.1419451710181,42.3040697098989%5D,%5B-83.1499042444353,42.366344338128%5D,%5B-83.1320996355041,42.3646518257198%5D%5D%5D,%22spatialReference%22:%7B%22wkid%22:4326%7D%7D&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=4326&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&f=geojson"},{"name":"neighborhood-labels","layers":[{"name":"neighborhood-labels","type":"text","color":"#004445","opacity":null,"width":null,"active":false,"size":18,"text":"name","source":"neighborhood-labels"}],"source":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"name":"Corktown"},"geometry":{"type":"Point","coordinates":[-83.07282646989103,42.32961501309612]}},{"type":"Feature","properties":{"name":"Boynton"},"geometry":{"type":"Point","coordinates":[-83.1579648533529,42.27024489996674]}},{"type":"Feature","properties":{"name":"Oakwood Heights"},"geometry":{"type":"Point","coordinates":[-83.15508659062496,42.28717068851953]}},{"type":"Feature","properties":{"name":"Delray"},"geometry":{"type":"Point","coordinates":[-83.11296323072324,42.29778775884678]}},{"type":"Feature","properties":{"name":"Claytown"},"geometry":{"type":"Point","coordinates":[-83.1372729131192,42.33376856293899]}},{"type":"Feature","properties":{"name":"Barton-McFarland"},"geometry":{"type":"Point","coordinates":[-83.16001923650751,42.36381195702009]}},{"type":"Feature","properties":{"name":"Springwells"},"geometry":{"type":"Point","coordinates":[-83.1337558547591,42.30714823602721]}},{"type":"Feature","properties":{"name":"Chadsey Condon"},"geometry":{"type":"Point","coordinates":[-83.10737760168989,42.338791990914615]}},{"type":"Feature","properties":{"name":"Woodbridge"},"geometry":{"type":"Point","coordinates":[-83.08133686849408,42.349030442971795]}},{"type":"Feature","properties":{"name":"Nardin Park"},"geometry":{"type":"Point","coordinates":[-83.13077289912039,42.375735013140826]}},{"type":"Feature","properties":{"name":"Petoskey-Otsego"},"geometry":{"type":"Point","coordinates":[-83.11918399996382,42.36275220516867]}},{"type":"Feature","properties":{"name":"North Corktown"},"geometry":{"type":"Point","coordinates":[-83.07759700001928,42.33638424529505]}},{"type":"Feature","properties":{"name":"Cultural Center"},"geometry":{"type":"Point","coordinates":[-83.06168146658668,42.36197836659175]}},{"type":"Feature","properties":{"name":"Carbon Works"},"geometry":{"type":"Point","coordinates":[-83.12902757657342,42.29056056758165]}},{"type":"Feature","properties":{"name":"Michigan-Martin"},"geometry":{"type":"Point","coordinates":[-83.1218418540499,42.32730659525782]}},{"type":"Feature","properties":{"name":"Hubbard Farms"},"geometry":{"type":"Point","coordinates":[-83.08931246670545,42.318165766622805]}},{"type":"Feature","properties":{"name":"Jeffries"},"geometry":{"type":"Point","coordinates":[-83.0723868857715,42.34702419994705]}},{"type":"Feature","properties":{"name":"Southwest"},"geometry":{"type":"Point","coordinates":[-83.1008023415964,42.31957932899555]}},{"type":"Feature","properties":{"name":"Hubbard Richard"},"geometry":{"type":"Point","coordinates":[-83.07259022120435,42.32402512391472]}},{"type":"Feature","properties":{"name":"NW Goldberg"},"geometry":{"type":"Point","coordinates":[-83.10152098612888,42.35535822224762]}},{"type":"Feature","properties":{"name":"Brush Park"},"geometry":{"type":"Point","coordinates":[-83.05209596296444,42.34448261114053]}},{"type":"Feature","properties":{"name":"Core City"},"geometry":{"type":"Point","coordinates":[-83.08571334608533,42.34346378537158]}},{"type":"Feature","properties":{"name":"Midwest"},"geometry":{"type":"Point","coordinates":[-83.12620126448498,42.35465050488514]}},{"type":"Feature","properties":{"name":"LaSalle Gardens"},"geometry":{"type":"Point","coordinates":[-83.09701643203283,42.36524323933571]}},{"type":"Feature","properties":{"name":"Wildemere Park"},"geometry":{"type":"Point","coordinates":[-83.10536059986863,42.36211034281844]}},{"type":"Feature","properties":{"name":"Downtown"},"geometry":{"type":"Point","coordinates":[-83.0486367620086,42.33541705812017]}},{"type":"Feature","properties":{"name":"Midtown"},"geometry":{"type":"Point","coordinates":[-83.06147678876276,42.34487308216902]}},{"type":"Feature","properties":{"name":"Wayne State"},"geometry":{"type":"Point","coordinates":[-83.07172635481048,42.35720306446915]}},{"type":"Feature","properties":{"name":"Elijah McCoy"},"geometry":{"type":"Point","coordinates":[-83.0856930728994,42.35797401438465]}},{"type":"Feature","properties":{"name":"West Side Industrial"},"geometry":{"type":"Point","coordinates":[-83.07746939713722,42.31825860418131]}},{"type":"Feature","properties":{"name":"Mexicantown"},"geometry":{"type":"Point","coordinates":[-83.08419597827165,42.32063926092315]}}]}},{"name":"police-precincts","layers":[{"name":"police-precincts-lines","type":"line","color":"#0658c4","opacity":null,"width":3,"active":false,"source":"police-precincts"},{"name":"police-precincts-fill","type":"fill","color":"#0658c4","opacity":0.1,"width":null,"active":false,"source":"police-precincts"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/DPD_Precincts_Reid2/FeatureServer/0/query?query?where=&objectIds=&time=&geometry=%7B%22rings%22:%5B%5B%5B-83.1320996355041,42.3646518257198%5D,%5B-83.0642768315531,42.356786022708%5D,%5B-83.0409565667773,42.3284742614117%5D,%5B-83.160728943609,42.2553319508101%5D,%5B-83.1641605079943,42.2866738658063%5D,%5B-83.1419451710181,42.3040697098989%5D,%5B-83.1499042444353,42.366344338128%5D,%5B-83.1320996355041,42.3646518257198%5D%5D%5D,%22spatialReference%22:%7B%22wkid%22:4326%7D%7D&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=4326&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&f=geojson"},{"name":"police-precincts-labels","layers":[{"name":"police-precincts-labels","type":"text","color":"#004445","opacity":null,"width":null,"active":false,"size":18,"text":"name","source":"police-precincts-labels"}],"source":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"name":"10"},"geometry":{"type":"Point","coordinates":[-83.12541577921839,42.37984807216043]}},{"type":"Feature","properties":{"name":"02"},"geometry":{"type":"Point","coordinates":[-83.16300432338159,42.37707565997647]}},{"type":"Feature","properties":{"name":"03"},"geometry":{"type":"Point","coordinates":[-83.07080108270279,42.35507659946862]}},{"type":"Feature","properties":{"name":"04"},"geometry":{"type":"Point","coordinates":[-83.13126490810902,42.29754212403098]}}]}},{"name":"zip-codes","layers":[{"name":"zip-codes-lines","type":"line","color":"#481718","opacity":null,"width":3,"active":false,"source":"zip-codes"},{"name":"zip-codes-fill","type":"fill","color":"#481718","opacity":0.1,"width":null,"active":false,"source":"zip-codes"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/ZipCodes/FeatureServer/0/query?query?where=&objectIds=&time=&geometry=%7B%22rings%22:%5B%5B%5B-83.1320996355041,42.3646518257198%5D,%5B-83.0642768315531,42.356786022708%5D,%5B-83.0409565667773,42.3284742614117%5D,%5B-83.160728943609,42.2553319508101%5D,%5B-83.1641605079943,42.2866738658063%5D,%5B-83.1419451710181,42.3040697098989%5D,%5B-83.1499042444353,42.366344338128%5D,%5B-83.1320996355041,42.3646518257198%5D%5D%5D,%22spatialReference%22:%7B%22wkid%22:4326%7D%7D&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=4326&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&f=geojson"},{"name":"zip-codes-labels","layers":[{"name":"zip-codes-labels","type":"text","color":"#004445","opacity":null,"width":null,"active":false,"size":18,"text":"name","source":"zip-codes-labels"}],"source":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"name":"48217"},"geometry":{"type":"Point","coordinates":[-83.15747506005572,42.28552547780845]}},{"type":"Feature","properties":{"name":"48204"},"geometry":{"type":"Point","coordinates":[-83.14024042751899,42.36615057371983]}},{"type":"Feature","properties":{"name":"48210"},"geometry":{"type":"Point","coordinates":[-83.13217799269209,42.3405603001169]}},{"type":"Feature","properties":{"name":"48209"},"geometry":{"type":"Point","coordinates":[-83.11710302399314,42.29451023438793]}},{"type":"Feature","properties":{"name":"48206"},"geometry":{"type":"Point","coordinates":[-83.10916791825414,42.37588429276462]}},{"type":"Feature","properties":{"name":"48208"},"geometry":{"type":"Point","coordinates":[-83.09385877016358,42.349792930410075]}},{"type":"Feature","properties":{"name":"48202"},"geometry":{"type":"Point","coordinates":[-83.07388335555508,42.36697127728427]}},{"type":"Feature","properties":{"name":"48216"},"geometry":{"type":"Point","coordinates":[-83.07496285230572,42.32327940328287]}},{"type":"Feature","properties":{"name":"48201"},"geometry":{"type":"Point","coordinates":[-83.0593872943856,42.34454480372727]}},{"type":"Feature","properties":{"name":"48226"},"geometry":{"type":"Point","coordinates":[-83.04367510228893,42.33246074385938]}}]}},{"name":"coucil-district-6","layers":[{"name":"coucil-district-6-lines","type":"line","color":"#745DA8","opacity":null,"width":3,"active":true,"source":"coucil-district-6"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/Council_Districts/FeatureServer/0/query?where=DistrictNu%3D6&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&returnCentroid=false&returnEnvelope=false&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token="}]}'),o=JSON.parse('{"en":{"yes":["Yes"],"no":["No"],"intro":[],"panel":["Address:","Business Type:","Business Owner Demographics:","Asian Owned:","Black Owned:","LGBTQ Owned:","Indigenous Owned:","Middle Eastern Owned:","Veteran Owned:","Minority Owned:","Woman Owned:","Service:","Community Health:","Dental:","Urgent Care:","Family Health:","Mental Health:","Pediatrics:","Primary Care:","Sexual Health:","Specialist:","Other Health Services:","Adds & Marketing","Automotive:","Bar/Restaurant:","Construction:","Entertainment:","Human Services:","Landscape:","Legal & Financial:","Personal Care:","Manufacturing & Distribution:","Place of Worship:","Retail:","Other:","Amenities:"],"boundaries":["Boundaries","Neighborhoods","Police Precincts","Zip Codes","City Facilities"],"filters":["Data Filters","By Ownership:","Asian Owned","Black Owned","LGBTQ Owned","Indigenous Owned","Middle Eastern Owned","Veteran Owned","Minority Owned","Woman Owned","By Services:","Community Health","Healthcare/Medical/Dental","Emergency/Urgent Care","Family Health","Mental Health","Pediatrics","Primary Care","Sexual Health","Specialist","Other Health Services","Advertising/Communications/Marketing ","Automotive","Bar/Restaurant","Construction","Entertainment","Human Services","Landscape","Legal/Financial","Personal Care/Services","Manufacturing/Distribution","Place of Worship","Retail","Other","Note: Selecting multiple filters will include only businesses who meet all criteria, not just one or some of them.","By Amenities:","Public Transit Accessible","ADA Accessible","Bike Rack","Parking lot","Cash only","Free WIFI","Gender Neutral Bathrooms","Rental Space"],"info":["Information","Icon Descriptions","Public transit accessible","ADA accessible","Bike rack","Parking lot","Cash only","Free WiFi","Rental space","Select Language","This directory is brought to you by the Office of Council Member Gabriela Santiago-Romero with the support of the Department of Innovation and Technology. All businesses included in this directory requested to be listed. If you are a local business operating in D6 and would like to be listed, ","please complete this form","for review (note: only businesses located and operating in D6 will be approved, as this is a D6-specific directory)."]},"es":{"yes":["S\xed"],"no":["No"],"intro":[],"panel":["DIRECCI\xd3N:","Tipo de negocio:","Datos demogr\xe1ficos del propietario de la empresa:","Propiedad asi\xe1tica:","Propiedad de negros:","Propiedad LGBTQ:","Propiedad ind\xedgena:","Propiedad de Medio Oriente:","Propiedad de veteranos:","Propiedad de minor\xedas:","Propiedad de una mujer:","Servicio:","Salud de la comunidad:","Dental:","Atenci\xf3n de urgencias:","Salud Familiar:","Salud mental:","Pediatr\xeda:","Atenci\xf3n primaria:","Salud sexual:","Especialista:","Otros Servicios de Salud:","Anuncios y Mercadotecnia:","Automotor:","Bar/Restaurante:","Construcci\xf3n:","Entretenimiento:","Servicios Humanos:","Jardiner\xeda:","Legal y Financieros:","Cuidado Personal:","Fabricaci\xf3n y Distribuci\xf3n:","Lugar de Adoraci\xf3n:","Tienda:","Otro:","Comodidades:"],"boundaries":["Zonas","Barrios","Recintos policiales","C\xf3digos ZIP","Instalaciones de la ciudad"],"filters":["Filtros de datos","Por propiedad:","Propiedad asi\xe1tica","Propiedad negra","Propiedad LGBTQ","Propiedad ind\xedgena","Propiedad del Medio Oriente","Propiedad de veteranos","Propiedad de minor\xedas","Propiedad de una mujer","Por Servicios:","Salud de la comunidad","Dental","Atenci\xf3n de emergencia/urgencia","Salud Familiar","Salud mental","Pediatr\xeda","Atenci\xf3n primaria","Salud sexual","Especialista","Otros servicios de salud","Anuncios y Mercadotecnia","Automotor","Bar/Restaurante","Construcci\xf3n","Entretenimiento","Servicios Humanos","Jardiner\xeda","Legal y Financieros","Cuidado Personal","Fabricaci\xf3n y Distribuci\xf3n","Lugar de Adoraci\xf3n","Tienda","Otro","Nota: Al seleccionar varios filtros, solo se incluir\xe1n las empresas que cumplan con todos los criterios, no solo uno o algunos de ellos.","Por comodidades:","Transporte p\xfablico accesible","Accesible seg\xfan la ADA","Portabicicletas","Estacionamiento","Solamente efectivo","WIFI gratuito","Ba\xf1os de g\xe9nero neutro","Espacio de alquiler"],"info":["Informaci\xf3n","Descripciones de iconos","Transporte p\xfablico accesible","Accesible seg\xfan la ADA","Portabicicletas","Estacionamiento","Solamente efectivo","Wi-Fi gratis","Espacio de alquiler","Seleccione el idioma","Este directorio es presentado por la Oficina de la Concejal Gabriela Santiago-Romero con el apoyo del Departamento de Innovaci\xf3n y Tecnolog\xeda. Todas las empresas incluidas en este directorio solicitaron ser incluidas en la lista. Si usted es una empresa local que opera en D6 y le gustar\xeda aparecer en la lista,","por favor complete este formulario","para revisi\xf3n (nota: solo se aprobar\xe1n las empresas ubicadas y operando en D6, ya que este es un directorio espec\xedfico de D6)."]},"bn":{"yes":["\u09b9\u09cd\u09af\u09be\u0981"],"no":["\u09a8\u09be"],"intro":[],"panel":["\u09a0\u09bf\u0995\u09be\u09a8\u09be:","\u09ac\u09cd\u09af\u09ac\u09b8\u09be\u09b0 \u09a7\u09b0\u09a3:","\u09ac\u09cd\u09af\u09ac\u09b8\u09be\u09b0 \u09ae\u09be\u09b2\u09bf\u0995 \u099c\u09a8\u09b8\u0982\u0996\u09cd\u09af\u09be:","\u098f\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u0995\u09be\u09b2\u09cb \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","LGBTQ \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u0986\u09a6\u09bf\u09ac\u09be\u09b8\u09c0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09ae\u09a7\u09cd\u09af \u09aa\u09cd\u09b0\u09be\u099a\u09cd\u09af\u09c7\u09b0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u0985\u09ad\u09bf\u099c\u09cd\u099e \u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09b8\u0982\u0996\u09cd\u09af\u09be\u09b2\u0998\u09c1 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09ae\u09b9\u09bf\u09b2\u09be \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be:","\u09a8\u0997\u09b0 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u0995\u09c7\u09a8\u09cd\u09a6\u09cd\u09b0:","\u09a6\u09be\u0981\u09a4\u09c7\u09b0:","\u099c\u09b0\u09c1\u09b0\u09c0 \u09af\u09a4\u09cd\u09a8:","\u09aa\u09be\u09b0\u09bf\u09ac\u09be\u09b0\u09bf\u0995 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af:","\u09ae\u09be\u09a8\u09b8\u09bf\u0995 \u09b8\u09be\u09b8\u09cd\u09a5\u09cd\u09af:","\u09b6\u09bf\u09b6\u09c1\u09b0\u09cb\u0997:","\u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u09af\u09a4\u09cd\u09a8:","\u09af\u09cc\u09a8 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af:","\u09ac\u09bf\u09b6\u09c7\u09b7\u099c\u09cd\u099e:","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be:","\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09aa\u09a8 \u0993 \u09ac\u09bf\u09aa\u09a3\u09a8:","\u09b8\u09cd\u09ac\u09af\u09bc\u0982\u099a\u09be\u09b2\u09bf\u09a4:","\u09ac\u09be\u09b0/\u09b0\u09c7\u09b8\u09cd\u09a4\u09cb\u09b0\u09be\u0981:","\u09a8\u09bf\u09b0\u09cd\u09ae\u09be\u09a3:","\u09ac\u09bf\u09a8\u09cb\u09a6\u09a8:","\u09ae\u09be\u09a8\u09ac \u09b8\u09c7\u09ac\u09be:","\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8\u09cd\u0995\u09c7\u09aa:","\u0986\u0987\u09a8\u09bf \u0993 \u0986\u09b0\u09cd\u09a5\u09bf\u0995:","\u0989\u09ce\u09aa\u09be\u09a6\u09a8 \u0993 \u09ac\u09bf\u09a4\u09b0\u09a3:","\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u09af\u09a4\u09cd\u09a8:","\u0989\u09aa\u09be\u09b8\u09a8\u09be \u09b8\u09cd\u09a5\u09be\u09a8:","\u0996\u09c1\u099a\u09b0\u09be:","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af:","\u09b8\u09c1\u09af\u09cb\u0997-\u09b8\u09c1\u09ac\u09bf\u09a7\u09be:"],"boundaries":["\u09b8\u09c0\u09ae\u09be\u09a8\u09be","\u0986\u09b6\u09c7\u09aa\u09be\u09b6\u09c7\u09b0 \u098f\u09b2\u09be\u0995\u09be","\u09aa\u09c1\u09b2\u09bf\u09b6 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u0995\u09cd\u099f\u09b8","\u099c\u09bf\u09aa \u0995\u09cb\u09a1","\u09b6\u09b9\u09b0\u09c7\u09b0 \u09b8\u09c1\u09ac\u09bf\u09a7\u09be"],"filters":["\u09a1\u09c7\u099f\u09be \u09ab\u09bf\u09b2\u09cd\u099f\u09be\u09b0","\u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be \u09a6\u09cd\u09ac\u09be\u09b0\u09be:","\u098f\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u0995\u09be\u09b2\u09cb \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","LGBTQ \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u0986\u09a6\u09bf\u09ac\u09be\u09b8\u09c0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09ae\u09a7\u09cd\u09af\u09aa\u09cd\u09b0\u09be\u099a\u09cd\u09af\u09c7\u09b0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u0985\u09ad\u09bf\u099c\u09cd\u099e \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09b8\u0982\u0996\u09cd\u09af\u09be\u09b2\u0998\u09c1 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09ae\u09b9\u09bf\u09b2\u09be \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be \u09a6\u09cd\u09ac\u09be\u09b0\u09be:","\u09a8\u0997\u09b0 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u0995\u09c7\u09a8\u09cd\u09a6\u09cd\u09b0","\u09a1\u09c7\u09a8\u09cd\u099f\u09be\u09b2","\u099c\u09b0\u09c1\u09b0\u09c0/\u099c\u09b0\u09c1\u09b0\u09c0 \u09af\u09a4\u09cd\u09a8","\u09aa\u09be\u09b0\u09bf\u09ac\u09be\u09b0\u09bf\u0995 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af","\u09ae\u09be\u09a8\u09b8\u09bf\u0995 \u09b8\u09be\u09b8\u09cd\u09a5\u09cd\u09af","\u09aa\u09c7\u09a1\u09bf\u09af\u09bc\u09be\u099f\u09cd\u09b0\u09bf\u0995\u09cd\u09b8","\u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u09af\u09a4\u09cd\u09a8","\u09af\u09cc\u09a8 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af","\u09ac\u09bf\u09b6\u09c7\u09b7\u099c\u09cd\u099e","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be","\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09aa\u09a8 \u0993 \u09ac\u09bf\u09aa\u09a3\u09a8","\u09b8\u09cd\u09ac\u09af\u09bc\u0982\u099a\u09be\u09b2\u09bf\u09a4","\u09ac\u09be\u09b0/\u09b0\u09c7\u09b8\u09cd\u09a4\u09cb\u09b0\u09be\u0981","\u09a8\u09bf\u09b0\u09cd\u09ae\u09be\u09a3","\u09ac\u09bf\u09a8\u09cb\u09a6\u09a8","\u09ae\u09be\u09a8\u09ac \u09b8\u09c7\u09ac\u09be","\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8\u09cd\u0995\u09c7\u09aa","\u0986\u0987\u09a8\u09bf \u0993 \u0986\u09b0\u09cd\u09a5\u09bf\u0995","\u0989\u09ce\u09aa\u09be\u09a6\u09a8 \u0993 \u09ac\u09bf\u09a4\u09b0\u09a3","\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u09af\u09a4\u09cd\u09a8","\u0989\u09aa\u09be\u09b8\u09a8\u09be \u09b8\u09cd\u09a5\u09be\u09a8","\u0996\u09c1\u099a\u09b0\u09be","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af","\u09a6\u09cd\u09b0\u09b7\u09cd\u099f\u09ac\u09cd\u09af: \u098f\u0995\u09be\u09a7\u09bf\u0995 \u09ab\u09bf\u09b2\u09cd\u099f\u09be\u09b0 \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0\u09be \u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u098f\u09ae\u09a8 \u09ac\u09cd\u09af\u09ac\u09b8\u09be\u0997\u09c1\u09b2\u09bf\u0995\u09c7 \u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u09ad\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09ac\u09c7 \u09af\u09be\u09b0\u09be \u09b8\u09ae\u09b8\u09cd\u09a4 \u09ae\u09be\u09a8\u09a6\u09a3\u09cd\u09a1 \u09aa\u09c2\u09b0\u09a3 \u0995\u09b0\u09c7, \u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u098f\u0995\u099f\u09bf \u09ac\u09be \u09a4\u09be\u09a6\u09c7\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u0995\u09af\u09bc\u09c7\u0995\u099f\u09bf \u09a8\u09af\u09bc\u0964","\u09b8\u09c1\u09ac\u09bf\u09a7\u09be\u09b0 \u09a6\u09cd\u09ac\u09be\u09b0\u09be:","\u09aa\u09be\u09ac\u09b2\u09bf\u0995 \u099f\u09cd\u09b0\u09be\u09a8\u099c\u09bf\u099f \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","ADA \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","\u09ac\u09be\u0987\u0995 \u09b0\u09cd\u09af\u09be\u0995","\u09aa\u09be\u09b0\u09cd\u0995\u09bf\u0982 \u09b2\u099f","\u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u09a8\u0997\u09a6","\u09ab\u09cd\u09b0\u09bf \u0993\u09af\u09bc\u09be\u0987\u09ab\u09be\u0987","\u09b2\u09bf\u0999\u09cd\u0997 \u09a8\u09bf\u09b0\u09aa\u09c7\u0995\u09cd\u09b7 \u09ac\u09be\u09a5\u09b0\u09c1\u09ae","\u09ad\u09be\u09a1\u09bc\u09be\u09b0 \u09b8\u09cd\u09a5\u09be\u09a8"],"info":["\u09a4\u09a5\u09cd\u09af","\u0986\u0987\u0995\u09a8 \u09ac\u09b0\u09cd\u09a3\u09a8\u09be","\u09aa\u09be\u09ac\u09b2\u09bf\u0995 \u099f\u09cd\u09b0\u09be\u09a8\u099c\u09bf\u099f \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","ADA \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","\u09ac\u09be\u0987\u0995 \u09b0\u09cd\u09af\u09be\u0995","\u09aa\u09be\u09b0\u09cd\u0995\u09bf\u0982 \u09b2\u099f","\u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u09a8\u0997\u09a6","\u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 \u0993\u09af\u09bc\u09be\u0987\u09ab\u09be\u0987","\u09ad\u09be\u09a1\u09bc\u09be\u09b0 \u099c\u09be\u09af\u09bc\u0997\u09be","\u09ad\u09be\u09b7\u09be \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0","\u098f\u0987 \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf\u099f\u09bf \u0989\u09a6\u09cd\u09ad\u09be\u09ac\u09a8 \u098f\u09ac\u0982 \u09aa\u09cd\u09b0\u09af\u09c1\u0995\u09cd\u09a4\u09bf \u09ac\u09bf\u09ad\u09be\u0997\u09c7\u09b0 \u09b8\u09b9\u09be\u09af\u09bc\u09a4\u09be\u09af\u09bc \u0995\u09be\u0989\u09a8\u09cd\u09b8\u09bf\u09b2 \u09b8\u09a6\u09b8\u09cd\u09af \u0997\u09cd\u09af\u09be\u09ac\u09cd\u09b0\u09bf\u09af\u09bc\u09c7\u09b2\u09be \u09b8\u09be\u09a8\u09cd\u09a4\u09bf\u09af\u09bc\u09be\u0997\u09cb-\u09b0\u09cb\u09ae\u09c7\u09b0\u09cb\u09b0 \u0985\u09ab\u09bf\u09b8 \u09a6\u09cd\u09ac\u09be\u09b0\u09be \u0986\u09aa\u09a8\u09be\u09b0 \u0995\u09be\u099b\u09c7 \u0986\u09a8\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u098f\u0987 \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf\u09a4\u09c7 \u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u09ad\u09c1\u0995\u09cd\u09a4 \u09b8\u09ae\u09b8\u09cd\u09a4 \u09ac\u09cd\u09af\u09ac\u09b8\u09be\u0995\u09c7 \u09a4\u09be\u09b2\u09bf\u0995\u09be\u09ad\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af \u0985\u09a8\u09c1\u09b0\u09cb\u09a7 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u0986\u09aa\u09a8\u09bf \u09af\u09a6\u09bf D6-\u098f \u09b8\u09cd\u09a5\u09be\u09a8\u09c0\u09af\u09bc \u09ac\u09cd\u09af\u09ac\u09b8\u09be \u09aa\u09b0\u09bf\u099a\u09be\u09b2\u09a8\u09be \u0995\u09b0\u09c7\u09a8 \u098f\u09ac\u0982 \u09a4\u09be\u09b2\u09bf\u0995\u09be\u09ad\u09c1\u0995\u09cd\u09a4 \u09b9\u09a4\u09c7 \u099a\u09be\u09a8,","\u098f\u0987 \u09ab\u09b0\u09cd\u09ae \u09aa\u09c2\u09b0\u09a3 \u0995\u09b0\u09c1\u09a8","\u09aa\u09b0\u09cd\u09af\u09be\u09b2\u09cb\u099a\u09a8\u09be\u09b0 \u099c\u09a8\u09cd\u09af (\u09a6\u09cd\u09b0\u09b7\u09cd\u099f\u09ac\u09cd\u09af: \u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 D6-\u098f \u0985\u09ac\u09b8\u09cd\u09a5\u09bf\u09a4 \u098f\u09ac\u0982 \u09aa\u09b0\u09bf\u099a\u09be\u09b2\u09bf\u09a4 \u09ac\u09cd\u09af\u09ac\u09b8\u09be\u0997\u09c1\u09b2\u09bf \u0985\u09a8\u09c1\u09ae\u09cb\u09a6\u09bf\u09a4 \u09b9\u09ac\u09c7, \u0995\u09be\u09b0\u09a3 \u098f\u099f\u09bf \u098f\u0995\u099f\u09bf D6-\u09a8\u09bf\u09b0\u09cd\u09a6\u09bf\u09b7\u09cd\u099f \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf)\u0964"]},"ar":{"yes":["\u0646\u0639\u0645"],"no":["\u0644\u0627"],"intro":[],"panel":["\u0639\u0646\u0648\u0627\u0646:","\u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644:","\u0627\u0644\u062a\u0631\u0643\u064a\u0628\u0629 \u0627\u0644\u0633\u0643\u0627\u0646\u064a\u0629 \u0644\u0623\u0635\u062d\u0627\u0628 \u0627\u0644\u0623\u0639\u0645\u0627\u0644:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0627\u0644\u0622\u0633\u064a\u0648\u064a\u0629:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0627\u0644\u0633\u0648\u062f\u0627\u0621:","\u0645\u0645\u0644\u0648\u0643\u0629 LGBTQ:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0633\u0643\u0627\u0646 \u0627\u0644\u0623\u0635\u0644\u064a\u064a\u0646:","\u0645\u0645\u0644\u0648\u0643\u0629 \u0645\u0646 \u0627\u0644\u0634\u0631\u0642 \u0627\u0644\u0623\u0648\u0633\u0637:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0645\u062d\u0627\u0631\u0628\u064a\u0646 \u0627\u0644\u0642\u062f\u0627\u0645\u0649:","\u062a\u0645\u0644\u0643\u0647\u0627 \u0623\u0642\u0644\u064a\u0629:","\u0627\u0645\u0631\u0623\u0629 \u0645\u0645\u0644\u0648\u0643\u0629:","\u062e\u062f\u0645\u0629:","\u0635\u062d\u0629 \u0627\u0644\u0645\u062c\u062a\u0645\u0639:","\u0637\u0628 \u0627\u0644\u0623\u0633\u0646\u0627\u0646:","\u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0639\u0627\u062c\u0644\u0629:","\u0635\u062d\u0629 \u0627\u0644\u0623\u0633\u0631\u0629:","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u0646\u0641\u0633\u064a\u0629:","\u0637\u0628 \u0627\u0644\u0623\u0637\u0641\u0627\u0644:","\u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0635\u062d\u064a\u0629 \u0627\u0644\u0623\u0648\u0644\u064a\u0629:","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u062c\u0646\u0633\u064a\u0629:","\u0645\u062a\u062e\u0635\u0635:","\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0635\u062d\u064a\u0629 \u0627\u0644\u0623\u062e\u0631\u0649:","\u0627\u0644\u0625\u0639\u0644\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u062a\u0633\u0648\u064a\u0642:","\u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a:","\u0628\u0627\u0631/\u0645\u0637\u0639\u0645:","\u0628\u0646\u0627\u0621:","\u062a\u0631\u0641\u064a\u0647:","\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0625\u0646\u0633\u0627\u0646\u064a\u0629:","\u0645\u0646\u0638\u0631 \u062c\u0645\u0627\u0644\u064a:","\u0627\u0644\u0642\u0627\u0646\u0648\u0646\u064a\u0629 \u0648\u0627\u0644\u0645\u0627\u0644\u064a\u0629:","\u0627\u0644\u062a\u0635\u0646\u064a\u0639 \u0648\u0627\u0644\u062a\u0648\u0632\u064a\u0639:","\u0631\u0639\u0627\u064a\u0629 \u0634\u062e\u0635\u064a\u0629:","\u0645\u0643\u0627\u0646 \u0644\u0644\u0639\u0628\u0627\u062f\u0629:","\u0628\u064a\u0639 \u0628\u0627\u0644\u062a\u062c\u0632\u0626\u0629:","\u0622\u062e\u0631:","\u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0631\u0627\u062d\u0629:"],"boundaries":["\u062d\u062f\u0648\u062f","\u0623\u062d\u064a\u0627\u0621","\u0645\u062e\u0627\u0641\u0631 \u0627\u0644\u0634\u0631\u0637\u0629","\u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064a\u062f\u064a","\u0645\u0631\u0627\u0641\u0642 \u0627\u0644\u0645\u062f\u064a\u0646\u0629"],"filters":["\u0645\u0631\u0634\u062d\u0627\u062a \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a","\u062d\u0633\u0628 \u0627\u0644\u0645\u0644\u0643\u064a\u0629:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0627\u0644\u0622\u0633\u064a\u0648\u064a\u0629","\u0627\u0644\u0623\u0633\u0648\u062f \u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629","\u0645\u0645\u0644\u0648\u0643\u0629 LGBTQ","\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0633\u0643\u0627\u0646 \u0627\u0644\u0623\u0635\u0644\u064a\u064a\u0646","\u0627\u0644\u0634\u0631\u0642 \u0627\u0644\u0623\u0648\u0633\u0637 \u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0645\u062d\u0627\u0631\u0628\u064a\u0646 \u0627\u0644\u0642\u062f\u0627\u0645\u0649","\u062a\u0645\u0644\u0643\u0647\u0627 \u0623\u0642\u0644\u064a\u0629","\u0627\u0645\u0631\u0623\u0629 \u0645\u0645\u0644\u0648\u0643\u0629","\u062d\u0633\u0628 \u0627\u0644\u062e\u062f\u0645\u0627\u062a:","\u0635\u062d\u0629 \u0627\u0644\u0645\u062c\u062a\u0645\u0639","\u0637\u0628 \u0627\u0644\u0623\u0633\u0646\u0627\u0646","\u0627\u0644\u0637\u0648\u0627\u0631\u0626 / \u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0639\u0627\u062c\u0644\u0629","\u0635\u062d\u0629 \u0627\u0644\u0623\u0633\u0631\u0629","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u0646\u0641\u0633\u064a\u0629","\u0637\u0628 \u0627\u0644\u0623\u0637\u0641\u0627\u0644","\u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0635\u062d\u064a\u0629 \u0627\u0644\u0623\u0648\u0644\u064a\u0629","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u062c\u0646\u0633\u064a\u0629","\u0645\u062a\u062e\u0635\u0635","\u062e\u062f\u0645\u0627\u062a \u0635\u062d\u064a\u0629 \u0623\u062e\u0631\u0649","\u0627\u0644\u0625\u0639\u0644\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u062a\u0633\u0648\u064a\u0642","\u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a","\u0628\u0627\u0631/\u0645\u0637\u0639\u0645","\u0628\u0646\u0627\u0621","\u062a\u0631\u0641\u064a\u0647","\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0625\u0646\u0633\u0627\u0646\u064a\u0629","\u0645\u0646\u0638\u0631 \u062c\u0645\u0627\u0644\u064a","\u0627\u0644\u0642\u0627\u0646\u0648\u0646\u064a\u0629 \u0648\u0627\u0644\u0645\u0627\u0644\u064a\u0629","\u0627\u0644\u062a\u0635\u0646\u064a\u0639 \u0648\u0627\u0644\u062a\u0648\u0632\u064a\u0639","\u0631\u0639\u0627\u064a\u0629 \u0634\u062e\u0635\u064a\u0629","\u0645\u0643\u0627\u0646 \u0644\u0644\u0639\u0628\u0627\u062f\u0629","\u0628\u064a\u0639 \u0628\u0627\u0644\u062a\u062c\u0632\u0626\u0629","\u0622\u062e\u0631","\u0645\u0644\u0627\u062d\u0638\u0629: \u0633\u064a\u0624\u062f\u064a \u062a\u062d\u062f\u064a\u062f \u0639\u0648\u0627\u0645\u0644 \u062a\u0635\u0641\u064a\u0629 \u0645\u062a\u0639\u062f\u062f\u0629 \u0625\u0644\u0649 \u062a\u0636\u0645\u064a\u0646 \u0627\u0644\u0623\u0646\u0634\u0637\u0629 \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629 \u0627\u0644\u062a\u064a \u062a\u0633\u062a\u0648\u0641\u064a \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0639\u0627\u064a\u064a\u0631 \u0641\u0642\u0637\u060c \u0648\u0644\u064a\u0633 \u0645\u0639\u064a\u0627\u0631\u064b\u0627 \u0648\u0627\u062d\u062f\u064b\u0627 \u0641\u0642\u0637 \u0623\u0648 \u0628\u0639\u0636\u0647\u0627.","\u062d\u0633\u0628 \u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0631\u0627\u062d\u0629:","\u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0646\u0642\u0644 \u0627\u0644\u0639\u0627\u0645 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627","ADA \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627","\u0631\u0641 \u0627\u0644\u062f\u0631\u0627\u062c\u0629","\u0645\u0648\u0642\u0641 \u0644\u0644\u0633\u064a\u0627\u0631\u0627\u062a","\u0646\u0642\u062f \u0641\u0642\u0637","\u062e\u062f\u0645\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0627\u0644\u0644\u0627\u0633\u0644\u0643\u064a \u0628\u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a \u0639\u0628\u0631 \u062a\u0642\u0646\u064a\u0629 \u0648\u0627\u064a \u0641\u0627\u064a","\u062d\u0645\u0627\u0645\u0627\u062a \u0645\u062d\u0627\u064a\u062f\u0629 \u0628\u064a\u0646 \u0627\u0644\u062c\u0646\u0633\u064a\u0646","\u0645\u0633\u0627\u062d\u0629 \u0627\u0644\u0625\u064a\u062c\u0627\u0631"],"info":["\u0645\u0639\u0644\u0648\u0645\u0629","\u0623\u0648\u0635\u0627\u0641 \u0627\u0644\u0623\u064a\u0642\u0648\u0646\u0627\u062a","\u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0646\u0642\u0644 \u0627\u0644\u0639\u0627\u0645 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627","\u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 ADA","\u0631\u0641 \u0627\u0644\u062f\u0631\u0627\u062c\u0629","\u0633\u0627\u062d\u0629 \u0644\u0627\u0646\u062a\u0638\u0627\u0631 \u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a","\u0646\u0642\u062f \u0641\u0642\u0637","\u0648\u0627\u0649 \u0641\u0627\u0649 \u0645\u062c\u0627\u0646\u0649","\u0645\u0633\u0627\u062d\u0629 \u0644\u0644\u0625\u064a\u062c\u0627\u0631","\u0627\u062e\u062a\u0627\u0631 \u0627\u0644\u0644\u063a\u0629","\u062a\u0645 \u062a\u0642\u062f\u064a\u0645 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0625\u0644\u064a\u0643 \u0645\u0646 \u0642\u0628\u0644 \u0645\u0643\u062a\u0628 \u0639\u0636\u0648 \u0627\u0644\u0645\u062c\u0644\u0633 \u063a\u0627\u0628\u0631\u064a\u064a\u0644\u0627 \u0633\u0627\u0646\u062a\u064a\u0627\u063a\u0648 \u0631\u0648\u0645\u064a\u0631\u0648 \u0628\u062f\u0639\u0645 \u0645\u0646 \u0642\u0633\u0645 \u0627\u0644\u0627\u0628\u062a\u0643\u0627\u0631 \u0648\u0627\u0644\u062a\u0643\u0646\u0648\u0644\u0648\u062c\u064a\u0627. \u062c\u0645\u064a\u0639 \u0627\u0644\u0634\u0631\u0643\u0627\u062a \u0627\u0644\u0645\u062f\u0631\u062c\u0629 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0637\u0644\u0628\u062a \u0625\u062f\u0631\u0627\u062c\u0647\u0627. \u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0645\u062b\u0644 \u0634\u0631\u0643\u0629 \u0645\u062d\u0644\u064a\u0629 \u062a\u0639\u0645\u0644 \u0641\u064a D6 \u0648\u062a\u0631\u063a\u0628 \u0641\u064a \u0623\u0646 \u064a\u062a\u0645 \u0625\u062f\u0631\u0627\u062c\u0643 \u0641\u064a \u0627\u0644\u0642\u0627\u0626\u0645\u0629\u060c","\u064a\u0631\u062c\u0649 \u0625\u0643\u0645\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u0646\u0645\u0648\u0630\u062c","\u0644\u0644\u0645\u0631\u0627\u062c\u0639\u0629 (\u0645\u0644\u0627\u062d\u0638\u0629: \u0633\u064a\u062a\u0645 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u0634\u0631\u0643\u0627\u062a \u0627\u0644\u0645\u0648\u062c\u0648\u062f\u0629 \u0648\u0627\u0644\u0639\u0627\u0645\u0644\u0629 \u0641\u064a D6\u060c \u062d\u064a\u062b \u0623\u0646 \u0647\u0630\u0627 \u062f\u0644\u064a\u0644 \u062e\u0627\u0635 \u0628\u0640 D6)."]}}'),c=a.p+"static/media/logo2.be972cd9.png";var l=a(160);customElements.define("app-display",n);class d extends HTMLElement{static get observedAttributes(){return["data-app-state","data-parcel-id","data-map-state","data-active-boundaries","data-active-filters","data-language"]}constructor(){super();const e=this.attachShadow({mode:"open"}),t=document.getElementsByTagName("d6-business-map");t[0].getAttribute("data-app-state");this.mainData={name:"d6",data:"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token="},this.layers=r,this.languageText=o,console.log(this.languageText);const a=document.createElement("style");a.textContent="#app-wrapper{\n position: relative;\n display: flex;\n -ms-flex-align: stretch;\n height: 800px;\n}\n\ncod-map{\n flex: 1;\n}\n\n#d6-map-nav{\n position: absolute;\n display: flex;\n flex-direction: column;\n top: 1em;\n left: 1em;\n z-index: 10;\n}\n\n.offcanvas-title img{\n width: 6em;\n position: relative;\n left: 8em;\n}\n\n#d6-start-screen{\n z-index: 11;\n}",this.shadowRoot.appendChild(a),this.appWrapper=document.createElement("section"),this.appWrapper.id="app-wrapper",e.appendChild(this.appWrapper),this.nav=document.createElement("section"),this.nav.id="d6-map-nav",this.filterBtn=document.createElement("cod-button"),this.filterBtn.setAttribute("data-label",""),this.filterBtn.setAttribute("data-size","lg"),this.filterBtn.setAttribute("data-img",""),this.filterBtn.setAttribute("data-img-alt",""),this.filterBtn.setAttribute("data-shape","square"),this.filterBtn.setAttribute("data-nav-value","filters"),this.filterBtn.setAttribute("data-icon","funnel"),this.filterBtn.setAttribute("data-icon-size","medium"),this.filterBtn.setAttribute("data-aria-label","Filters"),this.filterBtn.setAttribute("data-extra-classes","icon-center"),this.filterBtn.setAttribute("data-background-color","primary"),this.filterBtn.setAttribute("data-primary",!0),this.filterBtn.addEventListener("click",(e=>{document.getElementsByTagName("d6-business-map")[0].setAttribute("data-app-state","active-filters")})),this.nav.appendChild(this.filterBtn),this.LayerBtn=document.createElement("cod-button"),this.LayerBtn.setAttribute("data-label",""),this.LayerBtn.setAttribute("data-size","lg"),this.LayerBtn.setAttribute("data-img",""),this.LayerBtn.setAttribute("data-img-alt",""),this.LayerBtn.setAttribute("data-shape","square"),this.LayerBtn.setAttribute("data-nav-value","layers"),this.LayerBtn.setAttribute("data-icon","bounding-box"),this.LayerBtn.setAttribute("data-icon-size","medium"),this.LayerBtn.setAttribute("data-aria-label","Layers"),this.LayerBtn.setAttribute("data-extra-classes","icon-center"),this.LayerBtn.setAttribute("data-background-color","primary"),this.LayerBtn.setAttribute("data-primary",!0),this.LayerBtn.addEventListener("click",(e=>{document.getElementsByTagName("d6-business-map")[0].setAttribute("data-app-state","active-layers")})),this.nav.appendChild(this.LayerBtn),this.infoBtn=document.createElement("cod-button"),this.infoBtn.setAttribute("data-label",""),this.infoBtn.setAttribute("data-size","lg"),this.infoBtn.setAttribute("data-img",""),this.infoBtn.setAttribute("data-img-alt",""),this.infoBtn.setAttribute("data-shape","square"),this.infoBtn.setAttribute("data-nav-value","info"),this.infoBtn.setAttribute("data-icon","exclamation-circle"),this.infoBtn.setAttribute("data-icon-size","medium"),this.infoBtn.setAttribute("data-aria-label","Information"),this.infoBtn.setAttribute("data-extra-classes","icon-center"),this.infoBtn.setAttribute("data-background-color","primary"),this.infoBtn.setAttribute("data-primary",!0),this.infoBtn.addEventListener("click",(e=>{document.getElementsByTagName("d6-business-map")[0].setAttribute("data-app-state","active-info")})),this.nav.appendChild(this.infoBtn),e.appendChild(this.nav),this.panel=document.createElement("cod-offcanvas"),this.panel.id="d6-map-panel",this.panelHeader=document.createElement("cod-offcanvas-header"),this.panelLogo=document.createElement("img"),this.panelLogo.style.width="6em",this.panelLogo.style.position="relative",this.panelLogo.style.left="8em",this.panelLogo.src=c,this.panelHeader.appendChild(this.panelLogo);let i=window.innerHeight-150;this.panelBody=document.createElement("cod-offcanvas-body"),this.panelContent=document.createElement("article"),this.panelContent.style.height="".concat(i,"px"),this.panelContent.style.overflowY="auto",this.panelContent.innerHTML="",this.panelBody.appendChild(this.panelContent),this.panel.appendChild(this.panelHeader),this.panel.appendChild(this.panelBody),e.appendChild(this.panel),this.startScreen=document.createElement("cod-modal"),this.startScreen.setAttribute("data-id","d6-start-screen"),this.startScreen.innerHTML='\n \n \n

Welcome to Council Member Santiago-Romero\'s District 6 Business Directory!\n

This directory provides an overview of businesses located within Detroit City Council District 6 (D6). Those listed have opted-in to this directory, so please note this is not exhaustive of all D6 businesses.

\n

Here are some other helpful tips for navigating this directory:

\n \n

If you are a local business in D6 and would like to be included, please complete this form for review.

\n

For any questions, please email councilmembergabriela@detroitmi.gov with subject line "D6 Directory".

\n
\n \n \n '),e.appendChild(this.startScreen),this.startScreen.setAttribute("data-show",!0),this.layers=this.createLabelLayers(),console.log(this.layers);let s={id:"d6-business",layers:[{name:"data-points",type:"circle",radius:7,color:"#745da8",active:!0,sort:10,source:"data-points"}],source:this.mainData.data};this.map=document.createElement("cod-map"),this.map.id="d6-map",this.map.setAttribute("data-parent-component","d6-business-map"),this.map.setAttribute("data-map-mode","map-panel"),this.map.setAttribute("data-center","-83.103111,42.31103400000001"),this.map.setAttribute("data-zoom","11.5"),this.map.setAttribute("data-popup-layers",JSON.stringify(["city-facilities"])),this.map.setAttribute("data-popup-structure",JSON.stringify({"city-facilities":[{type:"field-value",label:"Name:",value:"Facility"},{type:"field-value",label:"Address:",value:"Address"}]})),this.map.setAttribute("data-map-data",JSON.stringify(s)),this.map.setAttribute("data-map-layers",JSON.stringify(this.layers.layers)),this.map.setAttribute("data-location",this.getAttribute("data-location")),this.map.setAttribute("data-map-state","init"),t[0].setAttribute("data-active-boundaries","coucil-district-6-lines"),this.appWrapper.appendChild(this.map)}createLabelLayers(){const e=this.layers;let t=["neighborhoods","police-precincts","zip-codes"];return e.layers.forEach((a=>{t.includes(a.name)&&fetch(a.source).then((e=>e.json())).then((function(t){let i={type:"FeatureCollection",crs:{type:"name",properties:{name:"EPSG:4326"}},features:[]};switch(t.features.forEach((e=>{let t=(0,l.c)(e.geometry);switch(a.name){case"neighborhoods":t.properties.name="Central Southwest"==e.properties.nhood_name?"Southwest":e.properties.nhood_name,i.features.push(t);break;case"police-precincts":t.properties.name=e.properties.name,i.features.push(t);break;case"zip-codes":t.properties.name=e.properties.zipcode,i.features.push(t)}})),a.name){case"neighborhoods":e.layers[1].source=i;break;case"police-precincts":e.layers[3].source=i;break;case"zip-codes":e.layers[5].source=i}}))})),e}attributeChangedCallback(e,t,a){switch(console.log("App - attribute: ".concat(e,", old: ").concat(t,", new: ").concat(a)),e){case"data-active-filters":if(null!==t){const e=a.split(",");let t=this.buildQuery(e);console.log(t);const i=this;fetch(t).then((e=>e.json())).then((function(e){console.log(e),i.map.map.getSource("data-points")&&i.map.map.getSource("data-points").setData(e)})).catch((e=>{}))}break;case"data-active-boundaries":const e=t.split(","),i=a.split(",");let s;i.length>e.length?(s=this.arrayDifference(i,e),this.changeVisibility(s,"visible",this.map)):(s=this.arrayDifference(e,i),this.changeVisibility(s,"none",this.map));break;case"data-language":this.setAttribute("data-app-state",this.getAttribute("data-app-state"));break;default:this.loadApp(this)}}arrayDifference(e,t){const a=[];for(let i=0;i{switch(e){case"is_asian_owned":case"is_asian_owned":t.push("is_asian_owned%3D1");break;case"is_black_owned":t.push("is_black_owned%3D1");break;case"is_lgbtq_owned":t.push("is_lgbtq_owned%3D1");break;case"is_indigenous_owned":t.push("is_indigenous_owned%3D1");break;case"is_middle_eastern_owned":t.push("is_middle_eastern_owned%3D1");break;case"is_veteran_owned":t.push("is_veteran_owned%3D1");break;case"is_minority_owned":t.push("is_minority_owned%3D1");break;case"is_woman_owned":t.push("is_woman_owned%3D1");break;case"has_clinic_community_health_ser":t.push("has_clinic_community_health_ser%3D1");break;case"has_dental_service":t.push("has_dental_service%3D1");break;case"has_emergency_urgent_care_servi":t.push("has_emergency_urgent_care_servi%3D1");break;case"has_family_health_service":t.push("has_family_health_service%3D1");break;case"has_mental_health_service":t.push("has_mental_health_service%3D1");break;case"has_pediatric_service":t.push("has_pediatric_service%3D1");break;case"has_primary_care_service":t.push("has_primary_care_service%3D1");break;case"has_sexual_health_service":t.push("has_sexual_health_service%3D1");break;case"has_specialist_service":t.push("has_specialist_service%3D1");break;case"has_other_health_service":t.push("has_other_health_service%3D1");break;case"is_ads_comms_marketing":t.push("is_ads_comms_marketing%3D1");break;case"is_automotive":t.push("is_automotive%3D1");break;case"is_bar_restaurant":t.push("is_bar_restaurant%3D1");break;case"is_construction":t.push("is_construction%3D1");break;case"is_entertainment":t.push("is_entertainment%3D1");break;case"is_human_services":t.push("is_human_services%3D1");break;case"is_landscape":t.push("is_landscape%3D1");break;case"is_legal_financial":t.push("is_legal_financial%3D1");break;case"is_manufacturing_distribution":t.push("is_manufacturing_distribution%3D1");break;case"is_personal_care_services":t.push("is_personal_care_services%3D1");break;case"is_place_of_worship":t.push("is_place_of_worship%3D1");break;case"is_retail":t.push("is_retail%3D1");break;case"is_other":t.push("is_other%3D1");break;case"is_public_transit_accessible":t.push("is_public_transit_accessible%3D1");break;case"is_ada_accessible":t.push("is_ada_accessible%3D1");break;case"has_bike_rack":t.push("has_bike_rack%3D1");break;case"has_parking_lot":t.push("has_parking_lot%3D1");break;case"is_cash_only":t.push("is_cash_only%3D1");break;case"has_free_wifi":t.push("has_free_wifi%3D1");break;case"has_gender_neutral_bathrooms":t.push("has_gender_neutral_bathrooms%3D1");break;case"has_rental_space":t.push("has_rental_space%3D1")}})),t=t.join("+AND+"),""===t&&(t="1%3D1"),"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=".concat(t,"&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=")}changeVisibility(e,t,a){e.forEach((e=>{a.map.setLayoutProperty(e,"visibility",t)}))}clearApp(e){const t=e.shadowRoot;for(;t.firstChild;)t.removeChild(t.firstChild)}clearPanel(e){}updateBoundaries(e){const t=document.getElementsByTagName("d6-business-map");let a=null===t[0].getAttribute("data-active-boundaries")?"":t[0].getAttribute("data-active-boundaries"),i=a.split(",");if(a=[],e.target.formCheck.checked)a=i,a.push(e.target.formCheck.value);else{let t=e.target.formCheck.value.split(",");i.forEach((e=>{!t.includes(e)&&a.push(e)}))}a=a.join(","),t[0].setAttribute("data-active-boundaries",a)}updateMainData(e){const t=document.getElementsByTagName("d6-business-map");let a=null===t[0].getAttribute("data-active-filters")?"":t[0].getAttribute("data-active-filters"),i=a.split(",");if(a=[],e.target.formCheck.checked)a=i,a.push(e.target.formCheck.value);else{let t=e.target.formCheck.value.split(",");i.forEach((e=>{!t.includes(e)&&a.push(e)}))}a=a.join(","),t[0].setAttribute("data-active-filters",a)}loadApp(e){const t=e.shadowRoot,a=document.createElement("div");a.id="app-wrapper";const i=e.getAttribute("data-language"),s=e.getAttribute("data-active-boundaries").split(",");let n=[];switch(null!=e.getAttribute("data-active-filters")&&(n=e.getAttribute("data-active-filters").split(",")),e.getAttribute("data-app-state")){case"start-screen":default:break;case"active-panel":let e=JSON.parse(this.getAttribute("data-panel-data"));console.log(e.properties),this.panelContent.innerHTML='\n

'.concat(e.properties.business_name,"

\n

").concat(this.languageText[i].panel[0]," ").concat(e.properties.address,"\n ").concat(e.properties.profit_or_nonprofit?"

".concat(this.languageText[i].panel[1]," ").concat(e.properties.profit_or_nonprofit,"

"):"","\n\n

").concat(this.languageText[i].panel[2],"

\n \n\n

").concat(this.languageText[i].panel[11],"

\n \n\n

").concat(this.languageText[i].panel[35],"

\n

\n ").concat(e.properties.is_public_transit_accessible?'':"","\n ").concat(e.properties.is_ada_accessible?'':""," \n ").concat(e.properties.has_bike_rack?'':""," \n ").concat(e.properties.has_parking_lot?'':""," \n ").concat(e.properties.is_cash_only?'':""," \n ").concat(e.properties.has_free_wifi?'':""," \n ").concat(e.properties.has_gender_neutral_bathrooms?'':""," \n ").concat(e.properties.has_rental_space?'':""," \n

\n "),this.panel.setAttribute("data-show","true");break;case"active-filters":this.panelContent.innerHTML="";const t=document.createElement("p");t.innerText=this.languageText[i].filters[0],t.style.backgroundColor="#745DA8",t.style.color="#fff",t.className="fs-3 fw-bold text-center";const r=document.createElement("p");r.innerText=this.languageText[i].filters[34];const o=document.createElement("p");o.innerText=this.languageText[i].filters[1],o.style.fontWeight="bold";const c=document.createElement("section"),l=document.createElement("cod-form-check");l.setAttribute("data-checked","false"),l.setAttribute("data-id","asian-owned"),l.setAttribute("data-name","data-filters"),l.setAttribute("data-value","is_asian_owned"),n.includes("is_asian_owned")&&l.setAttribute("data-checked",!0),l.setAttribute("data-type","checkbox"),l.setAttribute("data-label",this.languageText[i].filters[2]),l.addEventListener("change",(e=>{this.updateMainData(e)}));const d=document.createElement("cod-form-check");d.setAttribute("data-checked","false"),d.setAttribute("data-id","black-owned"),d.setAttribute("data-name","data-filters"),d.setAttribute("data-value","is_black_owned"),n.includes("is_black_owned")&&d.setAttribute("data-checked",!0),d.setAttribute("data-type","checkbox"),d.setAttribute("data-label",this.languageText[i].filters[3]),d.addEventListener("change",(e=>{this.updateMainData(e)}));const u=document.createElement("cod-form-check");u.setAttribute("data-checked","false"),u.setAttribute("data-id","lgbtq-owned"),u.setAttribute("data-name","data-filters"),u.setAttribute("data-value","is_lgbtq_owned"),n.includes("is_lgbtq_owned")&&u.setAttribute("data-checked",!0),u.setAttribute("data-type","checkbox"),u.setAttribute("data-label",this.languageText[i].filters[4]),u.addEventListener("change",(e=>{this.updateMainData(e)}));const p=document.createElement("cod-form-check");p.setAttribute("data-checked","false"),p.setAttribute("data-id","indigenous-owned"),p.setAttribute("data-name","data-filters"),p.setAttribute("data-value","is_indigenous_owned"),n.includes("is_indigenous_owned")&&p.setAttribute("data-checked",!0),p.setAttribute("data-type","checkbox"),p.setAttribute("data-label",this.languageText[i].filters[5]),p.addEventListener("change",(e=>{this.updateMainData(e)}));const h=document.createElement("cod-form-check");h.setAttribute("data-checked","false"),h.setAttribute("data-id","middle-eastern-owned"),h.setAttribute("data-name","data-filters"),h.setAttribute("data-value","is_middle_eastern_owned"),n.includes("is_middle_eastern_owned")&&h.setAttribute("data-checked",!0),h.setAttribute("data-type","checkbox"),h.setAttribute("data-label",this.languageText[i].filters[6]),h.addEventListener("change",(e=>{this.updateMainData(e)}));const m=document.createElement("cod-form-check");m.setAttribute("data-checked","false"),m.setAttribute("data-id","veteran-owned"),m.setAttribute("data-name","data-filters"),m.setAttribute("data-value","is_veteran_owned"),n.includes("is_veteran_owned")&&m.setAttribute("data-checked",!0),m.setAttribute("data-type","checkbox"),m.setAttribute("data-label",this.languageText[i].filters[7]),m.addEventListener("change",(e=>{this.updateMainData(e)}));const b=document.createElement("cod-form-check");b.setAttribute("data-checked","false"),b.setAttribute("data-id","minority-owned"),b.setAttribute("data-name","data-filters"),b.setAttribute("data-value","is_minority_owned"),n.includes("is_minority_owned")&&b.setAttribute("data-checked",!0),b.setAttribute("data-type","checkbox"),b.setAttribute("data-label",this.languageText[i].filters[8]),b.addEventListener("change",(e=>{this.updateMainData(e)}));const g=document.createElement("cod-form-check");g.setAttribute("data-checked","false"),g.setAttribute("data-id","minority-owned"),g.setAttribute("data-name","data-filters"),g.setAttribute("data-value","is_woman_owned"),n.includes("is_woman_owned")&&g.setAttribute("data-checked",!0),g.setAttribute("data-type","checkbox"),g.setAttribute("data-label",this.languageText[i].filters[9]),g.addEventListener("change",(e=>{this.updateMainData(e)}));const f=document.createElement("p");f.innerText=this.languageText[i].filters[10],f.style.fontWeight="bold";const y=document.createElement("section"),A=document.createElement("cod-form-check");A.setAttribute("data-checked","false"),A.setAttribute("data-id","dental"),A.setAttribute("data-name","data-filters"),A.setAttribute("data-value","has_dental_service"),n.includes("has_dental_service")&&A.setAttribute("data-checked",!0),A.setAttribute("data-type","checkbox"),A.setAttribute("data-label",this.languageText[i].filters[12]),A.addEventListener("change",(e=>{this.updateMainData(e)}));const v=document.createElement("cod-form-check");v.setAttribute("data-checked","false"),v.setAttribute("data-id","marketing"),v.setAttribute("data-name","data-filters"),v.setAttribute("data-value","is_ads_comms_marketing"),n.includes("is_ads_comms_marketing")&&v.setAttribute("data-checked",!0),v.setAttribute("data-type","checkbox"),v.setAttribute("data-label",this.languageText[i].filters[21]),v.addEventListener("change",(e=>{this.updateMainData(e)}));const _=document.createElement("cod-form-check");_.setAttribute("data-checked","false"),_.setAttribute("data-id","automotive"),_.setAttribute("data-name","data-filters"),_.setAttribute("data-value","is_automotive"),n.includes("is_automotive")&&_.setAttribute("data-checked",!0),_.setAttribute("data-type","checkbox"),_.setAttribute("data-label",this.languageText[i].filters[22]),_.addEventListener("change",(e=>{this.updateMainData(e)}));const k=document.createElement("cod-form-check");k.setAttribute("data-checked","false"),k.setAttribute("data-id","bar-restaurant"),k.setAttribute("data-name","data-filters"),k.setAttribute("data-value","is_bar_restaurant"),n.includes("is_bar_restaurant")&&k.setAttribute("data-checked",!0),k.setAttribute("data-type","checkbox"),k.setAttribute("data-label",this.languageText[i].filters[23]),k.addEventListener("change",(e=>{this.updateMainData(e)}));const C=document.createElement("cod-form-check");C.setAttribute("data-checked","false"),C.setAttribute("data-id","construction"),C.setAttribute("data-name","data-filters"),C.setAttribute("data-value","is_construction"),n.includes("is_construction")&&C.setAttribute("data-checked",!0),C.setAttribute("data-type","checkbox"),C.setAttribute("data-label",this.languageText[i].filters[24]),C.addEventListener("change",(e=>{this.updateMainData(e)}));const x=document.createElement("cod-form-check");x.setAttribute("data-checked","false"),x.setAttribute("data-id","entertainment"),x.setAttribute("data-name","data-filters"),x.setAttribute("data-value","is_entertainment"),n.includes("is_entertainment")&&x.setAttribute("data-checked",!0),x.setAttribute("data-type","checkbox"),x.setAttribute("data-label",this.languageText[i].filters[25]),x.addEventListener("change",(e=>{this.updateMainData(e)}));const w=document.createElement("cod-form-check");w.setAttribute("data-checked","false"),w.setAttribute("data-id","human-services"),w.setAttribute("data-name","data-filters"),w.setAttribute("data-value","is_human_services"),n.includes("is_human_services")&&w.setAttribute("data-checked",!0),w.setAttribute("data-type","checkbox"),w.setAttribute("data-label",this.languageText[i].filters[26]),w.addEventListener("change",(e=>{this.updateMainData(e)}));const E=document.createElement("cod-form-check");E.setAttribute("data-checked","false"),E.setAttribute("data-id","landscape"),E.setAttribute("data-name","data-filters"),E.setAttribute("data-value","is_landscape"),n.includes("is_landscape")&&E.setAttribute("data-checked",!0),E.setAttribute("data-type","checkbox"),E.setAttribute("data-label",this.languageText[i].filters[27]),E.addEventListener("change",(e=>{this.updateMainData(e)}));const D=document.createElement("cod-form-check");D.setAttribute("data-checked","false"),D.setAttribute("data-id","legal-financial"),D.setAttribute("data-name","data-filters"),D.setAttribute("data-value","is_legal_financial"),n.includes("is_legal_financial")&&D.setAttribute("data-checked",!0),D.setAttribute("data-type","checkbox"),D.setAttribute("data-label",this.languageText[i].filters[28]),D.addEventListener("change",(e=>{this.updateMainData(e)}));const T=document.createElement("cod-form-check");T.setAttribute("data-checked","false"),T.setAttribute("data-id","manufacturing-distribution"),T.setAttribute("data-name","data-filters"),T.setAttribute("data-value","is_manufacturing_distribution"),n.includes("is_manufacturing_distribution")&&T.setAttribute("data-checked",!0),T.setAttribute("data-type","checkbox"),T.setAttribute("data-label",this.languageText[i].filters[29]),T.addEventListener("change",(e=>{this.updateMainData(e)}));const S=document.createElement("cod-form-check");S.setAttribute("data-checked","false"),S.setAttribute("data-id","personal-care"),S.setAttribute("data-name","data-filters"),S.setAttribute("data-value","is_personal_care_services"),n.includes("is_personal_care_services")&&S.setAttribute("data-checked",!0),S.setAttribute("data-type","checkbox"),S.setAttribute("data-label",this.languageText[i].filters[30]),S.addEventListener("change",(e=>{this.updateMainData(e)}));const B=document.createElement("cod-form-check");B.setAttribute("data-checked","false"),B.setAttribute("data-id","worship"),B.setAttribute("data-name","data-filters"),B.setAttribute("data-value","is_place_of_worship"),n.includes("is_place_of_worship")&&B.setAttribute("data-checked",!0),B.setAttribute("data-type","checkbox"),B.setAttribute("data-label",this.languageText[i].filters[31]),B.addEventListener("change",(e=>{this.updateMainData(e)}));const F=document.createElement("cod-form-check");F.setAttribute("data-checked","false"),F.setAttribute("data-id","retail"),F.setAttribute("data-name","data-filters"),F.setAttribute("data-value","is_retail"),n.includes("is_retail")&&F.setAttribute("data-checked",!0),F.setAttribute("data-type","checkbox"),F.setAttribute("data-label",this.languageText[i].filters[32]),F.addEventListener("change",(e=>{this.updateMainData(e)}));const P=document.createElement("cod-form-check");P.setAttribute("data-checked","false"),P.setAttribute("data-id","other-service"),P.setAttribute("data-name","data-filters"),P.setAttribute("data-value","is_other"),n.includes("is_other")&&P.setAttribute("data-checked",!0),P.setAttribute("data-type","checkbox"),P.setAttribute("data-label",this.languageText[i].filters[33]),P.addEventListener("change",(e=>{this.updateMainData(e)}));const L=document.createElement("p");L.innerText=this.languageText[i].filters[35],L.style.fontWeight="bold";const O=document.createElement("section"),M=document.createElement("cod-form-check");M.setAttribute("data-checked","false"),M.setAttribute("data-id","public-transit"),M.setAttribute("data-name","data-filters"),M.setAttribute("data-value","is_public_transit_accessible"),n.includes("is_public_transit_accessible")&&M.setAttribute("data-checked",!0),M.setAttribute("data-type","checkbox"),M.setAttribute("data-label",this.languageText[i].filters[36]),M.addEventListener("change",(e=>{this.updateMainData(e)}));const R=document.createElement("cod-form-check");R.setAttribute("data-checked","false"),R.setAttribute("data-id","ada-accessible"),R.setAttribute("data-name","data-filters"),R.setAttribute("data-value","is_ada_accessible"),n.includes("is_ada_accessible")&&R.setAttribute("data-checked",!0),R.setAttribute("data-type","checkbox"),R.setAttribute("data-label",this.languageText[i].filters[37]),R.addEventListener("change",(e=>{this.updateMainData(e)}));const N=document.createElement("cod-form-check");N.setAttribute("data-checked","false"),N.setAttribute("data-id","bike-rack"),N.setAttribute("data-name","data-filters"),N.setAttribute("data-value","has_bike_rack"),n.includes("has_bike_rack")&&N.setAttribute("data-checked",!0),N.setAttribute("data-type","checkbox"),N.setAttribute("data-label",this.languageText[i].filters[38]),N.addEventListener("change",(e=>{this.updateMainData(e)}));const z=document.createElement("cod-form-check");z.setAttribute("data-checked","false"),z.setAttribute("data-id","parking"),z.setAttribute("data-name","data-filters"),z.setAttribute("data-value","has_parking_lot"),n.includes("has_parking_lot")&&z.setAttribute("data-checked",!0),z.setAttribute("data-type","checkbox"),z.setAttribute("data-label",this.languageText[i].filters[39]),z.addEventListener("change",(e=>{this.updateMainData(e)}));const I=document.createElement("cod-form-check");I.setAttribute("data-checked","false"),I.setAttribute("data-id","cash-only"),I.setAttribute("data-name","data-filters"),I.setAttribute("data-value","is_cash_only"),n.includes("is_cash_only")&&I.setAttribute("data-checked",!0),I.setAttribute("data-type","checkbox"),I.setAttribute("data-label",this.languageText[i].filters[40]),I.addEventListener("change",(e=>{this.updateMainData(e)}));const G=document.createElement("cod-form-check");G.setAttribute("data-checked","false"),G.setAttribute("data-id","wifi"),G.setAttribute("data-name","data-filters"),G.setAttribute("data-value","has_free_wifi"),n.includes("has_free_wifi")&&G.setAttribute("data-checked",!0),G.setAttribute("data-type","checkbox"),G.setAttribute("data-label",this.languageText[i].filters[41]),G.addEventListener("change",(e=>{this.updateMainData(e)}));const q=document.createElement("cod-form-check");q.setAttribute("data-checked","false"),q.setAttribute("data-id","gender-neutral-bathrooms"),q.setAttribute("data-name","data-filters"),q.setAttribute("data-value","has_gender_neutral_bathrooms"),n.includes("has_gender_neutral_bathrooms")&&q.setAttribute("data-checked",!0),q.setAttribute("data-type","checkbox"),q.setAttribute("data-label",this.languageText[i].filters[42]),q.addEventListener("change",(e=>{this.updateMainData(e)}));const H=document.createElement("cod-form-check");H.setAttribute("data-checked","false"),H.setAttribute("data-id","rental-space"),H.setAttribute("data-name","data-filters"),H.setAttribute("data-value","has_rental_space"),n.includes("has_rental_space")&&H.setAttribute("data-checked",!0),H.setAttribute("data-type","checkbox"),H.setAttribute("data-label",this.languageText[i].filters[43]),H.addEventListener("change",(e=>{this.updateMainData(e)})),this.panelContent.appendChild(t),this.panelContent.appendChild(r),this.panelContent.appendChild(o),c.appendChild(l),c.appendChild(d),c.appendChild(u),c.appendChild(p),c.appendChild(h),c.appendChild(m),c.appendChild(b),c.appendChild(g),this.panelContent.appendChild(c),this.panelContent.appendChild(f),y.appendChild(v),y.appendChild(_),y.appendChild(k),y.appendChild(C),y.appendChild(x),y.appendChild(A),y.appendChild(w),y.appendChild(E),y.appendChild(D),y.appendChild(T),y.appendChild(B),y.appendChild(S),y.appendChild(F),y.appendChild(P),this.panelContent.appendChild(y),this.panelContent.appendChild(L),O.appendChild(M),O.appendChild(R),O.appendChild(N),O.appendChild(z),O.appendChild(I),O.appendChild(G),O.appendChild(q),O.appendChild(H),this.panelContent.appendChild(O),this.panel.setAttribute("data-show","true");break;case"active-layers":this.panelContent.innerHTML="";const j=document.createElement("p");j.innerText=this.languageText[i].boundaries[0],j.style.backgroundColor="#745DA8",j.style.color="#fff",j.className="fs-3 fw-bold text-center";const W=document.createElement("section"),J=document.createElement("cod-form-check");J.setAttribute("data-id","neighborhoods"),J.setAttribute("data-name","map-layer"),console.log(s.includes("neighborhoods-lines")),s.includes("neighborhoods-lines")&&J.setAttribute("data-checked",!0),J.setAttribute("data-value","neighborhoods-lines,neighborhoods-fill,neighborhood-labels"),J.setAttribute("data-type","checkbox"),J.setAttribute("data-label",this.languageText[i].boundaries[1]),J.addEventListener("change",(e=>{this.updateBoundaries(e)}));const V=document.createElement("cod-form-check");V.setAttribute("data-id","police-precincts"),V.setAttribute("data-name","map-layer"),console.log(s.includes("police-precincts-lines")),s.includes("police-precincts-lines")&&V.setAttribute("data-checked",!0),V.setAttribute("data-value","police-precincts-lines,police-precincts-fill,police-precincts-labels"),V.setAttribute("data-type","checkbox"),V.setAttribute("data-label",this.languageText[i].boundaries[2]),V.addEventListener("change",(e=>{this.updateBoundaries(e)}));const U=document.createElement("cod-form-check");U.setAttribute("data-id","zip-codes"),U.setAttribute("data-name","map-layer"),s.includes("zip-codes-lines")&&U.setAttribute("data-checked",!0),U.setAttribute("data-value","zip-codes-lines,zip-codes-fill,zip-codes-labels"),U.setAttribute("data-type","checkbox"),U.setAttribute("data-label",this.languageText[i].boundaries[3]),U.addEventListener("change",(e=>{this.updateBoundaries(e)}));const Q=document.createElement("cod-form-check");Q.setAttribute("data-id","city-facilites"),Q.setAttribute("data-name","map-layer"),s.includes("city-facilities")&&Q.setAttribute("data-checked",!0),Q.setAttribute("data-value","city-facilities"),Q.setAttribute("data-type","checkbox"),Q.setAttribute("data-label",this.languageText[i].boundaries[4]),Q.addEventListener("change",(e=>{this.updateBoundaries(e)})),this.panelContent.appendChild(j),W.appendChild(J),W.appendChild(V),W.appendChild(U),W.appendChild(Q),this.panelContent.appendChild(W),this.panel.setAttribute("data-show","true");break;case"active-info":this.panelContent.innerHTML="";const Z=document.createElement("p");Z.innerText=this.languageText[i].info[0],Z.style.backgroundColor="#745DA8",Z.style.color="#fff",Z.className="fs-3 fw-bold text-center";const Y=document.createElement("label");Y.className="fw-bold",Y.htmlFor="language-selector",Y.innerText=this.languageText[i].info[9];const K=document.createElement("cod-form-select");K.setAttribute("data-id","language-selector"),K.setAttribute("data-aria-label",this.languageText[i].info[9]),K.innerHTML='\n \n \n \n \n \n ");const X=this;K.addEventListener("change",(e=>{const t=e.target.shadowRoot;X.setAttribute("data-language",t.childNodes[1].value)}));const $=document.createElement("p");$.innerHTML="\n
\n ".concat(this.languageText[i].info[10],'\n ').concat(this.languageText[i].info[11]," ").concat(this.languageText[i].info[12],"\n ");const ee=document.createElement("article");ee.innerHTML=" \n
\n

".concat(this.languageText[i].info[1],'

\n

').concat(this.languageText[i].info[2],'

\n

').concat(this.languageText[i].info[3],'

\n

').concat(this.languageText[i].info[4],'

\n

').concat(this.languageText[i].info[5],'

\n

').concat(this.languageText[i].info[6],'

\n

').concat(this.languageText[i].info[7],'

\n

').concat(this.languageText[i].info[8],"

\n "),this.panelContent.appendChild(Z),this.panelContent.appendChild(Y),this.panelContent.appendChild(K),this.panelContent.appendChild($),this.panelContent.appendChild(ee),this.panel.setAttribute("data-show","true");break;case"error":display.setAttribute("data-display-type","error"),a.appendChild(display);break;case"print":display.setAttribute("data-display-type","print"),a.appendChild(display)}null==t.firstChild&&t.appendChild(a)}}customElements.define("d6-business-map",d)}},e=>{e.O(0,[432],(()=>{return t=780,e(e.s=t);var t}));e.O()}]); +!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},t=(new Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="12d29625-5c73-4200-92aa-314a75ab0274",e._sentryDebugIdIdentifier="sentry-dbid-12d29625-5c73-4200-92aa-314a75ab0274")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"ed3a0ba2ec4afa33edce3d19f9574a4c98d3e14f"},(self.webpackChunkd6_business_directory=self.webpackChunkd6_business_directory||[]).push([[590],{780:(e,t,a)=>{class i extends HTMLElement{static get observedAttributes(){return["form","parcelStatus","user"]}constructor(){super(),this.form=null,this.parcelStatus="Invalid",this.user=null,this.styles=document.createElement("style"),this.styles.textContent="\n @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;700&display=swap')\n #geocoder {width: 100%}\n input {width: calc(100% - 2em); padding: 1em; border:.1em solid #e6e6e6; font-size: 1em;}\n ";const e=this.attachShadow({mode:"open"});e.appendChild(this.styles);const t=document.createElement("article");t.id="geocoder";let a=document.createElement("form"),i=document.createElement("label");i.style.fontFamily="Montserrat, sans-serif",i.style.fontWeight="bold";let s=document.createElement("input"),n=(document.createElement("ul"),document.createElement("datalist")),r=document.createElement("i");a.addEventListener("submit",(e=>{this.submit(e,this)})),r.className="fas fa-map-marker-alt";const o=document.getElementsByTagName("my-home-info");i.innerText="Property Address:";try{o[0].getAttribute("data-geocoder-label")&&""!=o[0].getAttribute("data-geocoder-label")&&(i.innerText=o[0].getAttribute("data-geocoder-label"))}catch(c){}i.setAttribute("for","geocoder-input"),s.type="text",s.setAttribute("list","addresses-list"),s.placeholder="Enter address",s.setAttribute("id","geocoder-input"),s.setAttribute("autocomplete","off"),s.addEventListener("keyup",(e=>{this.inputChange(e,this)})),n.setAttribute("id","addresses-list"),a.appendChild(i),a.appendChild(s),a.appendChild(r),a.appendChild(n),this.form=a,t.appendChild(a),e.appendChild(t)}supplementGeocoder(e,t,a){const i=document.getElementsByTagName("my-home-info");let s=e.split(",");s=s[0],s=s.split(" ");let n="",r=s.length;s.forEach((function(e,t){n+=e,te.json())).then((function(s){if("suggestions"===a)s.candidates.forEach((e=>{let a=document.createElement("option");""===e.attributes.parcel_id?(a.value=e.address,a.setAttribute("data-parsel","no-parcel")):(a.value="".concat(e.address," RECOMMENDED"),a.setAttribute("data-parsel",e.attributes.parcel_id)),a.onclick=e=>{t.selectSuggestion(e,t)},t.form.childNodes[3].appendChild(a)}));else if(s.candidates.length){let a="https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/City_of_Detroit_Boundary/FeatureServer/0/query?where=&objectIds=&time=&geometry=".concat(s.candidates[0].location.x,"%2C+").concat(s.candidates[0].location.y,"&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=4326&returnGeometry=true&returnCentroid=false&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnDistinctValues=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=");try{fetch(a).then((e=>e.json())).then((function(a){if(a.features.length){let a,n=null;s.candidates.forEach((e=>{""!==e.attributes.parcel_id&&t.checkParcelValid(e.attributes.parcel_id)&&(n=e)})),a=null==n?s.candidates[0].location:null,null===n?(t.parcelStatus="Invalid",t.needGeocode(e,t,a),t.clearSuggestions(t),i[0].setAttribute("data-parcel-id",JSON.stringify(s.candidates[0]))):(t.parcelStatus="Valid",t.needGeocode(e,t,a),t.clearSuggestions(t),i[0].setAttribute("data-parcel-id",JSON.stringify(n)))}else t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}))}catch(n){t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}}else t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}))}catch(c){t.parcelStatus="Invalid",t.needGeocode(e,t,location),t.clearSuggestions(t),i[0].setAttribute("data-app-state","error")}}selectSuggestion(e,t){let a=null;a="SPAN"===e.target.tagName?e.target.parentNode:e.target,"no-parcel"===a.attributes[0].value?(t.clearSuggestions(t),t.supplementGeocoder(a.innerText,t,"submit")):t.supplementGeocoder(a.innerText,t,"submit")}inputChange(e,t){switch(e.key){case"Enter":""!=e.target.value&&void 0!=e.target.value&&t.supplementGeocoder(e.target.value,t,"submit");break;case"ArrowDown":case"ArrowUp":case"ArrowRight":case"ArrowLeft":break;case void 0:""!=e.target.value&&void 0!=e.target.value&&t.supplementGeocoder(e.target.value,t,"submit");break;default:t.clearSuggestions(t),t.supplementGeocoder(e.target.value,t,"suggestions")}}clearSuggestions(e){for(;e.form.childNodes[3].firstChild;)e.form.childNodes[3].removeChild(e.form.childNodes[3].firstChild)}needGeocode(e,t,a){fetch("https://us-central1-local-services-loopkup.cloudfunctions.net/getToken").then((e=>e.json())).then((function(i){let s=e.split(" RECOMMENDED")[0],n=[{attributes:{valid_parcel_status:t.parcelStatus,user_input:s},geometry:{x:0,y:0}}];null!=a&&(n[0].geometry.x=a.x,n[0].geometry.y=a.y);let r=new Request("https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/addressvalidator/FeatureServer/0/addFeatures?token=".concat(i.access_token,"&features=").concat(encodeURIComponent(JSON.stringify(n)),"&f=json"),{method:"POST",body:"",headers:new Headers,mode:"cors",cache:"default"});fetch(r).then((e=>{}))}))}checkParcelValid(e){return/\d/.test(e)}submit(e,t){e.preventDefault(),t.supplementGeocoder(e.target[0].value,t,"submit")}}class s extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"});this.navToolsStyle=document.createElement("style"),this.navToolsStyle.textContent="\n #nav-tools-wrapper { display: flex; flex-direction: column;}\n button.clear { font-size: 1.25em; width: 2.5em; height: 2.5em; background-color: #FEB70D; cursor: pointer; border: none; }\n button.nav { width: 3.75em; height: 3.75em; border: none; cursor: pointer;background: #fff; }\n button.nav:hover { background-color: #e6e6e6; transition: all 500ms cubic-bezier(.64,.09,.08,1); }\n button.nav.active { background-color: #9fd5b3; }\n button.nav img { width: 100%; }\n ",this.loadNavTools(this)}clearDisplay(e){const t=e.shadowRoot;for(;t.firstChild;)t.removeChild(t.firstChild)}loadNavTools(e){const t=document.getElementsByTagName("d6-business-map"),a=t[0].getAttribute("data-app-state"),i=t[0].getAttribute("data-app-mode"),s=t[0].getAttribute("data-inital-sets"),n=t[0].getAttribute("data-initial-map-available"),r=e.shadowRoot;r.appendChild(e.navToolsStyle);const o=document.createElement("section");o.id="nav-tools-wrapper",o.setAttribute("role","navigation"),o.setAttribute("aria-label","Data Navigation");const c=document.createElement("cod-button");if(c.addEventListener("click",(e=>{"my-home-info"==t[0].getAttribute("data-app-mode")?(t[0].setAttribute("data-app-state","welcome-screen"),t[0].setAttribute("data-active-sets","assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection")):(t[0].setAttribute("data-app-state","active-screen"),t[0].setAttribute("data-active-sets",s)),"true"==n?t[0].setAttribute("data-map-available","true"):t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-parcel-id","none"),t[0].setAttribute("data-api-stored-datasets","{}"),t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-section","property")})),c.setAttribute("data-primary",!0),c.setAttribute("data-label","x"),c.setAttribute("data-size","lg"),c.setAttribute("data-hover",!1),c.setAttribute("data-extra-classes","fw-bold"),c.setAttribute("data-background-color","warning"),c.setAttribute("data-img",""),c.setAttribute("data-img-alt",""),c.setAttribute("data-shape","square"),c.setAttribute("data-icon",""),o.appendChild(c),"my-home-info"==i&&"error"!=a){const e=document.createElement("cod-button");e.setAttribute("data-label",""),e.setAttribute("data-size","lg"),e.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/home.png"),e.setAttribute("data-img-alt","about this property"),e.setAttribute("data-shape","square"),e.setAttribute("data-nav-value","about this property"),e.setAttribute("data-icon",""),"about this property"==t[0].getAttribute("data-active-section")?(e.setAttribute("data-background-color","success"),e.setAttribute("data-primary",!0)):(e.setAttribute("data-background-color","secondary"),e.setAttribute("data-primary",!1),e.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection"),t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-active-section","about this property"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(e);const a=document.createElement("cod-button");a.setAttribute("data-label",""),a.setAttribute("data-size","lg"),a.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/government.png"),a.setAttribute("data-img-alt","government officials"),a.setAttribute("data-shape","square"),a.setAttribute("data-nav-value","government officials"),a.setAttribute("data-icon",""),"government officials"==t[0].getAttribute("data-active-section")?(a.setAttribute("data-background-color","success"),a.setAttribute("data-primary",!0)):(a.setAttribute("data-background-color","secondary"),a.setAttribute("data-primary",!1),a.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","council,council-members,bop-members,district-managers,business-liaison,district-inspectors,npo"),t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-active-section","government officials"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(a);const i=document.createElement("cod-button");i.setAttribute("data-label",""),i.setAttribute("data-size","lg"),i.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/zone.png"),i.setAttribute("data-img-alt","special areas and zones"),i.setAttribute("data-shape","square"),i.setAttribute("data-nav-value","special areas and zones"),i.setAttribute("data-icon",""),"special areas and zones"==t[0].getAttribute("data-active-section")?(i.setAttribute("data-background-color","success"),i.setAttribute("data-primary",!0)):(i.setAttribute("data-background-color","secondary"),i.setAttribute("data-primary",!1),i.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","nez,nrsa,historicDistrict"),t[0].setAttribute("data-map-available","false"),t[0].setAttribute("data-active-section","special areas and zones"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(i);const s=document.createElement("cod-button");s.setAttribute("data-label",""),s.setAttribute("data-size","lg"),s.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/nearby.png"),s.setAttribute("data-img-alt","things nearby"),s.setAttribute("data-shape","square"),s.setAttribute("data-nav-value","things nearby"),s.setAttribute("data-icon",""),"things nearby"==t[0].getAttribute("data-active-section")?(s.setAttribute("data-background-color","success"),s.setAttribute("data-primary",!0)):(s.setAttribute("data-background-color","secondary"),s.setAttribute("data-primary",!1),s.addEventListener("click",(e=>{if("none"!=t[0].getAttribute("data-api-active-datasets")){let e=JSON.parse(t[0].getAttribute("data-api-stored-datasets")),a=JSON.parse(t[0].getAttribute("data-api-active-datasets"));for(const t in a)t in e||(e[t]=a[t]);t[0].setAttribute("data-api-stored-datasets",JSON.stringify(e))}t[0].setAttribute("data-api-active-datasets","none"),t[0].setAttribute("data-active-sets","schools,demos-data,stabilization-data,improve-det"),t[0].setAttribute("data-active-section","things nearby"),t[0].setAttribute("data-map-available","true"),t[0].setAttribute("data-app-state","loading-screen")}))),o.appendChild(s);const n=document.createElement("cod-button");n.setAttribute("data-label",""),n.setAttribute("data-size","lg"),n.setAttribute("data-img","https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/print.png"),n.setAttribute("data-img-alt","print"),n.setAttribute("data-shape","square"),n.setAttribute("data-nav-value","print"),n.setAttribute("data-icon",""),"print"==t[0].getAttribute("data-active-section")?(n.setAttribute("data-background-color","success"),n.setAttribute("data-primary",!0)):(n.setAttribute("data-background-color","secondary"),n.setAttribute("data-primary",!1),n.addEventListener("click",(e=>{e.target.getAttribute("data-nav-value")&&t[0].setAttribute("data-app-state","print")}))),o.appendChild(n)}r.appendChild(o)}}customElements.define("app-geocoder",i),customElements.define("app-nav-tools",s);class n extends HTMLElement{constructor(){super();this.attachShadow({mode:"open"}).innerHTML='\n \n \n
Offcanvas
\n
\n \n

\n Some text as placeholder. In real life you can have the elements you\n have chosen. Like, text, images, lists, etc.\n

\n
\n
\n '}attributeChangedCallback(e,t,a){"data-panel-data"==a&&this.clearDisplay(this),"data-pagination"==e&&this.clearDisplay(this),this.loadDisplay(this)}clearDisplay(e){const t=e.shadowRoot;for(;t.firstChild;)t.removeChild(t.firstChild)}formatDate(e){const t=new Date(e);return"".concat(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()]," ").concat(t.getDate(),", ").concat(t.getFullYear())}printInfo(e){let t=e.buildDataSection(e),a=window.open("","","height=500, width=500");a.document.write(""),a.document.write(""),a.document.write(""),a.document.write(t.children[1].innerHTML),a.document.write(""),a.document.close(),a.print()}loadDisplay(e){const t=e.shadowRoot,a=document.createElement("section"),i=document.createElement("app-geocoder"),s=document.createElement("app-nav-tools"),n=document.getElementsByTagName("my-home-info");switch(s.printInfo=e.printInfo,a.id="display-wrapper",this.getAttribute("data-display-type")){case"active-panel":console.log("loading panel");let r=JSON.parse(this.getAttribute("data-panel-data")),o=document.createElement("cod-offcanvas");o.id="d6-map-panel",o.setAttribute("data-show","true");let c=document.createElement("cod-offcanvas-header"),l=document.createElement("cod-offcanvas-body");c.innerHTML="
".concat(r.properties.business_name),l.innerHTML="\n

Address: ".concat(r.properties.address,"

\n

Phone: ").concat(r.properties.business_phone_number,"

\n

Website: ").concat(r.properties.business_phone_website,"

\n "),o.appendChild(c),o.appendChild(l),a.appendChild(o),t.appendChild(a),console.log(o);break;case"active":t.appendChild(e.welcomeStyle),a.appendChild(i),t.appendChild(a);break;case"loading":const d=document.createElement("cod-loader");d.setAttribute("data-color","color-3"),a.appendChild(d),t.appendChild(a);break;case"results":let u=JSON.parse(n[0].getAttribute("data-parcel-id"));t.appendChild(e.resultsStyle);let p=document.createElement("section");p.className="results-container",p.appendChild(s);let h=document.createElement("article");h.className="dataset-results";let m=document.createElement("article");m.className="result-address",m.innerText=u.address,h.appendChild(m);let b=e.buildDataSection(e);h.appendChild(b),p.appendChild(h),a.appendChild(p),t.appendChild(a);break;case"error":let g=document.createElement("section");t.appendChild(e.resultsStyle),g.className="results-container",g.appendChild(s);let f=document.createElement("article");f.className="error-result",f.innerHTML='\n \n \n \n \n \n \n \n \n \n \n

No Information found on this address. Please close and try again.

\n ',g.appendChild(f),a.appendChild(g),t.appendChild(a);break;case"print":let y=JSON.parse(n[0].getAttribute("data-parcel-id"));t.appendChild(e.resultsStyle);let A=document.createElement("section");A.className="results-container",A.appendChild(s);let v=document.createElement("article");v.className="dataset-results";let _=document.createElement("article");_.className="result-address",_.innerText=y.address,v.appendChild(_);let k=e.buildDataSection(e);v.appendChild(k),A.appendChild(v),a.appendChild(A),t.appendChild(a),e.printInfo(e)}}}const r=JSON.parse('{"layers":[{"name":"city-facilities","layers":[{"name":"city-facilities","type":"circle","clickable":true,"radius":7,"color":"#004445","active":false,"sort":9,"source":"city-facilities"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/D6CRG_Facilities/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token="},{"name":"neighborhoods","layers":[{"name":"neighborhoods-lines","type":"line","color":"#004445","opacity":null,"width":3,"active":false,"source":"neighborhoods"},{"name":"neighborhoods-fill","type":"fill","color":"#004445","opacity":0.1,"width":null,"active":false,"source":"neighborhoods"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/Current_City_of_Detroit_Neighborhoods/FeatureServer/0/query?where=&objectIds=&time=&geometry=%7B%22rings%22:%5B%5B%5B-83.1320996355041,42.3646518257198%5D,%5B-83.0642768315531,42.356786022708%5D,%5B-83.0409565667773,42.3284742614117%5D,%5B-83.160728943609,42.2553319508101%5D,%5B-83.1641605079943,42.2866738658063%5D,%5B-83.1419451710181,42.3040697098989%5D,%5B-83.1499042444353,42.366344338128%5D,%5B-83.1320996355041,42.3646518257198%5D%5D%5D,%22spatialReference%22:%7B%22wkid%22:4326%7D%7D&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=4326&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&f=geojson"},{"name":"neighborhood-labels","layers":[{"name":"neighborhood-labels","type":"text","color":"#004445","opacity":null,"width":null,"active":false,"size":18,"text":"name","source":"neighborhood-labels"}],"source":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"name":"Corktown"},"geometry":{"type":"Point","coordinates":[-83.07282646989103,42.32961501309612]}},{"type":"Feature","properties":{"name":"Boynton"},"geometry":{"type":"Point","coordinates":[-83.1579648533529,42.27024489996674]}},{"type":"Feature","properties":{"name":"Oakwood Heights"},"geometry":{"type":"Point","coordinates":[-83.15508659062496,42.28717068851953]}},{"type":"Feature","properties":{"name":"Delray"},"geometry":{"type":"Point","coordinates":[-83.11296323072324,42.29778775884678]}},{"type":"Feature","properties":{"name":"Claytown"},"geometry":{"type":"Point","coordinates":[-83.1372729131192,42.33376856293899]}},{"type":"Feature","properties":{"name":"Barton-McFarland"},"geometry":{"type":"Point","coordinates":[-83.16001923650751,42.36381195702009]}},{"type":"Feature","properties":{"name":"Springwells"},"geometry":{"type":"Point","coordinates":[-83.1337558547591,42.30714823602721]}},{"type":"Feature","properties":{"name":"Chadsey Condon"},"geometry":{"type":"Point","coordinates":[-83.10737760168989,42.338791990914615]}},{"type":"Feature","properties":{"name":"Woodbridge"},"geometry":{"type":"Point","coordinates":[-83.08133686849408,42.349030442971795]}},{"type":"Feature","properties":{"name":"Nardin Park"},"geometry":{"type":"Point","coordinates":[-83.13077289912039,42.375735013140826]}},{"type":"Feature","properties":{"name":"Petoskey-Otsego"},"geometry":{"type":"Point","coordinates":[-83.11918399996382,42.36275220516867]}},{"type":"Feature","properties":{"name":"North Corktown"},"geometry":{"type":"Point","coordinates":[-83.07759700001928,42.33638424529505]}},{"type":"Feature","properties":{"name":"Cultural Center"},"geometry":{"type":"Point","coordinates":[-83.06168146658668,42.36197836659175]}},{"type":"Feature","properties":{"name":"Carbon Works"},"geometry":{"type":"Point","coordinates":[-83.12902757657342,42.29056056758165]}},{"type":"Feature","properties":{"name":"Michigan-Martin"},"geometry":{"type":"Point","coordinates":[-83.1218418540499,42.32730659525782]}},{"type":"Feature","properties":{"name":"Hubbard Farms"},"geometry":{"type":"Point","coordinates":[-83.08931246670545,42.318165766622805]}},{"type":"Feature","properties":{"name":"Jeffries"},"geometry":{"type":"Point","coordinates":[-83.0723868857715,42.34702419994705]}},{"type":"Feature","properties":{"name":"Southwest"},"geometry":{"type":"Point","coordinates":[-83.1008023415964,42.31957932899555]}},{"type":"Feature","properties":{"name":"Hubbard Richard"},"geometry":{"type":"Point","coordinates":[-83.07259022120435,42.32402512391472]}},{"type":"Feature","properties":{"name":"NW Goldberg"},"geometry":{"type":"Point","coordinates":[-83.10152098612888,42.35535822224762]}},{"type":"Feature","properties":{"name":"Brush Park"},"geometry":{"type":"Point","coordinates":[-83.05209596296444,42.34448261114053]}},{"type":"Feature","properties":{"name":"Core City"},"geometry":{"type":"Point","coordinates":[-83.08571334608533,42.34346378537158]}},{"type":"Feature","properties":{"name":"Midwest"},"geometry":{"type":"Point","coordinates":[-83.12620126448498,42.35465050488514]}},{"type":"Feature","properties":{"name":"LaSalle Gardens"},"geometry":{"type":"Point","coordinates":[-83.09701643203283,42.36524323933571]}},{"type":"Feature","properties":{"name":"Wildemere Park"},"geometry":{"type":"Point","coordinates":[-83.10536059986863,42.36211034281844]}},{"type":"Feature","properties":{"name":"Downtown"},"geometry":{"type":"Point","coordinates":[-83.0486367620086,42.33541705812017]}},{"type":"Feature","properties":{"name":"Midtown"},"geometry":{"type":"Point","coordinates":[-83.06147678876276,42.34487308216902]}},{"type":"Feature","properties":{"name":"Wayne State"},"geometry":{"type":"Point","coordinates":[-83.07172635481048,42.35720306446915]}},{"type":"Feature","properties":{"name":"Elijah McCoy"},"geometry":{"type":"Point","coordinates":[-83.0856930728994,42.35797401438465]}},{"type":"Feature","properties":{"name":"West Side Industrial"},"geometry":{"type":"Point","coordinates":[-83.07746939713722,42.31825860418131]}},{"type":"Feature","properties":{"name":"Mexicantown"},"geometry":{"type":"Point","coordinates":[-83.08419597827165,42.32063926092315]}}]}},{"name":"police-precincts","layers":[{"name":"police-precincts-lines","type":"line","color":"#0658c4","opacity":null,"width":3,"active":false,"source":"police-precincts"},{"name":"police-precincts-fill","type":"fill","color":"#0658c4","opacity":0.1,"width":null,"active":false,"source":"police-precincts"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/DPD_Precincts_Reid2/FeatureServer/0/query?query?where=&objectIds=&time=&geometry=%7B%22rings%22:%5B%5B%5B-83.1320996355041,42.3646518257198%5D,%5B-83.0642768315531,42.356786022708%5D,%5B-83.0409565667773,42.3284742614117%5D,%5B-83.160728943609,42.2553319508101%5D,%5B-83.1641605079943,42.2866738658063%5D,%5B-83.1419451710181,42.3040697098989%5D,%5B-83.1499042444353,42.366344338128%5D,%5B-83.1320996355041,42.3646518257198%5D%5D%5D,%22spatialReference%22:%7B%22wkid%22:4326%7D%7D&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=4326&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&f=geojson"},{"name":"police-precincts-labels","layers":[{"name":"police-precincts-labels","type":"text","color":"#004445","opacity":null,"width":null,"active":false,"size":18,"text":"name","source":"police-precincts-labels"}],"source":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"name":"10"},"geometry":{"type":"Point","coordinates":[-83.12541577921839,42.37984807216043]}},{"type":"Feature","properties":{"name":"02"},"geometry":{"type":"Point","coordinates":[-83.16300432338159,42.37707565997647]}},{"type":"Feature","properties":{"name":"03"},"geometry":{"type":"Point","coordinates":[-83.07080108270279,42.35507659946862]}},{"type":"Feature","properties":{"name":"04"},"geometry":{"type":"Point","coordinates":[-83.13126490810902,42.29754212403098]}}]}},{"name":"zip-codes","layers":[{"name":"zip-codes-lines","type":"line","color":"#481718","opacity":null,"width":3,"active":false,"source":"zip-codes"},{"name":"zip-codes-fill","type":"fill","color":"#481718","opacity":0.1,"width":null,"active":false,"source":"zip-codes"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/ZipCodes/FeatureServer/0/query?query?where=&objectIds=&time=&geometry=%7B%22rings%22:%5B%5B%5B-83.1320996355041,42.3646518257198%5D,%5B-83.0642768315531,42.356786022708%5D,%5B-83.0409565667773,42.3284742614117%5D,%5B-83.160728943609,42.2553319508101%5D,%5B-83.1641605079943,42.2866738658063%5D,%5B-83.1419451710181,42.3040697098989%5D,%5B-83.1499042444353,42.366344338128%5D,%5B-83.1320996355041,42.3646518257198%5D%5D%5D,%22spatialReference%22:%7B%22wkid%22:4326%7D%7D&geometryType=esriGeometryPolygon&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=*&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=4326&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&returnDistinctValues=false&resultOffset=&resultRecordCount=&f=geojson"},{"name":"zip-codes-labels","layers":[{"name":"zip-codes-labels","type":"text","color":"#004445","opacity":null,"width":null,"active":false,"size":18,"text":"name","source":"zip-codes-labels"}],"source":{"type":"FeatureCollection","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"features":[{"type":"Feature","properties":{"name":"48217"},"geometry":{"type":"Point","coordinates":[-83.15747506005572,42.28552547780845]}},{"type":"Feature","properties":{"name":"48204"},"geometry":{"type":"Point","coordinates":[-83.14024042751899,42.36615057371983]}},{"type":"Feature","properties":{"name":"48210"},"geometry":{"type":"Point","coordinates":[-83.13217799269209,42.3405603001169]}},{"type":"Feature","properties":{"name":"48209"},"geometry":{"type":"Point","coordinates":[-83.11710302399314,42.29451023438793]}},{"type":"Feature","properties":{"name":"48206"},"geometry":{"type":"Point","coordinates":[-83.10916791825414,42.37588429276462]}},{"type":"Feature","properties":{"name":"48208"},"geometry":{"type":"Point","coordinates":[-83.09385877016358,42.349792930410075]}},{"type":"Feature","properties":{"name":"48202"},"geometry":{"type":"Point","coordinates":[-83.07388335555508,42.36697127728427]}},{"type":"Feature","properties":{"name":"48216"},"geometry":{"type":"Point","coordinates":[-83.07496285230572,42.32327940328287]}},{"type":"Feature","properties":{"name":"48201"},"geometry":{"type":"Point","coordinates":[-83.0593872943856,42.34454480372727]}},{"type":"Feature","properties":{"name":"48226"},"geometry":{"type":"Point","coordinates":[-83.04367510228893,42.33246074385938]}}]}},{"name":"coucil-district-6","layers":[{"name":"coucil-district-6-lines","type":"line","color":"#745DA8","opacity":null,"width":3,"active":true,"source":"coucil-district-6"}],"source":"https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/Council_Districts/FeatureServer/0/query?where=DistrictNu%3D6&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&returnCentroid=false&returnEnvelope=false&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token="}]}'),o=JSON.parse('{"en":{"yes":["Yes"],"no":["No"],"intro":[],"panel":["Address:","Business Type:","Business Owner Demographics:","Asian Owned:","Black Owned:","LGBTQ Owned:","Indigenous Owned:","Middle Eastern Owned:","Veteran Owned:","Minority Owned:","Woman Owned:","Service:","Community Health:","Dental:","Urgent Care:","Family Health:","Mental Health:","Pediatrics:","Primary Care:","Sexual Health:","Specialist:","Other Health Services:","Adds & Marketing","Automotive:","Bar/Restaurant:","Construction:","Entertainment:","Human Services:","Landscape:","Legal & Financial:","Personal Care:","Manufacturing & Distribution:","Place of Worship:","Retail:","Other:","Amenities:"],"boundaries":["Boundaries","Neighborhoods","Police Precincts","Zip Codes","City Facilities"],"filters":["Data Filters","By Ownership:","Asian Owned","Black Owned","LGBTQ Owned","Indigenous Owned","Middle Eastern Owned","Veteran Owned","Minority Owned","Woman Owned","By Services:","Community Health","Healthcare/Medical/Dental","Emergency/Urgent Care","Family Health","Mental Health","Pediatrics","Primary Care","Sexual Health","Specialist","Other Health Services","Advertising/Communications/Marketing ","Automotive","Bar/Restaurant","Construction","Entertainment","Human Services","Landscape","Legal/Financial","Personal Care/Services","Manufacturing/Distribution","Place of Worship","Retail","Other","Note: Selecting multiple filters will include only businesses who meet all criteria, not just one or some of them.","By Amenities:","Public Transit Accessible","ADA Accessible","Bike Rack","Parking lot","Cash only","Free WIFI","Gender Neutral Bathrooms","Rental Space"],"info":["Information","Icon Descriptions","Public transit accessible","ADA accessible","Bike rack","Parking lot","Cash only","Free WiFi","Rental space","Select Language","This directory is brought to you by the Office of Council Member Gabriela Santiago-Romero with the support of the Department of Innovation and Technology. All businesses included in this directory requested to be listed. If you are a local business operating in D6 and would like to be listed, ","please complete this form","for review (note: only businesses located and operating in D6 will be approved, as this is a D6-specific directory)."]},"es":{"yes":["S\xed"],"no":["No"],"intro":[],"panel":["DIRECCI\xd3N:","Tipo de negocio:","Datos demogr\xe1ficos del propietario de la empresa:","Propiedad asi\xe1tica:","Propiedad de negros:","Propiedad LGBTQ:","Propiedad ind\xedgena:","Propiedad de Medio Oriente:","Propiedad de veteranos:","Propiedad de minor\xedas:","Propiedad de una mujer:","Servicio:","Salud de la comunidad:","Dental:","Atenci\xf3n de urgencias:","Salud Familiar:","Salud mental:","Pediatr\xeda:","Atenci\xf3n primaria:","Salud sexual:","Especialista:","Otros Servicios de Salud:","Anuncios y Mercadotecnia:","Automotor:","Bar/Restaurante:","Construcci\xf3n:","Entretenimiento:","Servicios Humanos:","Jardiner\xeda:","Legal y Financieros:","Cuidado Personal:","Fabricaci\xf3n y Distribuci\xf3n:","Lugar de Adoraci\xf3n:","Tienda:","Otro:","Comodidades:"],"boundaries":["Zonas","Barrios","Recintos policiales","C\xf3digos ZIP","Instalaciones de la ciudad"],"filters":["Filtros de datos","Por propiedad:","Propiedad asi\xe1tica","Propiedad negra","Propiedad LGBTQ","Propiedad ind\xedgena","Propiedad del Medio Oriente","Propiedad de veteranos","Propiedad de minor\xedas","Propiedad de una mujer","Por Servicios:","Salud de la comunidad","Dental","Atenci\xf3n de emergencia/urgencia","Salud Familiar","Salud mental","Pediatr\xeda","Atenci\xf3n primaria","Salud sexual","Especialista","Otros servicios de salud","Anuncios y Mercadotecnia","Automotor","Bar/Restaurante","Construcci\xf3n","Entretenimiento","Servicios Humanos","Jardiner\xeda","Legal y Financieros","Cuidado Personal","Fabricaci\xf3n y Distribuci\xf3n","Lugar de Adoraci\xf3n","Tienda","Otro","Nota: Al seleccionar varios filtros, solo se incluir\xe1n las empresas que cumplan con todos los criterios, no solo uno o algunos de ellos.","Por comodidades:","Transporte p\xfablico accesible","Accesible seg\xfan la ADA","Portabicicletas","Estacionamiento","Solamente efectivo","WIFI gratuito","Ba\xf1os de g\xe9nero neutro","Espacio de alquiler"],"info":["Informaci\xf3n","Descripciones de iconos","Transporte p\xfablico accesible","Accesible seg\xfan la ADA","Portabicicletas","Estacionamiento","Solamente efectivo","Wi-Fi gratis","Espacio de alquiler","Seleccione el idioma","Este directorio es presentado por la Oficina de la Concejal Gabriela Santiago-Romero con el apoyo del Departamento de Innovaci\xf3n y Tecnolog\xeda. Todas las empresas incluidas en este directorio solicitaron ser incluidas en la lista. Si usted es una empresa local que opera en D6 y le gustar\xeda aparecer en la lista,","por favor complete este formulario","para revisi\xf3n (nota: solo se aprobar\xe1n las empresas ubicadas y operando en D6, ya que este es un directorio espec\xedfico de D6)."]},"bn":{"yes":["\u09b9\u09cd\u09af\u09be\u0981"],"no":["\u09a8\u09be"],"intro":[],"panel":["\u09a0\u09bf\u0995\u09be\u09a8\u09be:","\u09ac\u09cd\u09af\u09ac\u09b8\u09be\u09b0 \u09a7\u09b0\u09a3:","\u09ac\u09cd\u09af\u09ac\u09b8\u09be\u09b0 \u09ae\u09be\u09b2\u09bf\u0995 \u099c\u09a8\u09b8\u0982\u0996\u09cd\u09af\u09be:","\u098f\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u0995\u09be\u09b2\u09cb \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","LGBTQ \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u0986\u09a6\u09bf\u09ac\u09be\u09b8\u09c0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09ae\u09a7\u09cd\u09af \u09aa\u09cd\u09b0\u09be\u099a\u09cd\u09af\u09c7\u09b0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u0985\u09ad\u09bf\u099c\u09cd\u099e \u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09b8\u0982\u0996\u09cd\u09af\u09be\u09b2\u0998\u09c1 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09ae\u09b9\u09bf\u09b2\u09be \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8:","\u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be:","\u09a8\u0997\u09b0 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u0995\u09c7\u09a8\u09cd\u09a6\u09cd\u09b0:","\u09a6\u09be\u0981\u09a4\u09c7\u09b0:","\u099c\u09b0\u09c1\u09b0\u09c0 \u09af\u09a4\u09cd\u09a8:","\u09aa\u09be\u09b0\u09bf\u09ac\u09be\u09b0\u09bf\u0995 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af:","\u09ae\u09be\u09a8\u09b8\u09bf\u0995 \u09b8\u09be\u09b8\u09cd\u09a5\u09cd\u09af:","\u09b6\u09bf\u09b6\u09c1\u09b0\u09cb\u0997:","\u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u09af\u09a4\u09cd\u09a8:","\u09af\u09cc\u09a8 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af:","\u09ac\u09bf\u09b6\u09c7\u09b7\u099c\u09cd\u099e:","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be:","\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09aa\u09a8 \u0993 \u09ac\u09bf\u09aa\u09a3\u09a8:","\u09b8\u09cd\u09ac\u09af\u09bc\u0982\u099a\u09be\u09b2\u09bf\u09a4:","\u09ac\u09be\u09b0/\u09b0\u09c7\u09b8\u09cd\u09a4\u09cb\u09b0\u09be\u0981:","\u09a8\u09bf\u09b0\u09cd\u09ae\u09be\u09a3:","\u09ac\u09bf\u09a8\u09cb\u09a6\u09a8:","\u09ae\u09be\u09a8\u09ac \u09b8\u09c7\u09ac\u09be:","\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8\u09cd\u0995\u09c7\u09aa:","\u0986\u0987\u09a8\u09bf \u0993 \u0986\u09b0\u09cd\u09a5\u09bf\u0995:","\u0989\u09ce\u09aa\u09be\u09a6\u09a8 \u0993 \u09ac\u09bf\u09a4\u09b0\u09a3:","\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u09af\u09a4\u09cd\u09a8:","\u0989\u09aa\u09be\u09b8\u09a8\u09be \u09b8\u09cd\u09a5\u09be\u09a8:","\u0996\u09c1\u099a\u09b0\u09be:","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af:","\u09b8\u09c1\u09af\u09cb\u0997-\u09b8\u09c1\u09ac\u09bf\u09a7\u09be:"],"boundaries":["\u09b8\u09c0\u09ae\u09be\u09a8\u09be","\u0986\u09b6\u09c7\u09aa\u09be\u09b6\u09c7\u09b0 \u098f\u09b2\u09be\u0995\u09be","\u09aa\u09c1\u09b2\u09bf\u09b6 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u0995\u09cd\u099f\u09b8","\u099c\u09bf\u09aa \u0995\u09cb\u09a1","\u09b6\u09b9\u09b0\u09c7\u09b0 \u09b8\u09c1\u09ac\u09bf\u09a7\u09be"],"filters":["\u09a1\u09c7\u099f\u09be \u09ab\u09bf\u09b2\u09cd\u099f\u09be\u09b0","\u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be \u09a6\u09cd\u09ac\u09be\u09b0\u09be:","\u098f\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u0995\u09be\u09b2\u09cb \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","LGBTQ \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u0986\u09a6\u09bf\u09ac\u09be\u09b8\u09c0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09ae\u09a7\u09cd\u09af\u09aa\u09cd\u09b0\u09be\u099a\u09cd\u09af\u09c7\u09b0 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u0985\u09ad\u09bf\u099c\u09cd\u099e \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09b8\u0982\u0996\u09cd\u09af\u09be\u09b2\u0998\u09c1 \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09ae\u09b9\u09bf\u09b2\u09be \u09ae\u09be\u09b2\u09bf\u0995\u09be\u09a8\u09be\u09a7\u09c0\u09a8","\u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be \u09a6\u09cd\u09ac\u09be\u09b0\u09be:","\u09a8\u0997\u09b0 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u0995\u09c7\u09a8\u09cd\u09a6\u09cd\u09b0","\u09a1\u09c7\u09a8\u09cd\u099f\u09be\u09b2","\u099c\u09b0\u09c1\u09b0\u09c0/\u099c\u09b0\u09c1\u09b0\u09c0 \u09af\u09a4\u09cd\u09a8","\u09aa\u09be\u09b0\u09bf\u09ac\u09be\u09b0\u09bf\u0995 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af","\u09ae\u09be\u09a8\u09b8\u09bf\u0995 \u09b8\u09be\u09b8\u09cd\u09a5\u09cd\u09af","\u09aa\u09c7\u09a1\u09bf\u09af\u09bc\u09be\u099f\u09cd\u09b0\u09bf\u0995\u09cd\u09b8","\u09aa\u09cd\u09b0\u09be\u09a5\u09ae\u09bf\u0995 \u09af\u09a4\u09cd\u09a8","\u09af\u09cc\u09a8 \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af","\u09ac\u09bf\u09b6\u09c7\u09b7\u099c\u09cd\u099e","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af \u09b8\u09cd\u09ac\u09be\u09b8\u09cd\u09a5\u09cd\u09af \u09aa\u09b0\u09bf\u09b7\u09c7\u09ac\u09be","\u09ac\u09bf\u099c\u09cd\u099e\u09be\u09aa\u09a8 \u0993 \u09ac\u09bf\u09aa\u09a3\u09a8","\u09b8\u09cd\u09ac\u09af\u09bc\u0982\u099a\u09be\u09b2\u09bf\u09a4","\u09ac\u09be\u09b0/\u09b0\u09c7\u09b8\u09cd\u09a4\u09cb\u09b0\u09be\u0981","\u09a8\u09bf\u09b0\u09cd\u09ae\u09be\u09a3","\u09ac\u09bf\u09a8\u09cb\u09a6\u09a8","\u09ae\u09be\u09a8\u09ac \u09b8\u09c7\u09ac\u09be","\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8\u09cd\u0995\u09c7\u09aa","\u0986\u0987\u09a8\u09bf \u0993 \u0986\u09b0\u09cd\u09a5\u09bf\u0995","\u0989\u09ce\u09aa\u09be\u09a6\u09a8 \u0993 \u09ac\u09bf\u09a4\u09b0\u09a3","\u09ac\u09cd\u09af\u0995\u09cd\u09a4\u09bf\u0997\u09a4 \u09af\u09a4\u09cd\u09a8","\u0989\u09aa\u09be\u09b8\u09a8\u09be \u09b8\u09cd\u09a5\u09be\u09a8","\u0996\u09c1\u099a\u09b0\u09be","\u0985\u09a8\u09cd\u09af\u09be\u09a8\u09cd\u09af","\u09a6\u09cd\u09b0\u09b7\u09cd\u099f\u09ac\u09cd\u09af: \u098f\u0995\u09be\u09a7\u09bf\u0995 \u09ab\u09bf\u09b2\u09cd\u099f\u09be\u09b0 \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0\u09be \u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u098f\u09ae\u09a8 \u09ac\u09cd\u09af\u09ac\u09b8\u09be\u0997\u09c1\u09b2\u09bf\u0995\u09c7 \u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u09ad\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09ac\u09c7 \u09af\u09be\u09b0\u09be \u09b8\u09ae\u09b8\u09cd\u09a4 \u09ae\u09be\u09a8\u09a6\u09a3\u09cd\u09a1 \u09aa\u09c2\u09b0\u09a3 \u0995\u09b0\u09c7, \u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u098f\u0995\u099f\u09bf \u09ac\u09be \u09a4\u09be\u09a6\u09c7\u09b0 \u09ae\u09a7\u09cd\u09af\u09c7 \u0995\u09af\u09bc\u09c7\u0995\u099f\u09bf \u09a8\u09af\u09bc\u0964","\u09b8\u09c1\u09ac\u09bf\u09a7\u09be\u09b0 \u09a6\u09cd\u09ac\u09be\u09b0\u09be:","\u09aa\u09be\u09ac\u09b2\u09bf\u0995 \u099f\u09cd\u09b0\u09be\u09a8\u099c\u09bf\u099f \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","ADA \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","\u09ac\u09be\u0987\u0995 \u09b0\u09cd\u09af\u09be\u0995","\u09aa\u09be\u09b0\u09cd\u0995\u09bf\u0982 \u09b2\u099f","\u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u09a8\u0997\u09a6","\u09ab\u09cd\u09b0\u09bf \u0993\u09af\u09bc\u09be\u0987\u09ab\u09be\u0987","\u09b2\u09bf\u0999\u09cd\u0997 \u09a8\u09bf\u09b0\u09aa\u09c7\u0995\u09cd\u09b7 \u09ac\u09be\u09a5\u09b0\u09c1\u09ae","\u09ad\u09be\u09a1\u09bc\u09be\u09b0 \u09b8\u09cd\u09a5\u09be\u09a8"],"info":["\u09a4\u09a5\u09cd\u09af","\u0986\u0987\u0995\u09a8 \u09ac\u09b0\u09cd\u09a3\u09a8\u09be","\u09aa\u09be\u09ac\u09b2\u09bf\u0995 \u099f\u09cd\u09b0\u09be\u09a8\u099c\u09bf\u099f \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","ADA \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8\u09af\u09cb\u0997\u09cd\u09af","\u09ac\u09be\u0987\u0995 \u09b0\u09cd\u09af\u09be\u0995","\u09aa\u09be\u09b0\u09cd\u0995\u09bf\u0982 \u09b2\u099f","\u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 \u09a8\u0997\u09a6","\u09ac\u09bf\u09a8\u09be\u09ae\u09c2\u09b2\u09cd\u09af\u09c7 \u0993\u09af\u09bc\u09be\u0987\u09ab\u09be\u0987","\u09ad\u09be\u09a1\u09bc\u09be\u09b0 \u099c\u09be\u09af\u09bc\u0997\u09be","\u09ad\u09be\u09b7\u09be \u09a8\u09bf\u09b0\u09cd\u09ac\u09be\u099a\u09a8 \u0995\u09b0","\u098f\u0987 \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf\u099f\u09bf \u0989\u09a6\u09cd\u09ad\u09be\u09ac\u09a8 \u098f\u09ac\u0982 \u09aa\u09cd\u09b0\u09af\u09c1\u0995\u09cd\u09a4\u09bf \u09ac\u09bf\u09ad\u09be\u0997\u09c7\u09b0 \u09b8\u09b9\u09be\u09af\u09bc\u09a4\u09be\u09af\u09bc \u0995\u09be\u0989\u09a8\u09cd\u09b8\u09bf\u09b2 \u09b8\u09a6\u09b8\u09cd\u09af \u0997\u09cd\u09af\u09be\u09ac\u09cd\u09b0\u09bf\u09af\u09bc\u09c7\u09b2\u09be \u09b8\u09be\u09a8\u09cd\u09a4\u09bf\u09af\u09bc\u09be\u0997\u09cb-\u09b0\u09cb\u09ae\u09c7\u09b0\u09cb\u09b0 \u0985\u09ab\u09bf\u09b8 \u09a6\u09cd\u09ac\u09be\u09b0\u09be \u0986\u09aa\u09a8\u09be\u09b0 \u0995\u09be\u099b\u09c7 \u0986\u09a8\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u098f\u0987 \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf\u09a4\u09c7 \u0985\u09a8\u09cd\u09a4\u09b0\u09cd\u09ad\u09c1\u0995\u09cd\u09a4 \u09b8\u09ae\u09b8\u09cd\u09a4 \u09ac\u09cd\u09af\u09ac\u09b8\u09be\u0995\u09c7 \u09a4\u09be\u09b2\u09bf\u0995\u09be\u09ad\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09be\u09b0 \u099c\u09a8\u09cd\u09af \u0985\u09a8\u09c1\u09b0\u09cb\u09a7 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u0986\u09aa\u09a8\u09bf \u09af\u09a6\u09bf D6-\u098f \u09b8\u09cd\u09a5\u09be\u09a8\u09c0\u09af\u09bc \u09ac\u09cd\u09af\u09ac\u09b8\u09be \u09aa\u09b0\u09bf\u099a\u09be\u09b2\u09a8\u09be \u0995\u09b0\u09c7\u09a8 \u098f\u09ac\u0982 \u09a4\u09be\u09b2\u09bf\u0995\u09be\u09ad\u09c1\u0995\u09cd\u09a4 \u09b9\u09a4\u09c7 \u099a\u09be\u09a8,","\u098f\u0987 \u09ab\u09b0\u09cd\u09ae \u09aa\u09c2\u09b0\u09a3 \u0995\u09b0\u09c1\u09a8","\u09aa\u09b0\u09cd\u09af\u09be\u09b2\u09cb\u099a\u09a8\u09be\u09b0 \u099c\u09a8\u09cd\u09af (\u09a6\u09cd\u09b0\u09b7\u09cd\u099f\u09ac\u09cd\u09af: \u09b6\u09c1\u09a7\u09c1\u09ae\u09be\u09a4\u09cd\u09b0 D6-\u098f \u0985\u09ac\u09b8\u09cd\u09a5\u09bf\u09a4 \u098f\u09ac\u0982 \u09aa\u09b0\u09bf\u099a\u09be\u09b2\u09bf\u09a4 \u09ac\u09cd\u09af\u09ac\u09b8\u09be\u0997\u09c1\u09b2\u09bf \u0985\u09a8\u09c1\u09ae\u09cb\u09a6\u09bf\u09a4 \u09b9\u09ac\u09c7, \u0995\u09be\u09b0\u09a3 \u098f\u099f\u09bf \u098f\u0995\u099f\u09bf D6-\u09a8\u09bf\u09b0\u09cd\u09a6\u09bf\u09b7\u09cd\u099f \u09a1\u09bf\u09b0\u09c7\u0995\u09cd\u099f\u09b0\u09bf)\u0964"]},"ar":{"yes":["\u0646\u0639\u0645"],"no":["\u0644\u0627"],"intro":[],"panel":["\u0639\u0646\u0648\u0627\u0646:","\u0646\u0648\u0639 \u0627\u0644\u0639\u0645\u0644:","\u0627\u0644\u062a\u0631\u0643\u064a\u0628\u0629 \u0627\u0644\u0633\u0643\u0627\u0646\u064a\u0629 \u0644\u0623\u0635\u062d\u0627\u0628 \u0627\u0644\u0623\u0639\u0645\u0627\u0644:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0627\u0644\u0622\u0633\u064a\u0648\u064a\u0629:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0627\u0644\u0633\u0648\u062f\u0627\u0621:","\u0645\u0645\u0644\u0648\u0643\u0629 LGBTQ:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0633\u0643\u0627\u0646 \u0627\u0644\u0623\u0635\u0644\u064a\u064a\u0646:","\u0645\u0645\u0644\u0648\u0643\u0629 \u0645\u0646 \u0627\u0644\u0634\u0631\u0642 \u0627\u0644\u0623\u0648\u0633\u0637:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0645\u062d\u0627\u0631\u0628\u064a\u0646 \u0627\u0644\u0642\u062f\u0627\u0645\u0649:","\u062a\u0645\u0644\u0643\u0647\u0627 \u0623\u0642\u0644\u064a\u0629:","\u0627\u0645\u0631\u0623\u0629 \u0645\u0645\u0644\u0648\u0643\u0629:","\u062e\u062f\u0645\u0629:","\u0635\u062d\u0629 \u0627\u0644\u0645\u062c\u062a\u0645\u0639:","\u0637\u0628 \u0627\u0644\u0623\u0633\u0646\u0627\u0646:","\u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0639\u0627\u062c\u0644\u0629:","\u0635\u062d\u0629 \u0627\u0644\u0623\u0633\u0631\u0629:","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u0646\u0641\u0633\u064a\u0629:","\u0637\u0628 \u0627\u0644\u0623\u0637\u0641\u0627\u0644:","\u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0635\u062d\u064a\u0629 \u0627\u0644\u0623\u0648\u0644\u064a\u0629:","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u062c\u0646\u0633\u064a\u0629:","\u0645\u062a\u062e\u0635\u0635:","\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0635\u062d\u064a\u0629 \u0627\u0644\u0623\u062e\u0631\u0649:","\u0627\u0644\u0625\u0639\u0644\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u062a\u0633\u0648\u064a\u0642:","\u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a:","\u0628\u0627\u0631/\u0645\u0637\u0639\u0645:","\u0628\u0646\u0627\u0621:","\u062a\u0631\u0641\u064a\u0647:","\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0625\u0646\u0633\u0627\u0646\u064a\u0629:","\u0645\u0646\u0638\u0631 \u062c\u0645\u0627\u0644\u064a:","\u0627\u0644\u0642\u0627\u0646\u0648\u0646\u064a\u0629 \u0648\u0627\u0644\u0645\u0627\u0644\u064a\u0629:","\u0627\u0644\u062a\u0635\u0646\u064a\u0639 \u0648\u0627\u0644\u062a\u0648\u0632\u064a\u0639:","\u0631\u0639\u0627\u064a\u0629 \u0634\u062e\u0635\u064a\u0629:","\u0645\u0643\u0627\u0646 \u0644\u0644\u0639\u0628\u0627\u062f\u0629:","\u0628\u064a\u0639 \u0628\u0627\u0644\u062a\u062c\u0632\u0626\u0629:","\u0622\u062e\u0631:","\u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0631\u0627\u062d\u0629:"],"boundaries":["\u062d\u062f\u0648\u062f","\u0623\u062d\u064a\u0627\u0621","\u0645\u062e\u0627\u0641\u0631 \u0627\u0644\u0634\u0631\u0637\u0629","\u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064a\u062f\u064a","\u0645\u0631\u0627\u0641\u0642 \u0627\u0644\u0645\u062f\u064a\u0646\u0629"],"filters":["\u0645\u0631\u0634\u062d\u0627\u062a \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a","\u062d\u0633\u0628 \u0627\u0644\u0645\u0644\u0643\u064a\u0629:","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0627\u0644\u0622\u0633\u064a\u0648\u064a\u0629","\u0627\u0644\u0623\u0633\u0648\u062f \u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629","\u0645\u0645\u0644\u0648\u0643\u0629 LGBTQ","\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0633\u0643\u0627\u0646 \u0627\u0644\u0623\u0635\u0644\u064a\u064a\u0646","\u0627\u0644\u0634\u0631\u0642 \u0627\u0644\u0623\u0648\u0633\u0637 \u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629","\u0627\u0644\u0645\u0645\u0644\u0648\u0643\u0629 \u0644\u0644\u0645\u062d\u0627\u0631\u0628\u064a\u0646 \u0627\u0644\u0642\u062f\u0627\u0645\u0649","\u062a\u0645\u0644\u0643\u0647\u0627 \u0623\u0642\u0644\u064a\u0629","\u0627\u0645\u0631\u0623\u0629 \u0645\u0645\u0644\u0648\u0643\u0629","\u062d\u0633\u0628 \u0627\u0644\u062e\u062f\u0645\u0627\u062a:","\u0635\u062d\u0629 \u0627\u0644\u0645\u062c\u062a\u0645\u0639","\u0637\u0628 \u0627\u0644\u0623\u0633\u0646\u0627\u0646","\u0627\u0644\u0637\u0648\u0627\u0631\u0626 / \u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0639\u0627\u062c\u0644\u0629","\u0635\u062d\u0629 \u0627\u0644\u0623\u0633\u0631\u0629","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u0646\u0641\u0633\u064a\u0629","\u0637\u0628 \u0627\u0644\u0623\u0637\u0641\u0627\u0644","\u0627\u0644\u0631\u0639\u0627\u064a\u0629 \u0627\u0644\u0635\u062d\u064a\u0629 \u0627\u0644\u0623\u0648\u0644\u064a\u0629","\u0627\u0644\u0635\u062d\u0629 \u0627\u0644\u062c\u0646\u0633\u064a\u0629","\u0645\u062a\u062e\u0635\u0635","\u062e\u062f\u0645\u0627\u062a \u0635\u062d\u064a\u0629 \u0623\u062e\u0631\u0649","\u0627\u0644\u0625\u0639\u0644\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u062a\u0633\u0648\u064a\u0642","\u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a","\u0628\u0627\u0631/\u0645\u0637\u0639\u0645","\u0628\u0646\u0627\u0621","\u062a\u0631\u0641\u064a\u0647","\u0627\u0644\u062e\u062f\u0645\u0627\u062a \u0627\u0644\u0625\u0646\u0633\u0627\u0646\u064a\u0629","\u0645\u0646\u0638\u0631 \u062c\u0645\u0627\u0644\u064a","\u0627\u0644\u0642\u0627\u0646\u0648\u0646\u064a\u0629 \u0648\u0627\u0644\u0645\u0627\u0644\u064a\u0629","\u0627\u0644\u062a\u0635\u0646\u064a\u0639 \u0648\u0627\u0644\u062a\u0648\u0632\u064a\u0639","\u0631\u0639\u0627\u064a\u0629 \u0634\u062e\u0635\u064a\u0629","\u0645\u0643\u0627\u0646 \u0644\u0644\u0639\u0628\u0627\u062f\u0629","\u0628\u064a\u0639 \u0628\u0627\u0644\u062a\u062c\u0632\u0626\u0629","\u0622\u062e\u0631","\u0645\u0644\u0627\u062d\u0638\u0629: \u0633\u064a\u0624\u062f\u064a \u062a\u062d\u062f\u064a\u062f \u0639\u0648\u0627\u0645\u0644 \u062a\u0635\u0641\u064a\u0629 \u0645\u062a\u0639\u062f\u062f\u0629 \u0625\u0644\u0649 \u062a\u0636\u0645\u064a\u0646 \u0627\u0644\u0623\u0646\u0634\u0637\u0629 \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629 \u0627\u0644\u062a\u064a \u062a\u0633\u062a\u0648\u0641\u064a \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0639\u0627\u064a\u064a\u0631 \u0641\u0642\u0637\u060c \u0648\u0644\u064a\u0633 \u0645\u0639\u064a\u0627\u0631\u064b\u0627 \u0648\u0627\u062d\u062f\u064b\u0627 \u0641\u0642\u0637 \u0623\u0648 \u0628\u0639\u0636\u0647\u0627.","\u062d\u0633\u0628 \u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0631\u0627\u062d\u0629:","\u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0646\u0642\u0644 \u0627\u0644\u0639\u0627\u0645 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627","ADA \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627","\u0631\u0641 \u0627\u0644\u062f\u0631\u0627\u062c\u0629","\u0645\u0648\u0642\u0641 \u0644\u0644\u0633\u064a\u0627\u0631\u0627\u062a","\u0646\u0642\u062f \u0641\u0642\u0637","\u062e\u062f\u0645\u0629 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0627\u0644\u0644\u0627\u0633\u0644\u0643\u064a \u0628\u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a \u0639\u0628\u0631 \u062a\u0642\u0646\u064a\u0629 \u0648\u0627\u064a \u0641\u0627\u064a","\u062d\u0645\u0627\u0645\u0627\u062a \u0645\u062d\u0627\u064a\u062f\u0629 \u0628\u064a\u0646 \u0627\u0644\u062c\u0646\u0633\u064a\u0646","\u0645\u0633\u0627\u062d\u0629 \u0627\u0644\u0625\u064a\u062c\u0627\u0631"],"info":["\u0645\u0639\u0644\u0648\u0645\u0629","\u0623\u0648\u0635\u0627\u0641 \u0627\u0644\u0623\u064a\u0642\u0648\u0646\u0627\u062a","\u0648\u0633\u0627\u0626\u0644 \u0627\u0644\u0646\u0642\u0644 \u0627\u0644\u0639\u0627\u0645 \u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u064a\u0647\u0627","\u064a\u0645\u0643\u0646 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 ADA","\u0631\u0641 \u0627\u0644\u062f\u0631\u0627\u062c\u0629","\u0633\u0627\u062d\u0629 \u0644\u0627\u0646\u062a\u0638\u0627\u0631 \u0627\u0644\u0633\u064a\u0627\u0631\u0627\u062a","\u0646\u0642\u062f \u0641\u0642\u0637","\u0648\u0627\u0649 \u0641\u0627\u0649 \u0645\u062c\u0627\u0646\u0649","\u0645\u0633\u0627\u062d\u0629 \u0644\u0644\u0625\u064a\u062c\u0627\u0631","\u0627\u062e\u062a\u0627\u0631 \u0627\u0644\u0644\u063a\u0629","\u062a\u0645 \u062a\u0642\u062f\u064a\u0645 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0625\u0644\u064a\u0643 \u0645\u0646 \u0642\u0628\u0644 \u0645\u0643\u062a\u0628 \u0639\u0636\u0648 \u0627\u0644\u0645\u062c\u0644\u0633 \u063a\u0627\u0628\u0631\u064a\u064a\u0644\u0627 \u0633\u0627\u0646\u062a\u064a\u0627\u063a\u0648 \u0631\u0648\u0645\u064a\u0631\u0648 \u0628\u062f\u0639\u0645 \u0645\u0646 \u0642\u0633\u0645 \u0627\u0644\u0627\u0628\u062a\u0643\u0627\u0631 \u0648\u0627\u0644\u062a\u0643\u0646\u0648\u0644\u0648\u062c\u064a\u0627. \u062c\u0645\u064a\u0639 \u0627\u0644\u0634\u0631\u0643\u0627\u062a \u0627\u0644\u0645\u062f\u0631\u062c\u0629 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0637\u0644\u0628\u062a \u0625\u062f\u0631\u0627\u062c\u0647\u0627. \u0625\u0630\u0627 \u0643\u0646\u062a \u062a\u0645\u062b\u0644 \u0634\u0631\u0643\u0629 \u0645\u062d\u0644\u064a\u0629 \u062a\u0639\u0645\u0644 \u0641\u064a D6 \u0648\u062a\u0631\u063a\u0628 \u0641\u064a \u0623\u0646 \u064a\u062a\u0645 \u0625\u062f\u0631\u0627\u062c\u0643 \u0641\u064a \u0627\u0644\u0642\u0627\u0626\u0645\u0629\u060c","\u064a\u0631\u062c\u0649 \u0625\u0643\u0645\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u0646\u0645\u0648\u0630\u062c","\u0644\u0644\u0645\u0631\u0627\u062c\u0639\u0629 (\u0645\u0644\u0627\u062d\u0638\u0629: \u0633\u064a\u062a\u0645 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u0634\u0631\u0643\u0627\u062a \u0627\u0644\u0645\u0648\u062c\u0648\u062f\u0629 \u0648\u0627\u0644\u0639\u0627\u0645\u0644\u0629 \u0641\u064a D6\u060c \u062d\u064a\u062b \u0623\u0646 \u0647\u0630\u0627 \u062f\u0644\u064a\u0644 \u062e\u0627\u0635 \u0628\u0640 D6)."]}}'),c=a.p+"static/media/logo2.be972cd9.png";var l=a(160);customElements.define("app-display",n);class d extends HTMLElement{static get observedAttributes(){return["data-app-state","data-parcel-id","data-map-state","data-active-boundaries","data-active-filters","data-language"]}constructor(){super();const e=this.attachShadow({mode:"open"}),t=document.getElementsByTagName("d6-business-map");t[0].getAttribute("data-app-state");this.mainData={name:"d6",data:"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token="},this.layers=r,this.languageText=o,console.log(this.languageText);const a=document.createElement("style");a.textContent="#app-wrapper{\n position: relative;\n display: flex;\n -ms-flex-align: stretch;\n height: 800px;\n}\n\ncod-map{\n flex: 1;\n}\n\n#d6-map-nav{\n position: absolute;\n display: flex;\n flex-direction: column;\n top: 1em;\n left: 1em;\n z-index: 10;\n}\n\n.offcanvas-title img{\n width: 6em;\n position: relative;\n left: 8em;\n}\n\n#d6-start-screen{\n z-index: 11;\n}",this.shadowRoot.appendChild(a),this.appWrapper=document.createElement("section"),this.appWrapper.id="app-wrapper",e.appendChild(this.appWrapper),this.nav=document.createElement("section"),this.nav.id="d6-map-nav",this.filterBtn=document.createElement("cod-button"),this.filterBtn.setAttribute("data-label",""),this.filterBtn.setAttribute("data-size","lg"),this.filterBtn.setAttribute("data-img",""),this.filterBtn.setAttribute("data-img-alt",""),this.filterBtn.setAttribute("data-shape","square"),this.filterBtn.setAttribute("data-nav-value","filters"),this.filterBtn.setAttribute("data-icon","funnel"),this.filterBtn.setAttribute("data-icon-size","medium"),this.filterBtn.setAttribute("data-aria-label","Filters"),this.filterBtn.setAttribute("data-extra-classes","icon-center"),this.filterBtn.setAttribute("data-background-color","primary"),this.filterBtn.setAttribute("data-primary",!0),this.filterBtn.addEventListener("click",(e=>{document.getElementsByTagName("d6-business-map")[0].setAttribute("data-app-state","active-filters")})),this.nav.appendChild(this.filterBtn),this.LayerBtn=document.createElement("cod-button"),this.LayerBtn.setAttribute("data-label",""),this.LayerBtn.setAttribute("data-size","lg"),this.LayerBtn.setAttribute("data-img",""),this.LayerBtn.setAttribute("data-img-alt",""),this.LayerBtn.setAttribute("data-shape","square"),this.LayerBtn.setAttribute("data-nav-value","layers"),this.LayerBtn.setAttribute("data-icon","bounding-box"),this.LayerBtn.setAttribute("data-icon-size","medium"),this.LayerBtn.setAttribute("data-aria-label","Layers"),this.LayerBtn.setAttribute("data-extra-classes","icon-center"),this.LayerBtn.setAttribute("data-background-color","primary"),this.LayerBtn.setAttribute("data-primary",!0),this.LayerBtn.addEventListener("click",(e=>{document.getElementsByTagName("d6-business-map")[0].setAttribute("data-app-state","active-layers")})),this.nav.appendChild(this.LayerBtn),this.infoBtn=document.createElement("cod-button"),this.infoBtn.setAttribute("data-label",""),this.infoBtn.setAttribute("data-size","lg"),this.infoBtn.setAttribute("data-img",""),this.infoBtn.setAttribute("data-img-alt",""),this.infoBtn.setAttribute("data-shape","square"),this.infoBtn.setAttribute("data-nav-value","info"),this.infoBtn.setAttribute("data-icon","exclamation-circle"),this.infoBtn.setAttribute("data-icon-size","medium"),this.infoBtn.setAttribute("data-aria-label","Information"),this.infoBtn.setAttribute("data-extra-classes","icon-center"),this.infoBtn.setAttribute("data-background-color","primary"),this.infoBtn.setAttribute("data-primary",!0),this.infoBtn.addEventListener("click",(e=>{document.getElementsByTagName("d6-business-map")[0].setAttribute("data-app-state","active-info")})),this.nav.appendChild(this.infoBtn),e.appendChild(this.nav),this.panel=document.createElement("cod-offcanvas"),this.panel.id="d6-map-panel",this.panelHeader=document.createElement("cod-offcanvas-header"),this.panelLogo=document.createElement("img"),this.panelLogo.style.width="6em",this.panelLogo.style.position="relative",this.panelLogo.style.left="8em",this.panelLogo.src=c,this.panelHeader.appendChild(this.panelLogo);let i=window.innerHeight-150;this.panelBody=document.createElement("cod-offcanvas-body"),this.panelContent=document.createElement("article"),this.panelContent.style.height="".concat(i,"px"),this.panelContent.style.overflowY="auto",this.panelContent.innerHTML="",this.panelBody.appendChild(this.panelContent),this.panel.appendChild(this.panelHeader),this.panel.appendChild(this.panelBody),e.appendChild(this.panel),this.startScreen=document.createElement("cod-modal"),this.startScreen.setAttribute("data-id","d6-start-screen"),this.startScreen.innerHTML='\n \n \n

Welcome to Council Member Santiago-Romero\'s District 6 Business Directory!\n

This directory provides an overview of businesses located within Detroit City Council District 6 (D6). Those listed have opted-in to this directory, so please note this is not exhaustive of all D6 businesses.

\n

Here are some other helpful tips for navigating this directory:

\n
    \n
  • Scroll around and zoom in/out on this map to see what in various neighborhoods.
  • \n
  • Click on any of the purple dots to view a D6 business profile, which includes location, business type, ownership demographics, and services and amenities available.
  • \n
  • Additional tools:\n
      \n
    • The filter icon (top) on the upper left will allow you to filter businesses by ownership and/or type of service available.
    • \n
    • The boundary icon (middle) on the upper left will allow you to toggle on overlay additional maps to see neighborhood boundaries, zip code boundaries, police precinct boundaries, and view some City Facilities (i.e. recreation centers, police precincts, libraries, and municipal buildings).
    • \n
    • The info icon (bottom) on the upper left will allow you to translate this director into other languages and view icon descriptions associated with business amenities.
    • \n
    \n
  • \n
\n

If you are a local business in D6 and would like to be included, please complete this form for review.

\n

For any questions, please email councilmembergabriela@detroitmi.gov with subject line "D6 Directory".

\n
\n \n \n '),e.appendChild(this.startScreen),this.startScreen.setAttribute("data-show",!0),this.layers=this.createLabelLayers(),console.log(this.layers);let s={id:"d6-business",layers:[{name:"data-points",type:"circle",radius:7,color:"#745da8",active:!0,sort:10,source:"data-points"}],source:this.mainData.data};this.map=document.createElement("cod-map"),this.map.id="d6-map",this.map.setAttribute("data-parent-component","d6-business-map"),this.map.setAttribute("data-map-mode","map-panel"),this.map.setAttribute("data-center","-83.103111,42.31103400000001"),this.map.setAttribute("data-zoom","11.5"),this.map.setAttribute("data-popup-layers",JSON.stringify(["city-facilities"])),this.map.setAttribute("data-popup-structure",JSON.stringify({"city-facilities":[{type:"field-value",label:"Name:",value:"Facility"},{type:"field-value",label:"Address:",value:"Address"}]})),this.map.setAttribute("data-map-data",JSON.stringify(s)),this.map.setAttribute("data-map-layers",JSON.stringify(this.layers.layers)),this.map.setAttribute("data-location",this.getAttribute("data-location")),this.map.setAttribute("data-map-state","init"),t[0].setAttribute("data-active-boundaries","coucil-district-6-lines"),this.appWrapper.appendChild(this.map)}createLabelLayers(){const e=this.layers;let t=["neighborhoods","police-precincts","zip-codes"];return e.layers.forEach((a=>{t.includes(a.name)&&fetch(a.source).then((e=>e.json())).then((function(t){let i={type:"FeatureCollection",crs:{type:"name",properties:{name:"EPSG:4326"}},features:[]};switch(t.features.forEach((e=>{let t=(0,l.c)(e.geometry);switch(a.name){case"neighborhoods":t.properties.name="Central Southwest"==e.properties.nhood_name?"Southwest":e.properties.nhood_name,i.features.push(t);break;case"police-precincts":t.properties.name=e.properties.name,i.features.push(t);break;case"zip-codes":t.properties.name=e.properties.zipcode,i.features.push(t)}})),a.name){case"neighborhoods":e.layers[1].source=i;break;case"police-precincts":e.layers[3].source=i;break;case"zip-codes":e.layers[5].source=i}}))})),e}attributeChangedCallback(e,t,a){switch(console.log("App - attribute: ".concat(e,", old: ").concat(t,", new: ").concat(a)),e){case"data-active-filters":if(null!==t){const e=a.split(",");let t=this.buildQuery(e);console.log(t);const i=this;fetch(t).then((e=>e.json())).then((function(e){console.log(e),i.map.map.getSource("data-points")&&i.map.map.getSource("data-points").setData(e)})).catch((e=>{}))}break;case"data-active-boundaries":const e=t.split(","),i=a.split(",");let s;i.length>e.length?(s=this.arrayDifference(i,e),this.changeVisibility(s,"visible",this.map)):(s=this.arrayDifference(e,i),this.changeVisibility(s,"none",this.map));break;case"data-language":this.setAttribute("data-app-state",this.getAttribute("data-app-state"));break;default:this.loadApp(this)}}arrayDifference(e,t){const a=[];for(let i=0;i{switch(e){case"is_asian_owned":case"is_asian_owned":t.push("is_asian_owned%3D1");break;case"is_black_owned":t.push("is_black_owned%3D1");break;case"is_lgbtq_owned":t.push("is_lgbtq_owned%3D1");break;case"is_indigenous_owned":t.push("is_indigenous_owned%3D1");break;case"is_middle_eastern_owned":t.push("is_middle_eastern_owned%3D1");break;case"is_veteran_owned":t.push("is_veteran_owned%3D1");break;case"is_minority_owned":t.push("is_minority_owned%3D1");break;case"is_woman_owned":t.push("is_woman_owned%3D1");break;case"has_clinic_community_health_ser":t.push("has_clinic_community_health_ser%3D1");break;case"has_dental_service":t.push("has_dental_service%3D1");break;case"has_emergency_urgent_care_servi":t.push("has_emergency_urgent_care_servi%3D1");break;case"has_family_health_service":t.push("has_family_health_service%3D1");break;case"has_mental_health_service":t.push("has_mental_health_service%3D1");break;case"has_pediatric_service":t.push("has_pediatric_service%3D1");break;case"has_primary_care_service":t.push("has_primary_care_service%3D1");break;case"has_sexual_health_service":t.push("has_sexual_health_service%3D1");break;case"has_specialist_service":t.push("has_specialist_service%3D1");break;case"has_other_health_service":t.push("has_other_health_service%3D1");break;case"is_ads_comms_marketing":t.push("is_ads_comms_marketing%3D1");break;case"is_automotive":t.push("is_automotive%3D1");break;case"is_bar_restaurant":t.push("is_bar_restaurant%3D1");break;case"is_construction":t.push("is_construction%3D1");break;case"is_entertainment":t.push("is_entertainment%3D1");break;case"is_human_services":t.push("is_human_services%3D1");break;case"is_landscape":t.push("is_landscape%3D1");break;case"is_legal_financial":t.push("is_legal_financial%3D1");break;case"is_manufacturing_distribution":t.push("is_manufacturing_distribution%3D1");break;case"is_personal_care_services":t.push("is_personal_care_services%3D1");break;case"is_place_of_worship":t.push("is_place_of_worship%3D1");break;case"is_retail":t.push("is_retail%3D1");break;case"is_other":t.push("is_other%3D1");break;case"is_public_transit_accessible":t.push("is_public_transit_accessible%3D1");break;case"is_ada_accessible":t.push("is_ada_accessible%3D1");break;case"has_bike_rack":t.push("has_bike_rack%3D1");break;case"has_parking_lot":t.push("has_parking_lot%3D1");break;case"is_cash_only":t.push("is_cash_only%3D1");break;case"has_free_wifi":t.push("has_free_wifi%3D1");break;case"has_gender_neutral_bathrooms":t.push("has_gender_neutral_bathrooms%3D1");break;case"has_rental_space":t.push("has_rental_space%3D1")}})),t=t.join("+AND+"),""===t&&(t="1%3D1"),"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=".concat(t,"&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=")}changeVisibility(e,t,a){e.forEach((e=>{a.map.setLayoutProperty(e,"visibility",t)}))}clearApp(e){const t=e.shadowRoot;for(;t.firstChild;)t.removeChild(t.firstChild)}clearPanel(e){}updateBoundaries(e){const t=document.getElementsByTagName("d6-business-map");let a=null===t[0].getAttribute("data-active-boundaries")?"":t[0].getAttribute("data-active-boundaries"),i=a.split(",");if(a=[],e.target.formCheck.checked)a=i,a.push(e.target.formCheck.value);else{let t=e.target.formCheck.value.split(",");i.forEach((e=>{!t.includes(e)&&a.push(e)}))}a=a.join(","),t[0].setAttribute("data-active-boundaries",a)}updateMainData(e){const t=document.getElementsByTagName("d6-business-map");let a=null===t[0].getAttribute("data-active-filters")?"":t[0].getAttribute("data-active-filters"),i=a.split(",");if(a=[],e.target.formCheck.checked)a=i,a.push(e.target.formCheck.value);else{let t=e.target.formCheck.value.split(",");i.forEach((e=>{!t.includes(e)&&a.push(e)}))}a=a.join(","),t[0].setAttribute("data-active-filters",a)}loadApp(e){const t=e.shadowRoot,a=document.createElement("div");a.id="app-wrapper";const i=e.getAttribute("data-language"),s=e.getAttribute("data-active-boundaries").split(",");let n=[];switch(null!=e.getAttribute("data-active-filters")&&(n=e.getAttribute("data-active-filters").split(",")),e.getAttribute("data-app-state")){case"start-screen":default:break;case"active-panel":let e=JSON.parse(this.getAttribute("data-panel-data"));console.log(e.properties),console.log(""==e.properties.photo_url),this.panelContent.innerHTML="\n ".concat(""==e.properties.photo_url?"":''),'\n

').concat(e.properties.business_name,"

\n

").concat(this.languageText[i].panel[0]," ").concat(e.properties.address,"\n ").concat(e.properties.profit_or_nonprofit?"

".concat(this.languageText[i].panel[1]," ").concat(e.properties.profit_or_nonprofit,"

"):"","\n\n

").concat(this.languageText[i].panel[2],"

\n
    \n ").concat(e.properties.is_asian_owned?"
  • ".concat(this.languageText[i].panel[3]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_black_owned?"
  • ".concat(this.languageText[i].panel[4]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_indigenous_owned?"
  • ".concat(this.languageText[i].panel[6]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_lgbtq_owned?"
  • ".concat(this.languageText[i].panel[5]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_middle_eastern_owned?"
  • ".concat(this.languageText[i].panel[7]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_minority_owned?"
  • ".concat(this.languageText[i].panel[9]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_veteran_owned?"
  • ".concat(this.languageText[i].panel[8]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_woman_owned?"
  • ".concat(this.languageText[i].panel[10]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n
\n\n

").concat(this.languageText[i].panel[11],"

\n
    \n ").concat(e.properties.is_ads_comms_marketing?"
  • ".concat(this.languageText[i].panel[22]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_automotive?"
  • ".concat(this.languageText[i].panel[23]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_bar_restaurant?"
  • ".concat(this.languageText[i].panel[24]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_clinic_community_health_ser?"
  • ".concat(this.languageText[i].panel[12]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_construction?"
  • ".concat(this.languageText[i].panel[25]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_dental_service?"
  • ".concat(this.languageText[i].panel[13]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_entertainment?"
  • ".concat(this.languageText[i].panel[26]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_family_health_service?"
  • ".concat(this.languageText[i].panel[15]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_human_services?"
  • ".concat(this.languageText[i].panel[27]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_landscape?"
  • ".concat(this.languageText[i].panel[28]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_legal_financial?"
  • ".concat(this.languageText[i].panel[29]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_manufacturing_distribution?"
  • ".concat(this.languageText[i].panel[30]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_mental_health_service?"
  • ".concat(this.languageText[i].panel[16]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_other_health_service?"
  • ".concat(this.languageText[i].panel[21]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_other?"
  • ".concat(this.languageText[i].panel[34]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_pediatric_service?"
  • ".concat(this.languageText[i].panel[17]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_personal_care_services?"
  • ".concat(this.languageText[i].panel[31]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_place_of_worship?"
  • ".concat(this.languageText[i].panel[32]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_primary_care_service?"
  • ".concat(this.languageText[i].panel[18]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.is_retail?"
  • ".concat(this.languageText[i].panel[33]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_sexual_health_service?"
  • ".concat(this.languageText[i].panel[19]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_specialist_service?"
  • ".concat(this.languageText[i].panel[20]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n ").concat(e.properties.has_emergency_urgent_care_servi?"
  • ".concat(this.languageText[i].panel[14]," ").concat(this.languageText[i].yes[0],"
  • "):"","\n
\n\n

").concat(this.languageText[i].panel[35],"

\n

\n ").concat(e.properties.is_public_transit_accessible?'':"","\n ").concat(e.properties.is_ada_accessible?'':""," \n ").concat(e.properties.has_bike_rack?'':""," \n ").concat(e.properties.has_parking_lot?'':""," \n ").concat(e.properties.is_cash_only?'':""," \n ").concat(e.properties.has_free_wifi?'':""," \n ").concat(e.properties.has_gender_neutral_bathrooms?'':""," \n ").concat(e.properties.has_rental_space?'':""," \n

\n "),this.panel.setAttribute("data-show","true");break;case"active-filters":this.panelContent.innerHTML="";const t=document.createElement("p");t.innerText=this.languageText[i].filters[0],t.style.backgroundColor="#745DA8",t.style.color="#fff",t.className="fs-3 fw-bold text-center";const r=document.createElement("p");r.innerText=this.languageText[i].filters[34];const o=document.createElement("p");o.innerText=this.languageText[i].filters[1],o.style.fontWeight="bold";const c=document.createElement("section"),l=document.createElement("cod-form-check");l.setAttribute("data-checked","false"),l.setAttribute("data-id","asian-owned"),l.setAttribute("data-name","data-filters"),l.setAttribute("data-value","is_asian_owned"),n.includes("is_asian_owned")&&l.setAttribute("data-checked",!0),l.setAttribute("data-type","checkbox"),l.setAttribute("data-label",this.languageText[i].filters[2]),l.addEventListener("change",(e=>{this.updateMainData(e)}));const d=document.createElement("cod-form-check");d.setAttribute("data-checked","false"),d.setAttribute("data-id","black-owned"),d.setAttribute("data-name","data-filters"),d.setAttribute("data-value","is_black_owned"),n.includes("is_black_owned")&&d.setAttribute("data-checked",!0),d.setAttribute("data-type","checkbox"),d.setAttribute("data-label",this.languageText[i].filters[3]),d.addEventListener("change",(e=>{this.updateMainData(e)}));const u=document.createElement("cod-form-check");u.setAttribute("data-checked","false"),u.setAttribute("data-id","lgbtq-owned"),u.setAttribute("data-name","data-filters"),u.setAttribute("data-value","is_lgbtq_owned"),n.includes("is_lgbtq_owned")&&u.setAttribute("data-checked",!0),u.setAttribute("data-type","checkbox"),u.setAttribute("data-label",this.languageText[i].filters[4]),u.addEventListener("change",(e=>{this.updateMainData(e)}));const p=document.createElement("cod-form-check");p.setAttribute("data-checked","false"),p.setAttribute("data-id","indigenous-owned"),p.setAttribute("data-name","data-filters"),p.setAttribute("data-value","is_indigenous_owned"),n.includes("is_indigenous_owned")&&p.setAttribute("data-checked",!0),p.setAttribute("data-type","checkbox"),p.setAttribute("data-label",this.languageText[i].filters[5]),p.addEventListener("change",(e=>{this.updateMainData(e)}));const h=document.createElement("cod-form-check");h.setAttribute("data-checked","false"),h.setAttribute("data-id","middle-eastern-owned"),h.setAttribute("data-name","data-filters"),h.setAttribute("data-value","is_middle_eastern_owned"),n.includes("is_middle_eastern_owned")&&h.setAttribute("data-checked",!0),h.setAttribute("data-type","checkbox"),h.setAttribute("data-label",this.languageText[i].filters[6]),h.addEventListener("change",(e=>{this.updateMainData(e)}));const m=document.createElement("cod-form-check");m.setAttribute("data-checked","false"),m.setAttribute("data-id","veteran-owned"),m.setAttribute("data-name","data-filters"),m.setAttribute("data-value","is_veteran_owned"),n.includes("is_veteran_owned")&&m.setAttribute("data-checked",!0),m.setAttribute("data-type","checkbox"),m.setAttribute("data-label",this.languageText[i].filters[7]),m.addEventListener("change",(e=>{this.updateMainData(e)}));const b=document.createElement("cod-form-check");b.setAttribute("data-checked","false"),b.setAttribute("data-id","minority-owned"),b.setAttribute("data-name","data-filters"),b.setAttribute("data-value","is_minority_owned"),n.includes("is_minority_owned")&&b.setAttribute("data-checked",!0),b.setAttribute("data-type","checkbox"),b.setAttribute("data-label",this.languageText[i].filters[8]),b.addEventListener("change",(e=>{this.updateMainData(e)}));const g=document.createElement("cod-form-check");g.setAttribute("data-checked","false"),g.setAttribute("data-id","minority-owned"),g.setAttribute("data-name","data-filters"),g.setAttribute("data-value","is_woman_owned"),n.includes("is_woman_owned")&&g.setAttribute("data-checked",!0),g.setAttribute("data-type","checkbox"),g.setAttribute("data-label",this.languageText[i].filters[9]),g.addEventListener("change",(e=>{this.updateMainData(e)}));const f=document.createElement("p");f.innerText=this.languageText[i].filters[10],f.style.fontWeight="bold";const y=document.createElement("section"),A=document.createElement("cod-form-check");A.setAttribute("data-checked","false"),A.setAttribute("data-id","dental"),A.setAttribute("data-name","data-filters"),A.setAttribute("data-value","has_dental_service"),n.includes("has_dental_service")&&A.setAttribute("data-checked",!0),A.setAttribute("data-type","checkbox"),A.setAttribute("data-label",this.languageText[i].filters[12]),A.addEventListener("change",(e=>{this.updateMainData(e)}));const v=document.createElement("cod-form-check");v.setAttribute("data-checked","false"),v.setAttribute("data-id","marketing"),v.setAttribute("data-name","data-filters"),v.setAttribute("data-value","is_ads_comms_marketing"),n.includes("is_ads_comms_marketing")&&v.setAttribute("data-checked",!0),v.setAttribute("data-type","checkbox"),v.setAttribute("data-label",this.languageText[i].filters[21]),v.addEventListener("change",(e=>{this.updateMainData(e)}));const _=document.createElement("cod-form-check");_.setAttribute("data-checked","false"),_.setAttribute("data-id","automotive"),_.setAttribute("data-name","data-filters"),_.setAttribute("data-value","is_automotive"),n.includes("is_automotive")&&_.setAttribute("data-checked",!0),_.setAttribute("data-type","checkbox"),_.setAttribute("data-label",this.languageText[i].filters[22]),_.addEventListener("change",(e=>{this.updateMainData(e)}));const k=document.createElement("cod-form-check");k.setAttribute("data-checked","false"),k.setAttribute("data-id","bar-restaurant"),k.setAttribute("data-name","data-filters"),k.setAttribute("data-value","is_bar_restaurant"),n.includes("is_bar_restaurant")&&k.setAttribute("data-checked",!0),k.setAttribute("data-type","checkbox"),k.setAttribute("data-label",this.languageText[i].filters[23]),k.addEventListener("change",(e=>{this.updateMainData(e)}));const C=document.createElement("cod-form-check");C.setAttribute("data-checked","false"),C.setAttribute("data-id","construction"),C.setAttribute("data-name","data-filters"),C.setAttribute("data-value","is_construction"),n.includes("is_construction")&&C.setAttribute("data-checked",!0),C.setAttribute("data-type","checkbox"),C.setAttribute("data-label",this.languageText[i].filters[24]),C.addEventListener("change",(e=>{this.updateMainData(e)}));const x=document.createElement("cod-form-check");x.setAttribute("data-checked","false"),x.setAttribute("data-id","entertainment"),x.setAttribute("data-name","data-filters"),x.setAttribute("data-value","is_entertainment"),n.includes("is_entertainment")&&x.setAttribute("data-checked",!0),x.setAttribute("data-type","checkbox"),x.setAttribute("data-label",this.languageText[i].filters[25]),x.addEventListener("change",(e=>{this.updateMainData(e)}));const w=document.createElement("cod-form-check");w.setAttribute("data-checked","false"),w.setAttribute("data-id","human-services"),w.setAttribute("data-name","data-filters"),w.setAttribute("data-value","is_human_services"),n.includes("is_human_services")&&w.setAttribute("data-checked",!0),w.setAttribute("data-type","checkbox"),w.setAttribute("data-label",this.languageText[i].filters[26]),w.addEventListener("change",(e=>{this.updateMainData(e)}));const E=document.createElement("cod-form-check");E.setAttribute("data-checked","false"),E.setAttribute("data-id","landscape"),E.setAttribute("data-name","data-filters"),E.setAttribute("data-value","is_landscape"),n.includes("is_landscape")&&E.setAttribute("data-checked",!0),E.setAttribute("data-type","checkbox"),E.setAttribute("data-label",this.languageText[i].filters[27]),E.addEventListener("change",(e=>{this.updateMainData(e)}));const D=document.createElement("cod-form-check");D.setAttribute("data-checked","false"),D.setAttribute("data-id","legal-financial"),D.setAttribute("data-name","data-filters"),D.setAttribute("data-value","is_legal_financial"),n.includes("is_legal_financial")&&D.setAttribute("data-checked",!0),D.setAttribute("data-type","checkbox"),D.setAttribute("data-label",this.languageText[i].filters[28]),D.addEventListener("change",(e=>{this.updateMainData(e)}));const T=document.createElement("cod-form-check");T.setAttribute("data-checked","false"),T.setAttribute("data-id","manufacturing-distribution"),T.setAttribute("data-name","data-filters"),T.setAttribute("data-value","is_manufacturing_distribution"),n.includes("is_manufacturing_distribution")&&T.setAttribute("data-checked",!0),T.setAttribute("data-type","checkbox"),T.setAttribute("data-label",this.languageText[i].filters[29]),T.addEventListener("change",(e=>{this.updateMainData(e)}));const S=document.createElement("cod-form-check");S.setAttribute("data-checked","false"),S.setAttribute("data-id","personal-care"),S.setAttribute("data-name","data-filters"),S.setAttribute("data-value","is_personal_care_services"),n.includes("is_personal_care_services")&&S.setAttribute("data-checked",!0),S.setAttribute("data-type","checkbox"),S.setAttribute("data-label",this.languageText[i].filters[30]),S.addEventListener("change",(e=>{this.updateMainData(e)}));const B=document.createElement("cod-form-check");B.setAttribute("data-checked","false"),B.setAttribute("data-id","worship"),B.setAttribute("data-name","data-filters"),B.setAttribute("data-value","is_place_of_worship"),n.includes("is_place_of_worship")&&B.setAttribute("data-checked",!0),B.setAttribute("data-type","checkbox"),B.setAttribute("data-label",this.languageText[i].filters[31]),B.addEventListener("change",(e=>{this.updateMainData(e)}));const F=document.createElement("cod-form-check");F.setAttribute("data-checked","false"),F.setAttribute("data-id","retail"),F.setAttribute("data-name","data-filters"),F.setAttribute("data-value","is_retail"),n.includes("is_retail")&&F.setAttribute("data-checked",!0),F.setAttribute("data-type","checkbox"),F.setAttribute("data-label",this.languageText[i].filters[32]),F.addEventListener("change",(e=>{this.updateMainData(e)}));const P=document.createElement("cod-form-check");P.setAttribute("data-checked","false"),P.setAttribute("data-id","other-service"),P.setAttribute("data-name","data-filters"),P.setAttribute("data-value","is_other"),n.includes("is_other")&&P.setAttribute("data-checked",!0),P.setAttribute("data-type","checkbox"),P.setAttribute("data-label",this.languageText[i].filters[33]),P.addEventListener("change",(e=>{this.updateMainData(e)}));const L=document.createElement("p");L.innerText=this.languageText[i].filters[35],L.style.fontWeight="bold";const O=document.createElement("section"),M=document.createElement("cod-form-check");M.setAttribute("data-checked","false"),M.setAttribute("data-id","public-transit"),M.setAttribute("data-name","data-filters"),M.setAttribute("data-value","is_public_transit_accessible"),n.includes("is_public_transit_accessible")&&M.setAttribute("data-checked",!0),M.setAttribute("data-type","checkbox"),M.setAttribute("data-label",this.languageText[i].filters[36]),M.addEventListener("change",(e=>{this.updateMainData(e)}));const R=document.createElement("cod-form-check");R.setAttribute("data-checked","false"),R.setAttribute("data-id","ada-accessible"),R.setAttribute("data-name","data-filters"),R.setAttribute("data-value","is_ada_accessible"),n.includes("is_ada_accessible")&&R.setAttribute("data-checked",!0),R.setAttribute("data-type","checkbox"),R.setAttribute("data-label",this.languageText[i].filters[37]),R.addEventListener("change",(e=>{this.updateMainData(e)}));const N=document.createElement("cod-form-check");N.setAttribute("data-checked","false"),N.setAttribute("data-id","bike-rack"),N.setAttribute("data-name","data-filters"),N.setAttribute("data-value","has_bike_rack"),n.includes("has_bike_rack")&&N.setAttribute("data-checked",!0),N.setAttribute("data-type","checkbox"),N.setAttribute("data-label",this.languageText[i].filters[38]),N.addEventListener("change",(e=>{this.updateMainData(e)}));const z=document.createElement("cod-form-check");z.setAttribute("data-checked","false"),z.setAttribute("data-id","parking"),z.setAttribute("data-name","data-filters"),z.setAttribute("data-value","has_parking_lot"),n.includes("has_parking_lot")&&z.setAttribute("data-checked",!0),z.setAttribute("data-type","checkbox"),z.setAttribute("data-label",this.languageText[i].filters[39]),z.addEventListener("change",(e=>{this.updateMainData(e)}));const I=document.createElement("cod-form-check");I.setAttribute("data-checked","false"),I.setAttribute("data-id","cash-only"),I.setAttribute("data-name","data-filters"),I.setAttribute("data-value","is_cash_only"),n.includes("is_cash_only")&&I.setAttribute("data-checked",!0),I.setAttribute("data-type","checkbox"),I.setAttribute("data-label",this.languageText[i].filters[40]),I.addEventListener("change",(e=>{this.updateMainData(e)}));const G=document.createElement("cod-form-check");G.setAttribute("data-checked","false"),G.setAttribute("data-id","wifi"),G.setAttribute("data-name","data-filters"),G.setAttribute("data-value","has_free_wifi"),n.includes("has_free_wifi")&&G.setAttribute("data-checked",!0),G.setAttribute("data-type","checkbox"),G.setAttribute("data-label",this.languageText[i].filters[41]),G.addEventListener("change",(e=>{this.updateMainData(e)}));const q=document.createElement("cod-form-check");q.setAttribute("data-checked","false"),q.setAttribute("data-id","gender-neutral-bathrooms"),q.setAttribute("data-name","data-filters"),q.setAttribute("data-value","has_gender_neutral_bathrooms"),n.includes("has_gender_neutral_bathrooms")&&q.setAttribute("data-checked",!0),q.setAttribute("data-type","checkbox"),q.setAttribute("data-label",this.languageText[i].filters[42]),q.addEventListener("change",(e=>{this.updateMainData(e)}));const H=document.createElement("cod-form-check");H.setAttribute("data-checked","false"),H.setAttribute("data-id","rental-space"),H.setAttribute("data-name","data-filters"),H.setAttribute("data-value","has_rental_space"),n.includes("has_rental_space")&&H.setAttribute("data-checked",!0),H.setAttribute("data-type","checkbox"),H.setAttribute("data-label",this.languageText[i].filters[43]),H.addEventListener("change",(e=>{this.updateMainData(e)})),this.panelContent.appendChild(t),this.panelContent.appendChild(r),this.panelContent.appendChild(o),c.appendChild(l),c.appendChild(d),c.appendChild(u),c.appendChild(p),c.appendChild(h),c.appendChild(m),c.appendChild(b),c.appendChild(g),this.panelContent.appendChild(c),this.panelContent.appendChild(f),y.appendChild(v),y.appendChild(_),y.appendChild(k),y.appendChild(C),y.appendChild(x),y.appendChild(A),y.appendChild(w),y.appendChild(E),y.appendChild(D),y.appendChild(T),y.appendChild(B),y.appendChild(S),y.appendChild(F),y.appendChild(P),this.panelContent.appendChild(y),this.panelContent.appendChild(L),O.appendChild(M),O.appendChild(R),O.appendChild(N),O.appendChild(z),O.appendChild(I),O.appendChild(G),O.appendChild(q),O.appendChild(H),this.panelContent.appendChild(O),this.panel.setAttribute("data-show","true");break;case"active-layers":this.panelContent.innerHTML="";const j=document.createElement("p");j.innerText=this.languageText[i].boundaries[0],j.style.backgroundColor="#745DA8",j.style.color="#fff",j.className="fs-3 fw-bold text-center";const W=document.createElement("section"),J=document.createElement("cod-form-check");J.setAttribute("data-id","neighborhoods"),J.setAttribute("data-name","map-layer"),console.log(s.includes("neighborhoods-lines")),s.includes("neighborhoods-lines")&&J.setAttribute("data-checked",!0),J.setAttribute("data-value","neighborhoods-lines,neighborhoods-fill,neighborhood-labels"),J.setAttribute("data-type","checkbox"),J.setAttribute("data-label",this.languageText[i].boundaries[1]),J.addEventListener("change",(e=>{this.updateBoundaries(e)}));const V=document.createElement("cod-form-check");V.setAttribute("data-id","police-precincts"),V.setAttribute("data-name","map-layer"),console.log(s.includes("police-precincts-lines")),s.includes("police-precincts-lines")&&V.setAttribute("data-checked",!0),V.setAttribute("data-value","police-precincts-lines,police-precincts-fill,police-precincts-labels"),V.setAttribute("data-type","checkbox"),V.setAttribute("data-label",this.languageText[i].boundaries[2]),V.addEventListener("change",(e=>{this.updateBoundaries(e)}));const U=document.createElement("cod-form-check");U.setAttribute("data-id","zip-codes"),U.setAttribute("data-name","map-layer"),s.includes("zip-codes-lines")&&U.setAttribute("data-checked",!0),U.setAttribute("data-value","zip-codes-lines,zip-codes-fill,zip-codes-labels"),U.setAttribute("data-type","checkbox"),U.setAttribute("data-label",this.languageText[i].boundaries[3]),U.addEventListener("change",(e=>{this.updateBoundaries(e)}));const Q=document.createElement("cod-form-check");Q.setAttribute("data-id","city-facilites"),Q.setAttribute("data-name","map-layer"),s.includes("city-facilities")&&Q.setAttribute("data-checked",!0),Q.setAttribute("data-value","city-facilities"),Q.setAttribute("data-type","checkbox"),Q.setAttribute("data-label",this.languageText[i].boundaries[4]),Q.addEventListener("change",(e=>{this.updateBoundaries(e)})),this.panelContent.appendChild(j),W.appendChild(J),W.appendChild(V),W.appendChild(U),W.appendChild(Q),this.panelContent.appendChild(W),this.panel.setAttribute("data-show","true");break;case"active-info":this.panelContent.innerHTML="";const Z=document.createElement("p");Z.innerText=this.languageText[i].info[0],Z.style.backgroundColor="#745DA8",Z.style.color="#fff",Z.className="fs-3 fw-bold text-center";const Y=document.createElement("label");Y.className="fw-bold",Y.htmlFor="language-selector",Y.innerText=this.languageText[i].info[9];const K=document.createElement("cod-form-select");K.setAttribute("data-id","language-selector"),K.setAttribute("data-aria-label",this.languageText[i].info[9]),K.innerHTML='\n \n \n \n \n \n ");const X=this;K.addEventListener("change",(e=>{const t=e.target.shadowRoot;X.setAttribute("data-language",t.childNodes[1].value)}));const $=document.createElement("p");$.innerHTML="\n
\n ".concat(this.languageText[i].info[10],'\n ').concat(this.languageText[i].info[11]," ").concat(this.languageText[i].info[12],"\n ");const ee=document.createElement("article");ee.innerHTML=" \n
\n

".concat(this.languageText[i].info[1],'

\n

').concat(this.languageText[i].info[2],'

\n

').concat(this.languageText[i].info[3],'

\n

').concat(this.languageText[i].info[4],'

\n

').concat(this.languageText[i].info[5],'

\n

').concat(this.languageText[i].info[6],'

\n

').concat(this.languageText[i].info[7],'

\n

').concat(this.languageText[i].info[8],"

\n "),this.panelContent.appendChild(Z),this.panelContent.appendChild(Y),this.panelContent.appendChild(K),this.panelContent.appendChild($),this.panelContent.appendChild(ee),this.panel.setAttribute("data-show","true");break;case"error":display.setAttribute("data-display-type","error"),a.appendChild(display);break;case"print":display.setAttribute("data-display-type","print"),a.appendChild(display)}null==t.firstChild&&t.appendChild(a)}}customElements.define("d6-business-map",d)}},e=>{e.O(0,[432],(()=>{return t=780,e(e.s=t);var t}));e.O()}]); //# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/build/assets/js/main.js.map b/build/assets/js/main.js.map index edc12ee..b84172f 100644 --- a/build/assets/js/main.js.map +++ b/build/assets/js/main.js.map @@ -1 +1 @@ -{"version":3,"file":"assets/js/main.js","mappings":"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","sources":["webpack://d6-business-directory/./src/components/Geocoder.js","webpack://d6-business-directory/./src/components/NavigationTools.js","webpack://d6-business-directory/./src/components/Display.js","webpack://d6-business-directory/./src/assets/logo2.png","webpack://d6-business-directory/./src/components/D6BusinessMap.js","webpack://d6-business-directory/./src/components/D6BusinessMap.css","webpack://d6-business-directory/./src/index.js"],"sourcesContent":["'use strict';\nexport default class Geocoder extends HTMLElement {\n\n static get observedAttributes() {\n return ['form', 'parcelStatus', 'user'];\n }\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Set Attributes\n this.form = null;\n this.parcelStatus = 'Invalid';\n this.user = null;\n this.styles = document.createElement('style');\n this.styles.textContent = `\n @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;700&display=swap')\n #geocoder {width: 100%}\n input {width: calc(100% - 2em); padding: 1em; border:.1em solid #e6e6e6; font-size: 1em;}\n `;\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n // Create geocoder section\n shadow.appendChild(this.styles);\n const geocoderWraper = document.createElement('article');\n geocoderWraper.id = 'geocoder';\n let form = document.createElement('form');\n let label = document.createElement('label');\n label.style.fontFamily = 'Montserrat, sans-serif';\n label.style.fontWeight = 'bold';\n let input = document.createElement('input');\n let suggestions = document.createElement('ul');\n let list = document.createElement('datalist');\n let icon = document.createElement('i');\n form.addEventListener('submit', (ev) => {\n this.submit(ev, this);\n });\n icon.className = 'fas fa-map-marker-alt';\n // Get label text\n const app = document.getElementsByTagName('my-home-info');\n label.innerText = \"Property Address:\";\n try {\n if (app[0].getAttribute('data-geocoder-label')){\n if(app[0].getAttribute('data-geocoder-label') != ''){\n label.innerText = app[0].getAttribute('data-geocoder-label');\n }\n }\n } catch (error) {\n \n }\n label.setAttribute(\"for\", \"geocoder-input\");\n input.type = 'text';\n input.setAttribute('list', 'addresses-list');\n input.placeholder = 'Enter address';\n input.setAttribute('id', 'geocoder-input');\n input.setAttribute('autocomplete', 'off');\n input.addEventListener('keyup', (ev) => {\n this.inputChange(ev, this);\n });\n list.setAttribute('id', 'addresses-list');\n\n\n form.appendChild(label);\n form.appendChild(input);\n form.appendChild(icon);\n // form.appendChild(suggestions);\n form.appendChild(list);\n this.form = form;\n geocoderWraper.appendChild(form);\n shadow.appendChild(geocoderWraper);\n }\n\n supplementGeocoder(address, geocoder, type) {\n const app = document.getElementsByTagName('my-home-info');\n let tempAddr = address.split(\",\");\n tempAddr = tempAddr[0];\n tempAddr = tempAddr.split(\" \");\n let newTempAddr = '';\n let size = tempAddr.length;\n tempAddr.forEach(function (item, index) {\n newTempAddr += item;\n ((index < size) && (index + 1) !== size) ? newTempAddr += '+' : 0;\n });\n let url = `https://opengis.detroitmi.gov/opengis/rest/services/BaseUnits/BaseUnitGeocoder/GeocodeServer/findAddressCandidates?Address=&Address2=&Address3=&Neighborhood=&City=&Subregion=&Region=&Postal=&PostalExt=&CountryCode=&SingleLine=${newTempAddr}&outFields=*&maxLocations=&matchOutOfRange=true&langCode=&locationType=&sourceCountry=&category=&location=&distance=&searchExtent=&outSR=&magicKey=&f=json`;\n\n try {\n fetch(url)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n // console.log(data);\n if (type === 'suggestions') {\n data.candidates.forEach((item) => {\n let sugg = document.createElement('option');\n if (item.attributes.parcel_id === '') {\n sugg.value = item.address;\n sugg.setAttribute('data-parsel', 'no-parcel');\n } else {\n sugg.value = `${item.address} RECOMMENDED`;\n sugg.setAttribute('data-parsel', item.attributes.parcel_id);\n }\n\n sugg.onclick = (ev) => {\n geocoder.selectSuggestion(ev, geocoder);\n }\n geocoder.form.childNodes[3].appendChild(sugg);\n });\n } else {\n if (data.candidates.length) {\n let url = `https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/City_of_Detroit_Boundary/FeatureServer/0/query?where=&objectIds=&time=&geometry=${data.candidates[0].location.x}%2C+${data.candidates[0].location.y}&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=4326&returnGeometry=true&returnCentroid=false&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnDistinctValues=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=`;\n try {\n fetch(url)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (city) {\n if (city.features.length) {\n let parcel = null;\n let location;\n data.candidates.forEach((item) => {\n if (item.attributes.parcel_id !== '') {\n if (geocoder.checkParcelValid(item.attributes.parcel_id)) {\n parcel = item;\n }\n }\n });\n (parcel == null) ? location = data.candidates[0].location : location = null;\n if (parcel === null) {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-parcel-id', JSON.stringify(data.candidates[0]));\n // geocoder.controller.panel.loaderToggle(true);\n // geocoder.controller.panel.clearPanel();\n // geocoder.controller.dataManager.buildData(data.candidates[0], geocoder.controller);\n } else {\n geocoder.parcelStatus = 'Valid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-parcel-id', JSON.stringify(parcel));\n // geocoder.controller.panel.loaderToggle(true);\n // geocoder.controller.panel.clearPanel();\n // geocoder.controller.dataManager.buildData(parcel, geocoder.controller);\n }\n } else {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n });\n } catch (error) {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n } else {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n }\n });\n } catch (error) {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n }\n\n selectSuggestion(ev, geocoder) {\n let selection = null;\n if (ev.target.tagName === 'SPAN') {\n selection = ev.target.parentNode;\n } else {\n selection = ev.target;\n }\n if (selection.attributes[0].value === 'no-parcel') {\n geocoder.clearSuggestions(geocoder);\n geocoder.supplementGeocoder(selection.innerText, geocoder, 'submit');\n } else {\n geocoder.supplementGeocoder(selection.innerText, geocoder, 'submit');\n }\n }\n\n inputChange(ev, geocoder) {\n switch (ev.key) {\n case 'Enter':\n (ev.target.value != '' && ev.target.value != undefined) ? geocoder.supplementGeocoder(ev.target.value, geocoder, 'submit') : 0;\n break;\n\n case 'ArrowDown':\n\n break;\n\n case 'ArrowUp':\n\n break;\n\n case 'ArrowRight':\n\n break;\n\n case 'ArrowLeft':\n\n break;\n\n case undefined:\n (ev.target.value != '' && ev.target.value != undefined) ? geocoder.supplementGeocoder(ev.target.value, geocoder, 'submit') : 0;\n break;\n\n default:\n geocoder.clearSuggestions(geocoder);\n geocoder.supplementGeocoder(ev.target.value, geocoder, 'suggestions');\n break;\n }\n }\n\n clearSuggestions(geocoder) {\n while (geocoder.form.childNodes[3].firstChild) {\n geocoder.form.childNodes[3].removeChild(geocoder.form.childNodes[3].firstChild);\n }\n }\n\n needGeocode(address, geocoder, location) {\n fetch('https://us-central1-local-services-loopkup.cloudfunctions.net/getToken')\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n let cleanAddress = address.split(' RECOMMENDED')[0];\n let params = [\n {\n \"attributes\": {\n \"valid_parcel_status\": geocoder.parcelStatus,\n \"user_input\": cleanAddress\n },\n \"geometry\": {\n \"x\": 0,\n \"y\": 0\n }\n }\n ];\n if (location != null) {\n params[0].geometry.x = location.x;\n params[0].geometry.y = location.y;\n }\n let request = new Request(`https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/addressvalidator/FeatureServer/0/addFeatures?token=${data.access_token}&features=${encodeURIComponent(JSON.stringify(params))}&f=json`, {\n method: 'POST',\n body: '',\n headers: new Headers(),\n mode: 'cors',\n cache: 'default'\n });\n fetch(request)\n .then((res) => {\n // console.log(res);\n });\n });\n }\n\n checkParcelValid(parcel){\n return /\\d/.test(parcel);\n }\n\n submit(ev, geocoder) {\n ev.preventDefault();\n geocoder.supplementGeocoder(ev.target['0'].value, geocoder, 'submit');\n }\n}","export default class NavigationTools extends HTMLElement {\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n // Creating display styles\n this.navToolsStyle = document.createElement('style');\n this.navToolsStyle.textContent = `\n #nav-tools-wrapper { display: flex; flex-direction: column;}\n button.clear { font-size: 1.25em; width: 2.5em; height: 2.5em; background-color: #FEB70D; cursor: pointer; border: none; }\n button.nav { width: 3.75em; height: 3.75em; border: none; cursor: pointer;background: #fff; }\n button.nav:hover { background-color: #e6e6e6; transition: all 500ms cubic-bezier(.64,.09,.08,1); }\n button.nav.active { background-color: #9fd5b3; }\n button.nav img { width: 100%; }\n `;\n\n // Start loading display content\n this.loadNavTools(this);\n }\n\n clearDisplay(display) {\n const shadow = display.shadowRoot;\n while (shadow.firstChild) {\n shadow.removeChild(shadow.firstChild);\n }\n }\n\n loadNavTools(navTools) {\n const app = document.getElementsByTagName('d6-business-map');\n const appStatus = app[0].getAttribute('data-app-state');\n const appMode = app[0].getAttribute('data-app-mode');\n const initialSets = app[0].getAttribute('data-inital-sets');\n const initalMapStatus = app[0].getAttribute('data-initial-map-available');\n const shadow = navTools.shadowRoot;\n shadow.appendChild(navTools.navToolsStyle);\n const navToolsWrapper = document.createElement('section');\n navToolsWrapper.id = 'nav-tools-wrapper';\n navToolsWrapper.setAttribute('role', 'navigation');\n navToolsWrapper.setAttribute('aria-label', 'Data Navigation');\n const clearResultsBtn = document.createElement('cod-button');\n clearResultsBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-app-mode') == 'my-home-info') {\n app[0].setAttribute('data-app-state', 'welcome-screen');\n app[0].setAttribute('data-active-sets', 'assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection');\n } else {\n app[0].setAttribute('data-app-state', 'active-screen');\n app[0].setAttribute('data-active-sets', initialSets);\n }\n if(initalMapStatus == 'true'){\n app[0].setAttribute('data-map-available', 'true');\n }else{\n app[0].setAttribute('data-map-available', 'false');\n }\n app[0].setAttribute('data-parcel-id', 'none');\n app[0].setAttribute('data-api-stored-datasets', '{}');\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-section', 'property');\n });\n clearResultsBtn.setAttribute('data-primary', true);\n clearResultsBtn.setAttribute('data-label', 'x');\n clearResultsBtn.setAttribute('data-size', 'lg');\n clearResultsBtn.setAttribute('data-hover', false);\n clearResultsBtn.setAttribute('data-extra-classes', 'fw-bold');\n clearResultsBtn.setAttribute('data-background-color', 'warning');\n clearResultsBtn.setAttribute('data-img', '');\n clearResultsBtn.setAttribute('data-img-alt', '');\n clearResultsBtn.setAttribute('data-shape', 'square');\n clearResultsBtn.setAttribute('data-icon', '');\n navToolsWrapper.appendChild(clearResultsBtn);\n\n if (appMode == 'my-home-info' && appStatus != 'error') {\n const propertyDataBtn = document.createElement('cod-button');\n propertyDataBtn.setAttribute('data-label', '');\n propertyDataBtn.setAttribute('data-size', 'lg');\n propertyDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/home.png');\n propertyDataBtn.setAttribute('data-img-alt', 'about this property');\n propertyDataBtn.setAttribute('data-shape', 'square');\n propertyDataBtn.setAttribute('data-nav-value', 'about this property');\n propertyDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'about this property') {\n propertyDataBtn.setAttribute('data-background-color', 'success');\n propertyDataBtn.setAttribute('data-primary', true);\n } else {\n propertyDataBtn.setAttribute('data-background-color', 'secondary');\n propertyDataBtn.setAttribute('data-primary', false);\n propertyDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection');\n app[0].setAttribute('data-map-available', 'false');\n app[0].setAttribute('data-active-section', 'about this property');\n app[0].setAttribute('data-app-state', 'loading-screen');\n })\n }\n navToolsWrapper.appendChild(propertyDataBtn);\n\n const govDataBtn = document.createElement('cod-button');\n govDataBtn.setAttribute('data-label', '');\n govDataBtn.setAttribute('data-size', 'lg');\n govDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/government.png');\n govDataBtn.setAttribute('data-img-alt', 'government officials');\n govDataBtn.setAttribute('data-shape', 'square');\n govDataBtn.setAttribute('data-nav-value', 'government officials');\n govDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'government officials') {\n govDataBtn.setAttribute('data-background-color', 'success');\n govDataBtn.setAttribute('data-primary', true);\n } else {\n govDataBtn.setAttribute('data-background-color', 'secondary');\n govDataBtn.setAttribute('data-primary', false);\n govDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'council,council-members,bop-members,district-managers,business-liaison,district-inspectors,npo');\n app[0].setAttribute('data-map-available', 'false');\n app[0].setAttribute('data-active-section', 'government officials');\n app[0].setAttribute('data-app-state', 'loading-screen');\n });\n }\n navToolsWrapper.appendChild(govDataBtn);\n\n const zoneDataBtn = document.createElement('cod-button');\n zoneDataBtn.setAttribute('data-label', '');\n zoneDataBtn.setAttribute('data-size', 'lg');\n zoneDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/zone.png');\n zoneDataBtn.setAttribute('data-img-alt', 'special areas and zones');\n zoneDataBtn.setAttribute('data-shape', 'square');\n zoneDataBtn.setAttribute('data-nav-value', 'special areas and zones');\n zoneDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'special areas and zones') {\n zoneDataBtn.setAttribute('data-background-color', 'success');\n zoneDataBtn.setAttribute('data-primary', true);\n } else {\n zoneDataBtn.setAttribute('data-background-color', 'secondary');\n zoneDataBtn.setAttribute('data-primary', false);\n zoneDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'nez,nrsa,historicDistrict');\n app[0].setAttribute('data-map-available', 'false');\n app[0].setAttribute('data-active-section', 'special areas and zones');\n app[0].setAttribute('data-app-state', 'loading-screen');\n });\n }\n navToolsWrapper.appendChild(zoneDataBtn);\n\n const nearDataBtn = document.createElement('cod-button');\n nearDataBtn.setAttribute('data-label', '');\n nearDataBtn.setAttribute('data-size', 'lg');\n nearDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/nearby.png');\n nearDataBtn.setAttribute('data-img-alt', 'things nearby');\n nearDataBtn.setAttribute('data-shape', 'square');\n nearDataBtn.setAttribute('data-nav-value', 'things nearby');\n nearDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'things nearby') {\n nearDataBtn.setAttribute('data-background-color', 'success');\n nearDataBtn.setAttribute('data-primary', true);\n } else {\n nearDataBtn.setAttribute('data-background-color', 'secondary');\n nearDataBtn.setAttribute('data-primary', false);\n nearDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'schools,demos-data,stabilization-data,improve-det');\n app[0].setAttribute('data-active-section', 'things nearby');\n app[0].setAttribute('data-map-available', 'true');\n app[0].setAttribute('data-app-state', 'loading-screen');\n });\n }\n navToolsWrapper.appendChild(nearDataBtn);\n\n const printBtn = document.createElement('cod-button');\n printBtn.setAttribute('data-label', '');\n printBtn.setAttribute('data-size', 'lg');\n printBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/print.png');\n printBtn.setAttribute('data-img-alt', 'print');\n printBtn.setAttribute('data-shape', 'square');\n printBtn.setAttribute('data-nav-value', 'print');\n printBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'print') {\n printBtn.setAttribute('data-background-color', 'success');\n printBtn.setAttribute('data-primary', true);\n } else {\n printBtn.setAttribute('data-background-color', 'secondary');\n printBtn.setAttribute('data-primary', false);\n printBtn.addEventListener('click', (ev) => {\n if(ev.target.getAttribute('data-nav-value')){\n app[0].setAttribute('data-app-state', 'print');\n }\n });\n }\n navToolsWrapper.appendChild(printBtn);\n }\n\n shadow.appendChild(navToolsWrapper);\n }\n\n}\n","'use strict';\nimport Geocoder from './Geocoder';\nimport NavigationTools from './NavigationTools';\ncustomElements.define('app-geocoder', Geocoder);\ncustomElements.define('app-nav-tools', NavigationTools);\nexport default class Display extends HTMLElement {\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n shadow.innerHTML = `\n \n \n
Offcanvas
\n
\n \n

\n Some text as placeholder. In real life you can have the elements you\n have chosen. Like, text, images, lists, etc.\n

\n
\n
\n `;\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n // console.log(`Display - attribute: ${name}, old: ${oldValue}, new: ${newValue}`);\n if (newValue == 'data-panel-data') {\n this.clearDisplay(this);\n }\n if (name == 'data-pagination'){\n this.clearDisplay(this);\n }\n this.loadDisplay(this);\n }\n\n clearDisplay(display) {\n const shadow = display.shadowRoot;\n while (shadow.firstChild) {\n shadow.removeChild(shadow.firstChild);\n }\n }\n\n formatDate(value) {\n const month = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const tempDate = new Date(value);\n return `${month[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getFullYear()}`;\n }\n\n printInfo(display) {\n let divContents = display.buildDataSection(display);\n let a = window.open('', '', 'height=500, width=500');\n a.document.write('');\n a.document.write('');\n a.document.write('');\n a.document.write(divContents.children[1].innerHTML);\n a.document.write('');\n a.document.close();\n a.print();\n }\n\n loadDisplay(display) {\n const shadow = display.shadowRoot;\n const displayWrapper = document.createElement('section');\n const geocoder = document.createElement('app-geocoder');\n const navTools = document.createElement('app-nav-tools');\n const app = document.getElementsByTagName('my-home-info');\n navTools.printInfo = display.printInfo;\n displayWrapper.id = 'display-wrapper';\n switch (this.getAttribute('data-display-type')) {\n case 'active-panel':\n console.log('loading panel');\n let data = JSON.parse(this.getAttribute('data-panel-data'));\n let panel = document.createElement('cod-offcanvas');\n panel.id = 'd6-map-panel';\n panel.setAttribute('data-show', 'true');\n let panelHeader = document.createElement('cod-offcanvas-header');\n let panelBody = document.createElement('cod-offcanvas-body');\n \n panelHeader.innerHTML = `
${data.properties.business_name}`;\n panelBody.innerHTML = `\n

Address: ${data.properties.address}

\n

Phone: ${data.properties.business_phone_number}

\n

Website: ${data.properties.business_phone_website}

\n `;\n panel.appendChild(panelHeader);\n panel.appendChild(panelBody);\n displayWrapper.appendChild(panel);\n shadow.appendChild(displayWrapper);\n console.log(panel);\n break;\n\n case 'active':\n shadow.appendChild(display.welcomeStyle);\n displayWrapper.appendChild(geocoder);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'loading':\n const loader = document.createElement('cod-loader');\n loader.setAttribute('data-color', 'color-3');\n displayWrapper.appendChild(loader);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'results':\n let parcelData = JSON.parse(app[0].getAttribute('data-parcel-id'));\n shadow.appendChild(display.resultsStyle);\n let resultsContainer = document.createElement('section');\n resultsContainer.className = 'results-container';\n resultsContainer.appendChild(navTools);\n let dataSetResults = document.createElement('article');\n dataSetResults.className = 'dataset-results';\n let addressBox = document.createElement('article');\n addressBox.className = 'result-address';\n addressBox.innerText = parcelData.address;\n dataSetResults.appendChild(addressBox);\n let results = display.buildDataSection(display);\n dataSetResults.appendChild(results);\n resultsContainer.appendChild(dataSetResults);\n displayWrapper.appendChild(resultsContainer);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'error':\n let errorContainer = document.createElement('section');\n shadow.appendChild(display.resultsStyle);\n errorContainer.className = 'results-container';\n errorContainer.appendChild(navTools);\n let errorBox = document.createElement('article');\n errorBox.className = 'error-result';\n errorBox.innerHTML = `\n \n \n \n \n \n \n \n \n \n \n

No Information found on this address. Please close and try again.

\n `;\n errorContainer.appendChild(errorBox);\n displayWrapper.appendChild(errorContainer);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'print':\n let printParcelData = JSON.parse(app[0].getAttribute('data-parcel-id'));\n shadow.appendChild(display.resultsStyle);\n let printResultsContainer = document.createElement('section');\n printResultsContainer.className = 'results-container';\n printResultsContainer.appendChild(navTools);\n let printDataSetResults = document.createElement('article');\n printDataSetResults.className = 'dataset-results';\n let printAddressBox = document.createElement('article');\n printAddressBox.className = 'result-address';\n printAddressBox.innerText = printParcelData.address;\n printDataSetResults.appendChild(printAddressBox);\n let printResults = display.buildDataSection(display);\n printDataSetResults.appendChild(printResults);\n printResultsContainer.appendChild(printDataSetResults);\n displayWrapper.appendChild(printResultsContainer);\n shadow.appendChild(displayWrapper);\n display.printInfo(display);\n break;\n\n default:\n break;\n }\n }\n\n}\n","export default __webpack_public_path__ + \"static/media/logo2.be972cd9.png\";","'use strict';\nimport styles from '!!raw-loader!./D6BusinessMap.css';\nimport Display from './Display';\nimport layers from './layers.json';\nimport languageText from './language-text.json';\nimport logo from '../assets/logo2.png';\nimport centroid from '@turf/centroid';\n\ncustomElements.define('app-display', Display);\n\nexport default class D6BusinessMap extends HTMLElement {\n static get observedAttributes() {\n return ['data-app-state', 'data-parcel-id', 'data-map-state', 'data-active-boundaries', 'data-active-filters','data-language'];\n }\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n // Create result section\n const app = document.getElementsByTagName('d6-business-map');\n let tempState = app[0].getAttribute('data-app-state');\n\n this.mainData = {\"name\":\"d6\",\"data\":\"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token=\"};\n\n this.layers = layers;\n\n this.languageText = languageText;\n console.log(this.languageText);\n\n // Adding styles\n const appStyles = document.createElement('style');\n appStyles.textContent = styles;\n this.shadowRoot.appendChild(appStyles);\n\n // Creating app wrapper\n this.appWrapper = document.createElement('section');\n this.appWrapper.id = 'app-wrapper';\n shadow.appendChild(this.appWrapper);\n\n // create navtools\n this.nav = document.createElement('section');\n this.nav.id = 'd6-map-nav';\n this.filterBtn = document.createElement('cod-button');\n this.filterBtn.setAttribute('data-label', '');\n this.filterBtn.setAttribute('data-size', 'lg');\n this.filterBtn.setAttribute('data-img', '');\n this.filterBtn.setAttribute('data-img-alt', '');\n this.filterBtn.setAttribute('data-shape', 'square');\n this.filterBtn.setAttribute('data-nav-value', 'filters');\n this.filterBtn.setAttribute('data-icon', 'funnel');\n this.filterBtn.setAttribute('data-icon-size', 'medium');\n this.filterBtn.setAttribute('data-aria-label', 'Filters');\n this.filterBtn.setAttribute('data-extra-classes', 'icon-center');\n this.filterBtn.setAttribute('data-background-color', 'primary');\n this.filterBtn.setAttribute('data-primary', true);\n this.filterBtn.addEventListener('click', (ev) => {\n let app = document.getElementsByTagName('d6-business-map');\n app[0].setAttribute('data-app-state', 'active-filters');\n });\n this.nav.appendChild(this.filterBtn);\n\n this.LayerBtn = document.createElement('cod-button');\n this.LayerBtn.setAttribute('data-label', '');\n this.LayerBtn.setAttribute('data-size', 'lg');\n this.LayerBtn.setAttribute('data-img', '');\n this.LayerBtn.setAttribute('data-img-alt', '');\n this.LayerBtn.setAttribute('data-shape', 'square');\n this.LayerBtn.setAttribute('data-nav-value', 'layers');\n this.LayerBtn.setAttribute('data-icon', 'bounding-box');\n this.LayerBtn.setAttribute('data-icon-size', 'medium');\n this.LayerBtn.setAttribute('data-aria-label', 'Layers');\n this.LayerBtn.setAttribute('data-extra-classes', 'icon-center');\n this.LayerBtn.setAttribute('data-background-color', 'primary');\n this.LayerBtn.setAttribute('data-primary', true);\n this.LayerBtn.addEventListener('click', (ev) => {\n let app = document.getElementsByTagName('d6-business-map');\n app[0].setAttribute('data-app-state', 'active-layers');\n });\n this.nav.appendChild(this.LayerBtn);\n\n this.infoBtn = document.createElement('cod-button');\n this.infoBtn.setAttribute('data-label', '');\n this.infoBtn.setAttribute('data-size', 'lg');\n this.infoBtn.setAttribute('data-img', '');\n this.infoBtn.setAttribute('data-img-alt', '');\n this.infoBtn.setAttribute('data-shape', 'square');\n this.infoBtn.setAttribute('data-nav-value', 'info');\n this.infoBtn.setAttribute('data-icon', 'exclamation-circle');\n this.infoBtn.setAttribute('data-icon-size', 'medium');\n this.infoBtn.setAttribute('data-aria-label', 'Information');\n this.infoBtn.setAttribute('data-extra-classes', 'icon-center');\n this.infoBtn.setAttribute('data-background-color', 'primary');\n this.infoBtn.setAttribute('data-primary', true);\n this.infoBtn.addEventListener('click', (ev) => {\n let app = document.getElementsByTagName('d6-business-map');\n app[0].setAttribute('data-app-state', 'active-info');\n });\n this.nav.appendChild(this.infoBtn);\n shadow.appendChild(this.nav);\n\n // create panel component\n this.panel = document.createElement('cod-offcanvas');\n this.panel.id = 'd6-map-panel';\n this.panelHeader = document.createElement('cod-offcanvas-header');\n this.panelLogo = document.createElement('img');\n this.panelLogo.style.width = '6em';\n this.panelLogo.style.position = 'relative';\n this.panelLogo.style.left = '8em';\n this.panelLogo.src = logo;\n this.panelHeader.appendChild(this.panelLogo);\n\n let viewHeight = window.innerHeight - 150;\n this.panelBody = document.createElement('cod-offcanvas-body');\n this.panelContent = document.createElement('article');\n this.panelContent.style.height = `${viewHeight}px`;\n this.panelContent.style.overflowY = \"auto\";\n this.panelContent.innerHTML = ``;\n this.panelBody.appendChild(this.panelContent);\n\n this.panel.appendChild(this.panelHeader);\n this.panel.appendChild(this.panelBody);\n shadow.appendChild(this.panel);\n\n // create start screen\n this.startScreen = document.createElement('cod-modal');\n this.startScreen.setAttribute('data-id', 'd6-start-screen');\n this.startScreen.innerHTML = `\n \n
\"Gabriela
\n

Welcome to Council Member Santiago-Romero's District 6 Business Directory!\n

This directory provides an overview of businesses located within Detroit City Council District 6 (D6). Those listed have opted-in to this directory, so please note this is not exhaustive of all D6 businesses.

\n

Here are some other helpful tips for navigating this directory:

\n
    \n
  • Scroll around and zoom in/out on this map to see what in various neighborhoods.
  • \n
  • Click on any of the purple dots to view a D6 business profile, which includes location, business type, ownership demographics, and services and amenities available.
  • \n
  • Additional tools:\n
      \n
    • The filter icon (top) on the upper left will allow you to filter businesses by ownership and/or type of service available.
    • \n
    • The boundary icon (middle) on the upper left will allow you to toggle on overlay additional maps to see neighborhood boundaries, zip code boundaries, police precinct boundaries, and view some City Facilities (i.e. recreation centers, police precincts, libraries, and municipal buildings).
    • \n
    • The info icon (bottom) on the upper left will allow you to translate this director into other languages and view icon descriptions associated with business amenities.
    • \n
    \n
  • \n
\n

If you are a local business in D6 and would like to be included, please complete this form for review.

\n

For any questions, please email councilmembergabriela@detroitmi.gov with subject line \"D6 Directory\".

\n
\n \n \n `;\n\n shadow.appendChild(this.startScreen);\n\n this.startScreen.setAttribute('data-show', true);\n\n // Add label layers\n this.layers = this.createLabelLayers();\n\n console.log(this.layers);\n // Create map component\n let popupLayers = [\"city-facilities\"];\n let popupStructure = {\"city-facilities\":[{\"type\":\"field-value\",\"label\":\"Name:\",\"value\":\"Facility\"},{\"type\":\"field-value\",\"label\":\"Address:\",\"value\":\"Address\"}]}\n let tempMainData = {\"id\":\"d6-business\",\"layers\":[{\"name\":\"data-points\",\"type\":\"circle\",\"radius\":7,\"color\":\"#745da8\",\"active\":true,\"sort\":10,\"source\":\"data-points\"}],\"source\":this.mainData.data,};\n this.map = document.createElement('cod-map');\n this.map.id = 'd6-map';\n this.map.setAttribute('data-parent-component', 'd6-business-map');\n this.map.setAttribute('data-map-mode', 'map-panel');\n this.map.setAttribute('data-center', \"-83.103111,42.31103400000001\");\n this.map.setAttribute('data-zoom', \"11.5\");\n this.map.setAttribute('data-popup-layers', JSON.stringify(popupLayers));\n this.map.setAttribute('data-popup-structure', JSON.stringify(popupStructure));\n this.map.setAttribute('data-map-data', JSON.stringify(tempMainData));\n this.map.setAttribute('data-map-layers', JSON.stringify(this.layers.layers));\n this.map.setAttribute('data-location', this.getAttribute('data-location'));\n this.map.setAttribute('data-map-state', 'init');\n app[0].setAttribute('data-active-boundaries', 'coucil-district-6-lines');\n this.appWrapper.appendChild(this.map);\n }\n\n createLabelLayers(){\n const layers = this.layers;\n let sources = ['neighborhoods','police-precincts','zip-codes'];\n layers.layers.forEach((layer) => {\n if(sources.includes(layer.name)){\n fetch(layer.source)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n let tmpLabelLayer = {\"type\":\"FeatureCollection\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:4326\"}},\"features\":[]};\n data.features.forEach((polygon) => {\n let tmpCenter = centroid(polygon.geometry);\n switch (layer.name) {\n case 'neighborhoods':\n tmpCenter.properties['name'] = (polygon.properties.nhood_name == 'Central Southwest') ? 'Southwest' : polygon.properties.nhood_name;\n tmpLabelLayer.features.push(tmpCenter);\n break;\n\n case 'police-precincts':\n tmpCenter.properties['name'] = polygon.properties.name;\n tmpLabelLayer.features.push(tmpCenter);\n break;\n\n case 'zip-codes':\n tmpCenter.properties['name'] = polygon.properties.zipcode;\n tmpLabelLayer.features.push(tmpCenter);\n break;\n \n default:\n break;\n }\n \n });\n switch (layer.name) {\n case 'neighborhoods':\n layers.layers[1].source = tmpLabelLayer;\n break;\n\n case 'police-precincts':\n layers.layers[3].source = tmpLabelLayer;\n break;\n\n case 'zip-codes':\n layers.layers[5].source = tmpLabelLayer;\n break;\n \n default:\n break;\n }\n });\n }\n });\n return layers;\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n console.log(`App - attribute: ${name}, old: ${oldValue}, new: ${newValue}`);\n switch (name) {\n case 'data-active-filters':\n if(oldValue !== null){\n const newFilters = newValue.split(',');\n let url= this.buildQuery(newFilters);\n console.log(url);\n const app = this;\n fetch(url)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n console.log(data);\n (app.map.map.getSource('data-points')) ? app.map.map.getSource('data-points').setData(data) : 0;\n }).catch(err => {\n // console.log(err);\n });\n }\n break;\n\n case 'data-active-boundaries':\n const oldBoundaries = oldValue.split(',');\n const newBoundaries = newValue.split(',');\n let boundariesDiff;\n if(newBoundaries.length > oldBoundaries.length){\n boundariesDiff = this.arrayDifference(newBoundaries, oldBoundaries);\n this.changeVisibility(boundariesDiff, 'visible', this.map);\n }else{\n boundariesDiff = this.arrayDifference(oldBoundaries, newBoundaries);\n this.changeVisibility(boundariesDiff, 'none', this.map);\n }\n break;\n \n case 'data-language':\n this.setAttribute('data-app-state', this.getAttribute('data-app-state'));\n break;\n \n default:\n this.loadApp(this);\n break;\n }\n \n }\n\n arrayDifference(arr1, arr2) {\n const difference = [];\n \n for (let i = 0; i < arr1.length; i++) {\n if (arr2.indexOf(arr1[i]) === -1) {\n difference.push(arr1[i]);\n }\n }\n \n return difference;\n }\n\n buildQuery(filters){\n console.log(filters)\n let tmpWhere = [];\n filters.forEach(filter => {\n switch (filter) {\n case 'is_asian_owned':\n tmpWhere.push('is_asian_owned%3D1');\n break;\n \n case 'is_black_owned':\n tmpWhere.push('is_black_owned%3D1');\n break;\n\n case 'is_asian_owned':\n tmpWhere.push('is_asian_owned%3D1');\n break;\n\n case 'is_lgbtq_owned':\n tmpWhere.push('is_lgbtq_owned%3D1');\n break;\n\n case 'is_indigenous_owned':\n tmpWhere.push('is_indigenous_owned%3D1');\n break;\n\n case 'is_middle_eastern_owned':\n tmpWhere.push('is_middle_eastern_owned%3D1');\n break;\n\n case 'is_veteran_owned':\n tmpWhere.push('is_veteran_owned%3D1');\n break;\n\n case 'is_minority_owned':\n tmpWhere.push('is_minority_owned%3D1');\n break;\n\n case 'is_woman_owned':\n tmpWhere.push('is_woman_owned%3D1');\n break;\n\n case 'has_clinic_community_health_ser':\n tmpWhere.push('has_clinic_community_health_ser%3D1');\n break;\n\n case 'has_dental_service':\n tmpWhere.push('has_dental_service%3D1');\n break;\n\n case 'has_emergency_urgent_care_servi':\n tmpWhere.push('has_emergency_urgent_care_servi%3D1');\n break;\n\n case 'has_family_health_service':\n tmpWhere.push('has_family_health_service%3D1');\n break;\n\n case 'has_mental_health_service':\n tmpWhere.push('has_mental_health_service%3D1');\n break;\n\n case 'has_pediatric_service':\n tmpWhere.push('has_pediatric_service%3D1');\n break;\n\n case 'has_primary_care_service':\n tmpWhere.push('has_primary_care_service%3D1');\n break;\n\n case 'has_sexual_health_service':\n tmpWhere.push('has_sexual_health_service%3D1');\n break;\n\n case 'has_specialist_service':\n tmpWhere.push('has_specialist_service%3D1');\n break;\n\n case 'has_other_health_service':\n tmpWhere.push('has_other_health_service%3D1');\n break;\n\n case 'is_ads_comms_marketing':\n tmpWhere.push('is_ads_comms_marketing%3D1');\n break;\n\n case 'is_automotive':\n tmpWhere.push('is_automotive%3D1');\n break;\n\n case 'is_bar_restaurant':\n tmpWhere.push('is_bar_restaurant%3D1');\n break;\n\n case 'is_construction':\n tmpWhere.push('is_construction%3D1');\n break;\n\n case 'is_entertainment':\n tmpWhere.push('is_entertainment%3D1');\n break;\n\n case 'is_human_services':\n tmpWhere.push('is_human_services%3D1');\n break;\n\n case 'is_landscape':\n tmpWhere.push('is_landscape%3D1');\n break;\n\n case 'is_legal_financial':\n tmpWhere.push('is_legal_financial%3D1');\n break;\n\n case 'is_manufacturing_distribution':\n tmpWhere.push('is_manufacturing_distribution%3D1');\n break;\n\n case 'is_personal_care_services':\n tmpWhere.push('is_personal_care_services%3D1');\n break;\n\n case 'is_place_of_worship':\n tmpWhere.push('is_place_of_worship%3D1');\n break;\n\n case 'is_retail':\n tmpWhere.push('is_retail%3D1');\n break;\n\n case 'is_other':\n tmpWhere.push('is_other%3D1');\n break;\n\n case 'is_public_transit_accessible':\n tmpWhere.push('is_public_transit_accessible%3D1');\n break;\n\n case 'is_ada_accessible':\n tmpWhere.push('is_ada_accessible%3D1');\n break;\n\n case 'has_bike_rack':\n tmpWhere.push('has_bike_rack%3D1');\n break;\n \n case 'has_parking_lot':\n tmpWhere.push('has_parking_lot%3D1');\n break;\n\n case 'is_cash_only':\n tmpWhere.push('is_cash_only%3D1');\n break;\n\n case 'has_free_wifi':\n tmpWhere.push('has_free_wifi%3D1');\n break;\n\n case 'has_gender_neutral_bathrooms':\n tmpWhere.push('has_gender_neutral_bathrooms%3D1');\n break;\n\n case 'has_rental_space':\n tmpWhere.push('has_rental_space%3D1');\n break;\n\n default:\n break;\n }\n });\n tmpWhere = tmpWhere.join('+AND+');\n (tmpWhere === '') ? tmpWhere = '1%3D1' : 0;\n return `https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=${tmpWhere}&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=`;\n \n }\n\n changeVisibility(layers, visibility, _map){\n layers.forEach(layer => {\n _map.map.setLayoutProperty(layer, \"visibility\", visibility);\n });\n }\n\n clearApp(app) {\n const shadow = app.shadowRoot;\n while (shadow.firstChild) {\n shadow.removeChild(shadow.firstChild);\n }\n }\n\n clearPanel(app) {\n\n }\n\n updateBoundaries(ev){\n const app = document.getElementsByTagName('d6-business-map');\n let boundaries = (app[0].getAttribute('data-active-boundaries') === null) ? '' : app[0].getAttribute('data-active-boundaries');\n let tempBoundaries = boundaries.split(',');\n boundaries = [];\n if(ev.target.formCheck.checked){\n boundaries = tempBoundaries;\n boundaries.push(ev.target.formCheck.value);\n }else{\n let multiLayers = ev.target.formCheck.value.split(',');\n tempBoundaries.forEach((boundary) => {\n (multiLayers.includes(boundary)) ? 0 : boundaries.push(boundary);\n });\n }\n boundaries = boundaries.join(',');\n app[0].setAttribute('data-active-boundaries', boundaries);\n }\n\n updateMainData(ev){\n const app = document.getElementsByTagName('d6-business-map');\n let filters = (app[0].getAttribute('data-active-filters') === null) ? '' : app[0].getAttribute('data-active-filters');\n let tempFilters = filters.split(',');\n filters = [];\n if(ev.target.formCheck.checked){\n filters = tempFilters;\n filters.push(ev.target.formCheck.value);\n }else{\n let multiLayers = ev.target.formCheck.value.split(',');\n tempFilters.forEach((filter) => {\n (multiLayers.includes(filter)) ? 0 : filters.push(filter);\n });\n }\n filters = filters.join(',');\n app[0].setAttribute('data-active-filters', filters);\n }\n\n loadApp(app) {\n const shadow = app.shadowRoot;\n const appWrapper = document.createElement('div');\n appWrapper.id = 'app-wrapper';\n const currentLanguage = app.getAttribute('data-language');\n const currenBoundaries = app.getAttribute('data-active-boundaries').split(',');\n let currenFilters = [];\n (app.getAttribute('data-active-filters') != null) ? currenFilters = app.getAttribute('data-active-filters').split(',') : 0;\n switch (app.getAttribute('data-app-state')) {\n case 'start-screen':\n break;\n case 'active-panel':\n let tempData = JSON.parse(this.getAttribute('data-panel-data'));\n console.log(tempData.properties);\n this.panelContent.innerHTML = `\n

${tempData.properties.business_name}

\n

${this.languageText[currentLanguage]['panel'][0]} ${tempData.properties.address}\n ${(tempData.properties.profit_or_nonprofit) ? `

${this.languageText[currentLanguage]['panel'][1]} ${tempData.properties.profit_or_nonprofit}

` : ``}\n\n

${this.languageText[currentLanguage]['panel'][2]}

\n
    \n ${(tempData.properties.is_asian_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][3]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_black_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][4]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_indigenous_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][6]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_lgbtq_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][5]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_middle_eastern_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][7]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_minority_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][9]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_veteran_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][8]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_woman_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][10]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n
\n\n

${this.languageText[currentLanguage]['panel'][11]}

\n
    \n ${(tempData.properties.is_ads_comms_marketing) ? `
  • ${this.languageText[currentLanguage]['panel'][22]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_automotive) ? `
  • ${this.languageText[currentLanguage]['panel'][23]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_bar_restaurant) ? `
  • ${this.languageText[currentLanguage]['panel'][24]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_clinic_community_health_ser) ? `
  • ${this.languageText[currentLanguage]['panel'][12]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_construction) ? `
  • ${this.languageText[currentLanguage]['panel'][25]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_dental_service) ? `
  • ${this.languageText[currentLanguage]['panel'][13]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_entertainment) ? `
  • ${this.languageText[currentLanguage]['panel'][26]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_family_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][15]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_human_services) ? `
  • ${this.languageText[currentLanguage]['panel'][27]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_landscape) ? `
  • ${this.languageText[currentLanguage]['panel'][28]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_legal_financial) ? `
  • ${this.languageText[currentLanguage]['panel'][29]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_manufacturing_distribution) ? `
  • ${this.languageText[currentLanguage]['panel'][30]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_mental_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][16]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_other_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][21]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_other) ? `
  • ${this.languageText[currentLanguage]['panel'][34]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_pediatric_service) ? `
  • ${this.languageText[currentLanguage]['panel'][17]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_personal_care_services) ? `
  • ${this.languageText[currentLanguage]['panel'][31]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_place_of_worship) ? `
  • ${this.languageText[currentLanguage]['panel'][32]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_primary_care_service) ? `
  • ${this.languageText[currentLanguage]['panel'][18]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_retail) ? `
  • ${this.languageText[currentLanguage]['panel'][33]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_sexual_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][19]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_specialist_service) ? `
  • ${this.languageText[currentLanguage]['panel'][20]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_emergency_urgent_care_servi) ? `
  • ${this.languageText[currentLanguage]['panel'][14]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n
\n\n

${this.languageText[currentLanguage]['panel'][35]}

\n

\n ${(tempData.properties.is_public_transit_accessible) ? `` : ``}\n ${(tempData.properties.is_ada_accessible) ? `` : ``} \n ${(tempData.properties.has_bike_rack) ? `` : ``} \n ${(tempData.properties.has_parking_lot) ? `` : ``} \n ${(tempData.properties.is_cash_only) ? `` : ``} \n ${(tempData.properties.has_free_wifi) ? `` : ``} \n ${(tempData.properties.has_gender_neutral_bathrooms) ? `` : ``} \n ${(tempData.properties.has_rental_space) ? `` : ``} \n

\n `;\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'active-filters':\n this.panelContent.innerHTML = '';\n const titleFilters = document.createElement('p');\n titleFilters.innerText = this.languageText[currentLanguage]['filters'][0];\n titleFilters.style.backgroundColor = '#745DA8';\n titleFilters.style.color = '#fff';\n titleFilters.className = 'fs-3 fw-bold text-center';\n\n const filterInstructions = document.createElement('p');\n filterInstructions.innerText = this.languageText[currentLanguage]['filters'][34];\n\n const ownershipSection = document.createElement('p');\n ownershipSection.innerText = this.languageText[currentLanguage]['filters'][1];\n ownershipSection.style.fontWeight ='bold';\n\n const ownershipFilterCheckboxes = document.createElement('section');\n\n const asianOwnedCheckbox = document.createElement('cod-form-check');\n asianOwnedCheckbox.setAttribute('data-checked', 'false');\n asianOwnedCheckbox.setAttribute('data-id', 'asian-owned');\n asianOwnedCheckbox.setAttribute('data-name', 'data-filters');\n asianOwnedCheckbox.setAttribute('data-value', 'is_asian_owned');\n (currenFilters.includes('is_asian_owned')) ? asianOwnedCheckbox.setAttribute('data-checked', true) : 0;\n asianOwnedCheckbox.setAttribute('data-type', 'checkbox');\n asianOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][2]);\n asianOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const blackOwnedCheckbox = document.createElement('cod-form-check');\n blackOwnedCheckbox.setAttribute('data-checked', 'false');\n blackOwnedCheckbox.setAttribute('data-id', 'black-owned');\n blackOwnedCheckbox.setAttribute('data-name', 'data-filters');\n blackOwnedCheckbox.setAttribute('data-value', 'is_black_owned');\n (currenFilters.includes('is_black_owned')) ? blackOwnedCheckbox.setAttribute('data-checked', true) : 0;\n blackOwnedCheckbox.setAttribute('data-type', 'checkbox');\n blackOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][3]);\n blackOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const lgbtqOwnedCheckbox = document.createElement('cod-form-check');\n lgbtqOwnedCheckbox.setAttribute('data-checked', 'false');\n lgbtqOwnedCheckbox.setAttribute('data-id', 'lgbtq-owned');\n lgbtqOwnedCheckbox.setAttribute('data-name', 'data-filters');\n lgbtqOwnedCheckbox.setAttribute('data-value', 'is_lgbtq_owned');\n (currenFilters.includes('is_lgbtq_owned')) ? lgbtqOwnedCheckbox.setAttribute('data-checked', true) : 0;\n lgbtqOwnedCheckbox.setAttribute('data-type', 'checkbox');\n lgbtqOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][4]);\n lgbtqOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const indigenousOwnedCheckbox = document.createElement('cod-form-check');\n indigenousOwnedCheckbox.setAttribute('data-checked', 'false');\n indigenousOwnedCheckbox.setAttribute('data-id', 'indigenous-owned');\n indigenousOwnedCheckbox.setAttribute('data-name', 'data-filters');\n indigenousOwnedCheckbox.setAttribute('data-value', 'is_indigenous_owned');\n (currenFilters.includes('is_indigenous_owned')) ? indigenousOwnedCheckbox.setAttribute('data-checked', true) : 0;\n indigenousOwnedCheckbox.setAttribute('data-type', 'checkbox');\n indigenousOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][5]);\n indigenousOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const middleEasternOwnedCheckbox = document.createElement('cod-form-check');\n middleEasternOwnedCheckbox.setAttribute('data-checked', 'false');\n middleEasternOwnedCheckbox.setAttribute('data-id', 'middle-eastern-owned');\n middleEasternOwnedCheckbox.setAttribute('data-name', 'data-filters');\n middleEasternOwnedCheckbox.setAttribute('data-value', 'is_middle_eastern_owned');\n (currenFilters.includes('is_middle_eastern_owned')) ? middleEasternOwnedCheckbox.setAttribute('data-checked', true) : 0;\n middleEasternOwnedCheckbox.setAttribute('data-type', 'checkbox');\n middleEasternOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][6]);\n middleEasternOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const veteranOwnedCheckbox = document.createElement('cod-form-check');\n veteranOwnedCheckbox.setAttribute('data-checked', 'false');\n veteranOwnedCheckbox.setAttribute('data-id', 'veteran-owned');\n veteranOwnedCheckbox.setAttribute('data-name', 'data-filters');\n veteranOwnedCheckbox.setAttribute('data-value', 'is_veteran_owned');\n (currenFilters.includes('is_veteran_owned')) ? veteranOwnedCheckbox.setAttribute('data-checked', true) : 0;\n veteranOwnedCheckbox.setAttribute('data-type', 'checkbox');\n veteranOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][7]);\n veteranOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n }); \n \n const minorityOwnedCheckbox = document.createElement('cod-form-check');\n minorityOwnedCheckbox.setAttribute('data-checked', 'false');\n minorityOwnedCheckbox.setAttribute('data-id', 'minority-owned');\n minorityOwnedCheckbox.setAttribute('data-name', 'data-filters');\n minorityOwnedCheckbox.setAttribute('data-value', 'is_minority_owned');\n (currenFilters.includes('is_minority_owned')) ? minorityOwnedCheckbox.setAttribute('data-checked', true) : 0;\n minorityOwnedCheckbox.setAttribute('data-type', 'checkbox');\n minorityOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][8]);\n minorityOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n }); \n\n const womanOwnedCheckbox = document.createElement('cod-form-check');\n womanOwnedCheckbox.setAttribute('data-checked', 'false');\n womanOwnedCheckbox.setAttribute('data-id', 'minority-owned');\n womanOwnedCheckbox.setAttribute('data-name', 'data-filters');\n womanOwnedCheckbox.setAttribute('data-value', 'is_woman_owned');\n (currenFilters.includes('is_woman_owned')) ? womanOwnedCheckbox.setAttribute('data-checked', true) : 0;\n womanOwnedCheckbox.setAttribute('data-type', 'checkbox');\n womanOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][9]);\n womanOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n }); \n\n const servicesSection = document.createElement('p');\n servicesSection.innerText = this.languageText[currentLanguage]['filters'][10];\n servicesSection.style.fontWeight ='bold';\n\n const servicesFilterCheckboxes = document.createElement('section');\n\n // ====================== Disabling Health type filters ====================\n // const communityHealthCheckbox = document.createElement('cod-form-check');\n // communityHealthCheckbox.setAttribute('data-checked', 'false');\n // communityHealthCheckbox.setAttribute('data-id', 'community-health');\n // communityHealthCheckbox.setAttribute('data-name', 'data-filters');\n // communityHealthCheckbox.setAttribute('data-value', 'has_clinic_community_health_ser');\n // (currenFilters.includes('has_clinic_community_health_ser')) ? communityHealthCheckbox.setAttribute('data-checked', true) : 0;\n // communityHealthCheckbox.setAttribute('data-type', 'checkbox');\n // communityHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][11]);\n // communityHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n const dentalCheckbox = document.createElement('cod-form-check');\n dentalCheckbox.setAttribute('data-checked', 'false');\n dentalCheckbox.setAttribute('data-id', 'dental');\n dentalCheckbox.setAttribute('data-name', 'data-filters');\n dentalCheckbox.setAttribute('data-value', 'has_dental_service');\n (currenFilters.includes('has_dental_service')) ? dentalCheckbox.setAttribute('data-checked', true) : 0;\n dentalCheckbox.setAttribute('data-type', 'checkbox');\n dentalCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][12]);\n dentalCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n // const emergencyUrgentCareCheckbox = document.createElement('cod-form-check');\n // emergencyUrgentCareCheckbox.setAttribute('data-checked', 'false');\n // emergencyUrgentCareCheckbox.setAttribute('data-id', 'emergency-urgent-care');\n // emergencyUrgentCareCheckbox.setAttribute('data-name', 'data-filters');\n // emergencyUrgentCareCheckbox.setAttribute('data-value', 'has_emergency_urgent_care_servi');\n // (currenFilters.includes('has_emergency_urgent_care_servi')) ? emergencyUrgentCareCheckbox.setAttribute('data-checked', true) : 0;\n // emergencyUrgentCareCheckbox.setAttribute('data-type', 'checkbox');\n // emergencyUrgentCareCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][13]);\n // emergencyUrgentCareCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n // const familyHealthCheckbox = document.createElement('cod-form-check');\n // familyHealthCheckbox.setAttribute('data-checked', 'false');\n // familyHealthCheckbox.setAttribute('data-id', 'family-health');\n // familyHealthCheckbox.setAttribute('data-name', 'data-filters');\n // familyHealthCheckbox.setAttribute('data-value', 'has_family_health_service');\n // (currenFilters.includes('has_family_health_service')) ? familyHealthCheckbox.setAttribute('data-checked', true) : 0;\n // familyHealthCheckbox.setAttribute('data-type', 'checkbox');\n // familyHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][14]);\n // familyHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n \n // const mentalHealthCheckbox = document.createElement('cod-form-check');\n // mentalHealthCheckbox.setAttribute('data-checked', 'false');\n // mentalHealthCheckbox.setAttribute('data-id', 'mental-health');\n // mentalHealthCheckbox.setAttribute('data-name', 'data-filters');\n // mentalHealthCheckbox.setAttribute('data-value', 'has_mental_health_service');\n // (currenFilters.includes('has_mental_health_service')) ? mentalHealthCheckbox.setAttribute('data-checked', true) : 0;\n // mentalHealthCheckbox.setAttribute('data-type', 'checkbox');\n // mentalHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][15]);\n // mentalHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n\n // const pediatricCheckbox = document.createElement('cod-form-check');\n // pediatricCheckbox.setAttribute('data-checked', 'false');\n // pediatricCheckbox.setAttribute('data-id', 'pediatric');\n // pediatricCheckbox.setAttribute('data-name', 'data-filters');\n // pediatricCheckbox.setAttribute('data-value', 'has_pediatric_service');\n // (currenFilters.includes('has_pediatric_service')) ? pediatricCheckbox.setAttribute('data-checked', true) : 0;\n // pediatricCheckbox.setAttribute('data-type', 'checkbox');\n // pediatricCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][16]);\n // pediatricCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n\n // const primaryCareCheckbox = document.createElement('cod-form-check');\n // primaryCareCheckbox.setAttribute('data-checked', 'false');\n // primaryCareCheckbox.setAttribute('data-id', 'primary-care');\n // primaryCareCheckbox.setAttribute('data-name', 'data-filters');\n // primaryCareCheckbox.setAttribute('data-value', 'has_primary_care_service');\n // (currenFilters.includes('has_primary_care_service')) ? primaryCareCheckbox.setAttribute('data-checked', true) : 0;\n // primaryCareCheckbox.setAttribute('data-type', 'checkbox');\n // primaryCareCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][17]);\n // primaryCareCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n \n // const sexualHealthCheckbox = document.createElement('cod-form-check');\n // sexualHealthCheckbox.setAttribute('data-checked', 'false');\n // sexualHealthCheckbox.setAttribute('data-id', 'sexual-health');\n // sexualHealthCheckbox.setAttribute('data-name', 'data-filters');\n // sexualHealthCheckbox.setAttribute('data-value', 'has_sexual_health_service');\n // (currenFilters.includes('has_sexual_health_service')) ? sexualHealthCheckbox.setAttribute('data-checked', true) : 0;\n // sexualHealthCheckbox.setAttribute('data-type', 'checkbox');\n // sexualHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][18]);\n // sexualHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n\n // const specialistCheckbox = document.createElement('cod-form-check');\n // specialistCheckbox.setAttribute('data-checked', 'false');\n // specialistCheckbox.setAttribute('data-id', 'specialist');\n // specialistCheckbox.setAttribute('data-name', 'data-filters');\n // specialistCheckbox.setAttribute('data-value', 'has_specialist_service');\n // (currenFilters.includes('has_specialist_service')) ? specialistCheckbox.setAttribute('data-checked', true) : 0;\n // specialistCheckbox.setAttribute('data-type', 'checkbox');\n // specialistCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][19]);\n // specialistCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n // const otherHealthCheckbox = document.createElement('cod-form-check');\n // otherHealthCheckbox.setAttribute('data-checked', 'false');\n // otherHealthCheckbox.setAttribute('data-id', 'other-health');\n // otherHealthCheckbox.setAttribute('data-name', 'data-filters');\n // otherHealthCheckbox.setAttribute('data-value', 'has_other_health_service');\n // (currenFilters.includes('has_other_health_service')) ? otherHealthCheckbox.setAttribute('data-checked', true) : 0;\n // otherHealthCheckbox.setAttribute('data-type', 'checkbox');\n // otherHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][20]);\n // otherHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n const marketingCheckbox = document.createElement('cod-form-check');\n marketingCheckbox.setAttribute('data-checked', 'false');\n marketingCheckbox.setAttribute('data-id', 'marketing');\n marketingCheckbox.setAttribute('data-name', 'data-filters');\n marketingCheckbox.setAttribute('data-value', 'is_ads_comms_marketing');\n (currenFilters.includes('is_ads_comms_marketing')) ? marketingCheckbox.setAttribute('data-checked', true) : 0;\n marketingCheckbox.setAttribute('data-type', 'checkbox');\n marketingCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][21]);\n marketingCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const automotiveCheckbox = document.createElement('cod-form-check');\n automotiveCheckbox.setAttribute('data-checked', 'false');\n automotiveCheckbox.setAttribute('data-id', 'automotive');\n automotiveCheckbox.setAttribute('data-name', 'data-filters');\n automotiveCheckbox.setAttribute('data-value', 'is_automotive');\n (currenFilters.includes('is_automotive')) ? automotiveCheckbox.setAttribute('data-checked', true) : 0;\n automotiveCheckbox.setAttribute('data-type', 'checkbox');\n automotiveCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][22]);\n automotiveCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const barRestaurantCheckbox = document.createElement('cod-form-check');\n barRestaurantCheckbox.setAttribute('data-checked', 'false');\n barRestaurantCheckbox.setAttribute('data-id', 'bar-restaurant');\n barRestaurantCheckbox.setAttribute('data-name', 'data-filters');\n barRestaurantCheckbox.setAttribute('data-value', 'is_bar_restaurant');\n (currenFilters.includes('is_bar_restaurant')) ? barRestaurantCheckbox.setAttribute('data-checked', true) : 0;\n barRestaurantCheckbox.setAttribute('data-type', 'checkbox');\n barRestaurantCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][23]);\n barRestaurantCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const constructionCheckbox = document.createElement('cod-form-check');\n constructionCheckbox.setAttribute('data-checked', 'false');\n constructionCheckbox.setAttribute('data-id', 'construction');\n constructionCheckbox.setAttribute('data-name', 'data-filters');\n constructionCheckbox.setAttribute('data-value', 'is_construction');\n (currenFilters.includes('is_construction')) ? constructionCheckbox.setAttribute('data-checked', true) : 0;\n constructionCheckbox.setAttribute('data-type', 'checkbox');\n constructionCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][24]);\n constructionCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const entertainmentCheckbox = document.createElement('cod-form-check');\n entertainmentCheckbox.setAttribute('data-checked', 'false');\n entertainmentCheckbox.setAttribute('data-id', 'entertainment');\n entertainmentCheckbox.setAttribute('data-name', 'data-filters');\n entertainmentCheckbox.setAttribute('data-value', 'is_entertainment');\n (currenFilters.includes('is_entertainment')) ? entertainmentCheckbox.setAttribute('data-checked', true) : 0;\n entertainmentCheckbox.setAttribute('data-type', 'checkbox');\n entertainmentCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][25]);\n entertainmentCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const humanServicesCheckbox = document.createElement('cod-form-check');\n humanServicesCheckbox.setAttribute('data-checked', 'false');\n humanServicesCheckbox.setAttribute('data-id', 'human-services');\n humanServicesCheckbox.setAttribute('data-name', 'data-filters');\n humanServicesCheckbox.setAttribute('data-value', 'is_human_services');\n (currenFilters.includes('is_human_services')) ? humanServicesCheckbox.setAttribute('data-checked', true) : 0;\n humanServicesCheckbox.setAttribute('data-type', 'checkbox');\n humanServicesCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][26]);\n humanServicesCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const landscapeCheckbox = document.createElement('cod-form-check');\n landscapeCheckbox.setAttribute('data-checked', 'false');\n landscapeCheckbox.setAttribute('data-id', 'landscape');\n landscapeCheckbox.setAttribute('data-name', 'data-filters');\n landscapeCheckbox.setAttribute('data-value', 'is_landscape');\n (currenFilters.includes('is_landscape')) ? landscapeCheckbox.setAttribute('data-checked', true) : 0;\n landscapeCheckbox.setAttribute('data-type', 'checkbox');\n landscapeCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][27]);\n landscapeCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const legalFinancialCheckbox = document.createElement('cod-form-check');\n legalFinancialCheckbox.setAttribute('data-checked', 'false');\n legalFinancialCheckbox.setAttribute('data-id', 'legal-financial');\n legalFinancialCheckbox.setAttribute('data-name', 'data-filters');\n legalFinancialCheckbox.setAttribute('data-value', 'is_legal_financial');\n (currenFilters.includes('is_legal_financial')) ? legalFinancialCheckbox.setAttribute('data-checked', true) : 0;\n legalFinancialCheckbox.setAttribute('data-type', 'checkbox');\n legalFinancialCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][28]);\n legalFinancialCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const manufacturingCheckbox = document.createElement('cod-form-check');\n manufacturingCheckbox.setAttribute('data-checked', 'false');\n manufacturingCheckbox.setAttribute('data-id', 'manufacturing-distribution');\n manufacturingCheckbox.setAttribute('data-name', 'data-filters');\n manufacturingCheckbox.setAttribute('data-value', 'is_manufacturing_distribution');\n (currenFilters.includes('is_manufacturing_distribution')) ? manufacturingCheckbox.setAttribute('data-checked', true) : 0;\n manufacturingCheckbox.setAttribute('data-type', 'checkbox');\n manufacturingCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][29]);\n manufacturingCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const personalCareCheckbox = document.createElement('cod-form-check');\n personalCareCheckbox.setAttribute('data-checked', 'false');\n personalCareCheckbox.setAttribute('data-id', 'personal-care');\n personalCareCheckbox.setAttribute('data-name', 'data-filters');\n personalCareCheckbox.setAttribute('data-value', 'is_personal_care_services');\n (currenFilters.includes('is_personal_care_services')) ? personalCareCheckbox.setAttribute('data-checked', true) : 0;\n personalCareCheckbox.setAttribute('data-type', 'checkbox');\n personalCareCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][30]);\n personalCareCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const worshipCheckbox = document.createElement('cod-form-check');\n worshipCheckbox.setAttribute('data-checked', 'false');\n worshipCheckbox.setAttribute('data-id', 'worship');\n worshipCheckbox.setAttribute('data-name', 'data-filters');\n worshipCheckbox.setAttribute('data-value', 'is_place_of_worship');\n (currenFilters.includes('is_place_of_worship')) ? worshipCheckbox.setAttribute('data-checked', true) : 0;\n worshipCheckbox.setAttribute('data-type', 'checkbox');\n worshipCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][31]);\n worshipCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const retailCheckbox = document.createElement('cod-form-check');\n retailCheckbox.setAttribute('data-checked', 'false');\n retailCheckbox.setAttribute('data-id', 'retail');\n retailCheckbox.setAttribute('data-name', 'data-filters');\n retailCheckbox.setAttribute('data-value', 'is_retail');\n (currenFilters.includes('is_retail')) ? retailCheckbox.setAttribute('data-checked', true) : 0;\n retailCheckbox.setAttribute('data-type', 'checkbox');\n retailCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][32]);\n retailCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const otherCheckbox = document.createElement('cod-form-check');\n otherCheckbox.setAttribute('data-checked', 'false');\n otherCheckbox.setAttribute('data-id', 'other-service');\n otherCheckbox.setAttribute('data-name', 'data-filters');\n otherCheckbox.setAttribute('data-value', 'is_other');\n (currenFilters.includes('is_other')) ? otherCheckbox.setAttribute('data-checked', true) : 0;\n otherCheckbox.setAttribute('data-type', 'checkbox');\n otherCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][33]);\n otherCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const amenitiesSection = document.createElement('p');\n amenitiesSection.innerText = this.languageText[currentLanguage]['filters'][35];\n amenitiesSection.style.fontWeight ='bold';\n\n const amenitiesSectionCheckboxes = document.createElement('section');\n\n const publicTransitCheckbox = document.createElement('cod-form-check');\n publicTransitCheckbox.setAttribute('data-checked', 'false');\n publicTransitCheckbox.setAttribute('data-id', 'public-transit');\n publicTransitCheckbox.setAttribute('data-name', 'data-filters');\n publicTransitCheckbox.setAttribute('data-value', 'is_public_transit_accessible');\n (currenFilters.includes('is_public_transit_accessible')) ? publicTransitCheckbox.setAttribute('data-checked', true) : 0;\n publicTransitCheckbox.setAttribute('data-type', 'checkbox');\n publicTransitCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][36]);\n publicTransitCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const adaCheckbox = document.createElement('cod-form-check');\n adaCheckbox.setAttribute('data-checked', 'false');\n adaCheckbox.setAttribute('data-id', 'ada-accessible');\n adaCheckbox.setAttribute('data-name', 'data-filters');\n adaCheckbox.setAttribute('data-value', 'is_ada_accessible');\n (currenFilters.includes('is_ada_accessible')) ? adaCheckbox.setAttribute('data-checked', true) : 0;\n adaCheckbox.setAttribute('data-type', 'checkbox');\n adaCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][37]);\n adaCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const bikeRackCheckbox = document.createElement('cod-form-check');\n bikeRackCheckbox.setAttribute('data-checked', 'false');\n bikeRackCheckbox.setAttribute('data-id', 'bike-rack');\n bikeRackCheckbox.setAttribute('data-name', 'data-filters');\n bikeRackCheckbox.setAttribute('data-value', 'has_bike_rack');\n (currenFilters.includes('has_bike_rack')) ? bikeRackCheckbox.setAttribute('data-checked', true) : 0;\n bikeRackCheckbox.setAttribute('data-type', 'checkbox');\n bikeRackCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][38]);\n bikeRackCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const parkingCheckbox = document.createElement('cod-form-check');\n parkingCheckbox.setAttribute('data-checked', 'false');\n parkingCheckbox.setAttribute('data-id', 'parking');\n parkingCheckbox.setAttribute('data-name', 'data-filters');\n parkingCheckbox.setAttribute('data-value', 'has_parking_lot');\n (currenFilters.includes('has_parking_lot')) ? parkingCheckbox.setAttribute('data-checked', true) : 0;\n parkingCheckbox.setAttribute('data-type', 'checkbox');\n parkingCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][39]);\n parkingCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const cashOnlyCheckbox = document.createElement('cod-form-check');\n cashOnlyCheckbox.setAttribute('data-checked', 'false');\n cashOnlyCheckbox.setAttribute('data-id', 'cash-only');\n cashOnlyCheckbox.setAttribute('data-name', 'data-filters');\n cashOnlyCheckbox.setAttribute('data-value', 'is_cash_only');\n (currenFilters.includes('is_cash_only')) ? cashOnlyCheckbox.setAttribute('data-checked', true) : 0;\n cashOnlyCheckbox.setAttribute('data-type', 'checkbox');\n cashOnlyCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][40]);\n cashOnlyCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const wifiCheckbox = document.createElement('cod-form-check');\n wifiCheckbox.setAttribute('data-checked', 'false');\n wifiCheckbox.setAttribute('data-id', 'wifi');\n wifiCheckbox.setAttribute('data-name', 'data-filters');\n wifiCheckbox.setAttribute('data-value', 'has_free_wifi');\n (currenFilters.includes('has_free_wifi')) ? wifiCheckbox.setAttribute('data-checked', true) : 0;\n wifiCheckbox.setAttribute('data-type', 'checkbox');\n wifiCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][41]);\n wifiCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n \n const genderNeutralBathroomsCheckbox = document.createElement('cod-form-check');\n genderNeutralBathroomsCheckbox.setAttribute('data-checked', 'false');\n genderNeutralBathroomsCheckbox.setAttribute('data-id', 'gender-neutral-bathrooms');\n genderNeutralBathroomsCheckbox.setAttribute('data-name', 'data-filters');\n genderNeutralBathroomsCheckbox.setAttribute('data-value', 'has_gender_neutral_bathrooms');\n (currenFilters.includes('has_gender_neutral_bathrooms')) ? genderNeutralBathroomsCheckbox.setAttribute('data-checked', true) : 0;\n genderNeutralBathroomsCheckbox.setAttribute('data-type', 'checkbox');\n genderNeutralBathroomsCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][42]);\n genderNeutralBathroomsCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const rentalSpaceCheckbox = document.createElement('cod-form-check');\n rentalSpaceCheckbox.setAttribute('data-checked', 'false');\n rentalSpaceCheckbox.setAttribute('data-id', 'rental-space');\n rentalSpaceCheckbox.setAttribute('data-name', 'data-filters');\n rentalSpaceCheckbox.setAttribute('data-value', 'has_rental_space');\n (currenFilters.includes('has_rental_space')) ? rentalSpaceCheckbox.setAttribute('data-checked', true) : 0;\n rentalSpaceCheckbox.setAttribute('data-type', 'checkbox');\n rentalSpaceCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][43]);\n rentalSpaceCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n this.panelContent.appendChild(titleFilters);\n this.panelContent.appendChild(filterInstructions);\n this.panelContent.appendChild(ownershipSection);\n ownershipFilterCheckboxes.appendChild(asianOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(blackOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(lgbtqOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(indigenousOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(middleEasternOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(veteranOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(minorityOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(womanOwnedCheckbox);\n this.panelContent.appendChild(ownershipFilterCheckboxes);\n this.panelContent.appendChild(servicesSection);\n // ====================== Disabling Health type filters ====================\n // servicesFilterCheckboxes.appendChild(communityHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(emergencyUrgentCareCheckbox);\n // servicesFilterCheckboxes.appendChild(familyHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(mentalHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(pediatricCheckbox);\n // servicesFilterCheckboxes.appendChild(primaryCareCheckbox);\n // servicesFilterCheckboxes.appendChild(sexualHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(specialistCheckbox);\n // servicesFilterCheckboxes.appendChild(otherHealthCheckbox);\n servicesFilterCheckboxes.appendChild(marketingCheckbox);\n servicesFilterCheckboxes.appendChild(automotiveCheckbox);\n servicesFilterCheckboxes.appendChild(barRestaurantCheckbox);\n servicesFilterCheckboxes.appendChild(constructionCheckbox);\n servicesFilterCheckboxes.appendChild(entertainmentCheckbox);\n servicesFilterCheckboxes.appendChild(dentalCheckbox);\n servicesFilterCheckboxes.appendChild(humanServicesCheckbox);\n servicesFilterCheckboxes.appendChild(landscapeCheckbox);\n servicesFilterCheckboxes.appendChild(legalFinancialCheckbox);\n servicesFilterCheckboxes.appendChild(manufacturingCheckbox);\n servicesFilterCheckboxes.appendChild(worshipCheckbox);\n servicesFilterCheckboxes.appendChild(personalCareCheckbox);\n servicesFilterCheckboxes.appendChild(retailCheckbox);\n servicesFilterCheckboxes.appendChild(otherCheckbox);\n this.panelContent.appendChild(servicesFilterCheckboxes);\n this.panelContent.appendChild(amenitiesSection);\n amenitiesSectionCheckboxes.appendChild(publicTransitCheckbox);\n amenitiesSectionCheckboxes.appendChild(adaCheckbox);\n amenitiesSectionCheckboxes.appendChild(bikeRackCheckbox);\n amenitiesSectionCheckboxes.appendChild(parkingCheckbox);\n amenitiesSectionCheckboxes.appendChild(cashOnlyCheckbox);\n amenitiesSectionCheckboxes.appendChild(wifiCheckbox);\n amenitiesSectionCheckboxes.appendChild(genderNeutralBathroomsCheckbox);\n amenitiesSectionCheckboxes.appendChild(rentalSpaceCheckbox);\n this.panelContent.appendChild(amenitiesSectionCheckboxes);\n\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'active-layers':\n this.panelContent.innerHTML = '';\n const title = document.createElement('p');\n title.innerText = this.languageText[currentLanguage]['boundaries'][0];\n title.style.backgroundColor = '#745DA8';\n title.style.color = '#fff';\n title.className = 'fs-3 fw-bold text-center';\n\n const layerCheckboxes = document.createElement('section');\n\n // const councilCheckbox = document.createElement('cod-form-check');\n // councilCheckbox.setAttribute('data-checked', 'true');\n // councilCheckbox.setAttribute('data-id', 'council-district');\n // councilCheckbox.setAttribute('data-name', 'map-layer');\n // councilCheckbox.setAttribute('data-value', 'coucil-district-6-lines');\n // councilCheckbox.setAttribute('data-type', 'checkbox');\n // councilCheckbox.setAttribute('data-label', 'Council District');\n // councilCheckbox.addEventListener('change', (ev) => {\n // \n // this.updateBoundaries(ev);\n // });\n\n const neighborhoodCheckbox = document.createElement('cod-form-check');\n neighborhoodCheckbox.setAttribute('data-id', 'neighborhoods');\n neighborhoodCheckbox.setAttribute('data-name', 'map-layer');\n console.log(currenBoundaries.includes('neighborhoods-lines'));\n (currenBoundaries.includes('neighborhoods-lines')) ? neighborhoodCheckbox.setAttribute('data-checked', true) : 0;\n neighborhoodCheckbox.setAttribute('data-value', 'neighborhoods-lines,neighborhoods-fill,neighborhood-labels');\n neighborhoodCheckbox.setAttribute('data-type', 'checkbox');\n neighborhoodCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][1]);neighborhoodCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n const policePrecinctsCheckbox = document.createElement('cod-form-check');\n policePrecinctsCheckbox.setAttribute('data-id', 'police-precincts');\n policePrecinctsCheckbox.setAttribute('data-name', 'map-layer');\n console.log(currenBoundaries.includes('police-precincts-lines'));\n (currenBoundaries.includes('police-precincts-lines')) ? policePrecinctsCheckbox.setAttribute('data-checked', true) : 0;\n policePrecinctsCheckbox.setAttribute('data-value', 'police-precincts-lines,police-precincts-fill,police-precincts-labels');\n policePrecinctsCheckbox.setAttribute('data-type', 'checkbox');\n policePrecinctsCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][2]);policePrecinctsCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n const zipCodesCheckbox = document.createElement('cod-form-check');\n zipCodesCheckbox.setAttribute('data-id', 'zip-codes')\n zipCodesCheckbox.setAttribute('data-name', 'map-layer');\n (currenBoundaries.includes('zip-codes-lines')) ? zipCodesCheckbox.setAttribute('data-checked', true) : 0;\n zipCodesCheckbox.setAttribute('data-value', 'zip-codes-lines,zip-codes-fill,zip-codes-labels');\n zipCodesCheckbox.setAttribute('data-type', 'checkbox');\n zipCodesCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][3]);\n zipCodesCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n const cityFacilitiesCheckbox = document.createElement('cod-form-check');\n cityFacilitiesCheckbox.setAttribute('data-id', 'city-facilites')\n cityFacilitiesCheckbox.setAttribute('data-name', 'map-layer');\n (currenBoundaries.includes('city-facilities')) ? cityFacilitiesCheckbox.setAttribute('data-checked', true) : 0;\n cityFacilitiesCheckbox.setAttribute('data-value', 'city-facilities');\n cityFacilitiesCheckbox.setAttribute('data-type', 'checkbox');\n cityFacilitiesCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][4]);\n cityFacilitiesCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n this.panelContent.appendChild(title);\n // layerCheckboxes.appendChild(councilCheckbox);\n layerCheckboxes.appendChild(neighborhoodCheckbox);\n layerCheckboxes.appendChild(policePrecinctsCheckbox);\n layerCheckboxes.appendChild(zipCodesCheckbox);\n layerCheckboxes.appendChild(cityFacilitiesCheckbox);\n this.panelContent.appendChild(layerCheckboxes);\n\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'active-info':\n this.panelContent.innerHTML = '';\n const infoTitle = document.createElement('p');\n infoTitle.innerText = this.languageText[currentLanguage]['info'][0];\n infoTitle.style.backgroundColor = '#745DA8';\n infoTitle.style.color = '#fff';\n infoTitle.className = 'fs-3 fw-bold text-center';\n\n const lngLabel = document.createElement('label');\n lngLabel.className = 'fw-bold';\n lngLabel.htmlFor = 'language-selector';\n lngLabel.innerText = this.languageText[currentLanguage]['info'][9];\n const lngSelector = document.createElement('cod-form-select');\n lngSelector.setAttribute('data-id', 'language-selector');\n lngSelector.setAttribute('data-aria-label', this.languageText[currentLanguage]['info'][9]);\n lngSelector.innerHTML = `\n \n \n \n \n \n `;\n const d6 = this;\n lngSelector.addEventListener('change', (ev) => {\n const shadow = ev.target.shadowRoot;\n d6.setAttribute('data-language', shadow.childNodes[1].value);\n });\n\n const notes = document.createElement('p');\n notes.innerHTML = `\n
\n ${this.languageText[currentLanguage]['info'][10]}\n ${this.languageText[currentLanguage]['info'][11]} ${this.languageText[currentLanguage]['info'][12]}\n `;\n\n const iconLabels = document.createElement('article');\n iconLabels.innerHTML = ` \n
\n

${this.languageText[currentLanguage]['info'][1]}

\n

${this.languageText[currentLanguage]['info'][2]}

\n

${this.languageText[currentLanguage]['info'][3]}

\n

${this.languageText[currentLanguage]['info'][4]}

\n

${this.languageText[currentLanguage]['info'][5]}

\n

${this.languageText[currentLanguage]['info'][6]}

\n

${this.languageText[currentLanguage]['info'][7]}

\n

${this.languageText[currentLanguage]['info'][8]}

\n `;\n\n this.panelContent.appendChild(infoTitle);\n this.panelContent.appendChild(lngLabel);\n this.panelContent.appendChild(lngSelector);\n this.panelContent.appendChild(notes);\n this.panelContent.appendChild(iconLabels);\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'error':\n display.setAttribute('data-display-type', 'error');\n appWrapper.appendChild(display);\n break;\n\n case 'print':\n display.setAttribute('data-display-type', 'print');\n appWrapper.appendChild(display);\n break;\n\n default:\n break;\n }\n if (shadow.firstChild == null) {\n shadow.appendChild(appWrapper);\n }\n }\n}\n","export default \"#app-wrapper{\\n position: relative;\\n display: flex;\\n -ms-flex-align: stretch;\\n height: 800px;\\n}\\n\\ncod-map{\\n flex: 1;\\n}\\n\\n#d6-map-nav{\\n position: absolute;\\n display: flex;\\n flex-direction: column;\\n top: 1em;\\n left: 1em;\\n z-index: 10;\\n}\\n\\n.offcanvas-title img{\\n width: 6em;\\n position: relative;\\n left: 8em;\\n}\\n\\n#d6-start-screen{\\n z-index: 11;\\n}\";","import D6BusinessMap from './components/D6BusinessMap';\ncustomElements.define('d6-business-map', D6BusinessMap);"],"names":["Geocoder","HTMLElement","observedAttributes","constructor","super","this","form","parcelStatus","user","styles","document","createElement","textContent","shadow","attachShadow","mode","appendChild","geocoderWraper","id","label","style","fontFamily","fontWeight","input","list","icon","addEventListener","ev","submit","className","app","getElementsByTagName","innerText","getAttribute","error","setAttribute","type","placeholder","inputChange","supplementGeocoder","address","geocoder","tempAddr","split","newTempAddr","size","length","forEach","item","index","url","concat","fetch","then","resp","json","data","candidates","sugg","attributes","parcel_id","value","onclick","selectSuggestion","childNodes","location","x","y","city","features","parcel","checkParcelValid","needGeocode","clearSuggestions","JSON","stringify","selection","target","tagName","parentNode","key","undefined","firstChild","removeChild","cleanAddress","params","geometry","request","Request","access_token","encodeURIComponent","method","body","headers","Headers","cache","res","test","preventDefault","NavigationTools","navToolsStyle","loadNavTools","clearDisplay","display","shadowRoot","navTools","appStatus","appMode","initialSets","initalMapStatus","navToolsWrapper","clearResultsBtn","propertyDataBtn","storedData","parse","activeData","govDataBtn","zoneDataBtn","nearDataBtn","printBtn","customElements","define","Display","innerHTML","attributeChangedCallback","name","oldValue","newValue","loadDisplay","formatDate","tempDate","Date","getMonth","getDate","getFullYear","printInfo","divContents","buildDataSection","a","window","open","write","children","close","print","displayWrapper","console","log","panel","panelHeader","panelBody","properties","business_name","business_phone_number","business_phone_website","welcomeStyle","loader","parcelData","resultsStyle","resultsContainer","dataSetResults","addressBox","results","errorContainer","errorBox","printParcelData","printResultsContainer","printDataSetResults","printAddressBox","printResults","D6BusinessMap","mainData","layers","languageText","appStyles","appWrapper","nav","filterBtn","LayerBtn","infoBtn","panelLogo","width","position","left","src","logo","viewHeight","innerHeight","panelContent","height","overflowY","startScreen","createLabelLayers","tempMainData","map","sources","layer","includes","source","tmpLabelLayer","polygon","tmpCenter","centroid","nhood_name","push","zipcode","newFilters","buildQuery","getSource","setData","catch","err","oldBoundaries","newBoundaries","boundariesDiff","arrayDifference","changeVisibility","loadApp","arr1","arr2","difference","i","indexOf","filters","tmpWhere","filter","join","visibility","_map","setLayoutProperty","clearApp","clearPanel","updateBoundaries","boundaries","tempBoundaries","formCheck","checked","multiLayers","boundary","updateMainData","tempFilters","currentLanguage","currenBoundaries","currenFilters","tempData","profit_or_nonprofit","is_asian_owned","is_black_owned","is_indigenous_owned","is_lgbtq_owned","is_middle_eastern_owned","is_minority_owned","is_veteran_owned","is_woman_owned","is_ads_comms_marketing","is_automotive","is_bar_restaurant","has_clinic_community_health_ser","is_construction","has_dental_service","is_entertainment","has_family_health_service","is_human_services","is_landscape","is_legal_financial","is_manufacturing_distribution","has_mental_health_service","has_other_health_service","is_other","has_pediatric_service","is_personal_care_services","is_place_of_worship","has_primary_care_service","is_retail","has_sexual_health_service","has_specialist_service","has_emergency_urgent_care_servi","is_public_transit_accessible","is_ada_accessible","has_bike_rack","has_parking_lot","is_cash_only","has_free_wifi","has_gender_neutral_bathrooms","has_rental_space","titleFilters","backgroundColor","color","filterInstructions","ownershipSection","ownershipFilterCheckboxes","asianOwnedCheckbox","blackOwnedCheckbox","lgbtqOwnedCheckbox","indigenousOwnedCheckbox","middleEasternOwnedCheckbox","veteranOwnedCheckbox","minorityOwnedCheckbox","womanOwnedCheckbox","servicesSection","servicesFilterCheckboxes","dentalCheckbox","marketingCheckbox","automotiveCheckbox","barRestaurantCheckbox","constructionCheckbox","entertainmentCheckbox","humanServicesCheckbox","landscapeCheckbox","legalFinancialCheckbox","manufacturingCheckbox","personalCareCheckbox","worshipCheckbox","retailCheckbox","otherCheckbox","amenitiesSection","amenitiesSectionCheckboxes","publicTransitCheckbox","adaCheckbox","bikeRackCheckbox","parkingCheckbox","cashOnlyCheckbox","wifiCheckbox","genderNeutralBathroomsCheckbox","rentalSpaceCheckbox","title","layerCheckboxes","neighborhoodCheckbox","policePrecinctsCheckbox","zipCodesCheckbox","cityFacilitiesCheckbox","infoTitle","lngLabel","htmlFor","lngSelector","d6","notes","iconLabels"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"assets/js/main.js","mappings":"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","sources":["webpack://d6-business-directory/./src/components/Geocoder.js","webpack://d6-business-directory/./src/components/NavigationTools.js","webpack://d6-business-directory/./src/components/Display.js","webpack://d6-business-directory/./src/assets/logo2.png","webpack://d6-business-directory/./src/components/D6BusinessMap.js","webpack://d6-business-directory/./src/components/D6BusinessMap.css","webpack://d6-business-directory/./src/index.js"],"sourcesContent":["'use strict';\nexport default class Geocoder extends HTMLElement {\n\n static get observedAttributes() {\n return ['form', 'parcelStatus', 'user'];\n }\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Set Attributes\n this.form = null;\n this.parcelStatus = 'Invalid';\n this.user = null;\n this.styles = document.createElement('style');\n this.styles.textContent = `\n @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;700&display=swap')\n #geocoder {width: 100%}\n input {width: calc(100% - 2em); padding: 1em; border:.1em solid #e6e6e6; font-size: 1em;}\n `;\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n // Create geocoder section\n shadow.appendChild(this.styles);\n const geocoderWraper = document.createElement('article');\n geocoderWraper.id = 'geocoder';\n let form = document.createElement('form');\n let label = document.createElement('label');\n label.style.fontFamily = 'Montserrat, sans-serif';\n label.style.fontWeight = 'bold';\n let input = document.createElement('input');\n let suggestions = document.createElement('ul');\n let list = document.createElement('datalist');\n let icon = document.createElement('i');\n form.addEventListener('submit', (ev) => {\n this.submit(ev, this);\n });\n icon.className = 'fas fa-map-marker-alt';\n // Get label text\n const app = document.getElementsByTagName('my-home-info');\n label.innerText = \"Property Address:\";\n try {\n if (app[0].getAttribute('data-geocoder-label')){\n if(app[0].getAttribute('data-geocoder-label') != ''){\n label.innerText = app[0].getAttribute('data-geocoder-label');\n }\n }\n } catch (error) {\n \n }\n label.setAttribute(\"for\", \"geocoder-input\");\n input.type = 'text';\n input.setAttribute('list', 'addresses-list');\n input.placeholder = 'Enter address';\n input.setAttribute('id', 'geocoder-input');\n input.setAttribute('autocomplete', 'off');\n input.addEventListener('keyup', (ev) => {\n this.inputChange(ev, this);\n });\n list.setAttribute('id', 'addresses-list');\n\n\n form.appendChild(label);\n form.appendChild(input);\n form.appendChild(icon);\n // form.appendChild(suggestions);\n form.appendChild(list);\n this.form = form;\n geocoderWraper.appendChild(form);\n shadow.appendChild(geocoderWraper);\n }\n\n supplementGeocoder(address, geocoder, type) {\n const app = document.getElementsByTagName('my-home-info');\n let tempAddr = address.split(\",\");\n tempAddr = tempAddr[0];\n tempAddr = tempAddr.split(\" \");\n let newTempAddr = '';\n let size = tempAddr.length;\n tempAddr.forEach(function (item, index) {\n newTempAddr += item;\n ((index < size) && (index + 1) !== size) ? newTempAddr += '+' : 0;\n });\n let url = `https://opengis.detroitmi.gov/opengis/rest/services/BaseUnits/BaseUnitGeocoder/GeocodeServer/findAddressCandidates?Address=&Address2=&Address3=&Neighborhood=&City=&Subregion=&Region=&Postal=&PostalExt=&CountryCode=&SingleLine=${newTempAddr}&outFields=*&maxLocations=&matchOutOfRange=true&langCode=&locationType=&sourceCountry=&category=&location=&distance=&searchExtent=&outSR=&magicKey=&f=json`;\n\n try {\n fetch(url)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n // console.log(data);\n if (type === 'suggestions') {\n data.candidates.forEach((item) => {\n let sugg = document.createElement('option');\n if (item.attributes.parcel_id === '') {\n sugg.value = item.address;\n sugg.setAttribute('data-parsel', 'no-parcel');\n } else {\n sugg.value = `${item.address} RECOMMENDED`;\n sugg.setAttribute('data-parsel', item.attributes.parcel_id);\n }\n\n sugg.onclick = (ev) => {\n geocoder.selectSuggestion(ev, geocoder);\n }\n geocoder.form.childNodes[3].appendChild(sugg);\n });\n } else {\n if (data.candidates.length) {\n let url = `https://services2.arcgis.com/qvkbeam7Wirps6zC/arcgis/rest/services/City_of_Detroit_Boundary/FeatureServer/0/query?where=&objectIds=&time=&geometry=${data.candidates[0].location.x}%2C+${data.candidates[0].location.y}&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&returnGeodetic=false&outFields=4326&returnGeometry=true&returnCentroid=false&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnDistinctValues=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=`;\n try {\n fetch(url)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (city) {\n if (city.features.length) {\n let parcel = null;\n let location;\n data.candidates.forEach((item) => {\n if (item.attributes.parcel_id !== '') {\n if (geocoder.checkParcelValid(item.attributes.parcel_id)) {\n parcel = item;\n }\n }\n });\n (parcel == null) ? location = data.candidates[0].location : location = null;\n if (parcel === null) {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-parcel-id', JSON.stringify(data.candidates[0]));\n // geocoder.controller.panel.loaderToggle(true);\n // geocoder.controller.panel.clearPanel();\n // geocoder.controller.dataManager.buildData(data.candidates[0], geocoder.controller);\n } else {\n geocoder.parcelStatus = 'Valid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-parcel-id', JSON.stringify(parcel));\n // geocoder.controller.panel.loaderToggle(true);\n // geocoder.controller.panel.clearPanel();\n // geocoder.controller.dataManager.buildData(parcel, geocoder.controller);\n }\n } else {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n });\n } catch (error) {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n } else {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n }\n });\n } catch (error) {\n geocoder.parcelStatus = 'Invalid';\n geocoder.needGeocode(address, geocoder, location);\n geocoder.clearSuggestions(geocoder);\n app[0].setAttribute('data-app-state', 'error');\n }\n }\n\n selectSuggestion(ev, geocoder) {\n let selection = null;\n if (ev.target.tagName === 'SPAN') {\n selection = ev.target.parentNode;\n } else {\n selection = ev.target;\n }\n if (selection.attributes[0].value === 'no-parcel') {\n geocoder.clearSuggestions(geocoder);\n geocoder.supplementGeocoder(selection.innerText, geocoder, 'submit');\n } else {\n geocoder.supplementGeocoder(selection.innerText, geocoder, 'submit');\n }\n }\n\n inputChange(ev, geocoder) {\n switch (ev.key) {\n case 'Enter':\n (ev.target.value != '' && ev.target.value != undefined) ? geocoder.supplementGeocoder(ev.target.value, geocoder, 'submit') : 0;\n break;\n\n case 'ArrowDown':\n\n break;\n\n case 'ArrowUp':\n\n break;\n\n case 'ArrowRight':\n\n break;\n\n case 'ArrowLeft':\n\n break;\n\n case undefined:\n (ev.target.value != '' && ev.target.value != undefined) ? geocoder.supplementGeocoder(ev.target.value, geocoder, 'submit') : 0;\n break;\n\n default:\n geocoder.clearSuggestions(geocoder);\n geocoder.supplementGeocoder(ev.target.value, geocoder, 'suggestions');\n break;\n }\n }\n\n clearSuggestions(geocoder) {\n while (geocoder.form.childNodes[3].firstChild) {\n geocoder.form.childNodes[3].removeChild(geocoder.form.childNodes[3].firstChild);\n }\n }\n\n needGeocode(address, geocoder, location) {\n fetch('https://us-central1-local-services-loopkup.cloudfunctions.net/getToken')\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n let cleanAddress = address.split(' RECOMMENDED')[0];\n let params = [\n {\n \"attributes\": {\n \"valid_parcel_status\": geocoder.parcelStatus,\n \"user_input\": cleanAddress\n },\n \"geometry\": {\n \"x\": 0,\n \"y\": 0\n }\n }\n ];\n if (location != null) {\n params[0].geometry.x = location.x;\n params[0].geometry.y = location.y;\n }\n let request = new Request(`https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/addressvalidator/FeatureServer/0/addFeatures?token=${data.access_token}&features=${encodeURIComponent(JSON.stringify(params))}&f=json`, {\n method: 'POST',\n body: '',\n headers: new Headers(),\n mode: 'cors',\n cache: 'default'\n });\n fetch(request)\n .then((res) => {\n // console.log(res);\n });\n });\n }\n\n checkParcelValid(parcel){\n return /\\d/.test(parcel);\n }\n\n submit(ev, geocoder) {\n ev.preventDefault();\n geocoder.supplementGeocoder(ev.target['0'].value, geocoder, 'submit');\n }\n}","export default class NavigationTools extends HTMLElement {\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n // Creating display styles\n this.navToolsStyle = document.createElement('style');\n this.navToolsStyle.textContent = `\n #nav-tools-wrapper { display: flex; flex-direction: column;}\n button.clear { font-size: 1.25em; width: 2.5em; height: 2.5em; background-color: #FEB70D; cursor: pointer; border: none; }\n button.nav { width: 3.75em; height: 3.75em; border: none; cursor: pointer;background: #fff; }\n button.nav:hover { background-color: #e6e6e6; transition: all 500ms cubic-bezier(.64,.09,.08,1); }\n button.nav.active { background-color: #9fd5b3; }\n button.nav img { width: 100%; }\n `;\n\n // Start loading display content\n this.loadNavTools(this);\n }\n\n clearDisplay(display) {\n const shadow = display.shadowRoot;\n while (shadow.firstChild) {\n shadow.removeChild(shadow.firstChild);\n }\n }\n\n loadNavTools(navTools) {\n const app = document.getElementsByTagName('d6-business-map');\n const appStatus = app[0].getAttribute('data-app-state');\n const appMode = app[0].getAttribute('data-app-mode');\n const initialSets = app[0].getAttribute('data-inital-sets');\n const initalMapStatus = app[0].getAttribute('data-initial-map-available');\n const shadow = navTools.shadowRoot;\n shadow.appendChild(navTools.navToolsStyle);\n const navToolsWrapper = document.createElement('section');\n navToolsWrapper.id = 'nav-tools-wrapper';\n navToolsWrapper.setAttribute('role', 'navigation');\n navToolsWrapper.setAttribute('aria-label', 'Data Navigation');\n const clearResultsBtn = document.createElement('cod-button');\n clearResultsBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-app-mode') == 'my-home-info') {\n app[0].setAttribute('data-app-state', 'welcome-screen');\n app[0].setAttribute('data-active-sets', 'assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection');\n } else {\n app[0].setAttribute('data-app-state', 'active-screen');\n app[0].setAttribute('data-active-sets', initialSets);\n }\n if(initalMapStatus == 'true'){\n app[0].setAttribute('data-map-available', 'true');\n }else{\n app[0].setAttribute('data-map-available', 'false');\n }\n app[0].setAttribute('data-parcel-id', 'none');\n app[0].setAttribute('data-api-stored-datasets', '{}');\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-section', 'property');\n });\n clearResultsBtn.setAttribute('data-primary', true);\n clearResultsBtn.setAttribute('data-label', 'x');\n clearResultsBtn.setAttribute('data-size', 'lg');\n clearResultsBtn.setAttribute('data-hover', false);\n clearResultsBtn.setAttribute('data-extra-classes', 'fw-bold');\n clearResultsBtn.setAttribute('data-background-color', 'warning');\n clearResultsBtn.setAttribute('data-img', '');\n clearResultsBtn.setAttribute('data-img-alt', '');\n clearResultsBtn.setAttribute('data-shape', 'square');\n clearResultsBtn.setAttribute('data-icon', '');\n navToolsWrapper.appendChild(clearResultsBtn);\n\n if (appMode == 'my-home-info' && appStatus != 'error') {\n const propertyDataBtn = document.createElement('cod-button');\n propertyDataBtn.setAttribute('data-label', '');\n propertyDataBtn.setAttribute('data-size', 'lg');\n propertyDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/home.png');\n propertyDataBtn.setAttribute('data-img-alt', 'about this property');\n propertyDataBtn.setAttribute('data-shape', 'square');\n propertyDataBtn.setAttribute('data-nav-value', 'about this property');\n propertyDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'about this property') {\n propertyDataBtn.setAttribute('data-background-color', 'success');\n propertyDataBtn.setAttribute('data-primary', true);\n } else {\n propertyDataBtn.setAttribute('data-background-color', 'secondary');\n propertyDataBtn.setAttribute('data-primary', false);\n propertyDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'assessors-data,neighborhood,recycling,rental-data,rental-cert,demo-status,blight-data,permit-data,DWSDBackupProtection');\n app[0].setAttribute('data-map-available', 'false');\n app[0].setAttribute('data-active-section', 'about this property');\n app[0].setAttribute('data-app-state', 'loading-screen');\n })\n }\n navToolsWrapper.appendChild(propertyDataBtn);\n\n const govDataBtn = document.createElement('cod-button');\n govDataBtn.setAttribute('data-label', '');\n govDataBtn.setAttribute('data-size', 'lg');\n govDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/government.png');\n govDataBtn.setAttribute('data-img-alt', 'government officials');\n govDataBtn.setAttribute('data-shape', 'square');\n govDataBtn.setAttribute('data-nav-value', 'government officials');\n govDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'government officials') {\n govDataBtn.setAttribute('data-background-color', 'success');\n govDataBtn.setAttribute('data-primary', true);\n } else {\n govDataBtn.setAttribute('data-background-color', 'secondary');\n govDataBtn.setAttribute('data-primary', false);\n govDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'council,council-members,bop-members,district-managers,business-liaison,district-inspectors,npo');\n app[0].setAttribute('data-map-available', 'false');\n app[0].setAttribute('data-active-section', 'government officials');\n app[0].setAttribute('data-app-state', 'loading-screen');\n });\n }\n navToolsWrapper.appendChild(govDataBtn);\n\n const zoneDataBtn = document.createElement('cod-button');\n zoneDataBtn.setAttribute('data-label', '');\n zoneDataBtn.setAttribute('data-size', 'lg');\n zoneDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/zone.png');\n zoneDataBtn.setAttribute('data-img-alt', 'special areas and zones');\n zoneDataBtn.setAttribute('data-shape', 'square');\n zoneDataBtn.setAttribute('data-nav-value', 'special areas and zones');\n zoneDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'special areas and zones') {\n zoneDataBtn.setAttribute('data-background-color', 'success');\n zoneDataBtn.setAttribute('data-primary', true);\n } else {\n zoneDataBtn.setAttribute('data-background-color', 'secondary');\n zoneDataBtn.setAttribute('data-primary', false);\n zoneDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'nez,nrsa,historicDistrict');\n app[0].setAttribute('data-map-available', 'false');\n app[0].setAttribute('data-active-section', 'special areas and zones');\n app[0].setAttribute('data-app-state', 'loading-screen');\n });\n }\n navToolsWrapper.appendChild(zoneDataBtn);\n\n const nearDataBtn = document.createElement('cod-button');\n nearDataBtn.setAttribute('data-label', '');\n nearDataBtn.setAttribute('data-size', 'lg');\n nearDataBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/nearby.png');\n nearDataBtn.setAttribute('data-img-alt', 'things nearby');\n nearDataBtn.setAttribute('data-shape', 'square');\n nearDataBtn.setAttribute('data-nav-value', 'things nearby');\n nearDataBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'things nearby') {\n nearDataBtn.setAttribute('data-background-color', 'success');\n nearDataBtn.setAttribute('data-primary', true);\n } else {\n nearDataBtn.setAttribute('data-background-color', 'secondary');\n nearDataBtn.setAttribute('data-primary', false);\n nearDataBtn.addEventListener('click', (ev) => {\n if (app[0].getAttribute('data-api-active-datasets') != 'none') {\n let storedData = JSON.parse(app[0].getAttribute('data-api-stored-datasets'));\n let activeData = JSON.parse(app[0].getAttribute('data-api-active-datasets'));\n for (const key in activeData) {\n if (!(key in storedData)) {\n storedData[key] = activeData[key];\n }\n }\n app[0].setAttribute('data-api-stored-datasets', JSON.stringify(storedData));\n }\n app[0].setAttribute('data-api-active-datasets', 'none');\n app[0].setAttribute('data-active-sets', 'schools,demos-data,stabilization-data,improve-det');\n app[0].setAttribute('data-active-section', 'things nearby');\n app[0].setAttribute('data-map-available', 'true');\n app[0].setAttribute('data-app-state', 'loading-screen');\n });\n }\n navToolsWrapper.appendChild(nearDataBtn);\n\n const printBtn = document.createElement('cod-button');\n printBtn.setAttribute('data-label', '');\n printBtn.setAttribute('data-size', 'lg');\n printBtn.setAttribute('data-img', 'https://detroitmi.gov/sites/detroitmi.localhost/files/2023-01/print.png');\n printBtn.setAttribute('data-img-alt', 'print');\n printBtn.setAttribute('data-shape', 'square');\n printBtn.setAttribute('data-nav-value', 'print');\n printBtn.setAttribute('data-icon', '');\n if (app[0].getAttribute('data-active-section') == 'print') {\n printBtn.setAttribute('data-background-color', 'success');\n printBtn.setAttribute('data-primary', true);\n } else {\n printBtn.setAttribute('data-background-color', 'secondary');\n printBtn.setAttribute('data-primary', false);\n printBtn.addEventListener('click', (ev) => {\n if(ev.target.getAttribute('data-nav-value')){\n app[0].setAttribute('data-app-state', 'print');\n }\n });\n }\n navToolsWrapper.appendChild(printBtn);\n }\n\n shadow.appendChild(navToolsWrapper);\n }\n\n}\n","'use strict';\nimport Geocoder from './Geocoder';\nimport NavigationTools from './NavigationTools';\ncustomElements.define('app-geocoder', Geocoder);\ncustomElements.define('app-nav-tools', NavigationTools);\nexport default class Display extends HTMLElement {\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n shadow.innerHTML = `\n \n \n
Offcanvas
\n
\n \n

\n Some text as placeholder. In real life you can have the elements you\n have chosen. Like, text, images, lists, etc.\n

\n
\n
\n `;\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n // console.log(`Display - attribute: ${name}, old: ${oldValue}, new: ${newValue}`);\n if (newValue == 'data-panel-data') {\n this.clearDisplay(this);\n }\n if (name == 'data-pagination'){\n this.clearDisplay(this);\n }\n this.loadDisplay(this);\n }\n\n clearDisplay(display) {\n const shadow = display.shadowRoot;\n while (shadow.firstChild) {\n shadow.removeChild(shadow.firstChild);\n }\n }\n\n formatDate(value) {\n const month = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n const tempDate = new Date(value);\n return `${month[tempDate.getMonth()]} ${tempDate.getDate()}, ${tempDate.getFullYear()}`;\n }\n\n printInfo(display) {\n let divContents = display.buildDataSection(display);\n let a = window.open('', '', 'height=500, width=500');\n a.document.write('');\n a.document.write('');\n a.document.write('');\n a.document.write(divContents.children[1].innerHTML);\n a.document.write('');\n a.document.close();\n a.print();\n }\n\n loadDisplay(display) {\n const shadow = display.shadowRoot;\n const displayWrapper = document.createElement('section');\n const geocoder = document.createElement('app-geocoder');\n const navTools = document.createElement('app-nav-tools');\n const app = document.getElementsByTagName('my-home-info');\n navTools.printInfo = display.printInfo;\n displayWrapper.id = 'display-wrapper';\n switch (this.getAttribute('data-display-type')) {\n case 'active-panel':\n console.log('loading panel');\n let data = JSON.parse(this.getAttribute('data-panel-data'));\n let panel = document.createElement('cod-offcanvas');\n panel.id = 'd6-map-panel';\n panel.setAttribute('data-show', 'true');\n let panelHeader = document.createElement('cod-offcanvas-header');\n let panelBody = document.createElement('cod-offcanvas-body');\n \n panelHeader.innerHTML = `
${data.properties.business_name}`;\n panelBody.innerHTML = `\n

Address: ${data.properties.address}

\n

Phone: ${data.properties.business_phone_number}

\n

Website: ${data.properties.business_phone_website}

\n `;\n panel.appendChild(panelHeader);\n panel.appendChild(panelBody);\n displayWrapper.appendChild(panel);\n shadow.appendChild(displayWrapper);\n console.log(panel);\n break;\n\n case 'active':\n shadow.appendChild(display.welcomeStyle);\n displayWrapper.appendChild(geocoder);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'loading':\n const loader = document.createElement('cod-loader');\n loader.setAttribute('data-color', 'color-3');\n displayWrapper.appendChild(loader);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'results':\n let parcelData = JSON.parse(app[0].getAttribute('data-parcel-id'));\n shadow.appendChild(display.resultsStyle);\n let resultsContainer = document.createElement('section');\n resultsContainer.className = 'results-container';\n resultsContainer.appendChild(navTools);\n let dataSetResults = document.createElement('article');\n dataSetResults.className = 'dataset-results';\n let addressBox = document.createElement('article');\n addressBox.className = 'result-address';\n addressBox.innerText = parcelData.address;\n dataSetResults.appendChild(addressBox);\n let results = display.buildDataSection(display);\n dataSetResults.appendChild(results);\n resultsContainer.appendChild(dataSetResults);\n displayWrapper.appendChild(resultsContainer);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'error':\n let errorContainer = document.createElement('section');\n shadow.appendChild(display.resultsStyle);\n errorContainer.className = 'results-container';\n errorContainer.appendChild(navTools);\n let errorBox = document.createElement('article');\n errorBox.className = 'error-result';\n errorBox.innerHTML = `\n \n \n \n \n \n \n \n \n \n \n

No Information found on this address. Please close and try again.

\n `;\n errorContainer.appendChild(errorBox);\n displayWrapper.appendChild(errorContainer);\n shadow.appendChild(displayWrapper);\n break;\n\n case 'print':\n let printParcelData = JSON.parse(app[0].getAttribute('data-parcel-id'));\n shadow.appendChild(display.resultsStyle);\n let printResultsContainer = document.createElement('section');\n printResultsContainer.className = 'results-container';\n printResultsContainer.appendChild(navTools);\n let printDataSetResults = document.createElement('article');\n printDataSetResults.className = 'dataset-results';\n let printAddressBox = document.createElement('article');\n printAddressBox.className = 'result-address';\n printAddressBox.innerText = printParcelData.address;\n printDataSetResults.appendChild(printAddressBox);\n let printResults = display.buildDataSection(display);\n printDataSetResults.appendChild(printResults);\n printResultsContainer.appendChild(printDataSetResults);\n displayWrapper.appendChild(printResultsContainer);\n shadow.appendChild(displayWrapper);\n display.printInfo(display);\n break;\n\n default:\n break;\n }\n }\n\n}\n","export default __webpack_public_path__ + \"static/media/logo2.be972cd9.png\";","'use strict';\nimport styles from '!!raw-loader!./D6BusinessMap.css';\nimport Display from './Display';\nimport layers from './layers.json';\nimport languageText from './language-text.json';\nimport logo from '../assets/logo2.png';\nimport centroid from '@turf/centroid';\n\ncustomElements.define('app-display', Display);\n\nexport default class D6BusinessMap extends HTMLElement {\n static get observedAttributes() {\n return ['data-app-state', 'data-parcel-id', 'data-map-state', 'data-active-boundaries', 'data-active-filters','data-language'];\n }\n\n constructor() {\n // Always call super first in constructor\n super();\n\n // Create a shadow root\n const shadow = this.attachShadow({ mode: 'open' });\n\n // Create result section\n const app = document.getElementsByTagName('d6-business-map');\n let tempState = app[0].getAttribute('data-app-state');\n\n this.mainData = {\"name\":\"d6\",\"data\":\"https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=1%3D1&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=pgeojson&token=\"};\n\n this.layers = layers;\n\n this.languageText = languageText;\n console.log(this.languageText);\n\n // Adding styles\n const appStyles = document.createElement('style');\n appStyles.textContent = styles;\n this.shadowRoot.appendChild(appStyles);\n\n // Creating app wrapper\n this.appWrapper = document.createElement('section');\n this.appWrapper.id = 'app-wrapper';\n shadow.appendChild(this.appWrapper);\n\n // create navtools\n this.nav = document.createElement('section');\n this.nav.id = 'd6-map-nav';\n this.filterBtn = document.createElement('cod-button');\n this.filterBtn.setAttribute('data-label', '');\n this.filterBtn.setAttribute('data-size', 'lg');\n this.filterBtn.setAttribute('data-img', '');\n this.filterBtn.setAttribute('data-img-alt', '');\n this.filterBtn.setAttribute('data-shape', 'square');\n this.filterBtn.setAttribute('data-nav-value', 'filters');\n this.filterBtn.setAttribute('data-icon', 'funnel');\n this.filterBtn.setAttribute('data-icon-size', 'medium');\n this.filterBtn.setAttribute('data-aria-label', 'Filters');\n this.filterBtn.setAttribute('data-extra-classes', 'icon-center');\n this.filterBtn.setAttribute('data-background-color', 'primary');\n this.filterBtn.setAttribute('data-primary', true);\n this.filterBtn.addEventListener('click', (ev) => {\n let app = document.getElementsByTagName('d6-business-map');\n app[0].setAttribute('data-app-state', 'active-filters');\n });\n this.nav.appendChild(this.filterBtn);\n\n this.LayerBtn = document.createElement('cod-button');\n this.LayerBtn.setAttribute('data-label', '');\n this.LayerBtn.setAttribute('data-size', 'lg');\n this.LayerBtn.setAttribute('data-img', '');\n this.LayerBtn.setAttribute('data-img-alt', '');\n this.LayerBtn.setAttribute('data-shape', 'square');\n this.LayerBtn.setAttribute('data-nav-value', 'layers');\n this.LayerBtn.setAttribute('data-icon', 'bounding-box');\n this.LayerBtn.setAttribute('data-icon-size', 'medium');\n this.LayerBtn.setAttribute('data-aria-label', 'Layers');\n this.LayerBtn.setAttribute('data-extra-classes', 'icon-center');\n this.LayerBtn.setAttribute('data-background-color', 'primary');\n this.LayerBtn.setAttribute('data-primary', true);\n this.LayerBtn.addEventListener('click', (ev) => {\n let app = document.getElementsByTagName('d6-business-map');\n app[0].setAttribute('data-app-state', 'active-layers');\n });\n this.nav.appendChild(this.LayerBtn);\n\n this.infoBtn = document.createElement('cod-button');\n this.infoBtn.setAttribute('data-label', '');\n this.infoBtn.setAttribute('data-size', 'lg');\n this.infoBtn.setAttribute('data-img', '');\n this.infoBtn.setAttribute('data-img-alt', '');\n this.infoBtn.setAttribute('data-shape', 'square');\n this.infoBtn.setAttribute('data-nav-value', 'info');\n this.infoBtn.setAttribute('data-icon', 'exclamation-circle');\n this.infoBtn.setAttribute('data-icon-size', 'medium');\n this.infoBtn.setAttribute('data-aria-label', 'Information');\n this.infoBtn.setAttribute('data-extra-classes', 'icon-center');\n this.infoBtn.setAttribute('data-background-color', 'primary');\n this.infoBtn.setAttribute('data-primary', true);\n this.infoBtn.addEventListener('click', (ev) => {\n let app = document.getElementsByTagName('d6-business-map');\n app[0].setAttribute('data-app-state', 'active-info');\n });\n this.nav.appendChild(this.infoBtn);\n shadow.appendChild(this.nav);\n\n // create panel component\n this.panel = document.createElement('cod-offcanvas');\n this.panel.id = 'd6-map-panel';\n this.panelHeader = document.createElement('cod-offcanvas-header');\n this.panelLogo = document.createElement('img');\n this.panelLogo.style.width = '6em';\n this.panelLogo.style.position = 'relative';\n this.panelLogo.style.left = '8em';\n this.panelLogo.src = logo;\n this.panelHeader.appendChild(this.panelLogo);\n\n let viewHeight = window.innerHeight - 150;\n this.panelBody = document.createElement('cod-offcanvas-body');\n this.panelContent = document.createElement('article');\n this.panelContent.style.height = `${viewHeight}px`;\n this.panelContent.style.overflowY = \"auto\";\n this.panelContent.innerHTML = ``;\n this.panelBody.appendChild(this.panelContent);\n\n this.panel.appendChild(this.panelHeader);\n this.panel.appendChild(this.panelBody);\n shadow.appendChild(this.panel);\n\n // create start screen\n this.startScreen = document.createElement('cod-modal');\n this.startScreen.setAttribute('data-id', 'd6-start-screen');\n this.startScreen.innerHTML = `\n \n
\"Gabriela
\n

Welcome to Council Member Santiago-Romero's District 6 Business Directory!\n

This directory provides an overview of businesses located within Detroit City Council District 6 (D6). Those listed have opted-in to this directory, so please note this is not exhaustive of all D6 businesses.

\n

Here are some other helpful tips for navigating this directory:

\n
    \n
  • Scroll around and zoom in/out on this map to see what in various neighborhoods.
  • \n
  • Click on any of the purple dots to view a D6 business profile, which includes location, business type, ownership demographics, and services and amenities available.
  • \n
  • Additional tools:\n
      \n
    • The filter icon (top) on the upper left will allow you to filter businesses by ownership and/or type of service available.
    • \n
    • The boundary icon (middle) on the upper left will allow you to toggle on overlay additional maps to see neighborhood boundaries, zip code boundaries, police precinct boundaries, and view some City Facilities (i.e. recreation centers, police precincts, libraries, and municipal buildings).
    • \n
    • The info icon (bottom) on the upper left will allow you to translate this director into other languages and view icon descriptions associated with business amenities.
    • \n
    \n
  • \n
\n

If you are a local business in D6 and would like to be included, please complete this form for review.

\n

For any questions, please email councilmembergabriela@detroitmi.gov with subject line \"D6 Directory\".

\n
\n \n \n `;\n\n shadow.appendChild(this.startScreen);\n\n this.startScreen.setAttribute('data-show', true);\n\n // Add label layers\n this.layers = this.createLabelLayers();\n\n console.log(this.layers);\n // Create map component\n let popupLayers = [\"city-facilities\"];\n let popupStructure = {\"city-facilities\":[{\"type\":\"field-value\",\"label\":\"Name:\",\"value\":\"Facility\"},{\"type\":\"field-value\",\"label\":\"Address:\",\"value\":\"Address\"}]}\n let tempMainData = {\"id\":\"d6-business\",\"layers\":[{\"name\":\"data-points\",\"type\":\"circle\",\"radius\":7,\"color\":\"#745da8\",\"active\":true,\"sort\":10,\"source\":\"data-points\"}],\"source\":this.mainData.data,};\n this.map = document.createElement('cod-map');\n this.map.id = 'd6-map';\n this.map.setAttribute('data-parent-component', 'd6-business-map');\n this.map.setAttribute('data-map-mode', 'map-panel');\n this.map.setAttribute('data-center', \"-83.103111,42.31103400000001\");\n this.map.setAttribute('data-zoom', \"11.5\");\n this.map.setAttribute('data-popup-layers', JSON.stringify(popupLayers));\n this.map.setAttribute('data-popup-structure', JSON.stringify(popupStructure));\n this.map.setAttribute('data-map-data', JSON.stringify(tempMainData));\n this.map.setAttribute('data-map-layers', JSON.stringify(this.layers.layers));\n this.map.setAttribute('data-location', this.getAttribute('data-location'));\n this.map.setAttribute('data-map-state', 'init');\n app[0].setAttribute('data-active-boundaries', 'coucil-district-6-lines');\n this.appWrapper.appendChild(this.map);\n }\n\n createLabelLayers(){\n const layers = this.layers;\n let sources = ['neighborhoods','police-precincts','zip-codes'];\n layers.layers.forEach((layer) => {\n if(sources.includes(layer.name)){\n fetch(layer.source)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n let tmpLabelLayer = {\"type\":\"FeatureCollection\",\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:4326\"}},\"features\":[]};\n data.features.forEach((polygon) => {\n let tmpCenter = centroid(polygon.geometry);\n switch (layer.name) {\n case 'neighborhoods':\n tmpCenter.properties['name'] = (polygon.properties.nhood_name == 'Central Southwest') ? 'Southwest' : polygon.properties.nhood_name;\n tmpLabelLayer.features.push(tmpCenter);\n break;\n\n case 'police-precincts':\n tmpCenter.properties['name'] = polygon.properties.name;\n tmpLabelLayer.features.push(tmpCenter);\n break;\n\n case 'zip-codes':\n tmpCenter.properties['name'] = polygon.properties.zipcode;\n tmpLabelLayer.features.push(tmpCenter);\n break;\n \n default:\n break;\n }\n \n });\n switch (layer.name) {\n case 'neighborhoods':\n layers.layers[1].source = tmpLabelLayer;\n break;\n\n case 'police-precincts':\n layers.layers[3].source = tmpLabelLayer;\n break;\n\n case 'zip-codes':\n layers.layers[5].source = tmpLabelLayer;\n break;\n \n default:\n break;\n }\n });\n }\n });\n return layers;\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n console.log(`App - attribute: ${name}, old: ${oldValue}, new: ${newValue}`);\n switch (name) {\n case 'data-active-filters':\n if(oldValue !== null){\n const newFilters = newValue.split(',');\n let url= this.buildQuery(newFilters);\n console.log(url);\n const app = this;\n fetch(url)\n .then((resp) => resp.json()) // Transform the data into json\n .then(function (data) {\n console.log(data);\n (app.map.map.getSource('data-points')) ? app.map.map.getSource('data-points').setData(data) : 0;\n }).catch(err => {\n // console.log(err);\n });\n }\n break;\n\n case 'data-active-boundaries':\n const oldBoundaries = oldValue.split(',');\n const newBoundaries = newValue.split(',');\n let boundariesDiff;\n if(newBoundaries.length > oldBoundaries.length){\n boundariesDiff = this.arrayDifference(newBoundaries, oldBoundaries);\n this.changeVisibility(boundariesDiff, 'visible', this.map);\n }else{\n boundariesDiff = this.arrayDifference(oldBoundaries, newBoundaries);\n this.changeVisibility(boundariesDiff, 'none', this.map);\n }\n break;\n \n case 'data-language':\n this.setAttribute('data-app-state', this.getAttribute('data-app-state'));\n break;\n \n default:\n this.loadApp(this);\n break;\n }\n \n }\n\n arrayDifference(arr1, arr2) {\n const difference = [];\n \n for (let i = 0; i < arr1.length; i++) {\n if (arr2.indexOf(arr1[i]) === -1) {\n difference.push(arr1[i]);\n }\n }\n \n return difference;\n }\n\n buildQuery(filters){\n console.log(filters)\n let tmpWhere = [];\n filters.forEach(filter => {\n switch (filter) {\n case 'is_asian_owned':\n tmpWhere.push('is_asian_owned%3D1');\n break;\n \n case 'is_black_owned':\n tmpWhere.push('is_black_owned%3D1');\n break;\n\n case 'is_asian_owned':\n tmpWhere.push('is_asian_owned%3D1');\n break;\n\n case 'is_lgbtq_owned':\n tmpWhere.push('is_lgbtq_owned%3D1');\n break;\n\n case 'is_indigenous_owned':\n tmpWhere.push('is_indigenous_owned%3D1');\n break;\n\n case 'is_middle_eastern_owned':\n tmpWhere.push('is_middle_eastern_owned%3D1');\n break;\n\n case 'is_veteran_owned':\n tmpWhere.push('is_veteran_owned%3D1');\n break;\n\n case 'is_minority_owned':\n tmpWhere.push('is_minority_owned%3D1');\n break;\n\n case 'is_woman_owned':\n tmpWhere.push('is_woman_owned%3D1');\n break;\n\n case 'has_clinic_community_health_ser':\n tmpWhere.push('has_clinic_community_health_ser%3D1');\n break;\n\n case 'has_dental_service':\n tmpWhere.push('has_dental_service%3D1');\n break;\n\n case 'has_emergency_urgent_care_servi':\n tmpWhere.push('has_emergency_urgent_care_servi%3D1');\n break;\n\n case 'has_family_health_service':\n tmpWhere.push('has_family_health_service%3D1');\n break;\n\n case 'has_mental_health_service':\n tmpWhere.push('has_mental_health_service%3D1');\n break;\n\n case 'has_pediatric_service':\n tmpWhere.push('has_pediatric_service%3D1');\n break;\n\n case 'has_primary_care_service':\n tmpWhere.push('has_primary_care_service%3D1');\n break;\n\n case 'has_sexual_health_service':\n tmpWhere.push('has_sexual_health_service%3D1');\n break;\n\n case 'has_specialist_service':\n tmpWhere.push('has_specialist_service%3D1');\n break;\n\n case 'has_other_health_service':\n tmpWhere.push('has_other_health_service%3D1');\n break;\n\n case 'is_ads_comms_marketing':\n tmpWhere.push('is_ads_comms_marketing%3D1');\n break;\n\n case 'is_automotive':\n tmpWhere.push('is_automotive%3D1');\n break;\n\n case 'is_bar_restaurant':\n tmpWhere.push('is_bar_restaurant%3D1');\n break;\n\n case 'is_construction':\n tmpWhere.push('is_construction%3D1');\n break;\n\n case 'is_entertainment':\n tmpWhere.push('is_entertainment%3D1');\n break;\n\n case 'is_human_services':\n tmpWhere.push('is_human_services%3D1');\n break;\n\n case 'is_landscape':\n tmpWhere.push('is_landscape%3D1');\n break;\n\n case 'is_legal_financial':\n tmpWhere.push('is_legal_financial%3D1');\n break;\n\n case 'is_manufacturing_distribution':\n tmpWhere.push('is_manufacturing_distribution%3D1');\n break;\n\n case 'is_personal_care_services':\n tmpWhere.push('is_personal_care_services%3D1');\n break;\n\n case 'is_place_of_worship':\n tmpWhere.push('is_place_of_worship%3D1');\n break;\n\n case 'is_retail':\n tmpWhere.push('is_retail%3D1');\n break;\n\n case 'is_other':\n tmpWhere.push('is_other%3D1');\n break;\n\n case 'is_public_transit_accessible':\n tmpWhere.push('is_public_transit_accessible%3D1');\n break;\n\n case 'is_ada_accessible':\n tmpWhere.push('is_ada_accessible%3D1');\n break;\n\n case 'has_bike_rack':\n tmpWhere.push('has_bike_rack%3D1');\n break;\n \n case 'has_parking_lot':\n tmpWhere.push('has_parking_lot%3D1');\n break;\n\n case 'is_cash_only':\n tmpWhere.push('is_cash_only%3D1');\n break;\n\n case 'has_free_wifi':\n tmpWhere.push('has_free_wifi%3D1');\n break;\n\n case 'has_gender_neutral_bathrooms':\n tmpWhere.push('has_gender_neutral_bathrooms%3D1');\n break;\n\n case 'has_rental_space':\n tmpWhere.push('has_rental_space%3D1');\n break;\n\n default:\n break;\n }\n });\n tmpWhere = tmpWhere.join('+AND+');\n (tmpWhere === '') ? tmpWhere = '1%3D1' : 0;\n return `https://services2.arcgis.com/qvkbeam7Wirps6zC/ArcGIS/rest/services/council_surveyed_businesses/FeatureServer/0/query?where=${tmpWhere}&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&resultType=none&distance=0.0&units=esriSRUnit_Meter&relationParam=&returnGeodetic=false&outFields=*&returnGeometry=true&featureEncoding=esriDefault&multipatchOption=xyFootprint&maxAllowableOffset=&geometryPrecision=&outSR=&defaultSR=&datumTransformation=&applyVCSProjection=false&returnIdsOnly=false&returnUniqueIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnQueryGeometry=false&returnDistinctValues=false&cacheHint=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&having=&resultOffset=&resultRecordCount=&returnZ=false&returnM=false&returnExceededLimitFeatures=true&quantizationParameters=&sqlFormat=none&f=geojson&token=`;\n \n }\n\n changeVisibility(layers, visibility, _map){\n layers.forEach(layer => {\n _map.map.setLayoutProperty(layer, \"visibility\", visibility);\n });\n }\n\n clearApp(app) {\n const shadow = app.shadowRoot;\n while (shadow.firstChild) {\n shadow.removeChild(shadow.firstChild);\n }\n }\n\n clearPanel(app) {\n\n }\n\n updateBoundaries(ev){\n const app = document.getElementsByTagName('d6-business-map');\n let boundaries = (app[0].getAttribute('data-active-boundaries') === null) ? '' : app[0].getAttribute('data-active-boundaries');\n let tempBoundaries = boundaries.split(',');\n boundaries = [];\n if(ev.target.formCheck.checked){\n boundaries = tempBoundaries;\n boundaries.push(ev.target.formCheck.value);\n }else{\n let multiLayers = ev.target.formCheck.value.split(',');\n tempBoundaries.forEach((boundary) => {\n (multiLayers.includes(boundary)) ? 0 : boundaries.push(boundary);\n });\n }\n boundaries = boundaries.join(',');\n app[0].setAttribute('data-active-boundaries', boundaries);\n }\n\n updateMainData(ev){\n const app = document.getElementsByTagName('d6-business-map');\n let filters = (app[0].getAttribute('data-active-filters') === null) ? '' : app[0].getAttribute('data-active-filters');\n let tempFilters = filters.split(',');\n filters = [];\n if(ev.target.formCheck.checked){\n filters = tempFilters;\n filters.push(ev.target.formCheck.value);\n }else{\n let multiLayers = ev.target.formCheck.value.split(',');\n tempFilters.forEach((filter) => {\n (multiLayers.includes(filter)) ? 0 : filters.push(filter);\n });\n }\n filters = filters.join(',');\n app[0].setAttribute('data-active-filters', filters);\n }\n\n loadApp(app) {\n const shadow = app.shadowRoot;\n const appWrapper = document.createElement('div');\n appWrapper.id = 'app-wrapper';\n const currentLanguage = app.getAttribute('data-language');\n const currenBoundaries = app.getAttribute('data-active-boundaries').split(',');\n let currenFilters = [];\n (app.getAttribute('data-active-filters') != null) ? currenFilters = app.getAttribute('data-active-filters').split(',') : 0;\n switch (app.getAttribute('data-app-state')) {\n case 'start-screen':\n break;\n case 'active-panel':\n let tempData = JSON.parse(this.getAttribute('data-panel-data'));\n console.log(tempData.properties);\n console.log(tempData.properties.photo_url == '');\n this.panelContent.innerHTML = `\n ${(tempData.properties.photo_url == '') ? `` : ``}\n

${tempData.properties.business_name}

\n

${this.languageText[currentLanguage]['panel'][0]} ${tempData.properties.address}\n ${(tempData.properties.profit_or_nonprofit) ? `

${this.languageText[currentLanguage]['panel'][1]} ${tempData.properties.profit_or_nonprofit}

` : ``}\n\n

${this.languageText[currentLanguage]['panel'][2]}

\n
    \n ${(tempData.properties.is_asian_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][3]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_black_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][4]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_indigenous_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][6]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_lgbtq_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][5]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_middle_eastern_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][7]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_minority_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][9]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_veteran_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][8]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_woman_owned) ? `
  • ${this.languageText[currentLanguage]['panel'][10]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n
\n\n

${this.languageText[currentLanguage]['panel'][11]}

\n
    \n ${(tempData.properties.is_ads_comms_marketing) ? `
  • ${this.languageText[currentLanguage]['panel'][22]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_automotive) ? `
  • ${this.languageText[currentLanguage]['panel'][23]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_bar_restaurant) ? `
  • ${this.languageText[currentLanguage]['panel'][24]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_clinic_community_health_ser) ? `
  • ${this.languageText[currentLanguage]['panel'][12]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_construction) ? `
  • ${this.languageText[currentLanguage]['panel'][25]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_dental_service) ? `
  • ${this.languageText[currentLanguage]['panel'][13]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_entertainment) ? `
  • ${this.languageText[currentLanguage]['panel'][26]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_family_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][15]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_human_services) ? `
  • ${this.languageText[currentLanguage]['panel'][27]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_landscape) ? `
  • ${this.languageText[currentLanguage]['panel'][28]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_legal_financial) ? `
  • ${this.languageText[currentLanguage]['panel'][29]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_manufacturing_distribution) ? `
  • ${this.languageText[currentLanguage]['panel'][30]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_mental_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][16]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_other_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][21]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_other) ? `
  • ${this.languageText[currentLanguage]['panel'][34]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_pediatric_service) ? `
  • ${this.languageText[currentLanguage]['panel'][17]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_personal_care_services) ? `
  • ${this.languageText[currentLanguage]['panel'][31]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_place_of_worship) ? `
  • ${this.languageText[currentLanguage]['panel'][32]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_primary_care_service) ? `
  • ${this.languageText[currentLanguage]['panel'][18]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.is_retail) ? `
  • ${this.languageText[currentLanguage]['panel'][33]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_sexual_health_service) ? `
  • ${this.languageText[currentLanguage]['panel'][19]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_specialist_service) ? `
  • ${this.languageText[currentLanguage]['panel'][20]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n ${(tempData.properties.has_emergency_urgent_care_servi) ? `
  • ${this.languageText[currentLanguage]['panel'][14]} ${this.languageText[currentLanguage]['yes'][0]}
  • ` : ``}\n
\n\n

${this.languageText[currentLanguage]['panel'][35]}

\n

\n ${(tempData.properties.is_public_transit_accessible) ? `` : ``}\n ${(tempData.properties.is_ada_accessible) ? `` : ``} \n ${(tempData.properties.has_bike_rack) ? `` : ``} \n ${(tempData.properties.has_parking_lot) ? `` : ``} \n ${(tempData.properties.is_cash_only) ? `` : ``} \n ${(tempData.properties.has_free_wifi) ? `` : ``} \n ${(tempData.properties.has_gender_neutral_bathrooms) ? `` : ``} \n ${(tempData.properties.has_rental_space) ? `` : ``} \n

\n `;\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'active-filters':\n this.panelContent.innerHTML = '';\n const titleFilters = document.createElement('p');\n titleFilters.innerText = this.languageText[currentLanguage]['filters'][0];\n titleFilters.style.backgroundColor = '#745DA8';\n titleFilters.style.color = '#fff';\n titleFilters.className = 'fs-3 fw-bold text-center';\n\n const filterInstructions = document.createElement('p');\n filterInstructions.innerText = this.languageText[currentLanguage]['filters'][34];\n\n const ownershipSection = document.createElement('p');\n ownershipSection.innerText = this.languageText[currentLanguage]['filters'][1];\n ownershipSection.style.fontWeight ='bold';\n\n const ownershipFilterCheckboxes = document.createElement('section');\n\n const asianOwnedCheckbox = document.createElement('cod-form-check');\n asianOwnedCheckbox.setAttribute('data-checked', 'false');\n asianOwnedCheckbox.setAttribute('data-id', 'asian-owned');\n asianOwnedCheckbox.setAttribute('data-name', 'data-filters');\n asianOwnedCheckbox.setAttribute('data-value', 'is_asian_owned');\n (currenFilters.includes('is_asian_owned')) ? asianOwnedCheckbox.setAttribute('data-checked', true) : 0;\n asianOwnedCheckbox.setAttribute('data-type', 'checkbox');\n asianOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][2]);\n asianOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const blackOwnedCheckbox = document.createElement('cod-form-check');\n blackOwnedCheckbox.setAttribute('data-checked', 'false');\n blackOwnedCheckbox.setAttribute('data-id', 'black-owned');\n blackOwnedCheckbox.setAttribute('data-name', 'data-filters');\n blackOwnedCheckbox.setAttribute('data-value', 'is_black_owned');\n (currenFilters.includes('is_black_owned')) ? blackOwnedCheckbox.setAttribute('data-checked', true) : 0;\n blackOwnedCheckbox.setAttribute('data-type', 'checkbox');\n blackOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][3]);\n blackOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const lgbtqOwnedCheckbox = document.createElement('cod-form-check');\n lgbtqOwnedCheckbox.setAttribute('data-checked', 'false');\n lgbtqOwnedCheckbox.setAttribute('data-id', 'lgbtq-owned');\n lgbtqOwnedCheckbox.setAttribute('data-name', 'data-filters');\n lgbtqOwnedCheckbox.setAttribute('data-value', 'is_lgbtq_owned');\n (currenFilters.includes('is_lgbtq_owned')) ? lgbtqOwnedCheckbox.setAttribute('data-checked', true) : 0;\n lgbtqOwnedCheckbox.setAttribute('data-type', 'checkbox');\n lgbtqOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][4]);\n lgbtqOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const indigenousOwnedCheckbox = document.createElement('cod-form-check');\n indigenousOwnedCheckbox.setAttribute('data-checked', 'false');\n indigenousOwnedCheckbox.setAttribute('data-id', 'indigenous-owned');\n indigenousOwnedCheckbox.setAttribute('data-name', 'data-filters');\n indigenousOwnedCheckbox.setAttribute('data-value', 'is_indigenous_owned');\n (currenFilters.includes('is_indigenous_owned')) ? indigenousOwnedCheckbox.setAttribute('data-checked', true) : 0;\n indigenousOwnedCheckbox.setAttribute('data-type', 'checkbox');\n indigenousOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][5]);\n indigenousOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const middleEasternOwnedCheckbox = document.createElement('cod-form-check');\n middleEasternOwnedCheckbox.setAttribute('data-checked', 'false');\n middleEasternOwnedCheckbox.setAttribute('data-id', 'middle-eastern-owned');\n middleEasternOwnedCheckbox.setAttribute('data-name', 'data-filters');\n middleEasternOwnedCheckbox.setAttribute('data-value', 'is_middle_eastern_owned');\n (currenFilters.includes('is_middle_eastern_owned')) ? middleEasternOwnedCheckbox.setAttribute('data-checked', true) : 0;\n middleEasternOwnedCheckbox.setAttribute('data-type', 'checkbox');\n middleEasternOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][6]);\n middleEasternOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const veteranOwnedCheckbox = document.createElement('cod-form-check');\n veteranOwnedCheckbox.setAttribute('data-checked', 'false');\n veteranOwnedCheckbox.setAttribute('data-id', 'veteran-owned');\n veteranOwnedCheckbox.setAttribute('data-name', 'data-filters');\n veteranOwnedCheckbox.setAttribute('data-value', 'is_veteran_owned');\n (currenFilters.includes('is_veteran_owned')) ? veteranOwnedCheckbox.setAttribute('data-checked', true) : 0;\n veteranOwnedCheckbox.setAttribute('data-type', 'checkbox');\n veteranOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][7]);\n veteranOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n }); \n \n const minorityOwnedCheckbox = document.createElement('cod-form-check');\n minorityOwnedCheckbox.setAttribute('data-checked', 'false');\n minorityOwnedCheckbox.setAttribute('data-id', 'minority-owned');\n minorityOwnedCheckbox.setAttribute('data-name', 'data-filters');\n minorityOwnedCheckbox.setAttribute('data-value', 'is_minority_owned');\n (currenFilters.includes('is_minority_owned')) ? minorityOwnedCheckbox.setAttribute('data-checked', true) : 0;\n minorityOwnedCheckbox.setAttribute('data-type', 'checkbox');\n minorityOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][8]);\n minorityOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n }); \n\n const womanOwnedCheckbox = document.createElement('cod-form-check');\n womanOwnedCheckbox.setAttribute('data-checked', 'false');\n womanOwnedCheckbox.setAttribute('data-id', 'minority-owned');\n womanOwnedCheckbox.setAttribute('data-name', 'data-filters');\n womanOwnedCheckbox.setAttribute('data-value', 'is_woman_owned');\n (currenFilters.includes('is_woman_owned')) ? womanOwnedCheckbox.setAttribute('data-checked', true) : 0;\n womanOwnedCheckbox.setAttribute('data-type', 'checkbox');\n womanOwnedCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][9]);\n womanOwnedCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n }); \n\n const servicesSection = document.createElement('p');\n servicesSection.innerText = this.languageText[currentLanguage]['filters'][10];\n servicesSection.style.fontWeight ='bold';\n\n const servicesFilterCheckboxes = document.createElement('section');\n\n // ====================== Disabling Health type filters ====================\n // const communityHealthCheckbox = document.createElement('cod-form-check');\n // communityHealthCheckbox.setAttribute('data-checked', 'false');\n // communityHealthCheckbox.setAttribute('data-id', 'community-health');\n // communityHealthCheckbox.setAttribute('data-name', 'data-filters');\n // communityHealthCheckbox.setAttribute('data-value', 'has_clinic_community_health_ser');\n // (currenFilters.includes('has_clinic_community_health_ser')) ? communityHealthCheckbox.setAttribute('data-checked', true) : 0;\n // communityHealthCheckbox.setAttribute('data-type', 'checkbox');\n // communityHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][11]);\n // communityHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n const dentalCheckbox = document.createElement('cod-form-check');\n dentalCheckbox.setAttribute('data-checked', 'false');\n dentalCheckbox.setAttribute('data-id', 'dental');\n dentalCheckbox.setAttribute('data-name', 'data-filters');\n dentalCheckbox.setAttribute('data-value', 'has_dental_service');\n (currenFilters.includes('has_dental_service')) ? dentalCheckbox.setAttribute('data-checked', true) : 0;\n dentalCheckbox.setAttribute('data-type', 'checkbox');\n dentalCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][12]);\n dentalCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n // const emergencyUrgentCareCheckbox = document.createElement('cod-form-check');\n // emergencyUrgentCareCheckbox.setAttribute('data-checked', 'false');\n // emergencyUrgentCareCheckbox.setAttribute('data-id', 'emergency-urgent-care');\n // emergencyUrgentCareCheckbox.setAttribute('data-name', 'data-filters');\n // emergencyUrgentCareCheckbox.setAttribute('data-value', 'has_emergency_urgent_care_servi');\n // (currenFilters.includes('has_emergency_urgent_care_servi')) ? emergencyUrgentCareCheckbox.setAttribute('data-checked', true) : 0;\n // emergencyUrgentCareCheckbox.setAttribute('data-type', 'checkbox');\n // emergencyUrgentCareCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][13]);\n // emergencyUrgentCareCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n // const familyHealthCheckbox = document.createElement('cod-form-check');\n // familyHealthCheckbox.setAttribute('data-checked', 'false');\n // familyHealthCheckbox.setAttribute('data-id', 'family-health');\n // familyHealthCheckbox.setAttribute('data-name', 'data-filters');\n // familyHealthCheckbox.setAttribute('data-value', 'has_family_health_service');\n // (currenFilters.includes('has_family_health_service')) ? familyHealthCheckbox.setAttribute('data-checked', true) : 0;\n // familyHealthCheckbox.setAttribute('data-type', 'checkbox');\n // familyHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][14]);\n // familyHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n \n // const mentalHealthCheckbox = document.createElement('cod-form-check');\n // mentalHealthCheckbox.setAttribute('data-checked', 'false');\n // mentalHealthCheckbox.setAttribute('data-id', 'mental-health');\n // mentalHealthCheckbox.setAttribute('data-name', 'data-filters');\n // mentalHealthCheckbox.setAttribute('data-value', 'has_mental_health_service');\n // (currenFilters.includes('has_mental_health_service')) ? mentalHealthCheckbox.setAttribute('data-checked', true) : 0;\n // mentalHealthCheckbox.setAttribute('data-type', 'checkbox');\n // mentalHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][15]);\n // mentalHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n\n // const pediatricCheckbox = document.createElement('cod-form-check');\n // pediatricCheckbox.setAttribute('data-checked', 'false');\n // pediatricCheckbox.setAttribute('data-id', 'pediatric');\n // pediatricCheckbox.setAttribute('data-name', 'data-filters');\n // pediatricCheckbox.setAttribute('data-value', 'has_pediatric_service');\n // (currenFilters.includes('has_pediatric_service')) ? pediatricCheckbox.setAttribute('data-checked', true) : 0;\n // pediatricCheckbox.setAttribute('data-type', 'checkbox');\n // pediatricCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][16]);\n // pediatricCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n\n // const primaryCareCheckbox = document.createElement('cod-form-check');\n // primaryCareCheckbox.setAttribute('data-checked', 'false');\n // primaryCareCheckbox.setAttribute('data-id', 'primary-care');\n // primaryCareCheckbox.setAttribute('data-name', 'data-filters');\n // primaryCareCheckbox.setAttribute('data-value', 'has_primary_care_service');\n // (currenFilters.includes('has_primary_care_service')) ? primaryCareCheckbox.setAttribute('data-checked', true) : 0;\n // primaryCareCheckbox.setAttribute('data-type', 'checkbox');\n // primaryCareCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][17]);\n // primaryCareCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n \n // const sexualHealthCheckbox = document.createElement('cod-form-check');\n // sexualHealthCheckbox.setAttribute('data-checked', 'false');\n // sexualHealthCheckbox.setAttribute('data-id', 'sexual-health');\n // sexualHealthCheckbox.setAttribute('data-name', 'data-filters');\n // sexualHealthCheckbox.setAttribute('data-value', 'has_sexual_health_service');\n // (currenFilters.includes('has_sexual_health_service')) ? sexualHealthCheckbox.setAttribute('data-checked', true) : 0;\n // sexualHealthCheckbox.setAttribute('data-type', 'checkbox');\n // sexualHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][18]);\n // sexualHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // }); \n\n // const specialistCheckbox = document.createElement('cod-form-check');\n // specialistCheckbox.setAttribute('data-checked', 'false');\n // specialistCheckbox.setAttribute('data-id', 'specialist');\n // specialistCheckbox.setAttribute('data-name', 'data-filters');\n // specialistCheckbox.setAttribute('data-value', 'has_specialist_service');\n // (currenFilters.includes('has_specialist_service')) ? specialistCheckbox.setAttribute('data-checked', true) : 0;\n // specialistCheckbox.setAttribute('data-type', 'checkbox');\n // specialistCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][19]);\n // specialistCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n // const otherHealthCheckbox = document.createElement('cod-form-check');\n // otherHealthCheckbox.setAttribute('data-checked', 'false');\n // otherHealthCheckbox.setAttribute('data-id', 'other-health');\n // otherHealthCheckbox.setAttribute('data-name', 'data-filters');\n // otherHealthCheckbox.setAttribute('data-value', 'has_other_health_service');\n // (currenFilters.includes('has_other_health_service')) ? otherHealthCheckbox.setAttribute('data-checked', true) : 0;\n // otherHealthCheckbox.setAttribute('data-type', 'checkbox');\n // otherHealthCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][20]);\n // otherHealthCheckbox.addEventListener('change', (ev) => {\n \n // this.updateMainData(ev);\n // });\n\n const marketingCheckbox = document.createElement('cod-form-check');\n marketingCheckbox.setAttribute('data-checked', 'false');\n marketingCheckbox.setAttribute('data-id', 'marketing');\n marketingCheckbox.setAttribute('data-name', 'data-filters');\n marketingCheckbox.setAttribute('data-value', 'is_ads_comms_marketing');\n (currenFilters.includes('is_ads_comms_marketing')) ? marketingCheckbox.setAttribute('data-checked', true) : 0;\n marketingCheckbox.setAttribute('data-type', 'checkbox');\n marketingCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][21]);\n marketingCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const automotiveCheckbox = document.createElement('cod-form-check');\n automotiveCheckbox.setAttribute('data-checked', 'false');\n automotiveCheckbox.setAttribute('data-id', 'automotive');\n automotiveCheckbox.setAttribute('data-name', 'data-filters');\n automotiveCheckbox.setAttribute('data-value', 'is_automotive');\n (currenFilters.includes('is_automotive')) ? automotiveCheckbox.setAttribute('data-checked', true) : 0;\n automotiveCheckbox.setAttribute('data-type', 'checkbox');\n automotiveCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][22]);\n automotiveCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const barRestaurantCheckbox = document.createElement('cod-form-check');\n barRestaurantCheckbox.setAttribute('data-checked', 'false');\n barRestaurantCheckbox.setAttribute('data-id', 'bar-restaurant');\n barRestaurantCheckbox.setAttribute('data-name', 'data-filters');\n barRestaurantCheckbox.setAttribute('data-value', 'is_bar_restaurant');\n (currenFilters.includes('is_bar_restaurant')) ? barRestaurantCheckbox.setAttribute('data-checked', true) : 0;\n barRestaurantCheckbox.setAttribute('data-type', 'checkbox');\n barRestaurantCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][23]);\n barRestaurantCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const constructionCheckbox = document.createElement('cod-form-check');\n constructionCheckbox.setAttribute('data-checked', 'false');\n constructionCheckbox.setAttribute('data-id', 'construction');\n constructionCheckbox.setAttribute('data-name', 'data-filters');\n constructionCheckbox.setAttribute('data-value', 'is_construction');\n (currenFilters.includes('is_construction')) ? constructionCheckbox.setAttribute('data-checked', true) : 0;\n constructionCheckbox.setAttribute('data-type', 'checkbox');\n constructionCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][24]);\n constructionCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const entertainmentCheckbox = document.createElement('cod-form-check');\n entertainmentCheckbox.setAttribute('data-checked', 'false');\n entertainmentCheckbox.setAttribute('data-id', 'entertainment');\n entertainmentCheckbox.setAttribute('data-name', 'data-filters');\n entertainmentCheckbox.setAttribute('data-value', 'is_entertainment');\n (currenFilters.includes('is_entertainment')) ? entertainmentCheckbox.setAttribute('data-checked', true) : 0;\n entertainmentCheckbox.setAttribute('data-type', 'checkbox');\n entertainmentCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][25]);\n entertainmentCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const humanServicesCheckbox = document.createElement('cod-form-check');\n humanServicesCheckbox.setAttribute('data-checked', 'false');\n humanServicesCheckbox.setAttribute('data-id', 'human-services');\n humanServicesCheckbox.setAttribute('data-name', 'data-filters');\n humanServicesCheckbox.setAttribute('data-value', 'is_human_services');\n (currenFilters.includes('is_human_services')) ? humanServicesCheckbox.setAttribute('data-checked', true) : 0;\n humanServicesCheckbox.setAttribute('data-type', 'checkbox');\n humanServicesCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][26]);\n humanServicesCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const landscapeCheckbox = document.createElement('cod-form-check');\n landscapeCheckbox.setAttribute('data-checked', 'false');\n landscapeCheckbox.setAttribute('data-id', 'landscape');\n landscapeCheckbox.setAttribute('data-name', 'data-filters');\n landscapeCheckbox.setAttribute('data-value', 'is_landscape');\n (currenFilters.includes('is_landscape')) ? landscapeCheckbox.setAttribute('data-checked', true) : 0;\n landscapeCheckbox.setAttribute('data-type', 'checkbox');\n landscapeCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][27]);\n landscapeCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const legalFinancialCheckbox = document.createElement('cod-form-check');\n legalFinancialCheckbox.setAttribute('data-checked', 'false');\n legalFinancialCheckbox.setAttribute('data-id', 'legal-financial');\n legalFinancialCheckbox.setAttribute('data-name', 'data-filters');\n legalFinancialCheckbox.setAttribute('data-value', 'is_legal_financial');\n (currenFilters.includes('is_legal_financial')) ? legalFinancialCheckbox.setAttribute('data-checked', true) : 0;\n legalFinancialCheckbox.setAttribute('data-type', 'checkbox');\n legalFinancialCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][28]);\n legalFinancialCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const manufacturingCheckbox = document.createElement('cod-form-check');\n manufacturingCheckbox.setAttribute('data-checked', 'false');\n manufacturingCheckbox.setAttribute('data-id', 'manufacturing-distribution');\n manufacturingCheckbox.setAttribute('data-name', 'data-filters');\n manufacturingCheckbox.setAttribute('data-value', 'is_manufacturing_distribution');\n (currenFilters.includes('is_manufacturing_distribution')) ? manufacturingCheckbox.setAttribute('data-checked', true) : 0;\n manufacturingCheckbox.setAttribute('data-type', 'checkbox');\n manufacturingCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][29]);\n manufacturingCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const personalCareCheckbox = document.createElement('cod-form-check');\n personalCareCheckbox.setAttribute('data-checked', 'false');\n personalCareCheckbox.setAttribute('data-id', 'personal-care');\n personalCareCheckbox.setAttribute('data-name', 'data-filters');\n personalCareCheckbox.setAttribute('data-value', 'is_personal_care_services');\n (currenFilters.includes('is_personal_care_services')) ? personalCareCheckbox.setAttribute('data-checked', true) : 0;\n personalCareCheckbox.setAttribute('data-type', 'checkbox');\n personalCareCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][30]);\n personalCareCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const worshipCheckbox = document.createElement('cod-form-check');\n worshipCheckbox.setAttribute('data-checked', 'false');\n worshipCheckbox.setAttribute('data-id', 'worship');\n worshipCheckbox.setAttribute('data-name', 'data-filters');\n worshipCheckbox.setAttribute('data-value', 'is_place_of_worship');\n (currenFilters.includes('is_place_of_worship')) ? worshipCheckbox.setAttribute('data-checked', true) : 0;\n worshipCheckbox.setAttribute('data-type', 'checkbox');\n worshipCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][31]);\n worshipCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const retailCheckbox = document.createElement('cod-form-check');\n retailCheckbox.setAttribute('data-checked', 'false');\n retailCheckbox.setAttribute('data-id', 'retail');\n retailCheckbox.setAttribute('data-name', 'data-filters');\n retailCheckbox.setAttribute('data-value', 'is_retail');\n (currenFilters.includes('is_retail')) ? retailCheckbox.setAttribute('data-checked', true) : 0;\n retailCheckbox.setAttribute('data-type', 'checkbox');\n retailCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][32]);\n retailCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const otherCheckbox = document.createElement('cod-form-check');\n otherCheckbox.setAttribute('data-checked', 'false');\n otherCheckbox.setAttribute('data-id', 'other-service');\n otherCheckbox.setAttribute('data-name', 'data-filters');\n otherCheckbox.setAttribute('data-value', 'is_other');\n (currenFilters.includes('is_other')) ? otherCheckbox.setAttribute('data-checked', true) : 0;\n otherCheckbox.setAttribute('data-type', 'checkbox');\n otherCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][33]);\n otherCheckbox.addEventListener('change', (ev) => {\n \n this.updateMainData(ev);\n });\n\n const amenitiesSection = document.createElement('p');\n amenitiesSection.innerText = this.languageText[currentLanguage]['filters'][35];\n amenitiesSection.style.fontWeight ='bold';\n\n const amenitiesSectionCheckboxes = document.createElement('section');\n\n const publicTransitCheckbox = document.createElement('cod-form-check');\n publicTransitCheckbox.setAttribute('data-checked', 'false');\n publicTransitCheckbox.setAttribute('data-id', 'public-transit');\n publicTransitCheckbox.setAttribute('data-name', 'data-filters');\n publicTransitCheckbox.setAttribute('data-value', 'is_public_transit_accessible');\n (currenFilters.includes('is_public_transit_accessible')) ? publicTransitCheckbox.setAttribute('data-checked', true) : 0;\n publicTransitCheckbox.setAttribute('data-type', 'checkbox');\n publicTransitCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][36]);\n publicTransitCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const adaCheckbox = document.createElement('cod-form-check');\n adaCheckbox.setAttribute('data-checked', 'false');\n adaCheckbox.setAttribute('data-id', 'ada-accessible');\n adaCheckbox.setAttribute('data-name', 'data-filters');\n adaCheckbox.setAttribute('data-value', 'is_ada_accessible');\n (currenFilters.includes('is_ada_accessible')) ? adaCheckbox.setAttribute('data-checked', true) : 0;\n adaCheckbox.setAttribute('data-type', 'checkbox');\n adaCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][37]);\n adaCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const bikeRackCheckbox = document.createElement('cod-form-check');\n bikeRackCheckbox.setAttribute('data-checked', 'false');\n bikeRackCheckbox.setAttribute('data-id', 'bike-rack');\n bikeRackCheckbox.setAttribute('data-name', 'data-filters');\n bikeRackCheckbox.setAttribute('data-value', 'has_bike_rack');\n (currenFilters.includes('has_bike_rack')) ? bikeRackCheckbox.setAttribute('data-checked', true) : 0;\n bikeRackCheckbox.setAttribute('data-type', 'checkbox');\n bikeRackCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][38]);\n bikeRackCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const parkingCheckbox = document.createElement('cod-form-check');\n parkingCheckbox.setAttribute('data-checked', 'false');\n parkingCheckbox.setAttribute('data-id', 'parking');\n parkingCheckbox.setAttribute('data-name', 'data-filters');\n parkingCheckbox.setAttribute('data-value', 'has_parking_lot');\n (currenFilters.includes('has_parking_lot')) ? parkingCheckbox.setAttribute('data-checked', true) : 0;\n parkingCheckbox.setAttribute('data-type', 'checkbox');\n parkingCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][39]);\n parkingCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const cashOnlyCheckbox = document.createElement('cod-form-check');\n cashOnlyCheckbox.setAttribute('data-checked', 'false');\n cashOnlyCheckbox.setAttribute('data-id', 'cash-only');\n cashOnlyCheckbox.setAttribute('data-name', 'data-filters');\n cashOnlyCheckbox.setAttribute('data-value', 'is_cash_only');\n (currenFilters.includes('is_cash_only')) ? cashOnlyCheckbox.setAttribute('data-checked', true) : 0;\n cashOnlyCheckbox.setAttribute('data-type', 'checkbox');\n cashOnlyCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][40]);\n cashOnlyCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const wifiCheckbox = document.createElement('cod-form-check');\n wifiCheckbox.setAttribute('data-checked', 'false');\n wifiCheckbox.setAttribute('data-id', 'wifi');\n wifiCheckbox.setAttribute('data-name', 'data-filters');\n wifiCheckbox.setAttribute('data-value', 'has_free_wifi');\n (currenFilters.includes('has_free_wifi')) ? wifiCheckbox.setAttribute('data-checked', true) : 0;\n wifiCheckbox.setAttribute('data-type', 'checkbox');\n wifiCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][41]);\n wifiCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n \n const genderNeutralBathroomsCheckbox = document.createElement('cod-form-check');\n genderNeutralBathroomsCheckbox.setAttribute('data-checked', 'false');\n genderNeutralBathroomsCheckbox.setAttribute('data-id', 'gender-neutral-bathrooms');\n genderNeutralBathroomsCheckbox.setAttribute('data-name', 'data-filters');\n genderNeutralBathroomsCheckbox.setAttribute('data-value', 'has_gender_neutral_bathrooms');\n (currenFilters.includes('has_gender_neutral_bathrooms')) ? genderNeutralBathroomsCheckbox.setAttribute('data-checked', true) : 0;\n genderNeutralBathroomsCheckbox.setAttribute('data-type', 'checkbox');\n genderNeutralBathroomsCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][42]);\n genderNeutralBathroomsCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n const rentalSpaceCheckbox = document.createElement('cod-form-check');\n rentalSpaceCheckbox.setAttribute('data-checked', 'false');\n rentalSpaceCheckbox.setAttribute('data-id', 'rental-space');\n rentalSpaceCheckbox.setAttribute('data-name', 'data-filters');\n rentalSpaceCheckbox.setAttribute('data-value', 'has_rental_space');\n (currenFilters.includes('has_rental_space')) ? rentalSpaceCheckbox.setAttribute('data-checked', true) : 0;\n rentalSpaceCheckbox.setAttribute('data-type', 'checkbox');\n rentalSpaceCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['filters'][43]);\n rentalSpaceCheckbox.addEventListener('change', (ev) => {\n this.updateMainData(ev);\n });\n\n this.panelContent.appendChild(titleFilters);\n this.panelContent.appendChild(filterInstructions);\n this.panelContent.appendChild(ownershipSection);\n ownershipFilterCheckboxes.appendChild(asianOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(blackOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(lgbtqOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(indigenousOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(middleEasternOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(veteranOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(minorityOwnedCheckbox);\n ownershipFilterCheckboxes.appendChild(womanOwnedCheckbox);\n this.panelContent.appendChild(ownershipFilterCheckboxes);\n this.panelContent.appendChild(servicesSection);\n // ====================== Disabling Health type filters ====================\n // servicesFilterCheckboxes.appendChild(communityHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(emergencyUrgentCareCheckbox);\n // servicesFilterCheckboxes.appendChild(familyHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(mentalHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(pediatricCheckbox);\n // servicesFilterCheckboxes.appendChild(primaryCareCheckbox);\n // servicesFilterCheckboxes.appendChild(sexualHealthCheckbox);\n // servicesFilterCheckboxes.appendChild(specialistCheckbox);\n // servicesFilterCheckboxes.appendChild(otherHealthCheckbox);\n servicesFilterCheckboxes.appendChild(marketingCheckbox);\n servicesFilterCheckboxes.appendChild(automotiveCheckbox);\n servicesFilterCheckboxes.appendChild(barRestaurantCheckbox);\n servicesFilterCheckboxes.appendChild(constructionCheckbox);\n servicesFilterCheckboxes.appendChild(entertainmentCheckbox);\n servicesFilterCheckboxes.appendChild(dentalCheckbox);\n servicesFilterCheckboxes.appendChild(humanServicesCheckbox);\n servicesFilterCheckboxes.appendChild(landscapeCheckbox);\n servicesFilterCheckboxes.appendChild(legalFinancialCheckbox);\n servicesFilterCheckboxes.appendChild(manufacturingCheckbox);\n servicesFilterCheckboxes.appendChild(worshipCheckbox);\n servicesFilterCheckboxes.appendChild(personalCareCheckbox);\n servicesFilterCheckboxes.appendChild(retailCheckbox);\n servicesFilterCheckboxes.appendChild(otherCheckbox);\n this.panelContent.appendChild(servicesFilterCheckboxes);\n this.panelContent.appendChild(amenitiesSection);\n amenitiesSectionCheckboxes.appendChild(publicTransitCheckbox);\n amenitiesSectionCheckboxes.appendChild(adaCheckbox);\n amenitiesSectionCheckboxes.appendChild(bikeRackCheckbox);\n amenitiesSectionCheckboxes.appendChild(parkingCheckbox);\n amenitiesSectionCheckboxes.appendChild(cashOnlyCheckbox);\n amenitiesSectionCheckboxes.appendChild(wifiCheckbox);\n amenitiesSectionCheckboxes.appendChild(genderNeutralBathroomsCheckbox);\n amenitiesSectionCheckboxes.appendChild(rentalSpaceCheckbox);\n this.panelContent.appendChild(amenitiesSectionCheckboxes);\n\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'active-layers':\n this.panelContent.innerHTML = '';\n const title = document.createElement('p');\n title.innerText = this.languageText[currentLanguage]['boundaries'][0];\n title.style.backgroundColor = '#745DA8';\n title.style.color = '#fff';\n title.className = 'fs-3 fw-bold text-center';\n\n const layerCheckboxes = document.createElement('section');\n\n // const councilCheckbox = document.createElement('cod-form-check');\n // councilCheckbox.setAttribute('data-checked', 'true');\n // councilCheckbox.setAttribute('data-id', 'council-district');\n // councilCheckbox.setAttribute('data-name', 'map-layer');\n // councilCheckbox.setAttribute('data-value', 'coucil-district-6-lines');\n // councilCheckbox.setAttribute('data-type', 'checkbox');\n // councilCheckbox.setAttribute('data-label', 'Council District');\n // councilCheckbox.addEventListener('change', (ev) => {\n // \n // this.updateBoundaries(ev);\n // });\n\n const neighborhoodCheckbox = document.createElement('cod-form-check');\n neighborhoodCheckbox.setAttribute('data-id', 'neighborhoods');\n neighborhoodCheckbox.setAttribute('data-name', 'map-layer');\n console.log(currenBoundaries.includes('neighborhoods-lines'));\n (currenBoundaries.includes('neighborhoods-lines')) ? neighborhoodCheckbox.setAttribute('data-checked', true) : 0;\n neighborhoodCheckbox.setAttribute('data-value', 'neighborhoods-lines,neighborhoods-fill,neighborhood-labels');\n neighborhoodCheckbox.setAttribute('data-type', 'checkbox');\n neighborhoodCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][1]);neighborhoodCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n const policePrecinctsCheckbox = document.createElement('cod-form-check');\n policePrecinctsCheckbox.setAttribute('data-id', 'police-precincts');\n policePrecinctsCheckbox.setAttribute('data-name', 'map-layer');\n console.log(currenBoundaries.includes('police-precincts-lines'));\n (currenBoundaries.includes('police-precincts-lines')) ? policePrecinctsCheckbox.setAttribute('data-checked', true) : 0;\n policePrecinctsCheckbox.setAttribute('data-value', 'police-precincts-lines,police-precincts-fill,police-precincts-labels');\n policePrecinctsCheckbox.setAttribute('data-type', 'checkbox');\n policePrecinctsCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][2]);policePrecinctsCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n const zipCodesCheckbox = document.createElement('cod-form-check');\n zipCodesCheckbox.setAttribute('data-id', 'zip-codes')\n zipCodesCheckbox.setAttribute('data-name', 'map-layer');\n (currenBoundaries.includes('zip-codes-lines')) ? zipCodesCheckbox.setAttribute('data-checked', true) : 0;\n zipCodesCheckbox.setAttribute('data-value', 'zip-codes-lines,zip-codes-fill,zip-codes-labels');\n zipCodesCheckbox.setAttribute('data-type', 'checkbox');\n zipCodesCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][3]);\n zipCodesCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n const cityFacilitiesCheckbox = document.createElement('cod-form-check');\n cityFacilitiesCheckbox.setAttribute('data-id', 'city-facilites')\n cityFacilitiesCheckbox.setAttribute('data-name', 'map-layer');\n (currenBoundaries.includes('city-facilities')) ? cityFacilitiesCheckbox.setAttribute('data-checked', true) : 0;\n cityFacilitiesCheckbox.setAttribute('data-value', 'city-facilities');\n cityFacilitiesCheckbox.setAttribute('data-type', 'checkbox');\n cityFacilitiesCheckbox.setAttribute('data-label', this.languageText[currentLanguage]['boundaries'][4]);\n cityFacilitiesCheckbox.addEventListener('change', (ev) => {\n this.updateBoundaries(ev);\n });\n\n this.panelContent.appendChild(title);\n // layerCheckboxes.appendChild(councilCheckbox);\n layerCheckboxes.appendChild(neighborhoodCheckbox);\n layerCheckboxes.appendChild(policePrecinctsCheckbox);\n layerCheckboxes.appendChild(zipCodesCheckbox);\n layerCheckboxes.appendChild(cityFacilitiesCheckbox);\n this.panelContent.appendChild(layerCheckboxes);\n\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'active-info':\n this.panelContent.innerHTML = '';\n const infoTitle = document.createElement('p');\n infoTitle.innerText = this.languageText[currentLanguage]['info'][0];\n infoTitle.style.backgroundColor = '#745DA8';\n infoTitle.style.color = '#fff';\n infoTitle.className = 'fs-3 fw-bold text-center';\n\n const lngLabel = document.createElement('label');\n lngLabel.className = 'fw-bold';\n lngLabel.htmlFor = 'language-selector';\n lngLabel.innerText = this.languageText[currentLanguage]['info'][9];\n const lngSelector = document.createElement('cod-form-select');\n lngSelector.setAttribute('data-id', 'language-selector');\n lngSelector.setAttribute('data-aria-label', this.languageText[currentLanguage]['info'][9]);\n lngSelector.innerHTML = `\n \n \n \n \n \n `;\n const d6 = this;\n lngSelector.addEventListener('change', (ev) => {\n const shadow = ev.target.shadowRoot;\n d6.setAttribute('data-language', shadow.childNodes[1].value);\n });\n\n const notes = document.createElement('p');\n notes.innerHTML = `\n
\n ${this.languageText[currentLanguage]['info'][10]}\n ${this.languageText[currentLanguage]['info'][11]} ${this.languageText[currentLanguage]['info'][12]}\n `;\n\n const iconLabels = document.createElement('article');\n iconLabels.innerHTML = ` \n
\n

${this.languageText[currentLanguage]['info'][1]}

\n

${this.languageText[currentLanguage]['info'][2]}

\n

${this.languageText[currentLanguage]['info'][3]}

\n

${this.languageText[currentLanguage]['info'][4]}

\n

${this.languageText[currentLanguage]['info'][5]}

\n

${this.languageText[currentLanguage]['info'][6]}

\n

${this.languageText[currentLanguage]['info'][7]}

\n

${this.languageText[currentLanguage]['info'][8]}

\n `;\n\n this.panelContent.appendChild(infoTitle);\n this.panelContent.appendChild(lngLabel);\n this.panelContent.appendChild(lngSelector);\n this.panelContent.appendChild(notes);\n this.panelContent.appendChild(iconLabels);\n this.panel.setAttribute('data-show', 'true');\n break;\n\n case 'error':\n display.setAttribute('data-display-type', 'error');\n appWrapper.appendChild(display);\n break;\n\n case 'print':\n display.setAttribute('data-display-type', 'print');\n appWrapper.appendChild(display);\n break;\n\n default:\n break;\n }\n if (shadow.firstChild == null) {\n shadow.appendChild(appWrapper);\n }\n }\n}\n","export default \"#app-wrapper{\\n position: relative;\\n display: flex;\\n -ms-flex-align: stretch;\\n height: 800px;\\n}\\n\\ncod-map{\\n flex: 1;\\n}\\n\\n#d6-map-nav{\\n position: absolute;\\n display: flex;\\n flex-direction: column;\\n top: 1em;\\n left: 1em;\\n z-index: 10;\\n}\\n\\n.offcanvas-title img{\\n width: 6em;\\n position: relative;\\n left: 8em;\\n}\\n\\n#d6-start-screen{\\n z-index: 11;\\n}\";","import D6BusinessMap from './components/D6BusinessMap';\ncustomElements.define('d6-business-map', D6BusinessMap);"],"names":["Geocoder","HTMLElement","observedAttributes","constructor","super","this","form","parcelStatus","user","styles","document","createElement","textContent","shadow","attachShadow","mode","appendChild","geocoderWraper","id","label","style","fontFamily","fontWeight","input","list","icon","addEventListener","ev","submit","className","app","getElementsByTagName","innerText","getAttribute","error","setAttribute","type","placeholder","inputChange","supplementGeocoder","address","geocoder","tempAddr","split","newTempAddr","size","length","forEach","item","index","url","concat","fetch","then","resp","json","data","candidates","sugg","attributes","parcel_id","value","onclick","selectSuggestion","childNodes","location","x","y","city","features","parcel","checkParcelValid","needGeocode","clearSuggestions","JSON","stringify","selection","target","tagName","parentNode","key","undefined","firstChild","removeChild","cleanAddress","params","geometry","request","Request","access_token","encodeURIComponent","method","body","headers","Headers","cache","res","test","preventDefault","NavigationTools","navToolsStyle","loadNavTools","clearDisplay","display","shadowRoot","navTools","appStatus","appMode","initialSets","initalMapStatus","navToolsWrapper","clearResultsBtn","propertyDataBtn","storedData","parse","activeData","govDataBtn","zoneDataBtn","nearDataBtn","printBtn","customElements","define","Display","innerHTML","attributeChangedCallback","name","oldValue","newValue","loadDisplay","formatDate","tempDate","Date","getMonth","getDate","getFullYear","printInfo","divContents","buildDataSection","a","window","open","write","children","close","print","displayWrapper","console","log","panel","panelHeader","panelBody","properties","business_name","business_phone_number","business_phone_website","welcomeStyle","loader","parcelData","resultsStyle","resultsContainer","dataSetResults","addressBox","results","errorContainer","errorBox","printParcelData","printResultsContainer","printDataSetResults","printAddressBox","printResults","D6BusinessMap","mainData","layers","languageText","appStyles","appWrapper","nav","filterBtn","LayerBtn","infoBtn","panelLogo","width","position","left","src","logo","viewHeight","innerHeight","panelContent","height","overflowY","startScreen","createLabelLayers","tempMainData","map","sources","layer","includes","source","tmpLabelLayer","polygon","tmpCenter","centroid","nhood_name","push","zipcode","newFilters","buildQuery","getSource","setData","catch","err","oldBoundaries","newBoundaries","boundariesDiff","arrayDifference","changeVisibility","loadApp","arr1","arr2","difference","i","indexOf","filters","tmpWhere","filter","join","visibility","_map","setLayoutProperty","clearApp","clearPanel","updateBoundaries","boundaries","tempBoundaries","formCheck","checked","multiLayers","boundary","updateMainData","tempFilters","currentLanguage","currenBoundaries","currenFilters","tempData","photo_url","profit_or_nonprofit","is_asian_owned","is_black_owned","is_indigenous_owned","is_lgbtq_owned","is_middle_eastern_owned","is_minority_owned","is_veteran_owned","is_woman_owned","is_ads_comms_marketing","is_automotive","is_bar_restaurant","has_clinic_community_health_ser","is_construction","has_dental_service","is_entertainment","has_family_health_service","is_human_services","is_landscape","is_legal_financial","is_manufacturing_distribution","has_mental_health_service","has_other_health_service","is_other","has_pediatric_service","is_personal_care_services","is_place_of_worship","has_primary_care_service","is_retail","has_sexual_health_service","has_specialist_service","has_emergency_urgent_care_servi","is_public_transit_accessible","is_ada_accessible","has_bike_rack","has_parking_lot","is_cash_only","has_free_wifi","has_gender_neutral_bathrooms","has_rental_space","titleFilters","backgroundColor","color","filterInstructions","ownershipSection","ownershipFilterCheckboxes","asianOwnedCheckbox","blackOwnedCheckbox","lgbtqOwnedCheckbox","indigenousOwnedCheckbox","middleEasternOwnedCheckbox","veteranOwnedCheckbox","minorityOwnedCheckbox","womanOwnedCheckbox","servicesSection","servicesFilterCheckboxes","dentalCheckbox","marketingCheckbox","automotiveCheckbox","barRestaurantCheckbox","constructionCheckbox","entertainmentCheckbox","humanServicesCheckbox","landscapeCheckbox","legalFinancialCheckbox","manufacturingCheckbox","personalCareCheckbox","worshipCheckbox","retailCheckbox","otherCheckbox","amenitiesSection","amenitiesSectionCheckboxes","publicTransitCheckbox","adaCheckbox","bikeRackCheckbox","parkingCheckbox","cashOnlyCheckbox","wifiCheckbox","genderNeutralBathroomsCheckbox","rentalSpaceCheckbox","title","layerCheckboxes","neighborhoodCheckbox","policePrecinctsCheckbox","zipCodesCheckbox","cityFacilitiesCheckbox","infoTitle","lngLabel","htmlFor","lngSelector","d6","notes","iconLabels"],"sourceRoot":""} \ No newline at end of file diff --git a/build/assets/js/runtime.js b/build/assets/js/runtime.js index d90bb5a..33c2018 100644 --- a/build/assets/js/runtime.js +++ b/build/assets/js/runtime.js @@ -1,2 +1,2 @@ -!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r=(new Error).stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="3dc341b1-eb01-4e20-a5ad-57c6dfed0e9f",e._sentryDebugIdIdentifier="sentry-dbid-3dc341b1-eb01-4e20-a5ad-57c6dfed0e9f")}catch(e){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"375dc456825cc0d59b0c1ade0547fcdfb431c5fc"},(()=>{"use strict";var e,r={},n={};function d(e){var o=n[e];if(void 0!==o)return o.exports;var f=n[e]={exports:{}};return r[e](f,f.exports,d),f.exports}d.m=r,e=[],d.O=(r,n,o,f)=>{if(!n){var t=1/0;for(l=0;l=f)&&Object.keys(d.O).every((e=>d.O[e](n[s])))?n.splice(s--,1):(i=!1,f0&&e[l-1][2]>f;l--)e[l]=e[l-1];e[l]=[n,o,f]},d.d=(e,r)=>{for(var n in r)d.o(r,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},d.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),d.p="",(()=>{var e={688:0};d.O.j=r=>0===e[r];var r=(r,n)=>{var o,f,t=n[0],i=n[1],s=n[2],a=0;if(t.some((r=>0!==e[r]))){for(o in i)d.o(i,o)&&(d.m[o]=i[o]);if(s)var l=s(d)}for(r&&r(n);a{"use strict";var e,r={},n={};function d(e){var o=n[e];if(void 0!==o)return o.exports;var f=n[e]={exports:{}};return r[e](f,f.exports,d),f.exports}d.m=r,e=[],d.O=(r,n,o,f)=>{if(!n){var t=1/0;for(l=0;l=f)&&Object.keys(d.O).every((e=>d.O[e](n[i])))?n.splice(i--,1):(a=!1,f0&&e[l-1][2]>f;l--)e[l]=e[l-1];e[l]=[n,o,f]},d.d=(e,r)=>{for(var n in r)d.o(r,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},d.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),d.p="",(()=>{var e={688:0};d.O.j=r=>0===e[r];var r=(r,n)=>{var o,f,t=n[0],a=n[1],i=n[2],s=0;if(t.some((r=>0!==e[r]))){for(o in a)d.o(a,o)&&(d.m[o]=a[o]);if(i)var l=i(d)}for(r&&r(n);s{n.d(r,{c:()=>l});function t(e,r,n){void 0===n&&(n={});var t={type:"Feature"};return(0===n.id||n.id)&&(t.id=n.id),n.bbox&&(t.bbox=n.bbox),t.properties=r||{},t.geometry=e,t}function o(e,r,n){if(void 0===n&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!i(e[0])||!i(e[1]))throw new Error("coordinates must contain numbers");return t({type:"Point",coordinates:e},r,n)}function i(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function a(e,r,n){if(null!==e)for(var t,o,i,l,s,d,f,u,c=0,g=0,y=e.type,b="FeatureCollection"===y,w="Feature"===y,h=b?e.features.length:1,p=0;p{n.d(r,{c:()=>l});function t(e,r,n){void 0===n&&(n={});var t={type:"Feature"};return(0===n.id||n.id)&&(t.id=n.id),n.bbox&&(t.bbox=n.bbox),t.properties=r||{},t.geometry=e,t}function o(e,r,n){if(void 0===n&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!i(e[0])||!i(e[1]))throw new Error("coordinates must contain numbers");return t({type:"Point",coordinates:e},r,n)}function i(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}function a(e,r,n){if(null!==e)for(var t,o,i,l,s,d,f,u,c=0,g=0,y=e.type,b="FeatureCollection"===y,w="Feature"===y,h=b?e.features.length:1,p=0;pTeam GSR's D6 Business Directory

Please turn on javascript to use this feature. Thanks!

\ No newline at end of file +Team GSR's D6 Business Directory

Please turn on javascript to use this feature. Thanks!

\ No newline at end of file diff --git a/public/index.html b/public/index.html index 0c63544..a6f7155 100644 --- a/public/index.html +++ b/public/index.html @@ -12,10 +12,10 @@

Please turn on javascript to use this feature. Thanks!

- - - - + + + + diff --git a/src/components/D6BusinessMap.js b/src/components/D6BusinessMap.js index afd847d..f7c1a1e 100644 --- a/src/components/D6BusinessMap.js +++ b/src/components/D6BusinessMap.js @@ -532,7 +532,9 @@ export default class D6BusinessMap extends HTMLElement { case 'active-panel': let tempData = JSON.parse(this.getAttribute('data-panel-data')); console.log(tempData.properties); + console.log(tempData.properties.photo_url == ''); this.panelContent.innerHTML = ` + ${(tempData.properties.photo_url == '') ? `` : ``}

${tempData.properties.business_name}

${this.languageText[currentLanguage]['panel'][0]} ${tempData.properties.address} ${(tempData.properties.profit_or_nonprofit) ? `

${this.languageText[currentLanguage]['panel'][1]} ${tempData.properties.profit_or_nonprofit}

` : ``}