1 2 3 4<!DOCTYPE html> 5<html lang="en-US" data-lang="en-US" crm-lang="en-US" dir="ltr" crm-lcid="1033" 6 same-site-mode="None"> 7<head> 8 9 <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /> 10
10<script type="text/javascript" > 11 12 </script>
12 13 <title> 14 15 Directory 16 17</title> 18 19
19<script src="/_portal/1437c32f-d79a-ee11-be36-001dd80a7efc/Resources/ResourceManager?lang=en-US"></script>
19 20 21
21<script type="text/javascript"> 22 // Refresh all powerBI Iframes on Login in one Iframe 23 window.addEventListener('message', function (event) { 24 if (event && event.data && event.data == 'refreshPowerBI') { 25 $("iframe.powerbi").each(function () { 26 this.src = this.src; 27 }); 28 } 29 }); 30 31 // Fix for incorrect viewport width setting in IE 10 on Windows Phone 8. 32 if (navigator.userAgent.match(/IEMobile\/10\.0/)) { 33 var msViewportStyle = document.createElement("style"); 34 msViewportStyle.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")); 35 document.getElementsByTagName("head")[0].appendChild(msViewportStyle); 36 } 37 </script>
37 38 39 40 <link href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css" rel="stylesheet" /> 41 42 <link href="/css/bootstrap.min.css" rel="stylesheet" /> 43 44 <link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/font-awesome.bundle-3d8a58a48f.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/font-awesome.bundle-3d8a58a48f.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 45 46 <link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/preform.bundle-b72a6ea21d.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/preform.bundle-b72a6ea21d.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 47 48 49 50 <link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/privatemode.bundle-049b12b66e.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/privatemode.bundle-049b12b66e.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 51 52 53 54 55 56 57 58 <link href="/thumbnail.css" rel="stylesheet" /> 59<link href="/theme.css" rel="stylesheet" /> 60<link href="/site.css" rel="stylesheet" /> 61<link href="/portalbasictheme.css" rel="stylesheet" /> 62 63 64 65 66 67 68 69 70 <link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/pwa-style.bundle-55718a4c0d.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pwa-style.bundle-55718a4c0d.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 71 72 </head> 73<body data-sitemap-state="/Directory/:/" 74 data-dateformat="M/d/yyyy" 75 data-timeformat="h:mm tt" 76 data-datetimeformat="M/d/yyyy h:mm tt" 77 data-app-path="/" 78 data-ckeditor-basepath="/js/BaseHtmlContentDesigner/Libs/msdyncrm_/libs/ckeditor/" 79 data-case-deflection-url="/_services/search/1437c32f-d79a-ee11-be36-001dd80a7efc"> 80 81 82 83 <link href="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-style.bundle-373a0f4982.css" onerror="javascript: var target = event.target; var link = document.createElement('link'); link.crossOrigin = target.crossOrigin; link.href = '/dist/pcf-style.bundle-373a0f4982.css'; link.rel = 'stylesheet'; target.insertAdjacentElement('afterend',link);" rel="stylesheet" /> 84 85 86 87 88 89 <div id="offlineNotificationBar" class="displayNone"> 90 <img alt="web" id="web" onerror="javascript: var target = event.target; var img = document.createElement('img'); img.src = '/css/images/web.png'; img.alt = 'web'; img.id = 'web' ; target.insertAdjacentElement('afterend',img); target.remove();" src="https://gov.content.powerapps.us/resource/powerappsportal/img/web.png" /> 91 <div id="message">You’re offline. This is a read only version of the page.</div> 92 <div id="close" onclick="this.parentElement.style.display='none';"><img alt="close" onerror="javascript: var target = event.target; var img = document.createElement('img'); img.src = '/css/images/close.png'; img.alt = 'close'; img.id = '' ; target.insertAdjacentElement('afterend',img); target.remove();" src="https://gov.content.powerapps.us/resource/powerappsportal/img/close.png" /></div> 93 </div> 94 95
96 97
97<script type="text/javascript"> 98 window.DisableCkEditor = window.DisableCkEditor || {}; 99 100 DisableCkEditor.Value = 'False'; 101 </script>
101 102 103
103<script type="text/javascript"> 104 var enableOmniChannelWidgetWithSiteCopilot = 'False'; 105 if (enableOmniChannelWidgetWithSiteCopilot === "True" || enableOmniChannelWidgetWithSiteCopilot === "true") { 106 const authUrl = window.location.origin + "/_services/auth/portalusertoken"; 107 const fetchWithRetries = async (url, options, retries) => { 108 try { 109 const authResponse = await fetch(url, options); 110 const token = await authResponse.text(); 111 sessionStorage['c2Token'] = token; 112 } catch (err) { 113 if (retries === 1) throw err; 114 return await fetchWithRetries(url, options, retries - 1); 115 } 116 }; 117 fetchWithRetries(authUrl, { method: "POST" }, 4); 118 119 // Enable/disable Omnichannel session refresh on auth state change 120 // When enabled, closeChat() is called when user logs in/out to start a fresh session 121 var enableOmniChannelSessionRefreshSetting = 'True'; 122 window.enableOmniChannelSessionRefresh = enableOmniChannelSessionRefreshSetting === 'True' || enableOmniChannelSessionRefreshSetting === 'true'; 123 } 124 </script>
124 125 126
126<script type="text/javascript"> 127 var isPvaBotAuthenticated = sessionStorage['isPvaBotAuthenticated']; 128 var isPortalUserLoggedIn = 'False'; 129 130 if ((isPvaBotAuthenticated != null || isPvaBotAuthenticated != undefined) && isPvaBotAuthenticated != isPortalUserLoggedIn) { 131 sessionStorage['triggerPvaBotSignOut'] = true; 132 sessionStorage.removeItem('c2Token'); 133 sessionStorage.removeItem('directLinetoken'); 134 sessionStorage.removeItem('conversation_Id'); 135 136 sessionStorage.removeItem('bot_c2Token'); 137 sessionStorage.removeItem('botdirectLinetoken'); 138 sessionStorage.removeItem('botconversation_Id'); 139 } 140 sessionStorage['isPvaBotAuthenticated'] = isPortalUserLoggedIn; 141 </script>
141 142 143
143<script type="text/javascript"> 144 window["CSPSettings"] = window["CSPSettings"] || {}; 145 window["CSPSettings"].nonce = ''; 146 window["FabricConfig"] = window["FabricConfig"] || {}; 147 window["FabricConfig"].mergeStyles = window["FabricConfig"].mergeStyles || {}; 148 window["FabricConfig"].mergeStyles.cspSettings = window["CSPSettings"]; 149 window["Microsoft"] = window["Microsoft"] || {}; 150 window["Microsoft"].Dynamic365 = { 151 Portal: { 152 153 User: { 154 userName: '', 155 firstName: '', 156 lastName: '', 157 email: '', 158 contactId: '', 159 userRoles: [], 160 }, 161 162 type: 'PowerPages_BlankTemplate_V2', 163 id: 'df3994f4-e97d-4e7b-9291-96b338ce5166', 164 geo: 'GCC2', 165 tenant: '21c62253-c3dd-4661-9659-cd01aff2d452', 166 correlationId: 'eae8aca8-a030-4f9d-8b14-cf37caa9b38a', 167 orgEnvironmentId: 'e9a35ecd-702d-e35c-a34b-93e912e7c0ad', 168 orgId: 'fa6b2bce-1599-ee11-be33-001dd83088dd', 169 portalProductionOrTrialType: 'Production', 170 isTelemetryEnabled: 'True', 171 InstrumentationSettings: { 172 instrumentationKey: '47d84c9b995341e19219d73ab0c6bcd2-e951660d-d17d-4de3-83c3-6a766bd23de8-7007', 173 collectorEndpoint: 'https://tb.events.data.microsoft.com/OneCollector/1.0/' 174 }, 175 timerProfileForBatching: 'NEAR_REAL_TIME', 176 activeLanguages: ["en-US"], 177 isClientApiEnabled: 'True', 178 isSpaSite: 'False' 179 } 180 }; 181 182 window["Microsoft"].PowerPages = window["Microsoft"].PowerPages || {}; 183 window["Microsoft"].PowerPages.onPagesClientApiReady = (callback) => { 184 return new Promise((resolve, reject) => { 185 let isComplete = false; 186 let timeoutId; 187 const timeoutInterval = 10000; 188 189 function handleReady() { 190 if (!isComplete && window.$pages) { 191 isComplete = true; 192 clearTimeout(timeoutId); 193 try { 194 if (typeof callback === "function") { 195 callback(window.$pages); 196 } 197 } catch (e) { 198 console.error("onPagesClientApiReady callback error:", e); 199 } 200 resolve(window.$pages); // should we reject if callback throws an error 201 } 202 } 203 204 if (window.$pages) { 205 handleReady(); 206 return; 207 } 208 209 function sdkListener() { 210 handleReady(); 211 window.removeEventListener('pagesSDKInitialized', sdkListener); 212 } 213 214 window.addEventListener('pagesSDKInitialized', sdkListener); 215 216 timeoutId = setTimeout(() => { 217 if (!isComplete) { 218 window.removeEventListener('pagesSDKInitialized', sdkListener); 219 if (window.$pages) { 220 handleReady(); 221 } else { 222 isComplete = true; 223 reject(new Error('window.$pages not available.')); 224 } 225 } 226 }, timeoutInterval); 227 }); 228 }; 229 230 // Deprecated alias: Microsoft.Dynamic365.Portal.onPagesClientApiReady. 231 // Remove once telemetry shows no callers remain. 232 (function () { 233 var _impl = window["Microsoft"].PowerPages.onPagesClientApiReady; 234 var _logged = false; 235 236 window["Microsoft"].Dynamic365.Portal.onPagesClientApiReady = function (callback) { 237 if (!_logged) { 238 _logged = true; 239 try { 240 if (window.clientLogWrapper && typeof window.clientLogWrapper.traceWarning === "function") { 241 window.clientLogWrapper.traceWarning( 242 "Microsoft.Dynamic365.Portal.onPagesClientApiReady invoked (deprecated)", 243 "DeprecatedApi", 244 "ClientApiReady", 245 "Invoke", 246 "DeprecationTracker" 247 ); 248 } 249 if (typeof console !== "undefined" && console.warn) { 250 console.warn( 251 "[DEPRECATED] Microsoft.Dynamic365.Portal.onPagesClientApiReady is deprecated " + 252 "and will be removed in a future release. Use Microsoft.PowerPages.onPagesClientApiReady instead." 253 ); 254 } 255 } catch (_) { /* never break the caller */ } 256 } 257 258 return _impl(callback); 259 }; 260 })(); 261 262 // Mark request not cacheable if Dynamics365PortalAnalytics cookie is being refreshed by the server or if the cookie in request header is invali
262d 263 264 265 // For client side telemetry intializing Dynamics365PortalAnalytics cookie object 266 267 window["Microsoft"].Dynamic365.Portal.dynamics365PortalAnalytics = 'jkfvfpU41UOMlNkQb-JmA91UxXDCZzekb3rekuI7KrHx46U5oyNGbfo7JdOdZoGd2zqbFB7JruVeUEW039BelagS6gnaHLvJYZwUZI_GgZf139XMGaWXLOQ-dPgIVnnDq9PIDZr6jW-cQxt1jDpZJg2'; // CodeQL [SM00430] False Positive: only alphanumeric chars allowed, for non-alphanumeric char it will return INVALID_CHARACTERS_IN_COOKIE 268 269 270 </script>
270 271 272
272<script type="text/javascript"> 273 274 275 </script>
275 276 277 278 279 280 281<header class="navbar navbar-inverse navbar-static-top" role="banner"> 282 <section class="region region-top-top-header header-container"> 283 <div id="block-311-2" class="block block-block-content"> 284 <div class="content"> 285 <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"> 286 <div class="nyclogo"><a href="http://www.nyc.gov"> 287 <img src="/NYClogo.png" alt="NYC logo"></a><span class="vbar">|</span><a href="https://www.diningoutnyc.info/" target="_blank">Dining Out NYC</a> 288 </div> 289 <div class="topright"><a href="https://portal.311.nyc.gov/" target="_blank">NYC 311</a> <a href="https://www.nyc.gov/home/search/index.page" target="_blank">Search all NYC.gov</a></div> 290 </div> 291 </div> 292 </div> 293 </section> 294 <div class="skip-to-content"><a href="#mainContent">Skip to main content</a></div> 295 <div class="header-container header-menu"> 296 <div class="navbar-header fit-content"> 297 <div class="navbar-brand"> 298 <!--visible-sm-block visible-md-block visible-lg-block visible-xs-block --> 299 <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><a href='~/'> 300 <img src='/DineOutNYCMarketLogo.png' alt='Dining Out NYC logo' style='width: auto; height: 45px;'> <!-- margin: 0 10px;--> 301 302 <h1 class='siteTitle'>Dining Out NYC Marketplace</h1> 303 304</a> 305</div></div> 306 </div> 307 <button type="button" class="navbar-toggle collapsed" title="Toggle navigation" data-toggle="collapse" data-target="#navbar" aria-expanded="false" onclick="setHeight();"> 308 <span class="sr-only">Toggle navigation</span> 309 <span class="icon-bar"></span> 310 <span class="icon-bar"></span> 311 <span class="icon-bar"></span> 312 </button> 313 </div> 314 <div id="navbar" class="navbar-collapse collapse navbar-expand-lg fit-content"> 315 316 317 318 319 <nav aria-label="Main Navigation" class="navbar-right menu-bar " data-weblinks-maxdepth="2"> 320 <ul class="nav navbar-nav weblinks"> 321 322 323 324 325 326 <li class="weblink "> 327 <a aria-label="Directory" href="/Directory/" aria-roledescription="link" title="Directory" > 328 Directory 329 </a> 330 331 </li> 332 333 334 335 <li class="divider-vertical" aria-hidden="true"></li> 336 <li class="dropdown"> 337 <a id="translateToogle" data-toggle="collapse" href="#translate" aria-expanded="false" aria-controls="translate"> 338 <span class="bi bi-translate"> Translate</span> 339 </a> 340 </li> 341 <!----> 342 343 344 </ul> 345 346 </nav> 347 348 </div> 349 </div> 350 <div id="translate" class="header-container collapse"> 351 <div id="google_translate_element"></div> 352
352<script type="text/javascript"> 353 function googleTranslateElementInit() { 354 new google.translate.TranslateElement( 355 {pageLanguage: 'en', 356 layout: google.translate.TranslateElement.InlineLayout.VERTICAL, 357 cookie_flags: 'secure;samesite=none'}, 358 'google_translate_element'); 359 } 360 361 </script>
361 362
362<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
362 363 </div> 364</header> 365 366 367 368 369 370 371 372
373<script type="text/javascript"> 374 /*(function(c,l,a,r,i,t,y){ 375 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 376 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 377 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 378 })(window, document, "clarity", "script", "m46s79j55a");*/ 379 (function(c,l,a,r,i,t,y){ 380 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 381 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 382 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 383 })(window, document, "clarity", "script", "m4766fou1s"); 384 385 window.onload = function() { 386 if (window.navigator.appName == "Microsoft Internet Explorer" || window.navigator.userAgent.indexOf("Trident") > 0) { 387 var searchElement = document.getElementById("search"); 388 if (searchElement != null) searchElement.setAttribute("href", ""); 389 } 390 }; 391 function setHeight() { 392 var windowHeight = window.innerHeight - 140; 393 var navbar = document.getElementById("navbar"); 394 if (navbar) { 395 navbar.style.maxHeight = windowHeight + "px"; 396 } 397 } 398 window.addEventListener('resize', function(event) { 399 setHeight(); 400 }); 401</script>
401 402<link rel="stylesheet" media="all" href="//fonts.googleapis.com/css?family=Roboto|Roboto+Condensed:700"> 403 404 405 <!-- add anti-forgery token--> 406 <div id="antiforgerytoken" data-url="/_layout/tokenhtml"></div> 407 408 409 <!-- Client Telemetry init if telemetry enabled--> 410
410<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry.bundle-d490766e4f.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/client-telemetry.bundle-d490766e4f.js" type="text/javascript"></script>
410 411 412 413 414 <!-- Client Telemetry Wrapper init --> 415
415<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/client-telemetry-wrapper.bundle-633e70f51b.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/client-telemetry-wrapper.bundle-633e70f51b.js" type="text/javascript"></script>
415 416 417
417<script> 418 window.clientLogWrapper = new ClientLogWrapper(); 419 </script>
419 420
420<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/preform.moment_2_29_4.bundle-750b699ecd.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/preform.moment_2_29_4.bundle-750b699ecd.js" type="text/javascript"></script>
420 421 422 423 424
424<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-dependency.bundle-805a1661b7.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-dependency.bundle-805a1661b7.js" type="text/javascript"></script>
424 425 426
426<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf.bundle-60440c37cb.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf.bundle-60440c37cb.js" type="text/javascript"></script>
426 427 428
428<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-extended.bundle-b0e01b5622.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-extended.bundle-b0e01b5622.js" type="text/javascript"></script>
428 429 430 431 <!-- Default studio template. Please do not modify --> 432<div id="mainContent" class = "wrapper-body" role="main"> 433 <div class="page-copy"> 434 <div class="xrm-editable-html xrm-attribute"><div class="xrm-attribute-value"><div class="container-fluid"> 435 436 <div class="row sectionBlockLayout text-left" style="display: flex; flex-wrap: wrap; padding: 8px; margin: 0px; min-height: auto;"> 437 438 439<!--Disclaimer --> 440 441
441<script> 442 function chkDisclaimer(){ 443 let ckv = getCookie('view_discl'); 444 if (!(ckv=="Y")) 445 { 446 openCloseDisclaimer("OPEN"); 447 } 448 } 449 450 function setCookie(nm, v, days) 451 { 452 if (days==null){days=1;} 453 var d1=new Date(); 454 d1.setDate(d1.getDate() + days); 455 document.cookie=nm + "=" + escape(v) + "; path=/; expires="+d1.toUTCString() + "; Secure"; 456 } 457 458 function getCookie(nm) 459 { 460 let ret = ""; 461 if (document.cookie!=undefined && document.cookie!=null){ 462 let ck = decodeURIComponent(document.cookie); 463 const cks=ck.split(";"); 464 for (let i=0; i<cks.length; i++) 465 { 466 let cnm=cks[i].substr(0,cks[i].indexOf("=")); 467 let cv=cks[i].substr(cks[i].indexOf("=")+1); 468 cnm=cnm.trim(); 469 if (cnm.indexOf(nm)==0){ 470 ret = cv; 471 break; 472 } 473 } 474 } 475 return ret; 476 } 477 function openCloseDisclaimer(flg){ 478 event.preventDefault(); 479 document.getElementById("wDisclaimer").style.display = (flg=='CLOSE')?"none":"block"; 480 document.getElementById("wDisclaimer").scrollIntoView(); 481 if (flg=="CLOSE"){ 482 setCookie("view_discl", "Y", 1); 483 document.getElementsByTagName("body")[0].scrollIntoView(); 484 } 485 } 486 487 function clrDisclaimer(){ 488 setCookie("view_discl", "N", 1); 489 } 490 </script>
490 491 <style> 492 .card.custcard{position:relative!important;;display:flex!important; 493 flex-direction:column!important;;min-width:0!important; 494 word-wrap:break-word!important;background-color:#fff!important; 495 background-clip:border-box!important;border:1px solid rgba(0, 0, 0, 0.125)!important; 496 border-radius: 0.25rem!important;} 497 .do-lnk2{text-transform:uppercase;text-decoration:underline!important;cursor:pointer!important;color:blue;font-size:0.8em;font-weight:700;} 498 .do-smtxt{font-size:0.8em;font-weight:700!important;} 499 .btn-do2{width:100px!important;background-color:#28284F!important;color:#fff!important;} 500 .custcard2{position:absolute!important;top:50%!important;left:50%!important;width:90%!important;max-width:90vw!important;z-index:10002!important;transform:translate(-50%, -50%);box-shadow:rgba(40, 40, 79, 0.4) 3px 3px 2px!important;background-color:#fff;} 501 #wDisclaimer{position:absolute!important;top:25%!important;left:0!important;width:98%!important;max-width:98vw!important;} 502 .custcardx{position:absolute!important;top:50%!important;left:50%!important;width:90%!important;max-width:90vw!important;transform:translate(-50%, -50%);z-index:10002!important;z-index:10002!important;box-shadow:rgba(40, 40, 79, 0.4) 3px 3px 2px!important;background-color:#fff;} 503 .custcard{left:5%!important;width:90%!important;max-width:90vw!important;z-index:10002!important;box-shadow:rgba(40, 40, 79, 0.4) 3px 3px 2px!important;background-color:#fff;} 504 .custcard .card-header{background-color:#28284F!important;color:#fff!important;padding:6px!important;} 505 .custcard .card-body{padding:15px;overflow-y:scroll;} 506 .custcardovl{position:fixed!important;top:0!important;left:0!important;width:9999px;height:9999px;z-index:10001;background-color:#000;opacity:0.2;overflow-y:hidden;} 507 .dislc_txt, .dislc_txt p, .dislc_txt li{font-size:1em!important;font-weight:normal!important;font-color:#000!important;} 508 509 </style> 510 <div id="wDisclaimer" style="display:none;"> 511 <div class="card custcard"> 512 <div class="card-header">Important information to use the directory</div> 513 <div class="card-body"> 514 <div class="dislc_txt"> 515 516 517 518 519 <div class="xrm-editable-html xrm-attribute"><div class="xrm-attribute-value"> <p>To assist restaurants in installing sidewalk and roadway cafes for the Dining Out NYC program, 520the City of New York (the âCityâ) has compiled an optional directory of local and national 521suppliers and fabricators of outdoor dining setups, vendors offering installation and 522storage services, products, and designs tested by the City in its Setup Menu Prototype 523project (the âDirectoryâ).This Directory is meant to be a helpful resource and is not a 524requirement for the Dining Out NYC program, restaurants may choose vendors or products at their own discretion. 525The City has also made available for download drawings from the Dining Out NYC Setup Menu Prototype project 526that were prepared by a registered design professional. 527</p> 528 <p>Please be advised that neither the City, nor any agency, officer, or employee of the City guarantees the accuracy, reliability, or timeliness of any information or drawings published in this Directory, nor endorses any contents, products, or services linked from this Directory. 529 </p> 530 <p>The user of this Directory agrees that the City, and any agency, officer, or employee of the City, shall not be held liable for any losses caused by reliance on the accuracy, reliability, or timeliness of such information on third-party websites or drawings linked from this Directory. Portions of such information or drawings linked in this Directory may be incorrect or not current. Any person or entity that relies on any information or drawings obtained from this Directory does so at their own risk. 531</p> 532 <p>Every restaurant participating in the Dining Out NYC program is responsible for ensuring that their sidewalk or roadway cafe complies with all requirements of the Dining Out NYC program, including the design requirements contained in Chapter 5 of Title 34 of the Rules of the City of New York. 533</p></div></div> 534 <div class="xrm-editable-html xrm-attribute"><div class="xrm-attribute-value"> <p><b>How NYC DOT put together this service directory - What does NYC DOT check for? </b></p> 535 536 <ul> 537 <li>That the business attended an NYC DOT training session that outlined the Dining Out NYC design requirements and lessons learned from the Setup Menu Prototype project. </li> 538 <li>That the business provided NYC DOT with documentation that they have obtained the requisite insurance that NYC DOT requires to be listed in this directory.</li> 539 <li> 540 That the business would be eligible to do business with the City of New York. To make this determination, NYC DOT will conduct a variety of searches to find out if the 541 business is in good standing with the state and federal government (e.g., does not owe any taxes, is current in its corporate filings, etc.), 542 has not committed any serious workplace safety violations, and if there are any civil judgements or criminal convictions against the business. </li> 543 <li>NYC DOT conducts the above-searches one time and therefore it should be noted that this information is subject to change after the business is listed 544 in this service directory. </li> 545 </ul> 546 547 <p> 548 <b>Your responsibility in using this business directory - What should YOU check for? </b> 549 </p> 550 <ul> 551 <li>That any component of an outdoor dining setup purchased from a third-party website complies with all the 552 requirements of the Dining Out NYC Program. 553 Please note that every location has unique features so make sure the plan you choose is appropriate.</li> 554<li>That any business offering a licensed service has a valid license: 555<ul> 556<li>For licensing information on architects, engineers, landscape architects, and other professionals, go to the <a href="http://www.op.nysed.gov/opsearches.htm" target="_blank">NYS Office of the Professionsâ Verification Search.</a></li> 557<li>For licensing information on General Contractors, go to the <a href="https://a810-bisweb.nyc.gov/bisweb/LicenseTypeServlet?vlfirst=N" target="_blank">NYC DOB Skilled Trades Licensees/General Contractors/Registrant Search.</a></li> 558</ul> 559</li> 560</ul></div></div> 561 562 </div> 563 <div class="mt-4 p-4 text-center"> 564 <button class="btn btn-sm btn-do2" onclick="openCloseDisclaimer('CLOSE')">I Agree to the Above</button> 565 </div> 566 </div> 567 </div> 568 <div class="custcardovl"></div> 569 </div> 570 571 572<style> 573 .searchbar{top:0;left:0;padding:10px 0px 10px 0px;background-color:#fcfcfc;min-height:100px;} 574 .fSec{position:absolute;top:100px;left:0;margin-top:100px;} 575 .custcard2{position:fixed;top:50%;left:50%;width:90%!important;z-index:10002;transform:translate(-50%, -50%);} 576 .sq{border-radius:0px!important;width:100%;max-width:330px;} 577 .sq1{border-top:0px solid #fff;border-bottom:0px solid #fff;} 578 .sq2{border-radius:0px!important;border-bottom:0px solid #fff;border-bottom:0px solid #fff;} 579 .sq_hdr{color:#fff!important;background-color:#28284F!important;border-radius:0px!important;font-size:0.8em; 580 letter-spacing:0.2rem;padding:3px 3px 3px 15px;height:25px;} 581 .chdr{font-size:0.9em!important;font-weight:700!important; 582 padding:10px 1px 10px 5px!important;text-transform:uppercase!important; 583 cursor:pointer;white-space:nowrap!important;width:100%;} 584 .sbtn{font-size:0.8em!important;padding:2px!important;margin:2px!important;width:90px;} 585 .dir{font-weight:600!important;} 586 .dir option{font-weight:600!important;} 587 .btn-do{padding:4px!important;width:45%!important;background-color:#28284F!important;font-size:0.72em!important;} 588 .btn-do2{width:100px!important;background-color:#28284F!important;color:#fff!important;} 589 .btn-do3{padding:4px!important;width:45%!important;font-size:0.72em!important;} 590 .btn-filtr{color:#fff!important;background-color:#28284F!important;border-radius:0px!important;} 591 .clico{max-height:24px!important;width:24px!important;height:24px!important;border-radius:5px;font-size:0.9em;padding:2px;background-color:#6C757D;color:#fff;} 592 .l1{background-color:#e0e0e0;font-size:0.9em;font-weight:600;padding:1px 0px 1px 4px!important;} 593 .form-check-label{width:100%!important;} 594 .form-check-label:hover{background-color:#ffffc0!important;} 595 .t_ico{cursor:pointer;margin:0px 5px 0px 5px!important;padding:0px 5px 0px 5px!important;} 596 .s_sec label{font-size:0.9em;} 597 .moffsetx{margin-left:230px!important;} 598 .rpanel{margin:0px 0px 0px 5px;display:flex!important;flex-flow:row!important;flex-wrap:wrap!important;justify-content:flex-start!important;} 599 .fslide{transition: all 5s ease-in-out!important;} 600</style> 601 602 <!-- compatbility to bs5--> 603<style> 604.card {position:relative!important;;display:flex!important; 605 flex-direction:column!important;;min-width:0!important; 606 word-wrap:break-word!important;background-color:#fff!important; 607 background-clip:border-box!important;border:1px solid rgba(0, 0, 0, 0.125)!important; 608 border-radius: 0.25rem!important;} 609.card > hr {margin-right: 0; margin-left: 0;} 610.card > .list-group { border-top: inherit; border-bottom: inherit;} 611.card > .list-group:first-child { border-top-width: 0; border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px);} 612.card > .list-group:last-child { border-bottom-width: 0; border-bottom-right-radius: calc(0.25rem - 1px); border-bottom-left-radius: calc(0.25rem - 1px);} 613.card > .card-header + .list-group, 614.card > .list-group + .card-footer { border-top: 0;} 615.card-body { flex: 1 1 auto; padding: 1rem 1rem!important;} 616.card-title { margin-bottom: 0.5rem;} 617.card-subtitle { margin-top: -0.25rem; margin-bottom: 0;} 618.card-text:last-child { margin-bottom: 0;} 619.card-link:hover { text-decoration: none;} 620.card-link + .card-link { margin-left: 1rem;} 621.card-header { padding: 0.5rem 1rem; margin-bottom: 0; background-color: rgba(0, 0, 0, 0.03); border-bottom: 1px solid rgba(0, 0, 0, 0.125);} 622.card-header:first-child { border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;} 623.card-footer { padding: 0.5rem 1rem; background-color: rgba(0, 0, 0, 0.03); border-top: 1px solid rgba(0, 0, 0, 0.125);} 624.card-footer:last-child { border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);} 625.card-header-tabs { margin-right: -0.5rem; margin-bottom: -0.5rem; margin-left: -0.5rem; border-bottom: 0;} 626.card-header-pills { margin-right: -0.5rem; margin-left: -0.5rem;}
627.card-img-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; padding: 1rem; border-radius: calc(0.25rem - 1px);} 628.card-img, 629.card-img-top, 630.card-img-bottom { width: 100%;} 631.card-img, 632.card-img-top { border-top-left-radius: calc(0.25rem - 1px); border-top-right-radius: calc(0.25rem - 1px);} 633.card-img, 634.card-img-bottom { border-bottom-right-radius: calc(0.25rem - 1px); border-bottom-left-radius: calc(0.25rem - 1px);} 635.card-group > .card { margin-bottom: 0.75rem;} 636@media (min-width: 576px) { 637 .card-group { display: flex; flex-flow: row wrap; } 638 .card-group > .card { flex: 1 0 0%; margin-bottom: 0; } 639 .card-group > .card + .card { margin-left: 0; border-left: 0; } 640 .card-group > .card:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; } 641 .card-group > .card:not(:last-child) .card-img-top, 642 .card-group > .card:not(:last-child) .card-header { border-top-right-radius: 0; } 643 .card-group > .card:not(:last-child) .card-img-bottom, 644 .card-group > .card:not(:last-child) .card-footer { border-bottom-right-radius: 0; } 645 .card-group > .card:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } 646 .card-group > .card:not(:first-child) .card-img-top, 647 .card-group > .card:not(:first-child) .card-header { border-top-left-radius: 0; } 648 .card-group > .card:not(:first-child) .card-img-bottom, 649 .card-group > .card:not(:first-child) .card-footer { border-bottom-left-radius: 0; } 650} 651 652.m-0 { margin: 0 !important;} 653.m-1 { margin: 0.25rem !important;} 654.m-2 { margin: 0.5rem !important;} 655.m-3 { margin: 1rem !important;} 656.m-4 { margin: 1.5rem !important;} 657.m-5 { margin: 3rem !important;} 658.mt-0 { margin-top: 0 !important;} 659.mt-1 { margin-top: 0.25rem !important;} 660.mt-2 { margin-top: 0.5rem !important;} 661.mt-3 { margin-top: 1rem !important;} 662.mt-4 { margin-top: 1.5rem !important;} 663.mt-5 { margin-top: 3rem !important;} 664.me-0 { margin-right: 0 !important;} 665.me-1 { margin-right: 0.25rem !important;} 666.me-2 { margin-right: 0.5rem !important;} 667.me-3 { margin-right: 1rem !important;} 668.me-4 { margin-right: 1.5rem !important;} 669.me-5 { margin-right: 3rem !important;} 670.mb-0 { margin-bottom: 0 !important;} 671.mb-1 { margin-bottom: 0.25rem !important;} 672.mb-2 { margin-bottom: 0.5rem !important;} 673.mb-3 { margin-bottom: 1rem !important;} 674.mb-4 { margin-bottom: 1.5rem !important;} 675.mb-5 { margin-bottom: 3rem !important;} 676.ms-0 { margin-left: 0 !important;} 677.ms-1 { margin-left: 0.25rem !important;} 678.ms-2 { margin-left: 0.5rem !important;} 679.ms-3 { margin-left: 1rem !important;} 680.ms-4 { margin-left: 1.5rem !important;} 681.ms-5 { margin-left: 3rem !important;} 682.ms-auto { margin-left: auto !important;} 683.p-0 { padding: 0 !important;} 684.p-1 { padding: 0.25rem !important;} 685.p-2 { padding: 0.5rem !important;} 686.p-3 { padding: 1rem !important;} 687.p-4 { padding: 1.5rem !important;} 688.p-5 { padding: 3rem !important;} 689.pt-0 { padding-top: 0 !important;} 690.pt-1 { padding-top: 0.25rem !important;} 691.pt-2 { padding-top: 0.5rem !important;} 692.pt-3 { padding-top: 1rem !important;} 693.pt-4 { padding-top: 1.5rem !important;} 694.pt-5 { padding-top: 3rem !important;} 695.pe-0 { padding-right: 0 !important;} 696.pe-1 { padding-right: 0.25rem !important;} 697.pe-2 { padding-right: 0.5rem !important;} 698.pe-3 { padding-right: 1rem !important;} 699.pe-4 { padding-right: 1.5rem !important;} 700.pe-5 { padding-right: 3rem !important;} 701.pb-0 { padding-bottom: 0 !important;} 702.pb-1 { padding-bottom: 0.25rem !important;} 703.pb-2 { padding-bottom: 0.5rem !important;} 704.pb-3 { padding-bottom: 1rem !important;} 705.pb-4 { padding-bottom: 1.5rem !important;} 706.pb-5 { padding-bottom: 3rem !important;} 707.ps-0 { padding-left: 0 !important;} 708.ps-1 { padding-left: 0.25rem !important;} 709.ps-2 { padding-left: 0.5rem !important;} 710.ps-3 { padding-left: 1rem !important;} 711.ps-4 { padding-left: 1.5rem !important;} 712.ps-5 { padding-left: 3rem !important;} 713.position-static {position: static !important;} 714.position-relative {position: relative !important;} 715.position-absolute {position: absolute !important;} 716.position-fixed {position: fixed !important;} 717.position-sticky {position: -webkit-sticky !important;position: sticky !important;} 718.top-0 {top: 0 !important;} 719.top-50 {top: 50% !important;} 720.top-100 {top: 100% !important;} 721.bottom-0 {bottom: 0 !important;} 722.bottom-50 {bottom: 50% !important;} 723.bottom-100 {bottom: 100% !important;} 724.start-0 {left: 0 !important;} 725.start-50 {left: 50% !important;} 726.start-100 {left: 100% !important;} 727.end-0 {right: 0 !important;} 728@media only screen and (max-width: 767px) { 729.searchbar{top:0;left:0;padding:20px 0px 20px 0px!important;background-color:#fcfcfc;min-height:100px!important;} 730.rpanel{justify-content:center!important;} 731.moffsetx{margin-left:0px!important;} 732.sq-hdr-bg{height:36px!important;font-size:1.2em;vertical-align:middle!important;vertical-align:middle!important;} 733.sq-close{margin:2px 0px 0px 0px;color:#fff!important;padding:3px; 734 font-weight:600;cursor:pointer; 735 background-color:#e0e0e0;border-radius:20px;} 736 737} 738 739</style> 740<!-- end bs 5 compatible classes --> 741 742
742<script> 743 <!-- search tab --> 744 window.addEventListener("load", function(){ 745 let params = new URLSearchParams(window.location.search); 746 let defdir = params.get('d'); 747 let qtxt = params.get('q'); 748 if (defdir!=null && defdir.length>0){ 749 let dir_el = document.getElementById("dir_"+defdir.toLowerCase()); 750 if (dir_el!=null){ 751 dir_el.checked = true; 752 } 753 } 754 if (qtxt!=undefined && qtxt!=null){ 755 document.getElementById("txtdir").value = qtxt; 756 } 757 let chkLst = chkFilters("load"); 758 759 try{ 760 chkDisclaimer(); 761 }catch(e){} 762 763 initAll(); 764 765 for(let i=0;i<chkLst.length;i++){ 766 chkLst[i].addEventListener("click", function(e){ 767 //alert(e); 768 applyFilters('Y'); 769 }); 770 } 771 searchDir(); 772 }); 773 774 function clearSearchDir(){ 775 document.getElementById("txtdir").value = ""; 776 searchDir(); 777 clearFilter(); 778 } 779 780 function searchDir(){ 781 search_txt = document.getElementById("txtdir").value; 782 applyFilters("Y"); 783 } 784 785 function chkSearchDir(){ 786 if(event.keyCode==13){ 787 searchDir(); 788 } 789 } 790 791 function initAll(){ 792 let opts = ""; 793 prods.map(r=>{ 794 r.mwbe= (r.mwbe!=undefined && r.mwbe!=null)?r.mwbe.replaceAll('/', ''):''; 795 r.loc = (r.loc!=undefined && r.loc!=null)?r.loc.trim():''; 796 }); 797 } 798 799function showFilters(){ 800 801 try{ 802 if (document.getElementById("filterSec").className!="" ){ 803 document.getElementById("filterSec").className = ""; 804 document.getElementById("filterSec").style.display = "block"; 805 //document.getElementById("filterSec").style.width = "98%"; 806 document.getElementById("filterSecPanel").style.display = "block"; /* fpanel class hides on small devices */ 807 document.getElementById("filterSecPanel").style.width = "90vw"; 808 document.getElementById("filter_results").style.width = "0vw"; 809 document.getElementById("filter_results").style.opacity = 0; 810 }else{ 811 //event.target.innerHTML="<i class='bi bi-filter'></i> FILTERS"; 812 document.getElementById("filterSec").className = "visible-sm-block visible-md-block visible-lg-block fpanel"; 813 document.getElementById("filterSec").style.display = "none"; 814 document.getElementById("filterSecPanel").style.display = "none"; /* fpanel class hides on small devices */ 815 //document.getElementById("filter_results").style.display = "block"; 816 document.getElementById("filter_results").style.width = "98vw"; 817 document.getElementById("filter_results").style.opacity = 1; 818 } 819 }catch(e){ 820 alert(e); 821 } 822 823 } 824 825 function showDetail(prodid) { 826 let queryUrl = '/ProductDesignSummary/?q='; 827 queryUrl = queryUrl + prodid.replaceAll(' ', '-') 828 window.location.href = queryUrl 829 } 830 831 function showServiceDetail(svcid){ 832 let queryUrl = '/ServiceSummary/?q='; 833 queryUrl = queryUrl + svcid.replaceAll(' ', '-') 834 window.location.href = queryUrl 835 } 836 <!-- search ends --> 837</script>
837 838 839 840<!-- 841 <div id="col-lg-12 block-nycdot-page-title" class="block block-core block-page-title-block"> 842 <div class="content"> 843 <h1 class="title">Directory</h1> 844 </div> 845 </div> 846--> 847 848<div style="width:90vw;"> 849<div class="searchbar"> 850 <div class="input-group d-sm"> 851 <span class="input-group-btn"> 852 <button class="btn btn-default ms-2 visible-xs" id="btnFilters" onclick="showFilters()" > 853 <i class="bi bi-funnel bi-lg py-2 p-1"></i> 854 <span class="visible-md visible-lg"> FILTER</span> 855 </button> 856 </span> 857 <div class="input-group"> 858 <input type="text" class="form-control notranslate" style="border-radius:0em!important;border-right:0px;" maxlength="60" id="txtdir" onkeydown="chkSearchDir()" /> 859 <span class="input-group-btn"> 860 <button class="btn btn-default" style="border-left:0px;padding-bottom:6px!important; " onclick="clearSearchDir()" >X</button> 861 </span> 862 </div> 863 <span class="input-group-btn"> 864 <button class="ms-2 btn btn-sm btn-danger" onclick="searchDir()" > <i class="bi bi-search me-2"></i> GO </button> 865 </span> 866 <!-- 867 <span class="input-group-btn"> 868 <button class="ms-2 btn btn-sm btn-outline-default hidden-xs" onclick="clearSearchDir()" > <i class="bi bi-activity me-2"></i> CLEAR </button> 869 </span> 870 --> 871 </div> 872 873 <div class="m-2 prcnt" id='prcntcon'> 874 <div id='prcnt'></div> 875 <div id='filterstr'></div> 876 </div> 877</div> 878</div> 879 880<div style="width:94vw;"> 881<div style="display:flex;flex-flow:row;vertical-align:top;"> 882 883<!--Filters --> 884<div style="position:relative;"> 885<div id="filterSec" class="visible-sm-block visible-md-block visible-lg-block fpanel"> 886 887 888 889 890 891 892 893 894<!-- Get colk --> 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991<!-- 9926 993--> 994<!-- Get services --> 995 996 997<!-- Get product Design --> 998 999 1000<!-- 1001<h2>51</h2> 1002<h2>23</h2> 1003<h2></h2> 1004--> 1005 1006
1007<script> 1008<!-- /* Author: Ranga 02/14/2024 */ --> 1009let prods = []; 1010let svcs = []; 1011let fltrRows = []; 1012let filtermsg="", search_txt=""; 1013let def_img = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTEwOCIgaGVpZ2h0PSI0NTAiIHZpZXdCb3g9IjAgMCAxMTA4IDQ1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgb3BhY2l0eT0iMC45NSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfYl8xMzQ4XzY0MDMpIj4KPHJlY3Qgd2lkdGg9IjExMDgiIGhlaWdodD0iNDUwIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAxMTA4IDApIiBmaWxsPSJ3aGl0ZSIvPgo8cmVjdCB4PSItMSIgeT0iMSIgd2lkdGg9IjExMDYiIGhlaWdodD0iNDQ4IiB0cmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAxMTA2IDApIiBzdHJva2U9IiNEMkQwQ0UiIHN0cm9rZS13aWR0aD0iMiIvPgo8L2c+CjxwYXRoIGQ9Ik01NzcuOTU4IDE4Ny41QzU4NS40MzcgMTg3LjUgNTkxLjUgMTkzLjU2MyA1OTEuNSAyMDEuMDQyVjI0OC45NThDNTkxLjUgMjU2LjQzNyA1ODUuNDM3IDI2Mi41IDU3Ny45NTggMjYyLjVINTMwLjA0MkM1MjIuNTYzIDI2Mi41IDUxNi41IDI1Ni40MzcgNTE2LjUgMjQ4Ljk1OFYyMDEuMDQyQzUxNi41IDE5My41NjMgNTIyLjU2MyAxODcuNSA1MzAuMDQyIDE4Ny41SDU3Ny45NThaTTU4MC4zNzcgMjU1LjgzOUw1NTYuMTg2IDIzMi4xNDVDNTU1LjA4MiAyMzEuMDY0IDU1My4zNzUgMjMwLjk2NSA1NTIuMTYyIDIzMS44NUw1NTEuODEzIDIzMi4xNDVMNTI3LjYxOSAyNTUuODM4QzUyOC4zNzcgMjU2LjEwNSA1MjkuMTkyIDI1Ni4yNSA1MzAuMDQyIDI1Ni4yNUg1NzcuOTU4QzU3OC44MDYgMjU2LjI1IDU3OS42MiAyNTYuMTA1IDU4MC4zNzcgMjU1LjgzOUw1NTYuMTg2IDIzMi4xNDVMNTgwLjM3NyAyNTUuODM5Wk01NzcuOTU4IDE5My43NUg1MzAuMDQyQzUyNi4wMTUgMTkzLjc1IDUyMi43NSAxOTcuMDE1IDUyMi43NSAyMDEuMDQyVjI0OC45NThDNTIyLjc1IDI0OS44MjcgNTIyLjkwMiAyNTAuNjYgNTIzLjE4IDI1MS40MzJMNTQ3LjQ0MSAyMjcuNjc5QzU1MC45MTIgMjI0LjI4IDU1Ni4zNjUgMjI0LjExOSA1NjAuMDI0IDIyNy4xOTRMNTYwLjU1OSAyMjcuNjhMNTg0LjgxOCAyNTEuNDM2QzU4NS4wOTcgMjUwLjY2MiA1ODUuMjUgMjQ5LjgyOCA1ODUuMjUgMjQ4Ljk1OFYyMDEuMDQyQzU4NS4yNSAxOTcuMDE1IDU4MS45ODUgMTkzLjc1IDU3Ny45NTggMTkzLjc1Wk01NjcuNTUgMjAyLjA4M0M1NzIuNzMzIDIwMi4wODMgNTc2LjkzNCAyMDYuMjg1IDU3Ni45MzQgMjExLjQ2N0M1NzYuOTM0IDIxNi42NSA1NzIuNzMzIDIyMC44NTEgNTY3LjU1IDIyMC44NTFDNTYyLjM2OCAyMjAuODUxIDU1OC4xNjcgMjE2LjY1IDU1OC4xNjcgMjExLjQ2N0M1NTguMTY3IDIwNi4yODUgNTYyLjM2OCAyMDIuMDgzIDU2Ny41NSAyMDIuMDgzWk01NjcuNTUgMjA4LjMzM0M1NjUuODIgMjA4LjMzMyA1NjQuNDE3IDIwOS43MzYgNTY0LjQxNyAyMTEuNDY3QzU2NC40MTcgMjEzLjE5OCA1NjUuODIgMjE0LjYwMSA1NjcuNTUgMjE0LjYwMUM1NjkuMjgxIDIxNC42MDEgNTcwLjY4NCAyMTMuMTk4IDU3MC42ODQgMjExLjQ2N0M1NzAuNjg0IDIwOS43MzYgNTY5LjI4MSAyMDguMzMzIDU2Ny41NSAyMDguMzMzWiIgZmlsbD0iI0FDQUNBQyIvPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9iXzEzNDhfNjQwMyIgeD0iLTQiIHk9Ii00IiB3aWR0aD0iMTExNiIgaGVpZ2h0PSI0NTgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2UiIHN0ZERldmlhdGlvbj0iMiIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfMTM0OF82NDAzIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl8xMzQ4XzY0MDMiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjwvZGVmcz4KPC9zdmc+Cg=="; 1014let svc_def_img = "data:image/svg+xml;base64,PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIFRyYW5zZm9ybWVkIGJ5OiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4KPHN2ZyBmaWxsPSIjMDAwMDAwIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTQ0cHgiIGhlaWdodD0iMTQ0cHgiIHZpZXdCb3g9Ii0xOTYgLTE5NiA2MzcuMDAgNjM3LjAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNDUgMjU2IiB4bWw6c3BhY2U9InByZXNlcnZlIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS13aWR0aD0iMC4wMDI0NSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsIDAsIDAsIDEsIDAsIDApcm90YXRlKDApIj4KDTxnIGlkPSJTVkdSZXBvX2JnQ2FycmllciIgc3Ryb2tlLXdpZHRoPSIwIi8+Cg08ZyBpZD0iU1ZHUmVwb190cmFjZXJDYXJyaWVyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KDTxnIGlkPSJTVkdSZXBvX2ljb25DYXJyaWVyIj4gPHBhdGggZD0iTTk0LjMzOCw0Ny4xMzdjMCwwLDAsMS42MDMsMCwyLjQ1MmMwLDE1LjYxMSwxMi42NTQsMjguMjY1LDI4LjI2NSwyOC4yNjVzMjguMjY1LTEyLjY1NCwyOC4yNjUtMjguMjY1IGMwLTAuODQ5LDAtMi40NTIsMC0yLjQ1MlM5NC4zMzgsNDcuMTM3LDk0LjMzOCw0Ny4xMzd6IE0xNjEuOTA2LDMzLjMyNnY3Ljg4MUg4My4wOTR2LTcuODgxaDUuNTE3IGMxLjA1OC0xMy4wNiw5LjQ2OS0yNC4wMzksMjEuMDg4LTI4Ljc5NHYxNi45NzJoNC45MjZWMi45NDJDMTE3LjE4NCwyLjMyOCwx
1014MTkuODU1LDIsMTIyLjYwMywyYzIuNjc4LDAsNS4yODIsMC4zMTUsNy43ODIsMC44OTggdjE4LjYwNmg0LjkyNlY0LjQ0OGMxMS43MjIsNC43MTEsMjAuMjIxLDE1Ljc0MywyMS4yODUsMjguODc4SDE2MS45MDZ6IE0yMzYuNjA2LDEzNC4wMzZjLTMuOTItMy43NS05LjA3My01LjY4OS0xNC41MDctNS40NDUgYy0xMC41NTIsMC40NjYtMTguODE3LDkuMzI4LTE4LjgxNywyMC4xNzd2MTEuNjQzaC05Ljg1MnYtMzkuNDA2YzAtMTkuNDQzLTE2LjMwOS0zNS4wMTYtMzUuNjc2LTM1LjAxNmgtNy42NTlsLTIwLjcsMzQuMDMxIGwtMi45NTUtMjUuOTM2bDIuOTU1LTguMTcxaC0xMy43OTJsMi45NTUsOC4xNzFsLTIuOTU1LDI1LjkzNkw5NC45MTUsODUuOTg4aC03LjY3Yy0xOS40NDMsMC0zNS42NzYsMTUuNjQ5LTM1LjY3NiwzNS4wMTZ2MzkuNDA2IGgtOS44NTJWMTQ4Ljc2YzAtMTAuODQ5LTguMjY1LTE5LjcxMi0xOC44MTYtMjAuMTc3Yy01LjQzLTAuMjM2LTEwLjU4NiwxLjY5NC0xNC41MDcsNS40NDZjLTMuOTIzLDMuNzUzLTYuMDgzLDguODEtNi4wODMsMTQuMjM4IHY4NS40NjloMC4wMDhjLTAuMTUsNS4zMDgsMS43NzYsMTAuMzI3LDUuNDQ1LDE0LjE2OWMzLjc1NSwzLjkzMSw4LjgxNSw2LjA5NiwxNC4yNSw2LjA5NmgyMDAuOTcxIGM1LjQzNSwwLDEwLjQ5Ni0yLjE2NSwxNC4yNS02LjA5N2MzLjY2OC0zLjg0MSw1LjU5NC04Ljg1OCw1LjQ0Ni0xNC4xNjRsMC4wMDctODUuNDY2IEMyNDIuNjg4LDE0Mi44NDUsMjQwLjUyOCwxMzcuNzksMjM2LjYwNiwxMzQuMDM2eiBNMTY0Ljg2MSwxMjcuOWMxLjYzMiwwLDIuOTU1LDEuMzIzLDIuOTU1LDIuOTU1djI5LjU1NWgtNS45MTF2LTI5LjU1NSBDMTYxLjkwNiwxMjkuMjI0LDE2My4yMjksMTI3LjksMTY0Ljg2MSwxMjcuOXogTTc3LjE4MywxMzAuODU2YzAtMS42MzIsMS4zMjMtMi45NTUsMi45NTUtMi45NTVjMS42MzIsMCwyLjk1NSwxLjMyMywyLjk1NSwyLjk1NSB2MjkuNTU1aC01LjkxMVYxMzAuODU2eiBNMTAuMTkyLDE0OC4yNjZjMC0zLjI1NywxLjI5Ni02LjI5MSwzLjY1MS04LjU0M2MyLjIyMS0yLjEyNiw1LjA1Mi0zLjQ0OSw4LjcxMS0zLjI2NyBjNi4yMiwwLjMwOSwxMS4yODIsNS43OTQsMTEuMjgyLDEyLjMwNHY2OS43N2MtMy42NDgtMi43NTEtOC4wOTktNC4xMjktMTIuNzQ4LTMuOTE2Yy00LjA1OCwwLjE4Ny03LjgyMSwxLjY0MS0x
1014MC44OTYsMy45NjkgVjE0OC4yNjZ6IE0yMzEuNTM2LDI0Mi40NmMtMi4yNTMsMi4zNTktNS4yODksMy42NTktOC41NTEsMy42NTlIMjIuMDE0Yy0zLjI2MSwwLTYuMjk4LTEuMjk5LTguNTUxLTMuNjU5IGMtMi4yNTEtMi4zNTctMy40MDktNS40NTctMy4yNTktOC43MjdjMC4yNzgtNi4wMjgsNS4yMTctMTAuOTY4LDExLjI0Ni0xMS4yNDZjMy4yNzYtMC4xNDYsNi4zNywxLjAwNiw4LjcyNywzLjI1OSBjMi4zNTksMi4yNTMsMy42NTksNS4yODksMy42NTksOC41NTFoNy44ODF2LTY2LjAwNWg5Ljg1MnYyNi41OTljMCw2LjgxLDUuOTk3LDExLjgyMiwxMi44MDcsMTEuODIyczEyLjgwNy01LjAxMiwxMi44MDctMTEuODIyIHYtMjYuNTk5aDkwLjYzNHYyNi41OTljMCw2LjgxLDUuOTk3LDEyLjgwNywxMi44MDcsMTIuODA3YzYuODEsMCwxMi44MDctNS45OTcsMTIuODA3LTEyLjgwN3YtMjYuNTk5aDkuODUydjY2LjAwNWg3Ljg4MSBjMC0zLjI2MSwxLjMtNi4yOTgsMy42NTktOC41NTFjMi4zNTctMi4yNTIsNS40NDItMy40MTIsOC43MjctMy4yNTljNi4wMjgsMC4yNzcsMTAuOTY4LDUuMjE3LDExLjI0NiwxMS4yNDYgQzIzNC45NDYsMjM3LjAwMywyMzMuNzg4LDI0MC4xMDMsMjMxLjUzNiwyNDIuNDZ6IE0yMzQuODA3LDIxOC41ODRjLTMuMDc1LTIuMzI4LTYuNDQ1LTMuOTkxLTExLjgzNC0zLjk5MSBjLTQuMzEsMC04LjQwNywxLjM3Mi0xMS44MDksMy45Mzd2LTY5Ljc2MmMwLTYuNTEsNS4wNjEtMTIuMDMsMTEuMjgyLTEyLjMwNGMzLjI2MS0wLjE0Myw2LjM1OCwxLjAxNSw4LjcxMSwzLjI2NiBjMi4zNTQsMi4yNTIsMy42NSw1LjI4NywzLjY1LDguNTQzVjIxOC41ODR6Ii8+IDwvZz4KDTwvc3ZnPg=="; 1015 1016 1017 prods.push({ 1018 "id":'S-001021T0M8', 1019 "dir":"Service", 1020 "pub":"", 1021 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=3cc353d6-cb03-ef11-a1fd-001dd806e985&Timestamp=638497422216632694", 1022 "nm":`Chair up`, 1023 "desc":`Sales of modular street structures, Metal bistro fencing and Outdoor restaurant furniture. Full Service solution for Street Structure parklets including design, installation, removal and storage of street structures. Elevate your dining experience with our quality products and hassle-free services.`, 1024 "cont":`212-353-0056, [email protected], Chairup.com`, 1025 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1026 "mwbe":"", 1027 "loc": "Manhattan", 1028 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, ", 1029 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1030 "lang": " English, Spanish, " 1031 }); 1032 prods.push({ 1033 "id":'S-001013L9D0', 1034 "dir":"Service", 1035 "pub":"", 1036 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=9de3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422239914023", 1037 "nm":`DTLS Architecture`, 1038 "desc":`We provide design, interiors, lighting, detailing, modular construction, zoning & filing on a wide range of projects and scales.`, 1039 "cont":`We can be reached at:[email protected]`, 1040 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1041 "mwbe":"", 1042 "loc": "Manhattan", 1043 "svctyp": "Fabrication, Site Planning, Architecture/Engineering/Landscape, ", 1044 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1045 "lang": " English, " 1046 }); 1047 prods.push({ 1048 "id":'S-001031Y0P8', 1049 "dir":"Service", 1050 "pub":"", 1051 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f7c1368c-854f-ef11-a317-001dd806e985&Timestamp=638580591999594134", 1052 "nm":`Envisiond Construction Corp.`, 1053 "desc":`We specialize in Design and fabrication, we offer Design, Fabrication, and Installation.we work with Metals and glass. installations of metal structures, and architectural components. Our team designs and builds. We also offer consultation services and help with planning projects. As a one-stop shop, we handle everything from start to finish, making the whole process smooth and efficient.`, 1054 "cont":``, 1055 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1056 "mwbe":"", 1057 "loc": "Queens", 1058 "svctyp": "Fabrication, Installation, Removal, Leasing/Renting, Lighting, Site Planning, ", 1059 "area": "Bronx, Brooklyn, Manhattan, Queens, ", 1060 "lang": " English, Spanish, " 1061 }); 1062 prods.push({ 1063 "id":'S-001019K4W6', 1064 "dir":"Service", 1065 "pub":"", 1066 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2e5b84d8-cb03-ef11-a1fd-001dd8053efe&Timestamp=638549265674232656", 1067 "nm":`FANTÁSTICA`, 1068 "desc":`FANTÁSTICA builds modular street furniture and micro mobility infrastru
1068cture for cities. Highlights include: Fast Casual, a street furniture system for roadway and sidewalk cafes, launched at Times Squareâs Design Lab (TSqDL). Oonee, an award winning network of FREE secure bike parking and charging pods. And Street Seats, the city-wide standard design for the DOTâs Parklet Program.`, 1069 "cont":``, 1070 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1071 "mwbe":"City_M/WBE, ", 1072 "loc": "Manhattan", 1073 "svctyp": "Fabrication, Installation, Removal, Storage, Lighting, Site Planning, ", 1074 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1075 "lang": " English, Spanish, Other, " 1076 }); 1077 prods.push({ 1078 "id":'S-001005C5M9', 1079 "dir":"Service", 1080 "pub":"", 1081 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=9ee3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422179960465", 1082 "nm":`Five star awnings`, 1083 "desc":`We manufacture awnings for both roadway dining structures and sidewalk cafes , cafe panels (barriers) . Additionally, we have a storage facility to store enclosures/set ups.`, 1084 "cont":`[email protected] for Laurie or Joe`, 1085 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1086 "mwbe":"", 1087 "loc": "Queens", 1088 "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ", 1089 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1090 "lang": " English, Spanish, " 1091 }); 1092 prods.push({ 1093 "id":'S-001029Z4Z3', 1094 "dir":"Service", 1095 "pub":"", 1096 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=432ee4ff-0733-ef11-8409-001dd8051c8b&Timestamp=638549265554075190", 1097 "nm":`J.J.W.I. Inc`, 1098 "desc":`Demolition, interior renovation, mold remediation, lead abatement.Drywall, carpentry, flooring, cabinetry.`, 1099 "cont":``, 1100 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1101 "mwbe":"City_M/WBE, ", 1102 "loc": "Queens", 1103 "svctyp": "Installation, Removal, ", 1104 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1105 "lang": " English, Spanish, " 1106 }); 1107 prods.push({ 1108 "id":'S-001024K9F5', 1109 "dir":"Service", 1110 "pub":"", 1111 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f727bad8-8808-ef11-9f89-001dd8053efe&Timestamp=638502555551561833", 1112 "nm":`Martel Design & Fabrication LLC.`, 1113 "desc":`Custom Design & Fabrication of Metal construction for residential and commercial projects.`, 1114 "cont":`Email: wmartel@martelfabPhone: 618-963-4780`, 1115 "stype": "Roadway Cafe, ", 1116 "mwbe":"", 1117 "loc": "Brooklyn", 1118 "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ", 1119 "area": "Brooklyn, Manhattan, ", 1120 "lang": " English, " 1121 }); 1122 prods.push({ 1123 "id":'S-001028Q6B0', 1124 "dir":"Service", 1125 "pub":"", 1126 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=8c12ee06-892a-ef11-840a-001dd806e985&Timestamp=638539921960576598", 1127 "nm":`MODSTREET`, 1128 "desc":`We provide completely modular, steel products for bistro style sidewalk cafes or modular parklets for roadway cafes. Our products can assemble and disassemble in minutes and withstand a collision up to 20 mph. Features like removable decking, powder coated steal (making it is maintenance free), and many customization options available. This product will last 25-30 years and look the same.`, 1129 "cont":`Jared Greenspan, ChairUP, 212-353-0056, [email protected]`, 1130 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1131 "mwbe":"DBE, ", 1132 "loc": "Outside NY State", 1133 "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ", 1134 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1135 "lang": " English, " 1136 }); 1137 prods.push({ 1138 "id":'S-001001B4K2', 1139 "dir":"Service", 1140 "pub":"", 1141 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=8fe3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=6384974222274
114160999", 1142 "nm":`Morris Moving`, 1143 "desc":`We are happy to support and fulfill your need to remove any and all outdoor structures, store at our climate controlled facility, and then move back when ready.`, 1144 "cont":`Jacob Morris 4th - gerenation President`, 1145 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1146 "mwbe":"", 1147 "loc": "NY State", 1148 "svctyp": "Removal, Storage, ", 1149 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1150 "lang": " English, Spanish, " 1151 }); 1152 prods.push({ 1153 "id":'S-001007N6S4', 1154 "dir":"Service", 1155 "pub":"", 1156 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=90e3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422223351471", 1157 "nm":`Moving Right Along`, 1158 "desc":`Moving Right Along is a licensed and insured moving and storage firm. We can handle the safe transportation of both the furniture and café structures. We would complete a detailed inventory of the items picked up, stored and returned when the cafes open back up for the season. Our facility is a 35,000 sq. foot facility that is climate controlled, under 24 hour surveillance and password protected.`, 1159 "cont":`Moving Right Along - 718.738.2468`, 1160 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1161 "mwbe":"City_M/WBE, State_M/WBE, ", 1162 "loc": "Queens", 1163 "svctyp": "Installation, Removal, Storage, ", 1164 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1165 "lang": " English, Spanish, " 1166 }); 1167 prods.push({ 1168 "id":'S-001008Q3V6', 1169 "dir":"Service", 1170 "pub":"", 1171 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=9ce3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422231164044", 1172 "nm":`ootBox, Inc.`, 1173 "desc":`All-inclusive premium roadway cafes made from upcycled shipping containers. Our services start at $1000/month and include delivery, pickup and off-season upkeep and maintenance every year. Zero set up. Zero logistics. And zero head-aches.`, 1174 "cont":`Allison [email protected]`, 1175 "stype": "Roadway Cafe, ", 1176 "mwbe":"", 1177 "loc": "Outside NY State", 1178 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, Architecture/Engineering/Landscape, ", 1179 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1180 "lang": " English, Other, " 1181 }); 1182 prods.push({ 1183 "id":'S-001018R8G2', 1184 "dir":"Service", 1185 "pub":"", 1186 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2e62f52c-5a02-ef11-a1fe-001dd8053efe&Timestamp=638506817955796546", 1187 "nm":`Out / Open Works`, 1188 "desc":`Out / Open Works offers an effective one stop solution. Our partners have extensive expertise creating beautiful and flexible outdoor structures in the public and private spaces of NYC. Services include: free consultation, site survey, customized design system, filing assistance with regulatory agencies, fabrication, installation, lighting, maintenance, removal and off-season storage.`, 1189 "cont":`Out / Open WorksTel: (347) 463-1240Tel: (917) 697-7275 Email: [email protected] Web: outopenworks.com`, 1190 "stype": "Roadway Cafe, ", 1191 "mwbe":"City_M/WBE, State_M/WBE, ", 1192 "loc": "Queens", 1193 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ", 1194 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1195 "lang": " English, Spanish, Korean, " 1196 }); 1197 prods.push({ 1198 "id":'S-001026B3W0', 1199 "dir":"Service", 1200 "pub":"", 1201 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=1e26b8d8-580d-ef11-9f89-001dd806e985&Timestamp=638507874790955673", 1202 "nm":`Paul Signs`, 1203 "desc":`Design, manufacture, install and service all types of signs and awnings, roadway cafe, barricades,sidewalk cafe's and vestibules and structures.`, 1204 "cont":`Paul Signs, [email protected]`, 1205 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1206 "mwbe":"", 1207 "loc": "Brooklyn", 1208 "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ", 1209 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1210 "lang": " English, Spanish, Russian, " 1211 });
1212 prods.push({ 1213 "id":'S-001014Z7Y4', 1214 "dir":"Service", 1215 "pub":"", 1216 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=552496c4-cbfc-ee11-a1fe-001dd8053efe&Timestamp=638507077717237027", 1217 "nm":`re-ply`, 1218 "desc":`Re-ply offers modular outdoor dining setups for NYC restaurants using recycled and recyclable materials and provides full-service assembly, maintenance and winter storage, with a convenient monthly leasing option.We recently launched re-ply 2.0 - a solution to NYC DOTâs new permanent outdoor dining program, kicking off in Spring 2024. Visit our website for more information.`, 1219 "cont":``, 1220 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1221 "mwbe":"", 1222 "loc": "Manhattan", 1223 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, ", 1224 "area": "Bronx, Brooklyn, Manhattan, Queens, ", 1225 "lang": " English, " 1226 }); 1227 prods.push({ 1228 "id":'S-001025Z8V4', 1229 "dir":"Service", 1230 "pub":"", 1231 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=bb0c063b-b40b-ef11-9f89-001dd8053efe&Timestamp=638506022496233869", 1232 "nm":`ShowFab`, 1233 "desc":`As a vertically integrated company with over 90 dedicated team members, we combine unparalleled craftsmanship and state-of-the-art technology to deliver seamless service, exceptional quality, and unmatched value.Located in New Jersey, our 100,000 square-foot facility is home to a collection of advanced equipment, which allows us to have full control over every step of the manufacturing process.`, 1234 "cont":``, 1235 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1236 "mwbe":"", 1237 "loc": "Outside NY State", 1238 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ", 1239 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1240 "lang": " English, Spanish, Chinese, " 1241 }); 1242 prods.push({ 1243 "id":'S-001030K8M0', 1244 "dir":"Service", 1245 "pub":"", 1246 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=6b2281ff-0733-ef11-8409-001dd8097e0d&Timestamp=638549265788145194", 1247 "nm":`Sign Expo`, 1248 "desc":`Fabrication and installation of both sidewalk partitions and roadway cafes`, 1249 "cont":``, 1250 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1251 "mwbe":"", 1252 "loc": "Manhattan", 1253 "svctyp": "Fabrication, Installation, Removal, Storage, Site Planning, ", 1254 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1255 "lang": " English, Spanish, Chinese, " 1256 }); 1257 prods.push({ 1258 "id":'S-001009D5V1', 1259 "dir":"Service", 1260 "pub":"", 1261 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=a6e3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422205742011", 1262 "nm":`Soho Sheds`, 1263 "desc":`We design, build, install, transport and store Roadway Dining structures, compliant with DOT regulations. We construct your units from recycled shipping containers keeping fabrication, transport and storage costs low for NYC restaurants and provide free site plans with purchase or lease.`, 1264 "cont":``, 1265 "stype": "Roadway Cafe, ", 1266 "mwbe":"", 1267 "loc": "Manhattan", 1268 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, Architecture/Engineering/Landscape, ", 1269 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1270 "lang": " English, Spanish, " 1271 }); 1272 prods.push({ 1273 "id":'S-001022V4T8', 1274 "dir":"Service", 1275 "pub":"", 1276 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f4467887-e103-ef11-a1fd-001dd806e985&Timestamp=638497422220429678", 1277 "nm":`strEATery`, 1278 "desc":`We provide a modular, reusable, roadway cafe that is safe, accessible, clean, and easy to assemble & breakdown for storage. Additionally, we offer a furniture leasing option for business owners. For current restaurants with an open roadway cafe, we offer demolition and removal of existing structures.`, 1279 "cont":``, 1280 "stype": "Roadway Cafe, ", 1281 "mwbe":"", 1282 "loc": "Manhattan", 1283 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ", 1284 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1285 "lang": " English, Italian, " 1286 });
1287 prods.push({ 1288 "id":'S-001020M7L3', 1289 "dir":"Service", 1290 "pub":"", 1291 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2f5b84d8-cb03-ef11-a1fd-001dd8053efe&Timestamp=638497422209601425", 1292 "nm":`STREETSEATS`, 1293 "desc":`STREETSEATS⢠was created to provide restaurateurs and diners with a safe, clean, stylish, and cost-effective solution to New York Cityâs ever-evolving urban al fresco culture. We design, build, and manage outdoor dining systems for New York City restaurants. We offer affordable, standardized roadway cafe designs customized to your brand aesthetic, and offer fully custom options.`, 1294 "cont":`âª(845) 445-8956â¬[email protected]`, 1295 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1296 "mwbe":"", 1297 "loc": "NY State", 1298 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Lighting, Site Planning, ", 1299 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1300 "lang": " English, Spanish, " 1301 }); 1302 prods.push({ 1303 "id":'S-001023Q8L7', 1304 "dir":"Service", 1305 "pub":"", 1306 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=f827bad8-8808-ef11-9f89-001dd8053efe&Timestamp=638549266036427795", 1307 "nm":`Sure Iron Works`, 1308 "desc":`Sure Iron Works provides creative and practical steel framed outdoor cafes with fixed roof systems. Our products go through extensive development and meet or exceed DOT requirements for barricade/protections and modular construction. Services include set-up mobilizations and removals, demobilization & storage.`, 1309 "cont":``, 1310 "stype": "Roadway Cafe, ", 1311 "mwbe":"", 1312 "loc": "Brooklyn", 1313 "svctyp": "Fabrication, Installation, Removal, Storage, Leasing/Renting, Site Planning, ", 1314 "area": "Brooklyn, Manhattan, Queens, ", 1315 "lang": " English, " 1316 }); 1317 prods.push({ 1318 "id":'S-001017D7J5', 1319 "dir":"Service", 1320 "pub":"", 1321 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=92e3f5c1-cbfc-ee11-a1fe-001dd806e985&Timestamp=638497422243507871", 1322 "nm":`Town & Gardens, LTD.`, 1323 "desc":`We are a landscape design-build company with a team of professionals including landscape designers, horticulturists, arborists, as well as irrigation and lighting specialists.Our approach allows us to see projects through each stage - from the initial conceptual package to the careful installation of garden elements, to ongoing care and maintenance in the years after the garden is installed.`, 1324 "cont":``, 1325 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1326 "mwbe":"", 1327 "loc": "Queens", 1328 "svctyp": "Fabrication, Installation, Removal, Lighting, Site Planning, ", 1329 "area": "Bronx, Brooklyn, Manhattan, Queens, ", 1330 "lang": " English, Spanish, " 1331 }); 1332 prods.push({ 1333 "id":'S-001032D2F6', 1334 "dir":"Service", 1335 "pub":"", 1336 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=0b8bd8d6-4166-ef11-bfe3-001dd83059b4&Timestamp=638605604988281509", 1337 "nm":`Wenger Corporation`, 1338 "desc":`StageTek by Wenger has been the industry standard for removable platform decking over the past decade. By introducing weather-resistant robust aluminum outdoor platforms, StageTek retains its renowned features, including exceptional strength, versatility, and ease of setup, while effectively tackling challenges presented by outdoor restaurant dining, with an industry-leading ten-year warranty.`, 1339 "cont":``, 1340 "stype": "Roadway Cafe, ", 1341 "mwbe":"", 1342 "loc": "Outside NY State", 1343 "svctyp": "Fabrication, Installation, Site Planning, ", 1344 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1345 "lang": " English, " 1346 }); 1347 prods.push({ 1348 "id":'S-001027L4R9', 1349 "dir":"Service", 1350 "pub":"", 1351 "img":"/Image/download.aspx?Entity=appdev_company&Attribute=appdev_logo&Id=2326b8d8-580d-ef11-9f89-001dd806e985&Timestamp=638507874701104046", 1352 "nm":`WXY Architecture + Urban Design`, 1353 "desc":`WXY provides design services in close collaboration/coordination with fabricators and installer
1353s. We have deep knowledge of the permanent program regulations and best practices. Our work has been recognized for its dedication to engaging, improving, and honoring public space. We design in conversation with the environment and commit to solutions that forward a healthy and sustainable future.`, 1354 "cont":`General office contact: [email protected] 219 1953`, 1355 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1356 "mwbe":"City_M/WBE, State_M/WBE, ", 1357 "loc": "Manhattan", 1358 "svctyp": "Site Planning, Architecture/Engineering/Landscape, ", 1359 "area": "Bronx, Brooklyn, Manhattan, Queens, Staten Island, ", 1360 "lang": " English, Spanish, French, " 1361 }); 1362 1363 1364 prods.push({ 1365 "id":'PD-001000X8S5', 1366 "dir": "Design", 1367 "pub":"DOT", 1368 "nm":`Mid Block (Warique)`, 1369 "cat":"Setup", 1370 "sub":"", 1371 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=b70e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729395820052", 1372 "desc":`The design team selected a contain barrier at the base to provide for compact off-season storage. The rigid canopy is built with lightweight framed rigid polycarbonate boards, bolted to the structural frame. A ceiling fan was included to the design for added summer comfort and electrical system is hardwired back to the restaurant. On the street side, a wood lattice screening provides privacy and visually shields guests from vehicles, while a long bench maximizes seating.`, 1373 "stype": "Roadway Cafe, ", 1374 "mwbe":"", 1375 "loc": "", 1376 "mat": "", 1377 "sus": "" 1378 }); 1379 prods.push({ 1380 "id":'PD-001001S9K0', 1381 "dir": "Design", 1382 "pub":"DOT", 1383 "nm":`Corner Setup (Sunday To Sunday)`, 1384 "cat":"Setup", 1385 "sub":"", 1386 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=6f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729382851252", 1387 "desc":`The design showcases a âContainâ barrier where rigid water-filled containers are housed within a modular metal frame that interconnects with the other barrier units. The barrier also has rigid angled corners for additional protection and seamlessly connects with the flooring system and overhead covering. The floor employs a modular substructure with leveling feet and off-the-shelf 2âx2â deck tiles that can be easily removed for cleaning purposes. The flooring also includes a hinged diamond-plated connector plate to allow for ADA-compliant access from the sidew
1387alk to the setup. The overhead covering is a tensile fabric system supported by 4â wood posts. Lastly, the prototype incorporates battery-powered string lighting and table lights and a custom built-in banquet seat that doubles as storage.`, 1388 "stype": "Roadway Cafe, ", 1389 "mwbe":"", 1390 "loc": "", 1391 "mat": "", 1392 "sus": "" 1393 }); 1394 prods.push({ 1395 "id":'PD-001007D5L9', 1396 "dir": "Design", 1397 "pub":"DOT", 1398 "nm":`Floating Parking Lane (Bodrum)`, 1399 "cat":"Setup", 1400 "sub":"", 1401 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=700458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729410507618", 1402 "desc":`The design team selected a standard water barrier with custom cladding to provide a simple frame for the dining space and consistent clear-sealed Marine Grade Plywood for the inside barrier surface and floor. Off the shelf barriers are set on leveling saddles to fully integrate the barrier and floor system. For protection along the bike lane, a series of panels and ropes are used to channel patrons to a single access point. The vestibule canopy matches the sidewalk setup and clear screening panels and planting were integrated to help the dining experience.`, 1403 "stype": "Roadway Cafe, ", 1404 "mwbe":"", 1405 "loc": "", 1406 "mat": "", 1407 "sus": "" 1408 }); 1409 prods.push({ 1410 "id":'PD-001014M5W7', 1411 "dir": "Design", 1412 "pub":"DOT", 1413 "nm":`Steep Street (Dawas)`, 1414 "cat":"Setup", 1415 "sub":"", 1416 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c50e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729427390464", 1417 "desc":`The design team tested a rigid metal frame construction, integrating the barrier and floor. The structure is fully clad in Recycled Plastic Lumber panels and boards. A series of planters line the edge with a lightweight, retractable water-repelling canopy for sun and rain. The colors relate to the restaurants' interior color palette. On the high end of the slope, a removeable temporary ramp can be easily deployed and stored on the setup itself. Once disassembled for off season, the setup is designed to fit into the restaurant basement.`, 1418 "stype": "Roadway Cafe, ", 1419 "mwbe":"", 1420 "loc": "", 1421 "mat": "", 1422 "sus": "" 1423 }); 1424 prods.push({ 1425 "id":'PD-001002N8H5', 1426 "dir": "Design", 1427 "pub":"DOT", 1428 "nm":`Aluminum Frame Contain Barrier`, 1429 "cat":"Barrier", 1430 "sub":"Water Filled Barrier", 1431 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=710458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729433788940", 1432 "desc":`- Prefabricated, Modular Aluminum Frame provides housing for rigid water containers (cavity dimension: 1'8 L x 1'W x 2'7 H ) - Marine Grade Plywood cladding and sheating, easily removable - Barrier modules are bolted to each other to increase crash resistance - Rigid angled corner modules provide additional protection - Seamlessly connects with the flooring system - Provides anchoring to the canopy structure`, 1433 "stype": "Roadway Cafe, ", 1434 "mwbe":"", 1435 "loc": "", 1436 "mat": "", 1437 "sus": "" 1438 }); 1439 prods.push({ 1440 "id":'PD-001003Z2H0', 1441 "dir": "Design", 1442 "pub":"DOT", 1443 "nm":`Metal Floor Structure with Lay-in Wood Tiles`, 1444 "cat":"Floor", 1445 "sub":"Framed Support", 1446 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=720458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729439734271", 1447 "desc":`- Pre-fabricated rectangular aluminum frame - Low Profile - (6) leveling feet allow to adjust height to match curb and accomodate street crown slope - Compatible with off the shelf 2' wood decking tiles - Floor structure connected to barrier for increased stiffness - Custom tile allows for connection to canopy posts - Additional leveling feet can be attached on the side facing sidewalk curb to improve structural stability of the entire dining setup`, 1448 "stype": "Roadway Cafe, ", 1449 "mwbe":"", 1450 "loc": "", 1451 "mat": "", 1452 "sus": "" 1453 });
1454 prods.push({ 1455 "id":'PD-001005H3N0', 1456 "dir": "Design", 1457 "pub":"DOT", 1458 "nm":`Wood Post and Tensile Canopy System`, 1459 "cat":"Overhead Covering", 1460 "sub":"Fabric Canopy", 1461 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=b80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729447695329", 1462 "desc":`- Lightweight overhead canopy - Marine fabric / Awning - Repells water and offers UV protection - 4 wood posts, fastened to barrier units or floor structure`, 1463 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1464 "mwbe":"", 1465 "loc": "", 1466 "mat": "", 1467 "sus": "" 1468 }); 1469 prods.push({ 1470 "id":'PD-001006Z2K9', 1471 "dir": "Product", 1472 "pub":"DOT", 1473 "nm":`Foldable Chair - Fermob Bistro`, 1474 "cat":"Furnishing", 1475 "sub":"Chairs", 1476 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=bc0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729454257838", 1477 "desc":`FERMOB 010114 Bistro Metal Chair, Nutmeg - Reinterpretation of classic, iconic bistro garden, terrace and public space furniture - Suitable for interior and exterior - Foldable for easy storage when not in use - Steel frame with baked on powder coated finish - Anti-UV Powder Coating - Multiple colors available`, 1478 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1479 "mwbe":"", 1480 "loc": "", 1481 "mat": "", 1482 "sus": "" 1483 }); 1484 prods.push({ 1485 "id":'PD-001009Z8T0', 1486 "dir": "Design", 1487 "pub":"DOT", 1488 "nm":`Custom Plywood Bench Storage`, 1489 "cat":"Furnishing", 1490 "sub":"Benches", 1491 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=780458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729457539012", 1492 "desc":`- Painted Marine Grade Plywood enclosure - Hinged seating surface for easy access`, 1493 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1494 "mwbe":"", 1495 "loc": "", 1496 "mat": "", 1497 "sus": "" 1498 }); 1499 prods.push({ 1500 "id":'PD-001016G0J0', 1501 "dir": "Product", 1502 "pub":"DOT", 1503 "nm":`Foldable 24 Round Table - Fermob Bistro`, 1504 "cat":"Furnishing", 1505 "sub":"Tables", 1506 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=ca0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729450828052", 1507 "desc":`FERMOB 024514 Bistro 24 Round Table, Nutmeg - Reinterpretation of classic, iconic bistro garden, terrace and public space furniture - Suitable for interior and exterior - Foldable for easy storage when not in use - Steel frame with baked on powder coated finish - Anti-UV Powder Coating - Multiple colors available`, 1508 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1509 "mwbe":"", 1510 "loc": "", 1511 "mat": "", 1512 "sus": "" 1513 }); 1514 prods.push({ 1515 "id":'PD-001029F5C4', 1516 "dir": "Product", 1517 "pub":"DOT", 1518 "nm":`Festoon Lighting - Habitat Cherry Bubbls`, 1519 "cat":"Electrical", 1520 "sub":"Battery Power", 1521 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729460671870", 1522 "desc":`Festoon Lighting - Can be easily hung from canopy structure - Mouth Blown Crystal Galss, Aluminum die-casting, powder coated - LED, 2700K, Dimmable - Includes discreet Power Pack (provides approx. 10 hrs at 100% at max dimming setting)`, 1523 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1524 "mwbe":"", 1525 "loc": "", 1526 "mat": "", 1527 "sus": "" 1528 }); 1529 prods.push({ 1530 "id":'PD-001029F5C4', 1531 "dir": "Product", 1532 "pub":"DOT", 1533 "nm":`Festoon Lighting - Habitat Cherry Bubbls`, 1534 "cat":"Electrical", 1535 "sub":"Lighting", 1536 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729460671870", 1537 "desc":`Festoon Lighting - Can be easily hung from canopy structure - Mouth Blown Crystal Galss, Aluminum die-casting, powder coated - LED, 2700K, Dimmable - Includes discreet Power Pack (provides approx. 10 hrs at 100% at max dimming setting)`, 1538 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1539 "mwbe":"", 1540 "loc": "", 1541 "mat": "", 1542 "sus": "" 1543 });
1544 prods.push({ 1545 "id":'PD-001029F5C4', 1546 "dir": "Product", 1547 "pub":"DOT", 1548 "nm":`Festoon Lighting - Habitat Cherry Bubbls`, 1549 "cat":"Electrical", 1550 "sub":"Pendants", 1551 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d80e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729460671870", 1552 "desc":`Festoon Lighting - Can be easily hung from canopy structure - Mouth Blown Crystal Galss, Aluminum die-casting, powder coated - LED, 2700K, Dimmable - Includes discreet Power Pack (provides approx. 10 hrs at 100% at max dimming setting)`, 1553 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1554 "mwbe":"", 1555 "loc": "", 1556 "mat": "", 1557 "sus": "" 1558 }); 1559 prods.push({ 1560 "id":'PD-001035R3K4', 1561 "dir": "Product", 1562 "pub":"DOT", 1563 "nm":`Table Lamp - LUMENS FollowMe`, 1564 "cat":"Electrical", 1565 "sub":"Battery Power", 1566 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8e0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729463796894", 1567 "desc":`LUMENS - FollowMe Portable Table Lamp - Petite, portable rechargeable lamp - Built-in battery with USB port charging - 5 hours battery life at peak power - Dimmable, touch dimmer - Natural oak veneer handle, polycarbonate base, opal polycarbonate shade`, 1568 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1569 "mwbe":"", 1570 "loc": "", 1571 "mat": "", 1572 "sus": "" 1573 }); 1574 prods.push({ 1575 "id":'PD-001035R3K4', 1576 "dir": "Product", 1577 "pub":"DOT", 1578 "nm":`Table Lamp - LUMENS FollowMe`, 1579 "cat":"Electrical", 1580 "sub":"Lighting", 1581 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8e0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729463796894", 1582 "desc":`LUMENS - FollowMe Portable Table Lamp - Petite, portable rechargeable lamp - Built-in battery with USB port charging - 5 hours battery life at peak power - Dimmable, touch dimmer - Natural oak veneer handle, polycarbonate base, opal polycarbonate shade`, 1583 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1584 "mwbe":"", 1585 "loc": "", 1586 "mat": "", 1587 "sus": "" 1588 }); 1589 prods.push({ 1590 "id":'PD-001035R3K4', 1591 "dir": "Product", 1592 "pub":"DOT", 1593 "nm":`Table Lamp - LUMENS FollowMe`, 1594 "cat":"Electrical", 1595 "sub":"Table Lights", 1596 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8e0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729463796894", 1597 "desc":`LUMENS - FollowMe Portable Table Lamp - Petite, portable rechargeable lamp - Built-in battery with USB port charging - 5 hours battery life at peak power - Dimmable, touch dimmer - Natural oak veneer handle, polycarbonate base, opal polycarbonate shade`, 1598 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1599 "mwbe":"", 1600 "loc": "", 1601 "mat": "", 1602 "sus": "" 1603 }); 1604 prods.push({ 1605 "id":'PD-001008S8J0', 1606 "dir": "Product", 1607 "pub":"DOT", 1608 "nm":`Foldable Chair - Alessi Piana`, 1609 "cat":"Furnishing", 1610 "sub":"Chairs", 1611 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c20e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729496140836", 1612 "desc":`-Foldable and stackable chair, available in multiple colors -Fiberglass material`, 1613 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1614 "mwbe":"", 1615 "loc": "", 1616 "mat": "", 1617 "sus": "" 1618 }); 1619 prods.push({ 1620 "id":'PD-001012S9K8', 1621 "dir": "Product", 1622 "pub":"DOT", 1623 "nm":`Folding 24 Round Table - Compamia Sky`, 1624 "cat":"Furnishing", 1625 "sub":"Tables", 1626 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c30e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729490046988", 1627 "desc":`-Polypropylene resin -Foldable top -For indoor and outdoor use`, 1628 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1629 "mwbe":"", 1630 "loc": "", 1631 "mat": "", 1632 "sus": "Recyclable, " 1633 });
1634 prods.push({ 1635 "id":'PD-001013N8M3', 1636 "dir": "Product", 1637 "pub":"DOT", 1638 "nm":`Pendant Light - RBW Hoist LED`, 1639 "cat":"Electrical", 1640 "sub":"Hardwired", 1641 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729499257960", 1642 "desc":`-Opal blown glass, spun steel -Suitable for Wet Locations IP65 -Delivered Lumens 658 lm -Power Consumption 9W -Luminous Efficacy 74.9 lm/W -Standard 192 black cord with a plug`, 1643 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1644 "mwbe":"", 1645 "loc": "", 1646 "mat": "", 1647 "sus": "" 1648 }); 1649 prods.push({ 1650 "id":'PD-001013N8M3', 1651 "dir": "Product", 1652 "pub":"DOT", 1653 "nm":`Pendant Light - RBW Hoist LED`, 1654 "cat":"Electrical", 1655 "sub":"Pendants", 1656 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=c40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729499257960", 1657 "desc":`-Opal blown glass, spun steel -Suitable for Wet Locations IP65 -Delivered Lumens 658 lm -Power Consumption 9W -Luminous Efficacy 74.9 lm/W -Standard 192 black cord with a plug`, 1658 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1659 "mwbe":"", 1660 "loc": "", 1661 "mat": "", 1662 "sus": "" 1663 }); 1664 prods.push({ 1665 "id":'PD-001015K3H4', 1666 "dir": "Product", 1667 "pub":"DOT", 1668 "nm":`Rechargeable LED Table Lamp - Marset Sips`, 1669 "cat":"Electrical", 1670 "sub":"Battery Power", 1671 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729503328336", 1672 "desc":`-3-step dimming with memory function -Battery life time: 5 hours in full power, 10 hours in half power, 20 hours in a quarter power -Charging time: 10 hours -USB cable included, power adapter not included -Use an adapter with the following specifications. Input: 5V DC 1.5 A -Material: Polycarbonate, Aluminium -Dimmable: Yes`, 1673 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1674 "mwbe":"", 1675 "loc": "", 1676 "mat": "", 1677 "sus": "" 1678 }); 1679 prods.push({ 1680 "id":'PD-001015K3H4', 1681 "dir": "Product", 1682 "pub":"DOT", 1683 "nm":`Rechargeable LED Table Lamp - Marset Sips`, 1684 "cat":"Electrical", 1685 "sub":"Table Lights", 1686 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729503328336", 1687 "desc":`-3-step dimming with memory function -Battery life time: 5 hours in full power, 10 hours in half power, 20 hours in a quarter power -Charging time: 10 hours -USB cable included, power adapter not included -Use an adapter with the following specifications. Input: 5V DC 1.5 A -Material: Polycarbonate, Aluminium -Dimmable: Yes`, 1688 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1689 "mwbe":"", 1690 "loc": "", 1691 "mat": "", 1692 "sus": "" 1693 }); 1694 prods.push({ 1695 "id":'PD-001017C6Q4', 1696 "dir": "Design", 1697 "pub":"DOT", 1698 "nm":`Wood Screen`, 1699 "cat":"Screening", 1700 "sub":"Screening", 1701 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=cb0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729487078232", 1702 "desc":`- Custom painted wood lattice panel - Provides privacy to diners - Attached vertical structure`, 1703 "stype": "Roadway Cafe, ", 1704 "mwbe":"", 1705 "loc": "", 1706 "mat": "", 1707 "sus": "" 1708 }); 1709 prods.push({ 1710 "id":'PD-001019R8D8', 1711 "dir": "Design", 1712 "pub":"DOT", 1713 "nm":`Metal Floor Structure with Hinged Wood Panels`, 1714 "cat":"Floor", 1715 "sub":"Flooring Panels", 1716 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729475820343", 1717 "desc":`- Pre-fabricated rectangular aluminum frame substructure - Hinged decking tiles panels for easy cleaning - Leveling feet allow to adjust height to match curb and accomodate street crown slope - Floor structure connected to barrier for increased stiffness`, 1718 "stype": "Roadway Cafe, ", 1719 "mwbe":"", 1720 "loc": "", 1721 "mat": "", 1722 "sus": "" 1723 });
1724 prods.push({ 1725 "id":'PD-001019R8D8', 1726 "dir": "Design", 1727 "pub":"DOT", 1728 "nm":`Metal Floor Structure with Hinged Wood Panels`, 1729 "cat":"Floor", 1730 "sub":"Framed Support", 1731 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=7f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729475820343", 1732 "desc":`- Pre-fabricated rectangular aluminum frame substructure - Hinged decking tiles panels for easy cleaning - Leveling feet allow to adjust height to match curb and accomodate street crown slope - Floor structure connected to barrier for increased stiffness`, 1733 "stype": "Roadway Cafe, ", 1734 "mwbe":"", 1735 "loc": "", 1736 "mat": "", 1737 "sus": "" 1738 }); 1739 prods.push({ 1740 "id":'PD-001023N5S7', 1741 "dir": "Design", 1742 "pub":"DOT", 1743 "nm":`Expandable Aluminum Frame Barrier`, 1744 "cat":"Barrier", 1745 "sub":"", 1746 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=840458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729470203150", 1747 "desc":`- Prefabricated, modular aluminum frame - provides rigid crash resistant for collapsible water containers - Each Barrier Module is made of two welded parts sliding into Each other for easier storage - Marine Grade Plywood cladding and sheating - Barrier modules are bolted to Each other to increase crash resistance - rigid angled corner modules provide additional protection - Seamlessly connects with the flooring system - provides anchoring to the canopy structure`, 1748 "stype": "Roadway Cafe, ", 1749 "mwbe":"", 1750 "loc": "", 1751 "mat": "", 1752 "sus": "" 1753 }); 1754 prods.push({ 1755 "id":'PD-001026H7P0', 1756 "dir": "Product", 1757 "pub":"DOT", 1758 "nm":`Ceiling Fan - Hunter Cassius`, 1759 "cat":"Electrical", 1760 "sub":"Cooling", 1761 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d60e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729493007894", 1762 "desc":`Hunter Cassius Fan -Damp-rated ceiling fans are a great option for covered patios, screened porches, and other areas that are not directly exposed to rain, snow, water, or moisture -No light kit or bulbs included -Pull chains included`, 1763 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1764 "mwbe":"", 1765 "loc": "", 1766 "mat": "", 1767 "sus": "" 1768 }); 1769 prods.push({ 1770 "id":'PD-001028F9P9', 1771 "dir": "Design", 1772 "pub":"DOT", 1773 "nm":`Metal Post and Rigid Panel System`, 1774 "cat":"Overhead Covering", 1775 "sub":"Rigid Panel Systems", 1776 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=880458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729482382876", 1777 "desc":`- Aluminum framing - Supporting structure bolted to barrier units - Lightweight aluminum framed rigid polycarbonate boards covering for easy assembly / disassembly and storage`, 1778 "stype": "Roadway Cafe, ", 1779 "mwbe":"", 1780 "loc": "", 1781 "mat": "", 1782 "sus": "" 1783 }); 1784 prods.push({ 1785 "id":'PD-001004K8C9', 1786 "dir": "Design", 1787 "pub":"DOT", 1788 "nm":`Plywood Clad Water filled Barrier`, 1789 "cat":"Barrier", 1790 "sub":"Water Filled Barrier", 1791 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=bb0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729514265936", 1792 "desc":`-Off the shelf water barrier product - Marine grade plywood cladding - Includes large planter - Aluminum framed leveling saddles connects to floor units for added stability`, 1793 "stype": "Roadway Cafe, ", 1794 "mwbe":"", 1795 "loc": "", 1796 "mat": "", 1797 "sus": "" 1798 }); 1799 prods.push({ 1800 "id":'PD-001010P3K2', 1801 "dir": "Design", 1802 "pub":"DOT", 1803 "nm":`Metal Floor Structure with Plywood Flooring Sheets`, 1804 "cat":"Floor", 1805 "sub":"Flooring Panels", 1806 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=770458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729521601787", 1807 "desc":`-Aluminum Frame with Marine Grade Plywood panels hinged for easy access and cleaning -Floor structure is bolted to the barrier's leveling saddles`, 1808 "stype": "Roadway Cafe, ", 1809 "mwbe":"", 1810 "loc": "", 1811 "mat": "", 1812 "sus": "" 1813 });
1814 prods.push({ 1815 "id":'PD-001010P3K2', 1816 "dir": "Design", 1817 "pub":"DOT", 1818 "nm":`Metal Floor Structure with Plywood Flooring Sheets`, 1819 "cat":"Floor", 1820 "sub":"Framed Support", 1821 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=770458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729521601787", 1822 "desc":`-Aluminum Frame with Marine Grade Plywood panels hinged for easy access and cleaning -Floor structure is bolted to the barrier's leveling saddles`, 1823 "stype": "Roadway Cafe, ", 1824 "mwbe":"", 1825 "loc": "", 1826 "mat": "", 1827 "sus": "" 1828 }); 1829 prods.push({ 1830 "id":'PD-001018D6W9', 1831 "dir": "Design", 1832 "pub":"DOT", 1833 "nm":`Vestibule Fabric Panels System`, 1834 "cat":"Overhead Covering", 1835 "sub":"Awning System", 1836 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=ce0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729527070580", 1837 "desc":`-Aluminum posts are fastened and plumb to the floor structure -canopy and screenings are made of lightweight vestibule fabric panels`, 1838 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1839 "mwbe":"", 1840 "loc": "", 1841 "mat": "", 1842 "sus": "" 1843 }); 1844 prods.push({ 1845 "id":'PD-001020M6H5', 1846 "dir": "Product", 1847 "pub":"DOT", 1848 "nm":`Water-filled Plastic Jersey Barrier`, 1849 "cat":"Barrier", 1850 "sub":"Water Filled Barrier", 1851 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=800458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729546445637", 1852 "desc":`- Available in multiple colors - These barriers can interlock with each other. - UV-Resistant Polyethylene`, 1853 "stype": "Roadway Cafe, ", 1854 "mwbe":"", 1855 "loc": "", 1856 "mat": "", 1857 "sus": "" 1858 }); 1859 prods.push({ 1860 "id":'PD-001021C7V2', 1861 "dir": "Product", 1862 "pub":"DOT", 1863 "nm":`Generator - Jackery Solar`, 1864 "cat":"Electrical", 1865 "sub":"Solar Power", 1866 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=810458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729533476804", 1867 "desc":`Jackery Solar Generator 3000 Pro -Large Capacity: 3024Wh that can power up to 99% of outdoor appliances -Ultra Fast Charging: Fully solar charged in 3-4 hours and wall charged in 2.4 hours -Easily Accessible: Smart App Control -Cold Friendly: Functional in temperatures up to -20°C /-4°F -Silent: Unique quiet canyon cooling system -All-around Safety: Fully upgraded BMS`, 1868 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1869 "mwbe":"", 1870 "loc": "", 1871 "mat": "", 1872 "sus": "" 1873 }); 1874 prods.push({ 1875 "id":'PD-001021C7V2', 1876 "dir": "Product", 1877 "pub":"DOT", 1878 "nm":`Generator - Jackery Solar`, 1879 "cat":"Electrical", 1880 "sub":"Battery Power", 1881 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=810458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729533476804", 1882 "desc":`Jackery Solar Generator 3000 Pro -Large Capacity: 3024Wh that can power up to 99% of outdoor appliances -Ultra Fast Charging: Fully solar charged in 3-4 hours and wall charged in 2.4 hours -Easily Accessible: Smart App Control -Cold Friendly: Functional in temperatures up to -20°C /-4°F -Silent: Unique quiet canyon cooling system -All-around Safety: Fully upgraded BMS`, 1883 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1884 "mwbe":"", 1885 "loc": "", 1886 "mat": "", 1887 "sus": "" 1888 }); 1889 prods.push({ 1890 "id":'PD-001022X3K4', 1891 "dir": "Product", 1892 "pub":"DOT", 1893 "nm":`Solar Panel - Jackery Solar`, 1894 "cat":"Electrical", 1895 "sub":"Battery Power", 1896 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d00e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729530351803", 1897 "desc":`Jackery SolarSaga 200W Solar Panel -IP68 Waterproof Rating -Convenient Carrying -Built to Last`, 1898 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1899 "mwbe":"", 1900 "loc": "", 1901 "mat": "", 1902 "sus": "" 1903 });
1904 prods.push({ 1905 "id":'PD-001022X3K4', 1906 "dir": "Product", 1907 "pub":"DOT", 1908 "nm":`Solar Panel - Jackery Solar`, 1909 "cat":"Electrical", 1910 "sub":"Solar Power", 1911 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d00e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729530351803", 1912 "desc":`Jackery SolarSaga 200W Solar Panel -IP68 Waterproof Rating -Convenient Carrying -Built to Last`, 1913 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1914 "mwbe":"", 1915 "loc": "", 1916 "mat": "", 1917 "sus": "" 1918 }); 1919 prods.push({ 1920 "id":'PD-001027G1W3', 1921 "dir": "Product", 1922 "pub":"DOT", 1923 "nm":`Outdoor Pendant - Bover Elipse`, 1924 "cat":"Electrical", 1925 "sub":"Pendants", 1926 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=860458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729536601842", 1927 "desc":`-Globe shade is UV protected and the wire has a waterproof neoprene coating -Material: Brass, Iron -Shade Material: Polyethylene -Dimmer Not Included -Dimmer Type: ELV or TRIAC or 0-10V -Installation Type: Hardwired -Location Rating: ETL Listed Wet`, 1928 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1929 "mwbe":"", 1930 "loc": "", 1931 "mat": "", 1932 "sus": "Recyclable, " 1933 }); 1934 prods.push({ 1935 "id":'PD-001027G1W3', 1936 "dir": "Product", 1937 "pub":"DOT", 1938 "nm":`Outdoor Pendant - Bover Elipse`, 1939 "cat":"Electrical", 1940 "sub":"Hardwired", 1941 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=860458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729536601842", 1942 "desc":`-Globe shade is UV protected and the wire has a waterproof neoprene coating -Material: Brass, Iron -Shade Material: Polyethylene -Dimmer Not Included -Dimmer Type: ELV or TRIAC or 0-10V -Installation Type: Hardwired -Location Rating: ETL Listed Wet`, 1943 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1944 "mwbe":"", 1945 "loc": "", 1946 "mat": "", 1947 "sus": "Recyclable, " 1948 }); 1949 prods.push({ 1950 "id":'PD-001032J8G0', 1951 "dir": "Product", 1952 "pub":"DOT", 1953 "nm":`LED Table Lamp - Pablo Candel`, 1954 "cat":"Electrical", 1955 "sub":"Table Lights", 1956 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=dc0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729540047374", 1957 "desc":`-Fully rechargeable portable LED light designed for both indoors and outdoors -Features a robust PMMA body in Clear, Bronze, and Smoke tint combined with a striking anodized aluminum light module that offers capacitive touch light control to provide up to 4 light levels to set the perfect ambiance -Battery life ranges from 10 to 150 hours depending on light intensity`, 1958 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1959 "mwbe":"", 1960 "loc": "", 1961 "mat": "", 1962 "sus": "Recyclable, " 1963 }); 1964 prods.push({ 1965 "id":'PD-001032J8G0', 1966 "dir": "Product", 1967 "pub":"DOT", 1968 "nm":`LED Table Lamp - Pablo Candel`, 1969 "cat":"Electrical", 1970 "sub":"Battery Power", 1971 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=dc0e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729540047374", 1972 "desc":`-Fully rechargeable portable LED light designed for both indoors and outdoors -Features a robust PMMA body in Clear, Bronze, and Smoke tint combined with a striking anodized aluminum light module that offers capacitive touch light control to provide up to 4 light levels to set the perfect ambiance -Battery life ranges from 10 to 150 hours depending on light intensity`, 1973 "stype": "Sidewalk Cafe, Roadway Cafe, ", 1974 "mwbe":"", 1975 "loc": "", 1976 "mat": "", 1977 "sus": "Recyclable, " 1978 }); 1979 prods.push({ 1980 "id":'PD-001011G9F5', 1981 "dir": "Design", 1982 "pub":"DOT", 1983 "nm":`Integrated Barrier`, 1984 "cat":"Barrier", 1985 "sub":"Alternative Compliance", 1986 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=790458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729554266201", 1987 "desc":`- Vertical Steel stanchions bolted to Telestrut flooring system -RPL sheathing and cladding -Custom bench and planters supported by barrier stanchions.`, 1988 "stype": "Roadway Cafe, ", 1989 "mwbe":"", 1990 "loc": "", 1991 "mat": "", 1992 "sus": "" 1993 });
1994 prods.push({ 1995 "id":'PD-001024N3C7', 1996 "dir": "Product", 1997 "pub":"DOT", 1998 "nm":`Wall Mount Lighting Fixture - Tegan Exton Solo`, 1999 "cat":"Electrical", 2000 "sub":"Linear Lights", 2001 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d20e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729575516345", 2002 "desc":`-24â height with luminous end caps - the perfect companion to solo powerspan cable systems -185 lpf, 2700k led with 0-10v dimming -remote power supply: ip20, ip24, ip65 or ip68 direct burial`, 2003 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2004 "mwbe":"", 2005 "loc": "", 2006 "mat": "", 2007 "sus": "" 2008 }); 2009 prods.push({ 2010 "id":'PD-001024N3C7', 2011 "dir": "Product", 2012 "pub":"DOT", 2013 "nm":`Wall Mount Lighting Fixture - Tegan Exton Solo`, 2014 "cat":"Electrical", 2015 "sub":"Hardwired", 2016 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d20e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729575516345", 2017 "desc":`-24â height with luminous end caps - the perfect companion to solo powerspan cable systems -185 lpf, 2700k led with 0-10v dimming -remote power supply: ip20, ip24, ip65 or ip68 direct burial`, 2018 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2019 "mwbe":"", 2020 "loc": "", 2021 "mat": "", 2022 "sus": "" 2023 }); 2024 prods.push({ 2025 "id":'PD-001025S1N1', 2026 "dir": "Product", 2027 "pub":"DOT", 2028 "nm":`Outdoor Lamp - Interlux Glim`, 2029 "cat":"Electrical", 2030 "sub":"Table Lights", 2031 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729578485166", 2032 "desc":`-Battery-powered table luminaire -Modular Magnetic Base -Acrylic head`, 2033 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2034 "mwbe":"", 2035 "loc": "", 2036 "mat": "", 2037 "sus": "" 2038 }); 2039 prods.push({ 2040 "id":'PD-001025S1N1', 2041 "dir": "Product", 2042 "pub":"DOT", 2043 "nm":`Outdoor Lamp - Interlux Glim`, 2044 "cat":"Electrical", 2045 "sub":"Battery Power", 2046 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d40e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729578485166", 2047 "desc":`-Battery-powered table luminaire -Modular Magnetic Base -Acrylic head`, 2048 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2049 "mwbe":"", 2050 "loc": "", 2051 "mat": "", 2052 "sus": "" 2053 }); 2054 prods.push({ 2055 "id":'PD-001030Z8R6', 2056 "dir": "Design", 2057 "pub":"DOT", 2058 "nm":`Retractable Fabric Canopy`, 2059 "cat":"Overhead Covering", 2060 "sub":"Fabric Canopy", 2061 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=d90e90b8-d1fc-ee11-a1fe-001dd8053efe&Timestamp=638489729569414476", 2062 "desc":`- Off the shelves retractable fabric canopy system - Large array of fabric options - Aluminum Framing structure -Retractable and easy to remove`, 2063 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2064 "mwbe":"", 2065 "loc": "", 2066 "mat": "", 2067 "sus": "" 2068 }); 2069 prods.push({ 2070 "id":'PD-001031N8W3', 2071 "dir": "Product", 2072 "pub":"DOT", 2073 "nm":`Battery - Renology 12V 100Ah Smart Lithium Iron Phosphate`, 2074 "cat":"Electrical", 2075 "sub":"Battery Power", 2076 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8b0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729581297806", 2077 "desc":`Renology 12V 100Ah Smart Lithium Iron Phosphate -Premium battery cells that last over 4000 cycles -The next-level Group 27 battery for a seamless upgrade -A reliable BMS system with dual-processors -Auto-balancing for improved charging efficiency -Works with the BT-2 Bluetooth module for real-time monitoring`, 2078 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2079 "mwbe":"", 2080 "loc": "", 2081 "mat": "", 2082 "sus": "" 2083 }); 2084 prods.push({ 2085 "id":'PD-001033H1H7', 2086 "dir": "Product", 2087 "pub":"DOT", 2088 "nm":`Telestrut Floor System with RPL Flooring Panels`, 2089 "cat":"Floor", 2090 "sub":"Flooring Panels", 2091 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729558953760", 2092 "desc":`- Off the shelf substructure system (standard 1-5/8 Unistrut fittings) - Modular structure, very amenable to leveling. - Advisable in steep slopes - RPL flooring, assembled
2092in boards, easy to remove for cleaning. - Boards cam locked in place`, 2093 "stype": "Roadway Cafe, ", 2094 "mwbe":"", 2095 "loc": "", 2096 "mat": "", 2097 "sus": "" 2098 }); 2099 prods.push({ 2100 "id":'PD-001033H1H7', 2101 "dir": "Product", 2102 "pub":"DOT", 2103 "nm":`Telestrut Floor System with RPL Flooring Panels`, 2104 "cat":"Floor", 2105 "sub":"Modular Framing", 2106 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8d0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729558953760", 2107 "desc":`- Off the shelf substructure system (standard 1-5/8 Unistrut fittings) - Modular structure, very amenable to leveling. - Advisable in steep slopes - RPL flooring, assembled in boards, easy to remove for cleaning. - Boards cam locked in place`, 2108 "stype": "Roadway Cafe, ", 2109 "mwbe":"", 2110 "loc": "", 2111 "mat": "", 2112 "sus": "" 2113 }); 2114 prods.push({ 2115 "id":'PD-001034Y9T3', 2116 "dir": "Product", 2117 "pub":"DOT", 2118 "nm":`Table - Wren 28 Bistro`, 2119 "cat":"Furnishing", 2120 "sub":"Tables", 2121 "img":"/Image/download.aspx?Entity=appdev_products&Attribute=appdev_image&Id=8f0458b8-d1fc-ee11-a1fe-001dd806e985&Timestamp=638489729572539433", 2122 "desc":`-Metal base and top -Powder-coated finish -Indoor/outdoor use`, 2123 "stype": "Sidewalk Cafe, Roadway Cafe, ", 2124 "mwbe":"", 2125 "loc": "", 2126 "mat": "", 2127 "sus": "" 2128 }); 2129</script>
2129 2130 2131<style> 2132 .pscls{background-color:#fff!important;border:1px #dfdfdf solid!important;margin:5px 6px 6px 6px;padding:6px;width:100%;} 2133 .pscat{font-size:0.9em!important;font-style:italic;font-weight:bold;} 2134 .pcls{background-color:#fff!important;border:1px solid #aaaaaa!important; 2135 border-radius:5px!important;max-height:250px;height:250px;max-width:320px!important;width:320px!important;box-shadow:1px 1px 1px #aaaaaa!important; 2136 margin:12px 8px 12px 8px!important; 2137 padding:5px!important;vertical-align: text-top; 2138 } 2139 .pcls:hover{background-color:#f0f0f0!important;cursor:pointer;} 2140 .prcnt{font-size:0.9em;font-style:italic;margin-left:10px;} 2141 .ptxt{padding:2px;font-size:0.9em;text-align:left;} 2142 .stxt{max-width:300px!important;} 2143 .pimgcls{height:240px;text-align:center;background-repeat:no-repeat center center fixed;background-size:cover;} 2144 .pimgcls img{height:108px;border-radius:5px 5px 0px 0px!important;} 2145 .pbc{padding-left:10px;font-size:0.8em!important;font-style:italic;text-align:left;} 2146 .ptit{height:60px!important;max-height:60px!important;font-weight:600!important;} 2147 .svcinfo{font-size:0.8em!important;font-style:italic;text-align:left;} 2148 .svcinfo td:nth-child(odd){font-size:0.9em!important;font-style:italic;text-align:right;font-weight:bold;} 2149 .svcinfo td{padding-left:5px;} 2150 .do-lnk{text-decoration:underline!important;cursor:pointer!important;color:blue;font-size:1.3em;font-weight:700;} 2151 2152 .sbar{border-bottom:1px solid #c0c0c0;background-color:#fff;} 2153 .dcard1{max-width:18rem!important;width:18rem!important;} 2154 .dcard1:hover{background-color:#f0f0f0!important;cursor:pointer;} 2155 2156 .dcard{width:20rem!important;} 2157 .dcard:hover{background-color:#f0f0f0!important;cursor:pointer;} 2158 /*.dcard img{height:16rem!important;} */ 2159 /* ribbon message RT 03/04/2024 */ 2160 .itm{position: absolute; right:-0px; top: -0px;z-index:1;overflow:hidden; 2161 width:75px; height:70px;text-align:right;} 2162 .itm span {font-size:11px;font-weight:500;color:#FFF;text-transform:uppercase; 2163 text-align:center;line-height:20px;transform: 2164 rotate(45deg);-webkit-transform: rotate(45deg); 2165 width:100px;display:block;background: #79A70A;box-shadow: 0 3px 10px -5px rgba(0, 0, 0, 1); 2166 position:absolute;top:19px;right:-21px;} 2167 .itm span.s{background: linear-gradient(#9BC90D 0%, #79A70A 100%);} 2168 .itm span.p{background: linear-gradient(#002299 0%, #0000ff 100%);} 2169 .itm span.d{background: linear-gradient(#FFCC43 0%, #FF4040 100%);} 2170 .itm span.s::before {position:absolute; left: 0px; top: 100%; z-index: -1; border-left: 3px solid #79A70A; border-right: 3px solid transparent; border-bottom: 3px solid transparent; border-top: 3px solid #79A70A;} 2171 .itm span.s::after {position:absolute; right: 0px; top: 100%; z-index: -1; border-left: 3px solid transparent; border-right: 3px solid #79A70A; border-bottom: 3px solid transparent; border-top: 3px solid #79A70A;} 2172 .itm span.p::before {position:absolute; left: 0px; top: 100%; z-index: -1; border-left: 3px solid #79A70A; border-right: 3px solid transparent; border-bottom: 3px solid transparent; border-top: 3px solid #0000ff;} 2173 .itm span.p::after {position:absolute; right: 0px; top: 100%; z-index: -1; border-left: 3px solid transparent; border-right: 3px solid #79A70A; border-bottom: 3px solid transparent; border-top: 3px solid #0000ff;} 2174 .itm span.d::before {position:absolute; left: 0px; top: 100%; z-index: -1; border-left: 3px solid #79A70A; border-right: 3px solid transparent; border-bottom: 3px solid transparent; border-top: 3px solid #FF4040;} 2175 .itm span.d::after {position:absolute; right: 0px; top: 100%; z-index: -1; border-left: 3px solid transparent; border-right: 3px solid #79A70A; border-bottom: 3px solid transparent; border-top: 3px solid #FF4040;} 2176 body{overflow-y:auto!important;} 2177 .fslide{transition: all 5s ease-in-out!important;} 2178 .sm-rib{margin:0.2em 0 0 0.2em;background-color: #FFD72A;color:#000;position:absolute;width:5.4em;height:1.2em;border-radius:1em;} 2179 .sm-rib > .txt{position:absolute;margin:0 0 0.5em 0.2em;font-size:.8em;font-weight:600;} 2180 .fpanel{vertical-align:top;background-color:#fff!important;
2180width:200px!important; 2181 /* overflow-y:auto;height:99vh; */ 2182 } 2183 .visible-lg-block{display:block!important;} 2184 @media only screen and (max-width: 767px) { 2185 .fpanel{width:90vw!important;position:absolute!important;z-index:9999; 2186 top:0!important;left:0!important;display:none!important; 2187 overflow-y:auto!important;min-height:100vh; 2188 } 2189</style> 2190
2191<script> 2192 <!-- filter tab --> 2193 function chkCat(el){ 2194 const srcid = el.id; 2195 if (srcid.indexOf('_')==-1){return;} 2196 const scat = srcid.split('_')[1]; 2197 const el2 = document.getElementById('chk_'+scat); 2198 const fltrInp = document.querySelectorAll("div#exp_" + scat + " input[type='checkbox']"); 2199 if (fltrInp!=undefined && fltrInp!=null){ 2200 fltrInp.forEach(e => {e.checked = el2.checked;}); 2201 } 2202 } 2203 2204 function chkSubCat(el){ 2205 const srcid = el.parentElement.parentElement.parentElement.id; 2206 if (srcid.indexOf('_')==-1){return;} 2207 const scat = srcid.split('_')[1]; 2208 const pel = document.getElementById('chk_'+scat); 2209 const fltrInp = document.querySelectorAll("div#exp_" + scat + " input[type='checkbox']"); 2210 if (fltrInp!=undefined && fltrInp!=null && fltrInp.length>0){ 2211 let chkcnt = 0; 2212 fltrInp.forEach(e => { if (e.checked) {chkcnt++;}}); 2213 if (chkcnt==0){ 2214 pel.indeterminate = false; 2215 pel.checked = false; 2216 }else{ 2217 if (chkcnt==fltrInp.length){ 2218 pel.indeterminate = false; 2219 pel.checked = true; 2220 }else{ 2221 pel.indeterminate = true; 2222 } 2223 } 2224 } 2225 } 2226 2227 function showSubCat(el){ 2228 const srcid = el.id; 2229 if (srcid.indexOf('_')==-1){return;} 2230 const scat = el.id.split('_')[1]; 2231 const ele = document.getElementById('exp_'+scat); 2232 const ele2 = document.getElementById('lbl_'+scat); 2233 const dispscat = ele.style.display; 2234 2235 if (dispscat != "block"){ 2236 ele.style.display = "block"; 2237 ele2.innerHTML = "<i class='bi bi-chevron-up'></i>"; 2238 }else{ 2239 ele.style.display = "none"; 2240 ele2.innerHTML = "<i class='bi bi-chevron-down'></i>"; 2241 } 2242 } 2243 2244 function toggleSec(el){ 2245 let imgNd = el.childNodes[0]; 2246 if (el.nextElementSibling.style.display=='none'){ 2247 el.nextElementSibling.style.display='block'; 2248 if (imgNd!=null){ 2249 imgNd.className = "bi bi-caret-up-fill"; 2250 } 2251 }else{ 2252 el.nextElementSibling.style.display='none'; 2253 if (imgNd!=null){ 2254 imgNd.className = "bi bi-caret-down-fill"; 2255 } 2256 } 2257 } 2258 2259 function clearFilter(){ 2260 const chkInp = document.querySelectorAll("input.form-check-input:checked"); 2261 for(let i=0;i<chkInp.length;i++){ 2262 chkInp[i].checked = false; 2263 } 2264 document.cookie="fl=; path=/; Secure"; 2265 showAll(); 2266 } 2267 2268function chkFilters(flg){ 2269 let _sel = ""; 2270 let chkLst = []; 2271 let _flval = "", _dis=""; 2272 if (flg!=undefined && flg=="load") 2273 { 2274 if (document.cookie!=undefined && document.cookie!=null){ 2275 let ck = decodeURIComponent(document.cookie); 2276 const cks=ck.split(";"); 2277 for (let i=0; i<cks.length; i++) 2278 { 2279 let cnm=cks[i].substr(0,cks[i].indexOf("=")); 2280 let cv=cks[i].substr(cks[i].indexOf("=")+1); 2281 cnm=cnm.trim(); 2282 if (cnm=="fl"){ 2283 _flval = cv; 2284 } 2285 if (cnm=="view_discl"){ 2286 _dis = cv; 2287 } 2288 } 2289 } 2290 if (_dis!="Y"){ 2291 /* clear filter if coming from home Ranga 03/25/24 */ 2292 _flval = ""; 2293 } 2294 chkLst = document.querySelectorAll("input.form-check-input"); 2295 /*firefox does not retain checkbox settings for some reason, fix by RT 03/25/24 */ 2296 for(let i=0;i<chkLst.length;i++){ 2297 if (chkLst[i].value!=null && chkLst[i].value.length>0){ 2298 let fv = chkLst[i].value+"|"; 2299 if (_flval.indexOf(fv)>-1){ 2300 chkLst[i].checked = true; 2301 } 2302 } 2303 } 2304 }else{ 2305 chkLst = document.querySelectorAll("input.form-check-input:checked"); 2306 for(let i=0;i<chkLst.length;i++){ 2307 if (chkLst[i].value!=""){ 2308 _sel += chkLst[i].value + "|"; 2309 } 2310 } 2311 let d1=new Date(); 2312 d1.setDate(d1.getDate() + 1); 2313 document.cookie="fl=" + escape(_sel) + "; path=/; expires="+d1.toUTCString() + "; Secure"; 2314 } 2315 return chkLst; 2316 } 2317 2318 2319 function applyFilters(fltr){ 2320 /* Author: Ranga 02/22/2024, created just before demo */ 2321 //const dir_sel = document.getElementById("ddDirectory").value.toLowerCase(); 2322 const filters = {}; 2323 fltrRows = []; 2324 filtermsg = ""; 2325 if (search_txt.trim().length==0){ 2326 fltrRows = prods.filter((v,i,a)=>{return true;});
2327 }else{ 2328 search_txt = search_txt.toLowerCase(); 2329 fltrRows = prods.filter((v,i,a)=>{ 2330 return ((v["nm"].toLowerCase().indexOf(search_txt)>-1) || 2331 (v["desc"].toLowerCase().indexOf(search_txt)>-1) || 2332 (v["dir"].toLowerCase().indexOf(search_txt)>-1) 2333 ); 2334 }); 2335 } 2336 2337 let issvc = false, isprd = false, isboth=false; 2338 isprd = (document.getElementById("dir_products").checked || document.getElementById("dir_designs").checked); 2339 issvc = document.getElementById("dir_services").checked; 2340 if (isprd && issvc){ 2341 isboth = true; 2342 }else{ 2343 if ((!isprd) && (!issvc)){ 2344 issvc = true; isprd = true; isboth = true; 2345 } 2346 } 2347 2348 document.getElementById("service_fltr").style.display = issvc?"block":"none"; 2349 document.getElementById("prod_fltr").style.display = isprd?"block":"none"; 2350 document.getElementById("mwbe_fltr").style.display = issvc?"block":"none"; 2351 2352 if (fltr=="Y"){ 2353 //const chkInp = document.querySelectorAll("input.form-check-input:checked"); 2354 const chkInp = chkFilters(); 2355 for(let i=0;i<chkInp.length;i++){ 2356 if (chkInp[i].value!=""){ 2357 let key = chkInp[i].value.toLowerCase(); 2358 let k = key.split('_'); 2359 if (k[0]=='c'){ 2360 //categories, subcat 2361 let _cat = k[1]; 2362 let _scat = k[2]; 2363 if (filters['cat']==undefined){filters['cat'] = [];} 2364 if (filters['sub']==undefined){filters['sub'] = [];} 2365 if (filters['cat'].indexOf(_cat)==-1){ 2366 filters['cat'].push(_cat); 2367 filtermsg += getFilterIco('cat', _cat); 2368 } 2369 2370 filters['sub'].push(_scat); 2371 }else{ 2372 if (filters[k[0]]==undefined){filters[k[0]] = [];} 2373 filters[k[0]].push(k[1]); 2374 filtermsg += getFilterIco(k[0], k[1]); 2375 } 2376 } 2377 } 2378 2379 let filtrkeys = "dir,stype,mwbe,loc,sub,mat,sus,svctyp,area,lang"; 2380 if (!isboth){ 2381 if (issvc){ 2382 filtrkeys = "dir,stype,mwbe,loc,svctyp,area,lang"; 2383 }else{ 2384 filtrkeys = "dir,stype,mwbe,loc,sub,mat,sus"; 2385 } 2386 } 2387 2388 filtrkeys.split(",").forEach(k =>{ 2389 if (filters[k]!=undefined){ 2390 fltrRows = fltrRows.filter((v,i,a)=>{ 2391 let bret = false; 2392 for(let r=0;r<filters[k].length;r++){ 2393 if (k=='loc' && filters[k][r]=='nyc'){ 2394 bret = (!((v[k].toLowerCase().indexOf("ny state")>-1) || (v[k].toLowerCase().indexOf("outside ny")>-1))); 2395 //break; 2396 } 2397 2398 if (k=='area' && filters[k][r]=='citywide'){ 2399 /*if area is Citywide, include all */ 2400 bret = true; 2401 break; 2402 } 2403 if (k=='stype' && v[k].toLowerCase().indexOf("both")>-1){ 2404 /*if setuptype is both, ignore filter sel*/ 2405 bret = true; 2406 break; 2407 } 2408 if (k=='mat'){ 2409 if (v['desc']!=undefined && v['desc'].toLowerCase().indexOf(filters[k][r])>-1){ 2410 bret = true; 2411 break; 2412 } 2413 if (v['pn']!=undefined && v['pn'].toLowerCase().indexOf(filters[k][r])>-1){ 2414 bret = true; 2415 break; 2416 } 2417 } 2418 if (k=='svctyp'){ 2419 if (v['desc']!=undefined && v['desc'].toLowerCase().indexOf(filters[k][r])>-1){ 2420 bret = true; 2421 break; 2422 } 2423 } 2424 2425 if (k=='loc'){ 2426 if (v[k]!=undefined && v[k].toLowerCase().indexOf(filters[k][r])==0){ 2427 bret = true; 2428 break; 2429 } 2430 }else{ 2431 if (v[k]!=undefined && v[k].toLowerCase().indexOf(filters[k][r])>-1){ 2432 bret = true; 2433 break; 2434 } 2435 } 2436 } 2437 return bret; 2438 }); 2439 } 2440 }); 2441 } 2442 showResults(); 2443 } 2444 2445 function getFilterIco(c, k){ 2446 return '<span class="badge rounded-pill bg-secondary m-1">' + k + '</span>'; 2447 } 2448 2449 function showAll(){ 2450 applyFilters('N'); 2451 } 2452 2453 function showResults(){ 2454 let chtml = "", all="", filterlist=""; 2455 let filtr_cnt = 0; 2456 let resrows = {}; 2457 let s_tmpl = document.getElementById("service_tmpl").innerHTML; 2458 let p_tmpl = document.getElementById("prod_tmpl").innerHTML; 2459 2460 fltrRows.forEach(el=>{ 2461 if (resrows[el.id]==undefined){ 2462 filtr_cnt++; 2463 resrows[el.id] = el.id; 2464 filterlist += getRowCard(el, s_tmpl, p_tmpl); 2465 } 2466 }); 2467 let row_cnt = ""; 2468 if (fltrRows!=null) 2469 { 2470 switch(filtr_cnt){ 2471 case 0: 2472 row_cnt = "No data found!"; 2473 break; 2474 case 1: 2475 row_cnt = "Found " + filtr_cnt + " result"; 2476 break; 2477 default: 2478 row_cnt = "Found " + filtr_cnt + " results"; 2479 break; 2480 } 2481 } 2482 document.getElementById("prcnt").innerHTML = row_cnt; 2483 document.getElementById("fprcnt").innerHTML = row_cnt; 2484 if (filtermsg.length>0){ 2485 document.getElementById("filterstr").innerHTML = '<i class="bi bi-funnel-fill bi-lg py-2 p-1"></i> ' + filtermsg; 2486 }else{ 2487 document.getElementById("filterstr").innerHTML = filtermsg; 2488 } 2489 2490 2491 //row_cnt = "<div class='prcnt'>" + row_cnt + "</div>"; 2492 document.getElementById("filter_results").innerHTML = filterlist; 2493 } 2494 2495 function getRowCard(el, s_tmpl, p_tmpl){ 2496 let tmpl = ''; 2497 if (el.dir.indexOf('Service')>-1){ 2498 tmpl = s_tmpl.replace("[s_id]", el.id); 2499 tmpl = tmpl.replace("[desc]", el.desc.substring(0,150) +'...'); 2500 tmpl = tmpl.replaceAll("[name]", el.nm); 2501 tmpl = tmpl.replace("[cont]", el.cont); 2502 /*tmpl = tmpl.replace("[svctyp]", el.svctyp.replaceAll(',', ' ')); */ 2503 tmpl = tmpl.replace("[svctyp]", el.svctyp.substring(0, el.svctyp.lastIndexOf(','))); 2504 tmpl = tmpl.replace("[lang]", el.lang); 2505 tmpl = tmpl.replace("[mwbe]", el.mwbe); 2506 tmpl = tmpl.replace("[loc]", el.loc); 2507 tmpl = tmpl.replace("[area]", el.area); 2508 if ((el.img!=undefined && el.img!=null) && el.img.length>0){ 2509 tmpl = tmpl.replace('src=""', 'src="'+el.img+'"'); 2510 }else{ 2511 tmpl = tmpl.replace('src=""', 'src="'+svc_def_img+'"'); 2512 } 2513 }else{ 2514 tmpl = p_tmpl.replaceAll("[p_id]", el.id); 2515 2516 if ((el.img!=undefined && el.img!=null) && el.img.length>0){ 2517 tmpl = tmpl.replace('src=""', 'src="'+el.img+'"'); 2518 }else{ 2519 tmpl = tmpl.replace('src=""', 'src="'+def_img+'"'); 2520 } 2521 2522 if (el.pub=="DOT"){ 2523 tmpl = tmpl.replaceAll("[smc]", "sm-rib"); 2524 tmpl = tmpl.replaceAll("[sm]", "SETUP MENU"); 2525 }else{ 2526 tmpl = tmpl.replaceAll("[smc]", ""); 2527 tmpl = tmpl.replaceAll("[sm]", ""); 2528 } 2529 2530 tmpl = tmpl.replaceAll("[name]", el.nm); 2531 tmpl = tmpl.replace("[dir]", el.dir); 2532 tmpl = tmpl.replace("[p]", el.dir.substring(0,1).toLowerCase()); 2533 tmpl = tmpl.replace("[s_t]", el.stype); 2534 tmpl = tmpl.replace("[desc]", (el.desc+"").substring(0,150) +'...'); 2535 tmpl = tmpl.replace("[mwbe]", el.mwbe); 2536 tmpl = tmpl.replace("[loc]", el.loc); 2537 } 2538 return tmpl; 2539 } 2540 2541<!-- filter ends --> 2542 2543</script>
2543 2544 2545<div id="filterSecPanel" class="fpanelx"> 2546 <div style="display:flex;flex-flow:column;flex-wrap:nowrap;"> 2547 <div class="sq sq_hdr mt-1"><span>DIRECTORY FILTER</span></div> 2548 <div class="card sq sq2" style="padding:0px;"> 2549 <div class="text-center"> 2550 <a href="#" class="do-lnk2" onclick="openCloseDisclaimer('OPEN')">Read Important information</a><br> 2551 <!--to use the directory--> 2552 </div> 2553 <div class="m-2 prcnt visible-xs-block"> 2554 <div id="fprcnt"></div> 2555 </div> 2556 <div class="p-2"> 2557 <span class="do-smtxt visible-xs">FILTERS</span><br> 2558 <div class="visible-xs-block" style="width:100%"> 2559 <table width="100%" cellpaddin='5'> 2560 <tr> 2561 <td width="50%"><button class="me-3 btn btn-sm btn-primary" style="width:90%;font-weight:normal;" onclick="clearFilter()" >CLEAR</button></td> 2562 <td><button class="btn btn-sm btn-outline-primary" style="width:90%;font-weight:normal;" onclick="showFilters()">CLOSE</button></td> 2563 </tr> 2564 </table> 2565 2566 <!-- <button class="m-1 btn btn-sm btn-secondary btn-do" onclick="applyFilters('Y')">APPLY</button> --> 2567 </div> 2568 <div class="hidden-xs" style="width:100%"> 2569 <button class="me-3 btn btn-sm btn-outline-primary" style="width:90%;font-weight:normal;" onclick="clearFilter()" >CLEAR FILTERS</button> 2570 </div> 2571 </div> 2572 </div> 2573 2574 <div class="card sq sq1 sq2"> 2575 <div class="p-2"> 2576 <div class="checkbox"><label class="form-check-label" for="dir_products"><input type="checkbox" class="form-check-input" value="dir_product" id="dir_products" autocomplete='off'>Products</label></div> 2577 <div class="checkbox"><label class="form-check-label" for="dir_designs"><input type="checkbox" class="form-check-input" value="dir_design" id="dir_designs" autocomplete='off'>Designs</label></div> 2578 <div class="checkbox"><label class="form-check-label" for="dir_services"><input type="checkbox" class="form-check-input" value="dir_service" id="dir_services" autocomplete='off'>Services</label></div> 2579 </div> 2580 </div> 2581 2582 <!--Setup Type--> 2583 <div class="card sq sq2"> 2584 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Setup Type</div> 2585 <div class="form-group p-2" style="display:none;"> 2586 <div class="checkbox"><label class="form-check-label" for="stype1" ><input type="checkbox" class="form-check-input" id="stype1" value="stype_Roadway">Roadway</label></div> 2587 <div class="checkbox"><label class="form-check-label" for="stype2" ><input type="checkbox" class="form-check-input" id="stype2" value="stype_Sidewalk" >Sidewalk</label></div> 2588 </div> 2589 </div> 2590 2591 2592 <div style="width:100%" id="mwbe_fltr"> 2593 <!--MWBE Vendor--> 2594 <div class="card sq sq1 sq2"> 2595 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> MWBE Vendor</div> 2596 <div class="p-2" style="display:none;"> 2597 <div class="checkbox"><label class="form-check-label" for="mwbe1"><input type="checkbox" id="mwbe1" class="form-check-input" value="mwbe_MWBE">MWBE</label></div> 2598 <div class="checkbox"><label class="form-check-label" for="mwbe2"><input type="checkbox" id="mwbe2" class="form-check-input" value="mwbe_DBE">DBE</label></div> 2599 <div class="checkbox"><label class="form-check-label" for="mwbe3"><input type="checkbox" id="mwbe3" class="form-check-input" value="mwbe_SDVOB">SDVOB</label></div> 2600 </div> 2601 </div> 2602 2603 <!--Company Location--> 2604 <div class="card sq"> 2605 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Company Location</div> 2606 <div class="p-2" style="display:none;"> 2607 <div class="checkbox"><label class="form-check-label" for="loc1"><input type="checkbox" id="loc1" class="form-check-input" value="loc_NYC" >NYC</label></div> 2608 <div class="checkbox"><label class="form-check-label" for="loc2"><input type="checkbox" id="loc2" class="form-check-input" value="loc_NY State">NY State</label></div> 2609 <div class="checkbox"><label class="form-check-label" for="loc3"><input type="checkbox" id="loc3" class="form-check-input" value="loc_Outside">Outside NY</label></div> 2610 </div> 2611 </div> 2612 </div> 2613 2614 <div style="width:100%" id="prod_fltr"> 2615 <!-- Category --> 2616 <div class="sq sq_hdr">PRODUCTS & DESIGNS</div> 2617 <div class="card sq sq1 sq2"> 2618 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-up-fill"></i> Category</div> 2619 <div class="form-group p-2"> 2620 2621 2622 <!-- Barrier --> 2623 <div class="form-check"> 2624 <div class="position-relative l1"> 2625 2626 <label class="form-check-label" for="chk_Barrier"><input id="chk_Barrier" type="checkbox" class="form-check-input me-2" value="c_Barrier" onclick="chkCat(this)">Barrier</label> 2627 <div id="lbl_Barrier" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div> 2628 </div> 2629 </div> 2630 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Barrier">
2631 <!--Barrier types --> 2632 2633 2634 2635 <div class="checkbox"><label class="form-check-label" for="cat2"><input id="cat2" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Alternative Compliance">Alternative Compliance</label></div> 2636 2637 2638 2639 2640 <div class="checkbox"><label class="form-check-label" for="cat3"><input id="cat3" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Water Filled Barrier">Water Filled Barrier</label></div> 2641 2642 2643 2644 2645 <div class="checkbox"><label class="form-check-label" for="cat4"><input id="cat4" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Sidewalk">Sidewalk</label></div> 2646 2647 2648 2649 2650 <div class="checkbox"><label class="form-check-label" for="cat5"><input id="cat5" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Barrier_Contain">Contain</label></div> 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 </div> 2694 <!--Barrier types ends --> 2695 2696 2697 <!-- Electrical --> 2698 <div class="form-check"> 2699 <div class="position-relative l1"> 2700 2701 <label class="form-check-label" for="chk_Electrical"><input id="chk_Electrical" type="checkbox" class="form-check-input me-2" value="c_Electrical" onclick="chkCat(this)">Electrical</label> 2702 <div id="lbl_Electrical" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div> 2703 </div> 2704 </div> 2705 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Electrical"> 2706 <!--Electrical types --> 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 <div class="checkbox"><label class="form-check-label" for="cat7"><input id="cat7" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Lighting">Lighting</label></div> 2719 2720 2721 2722 2723 <div class="checkbox"><label class="form-check-label" for="cat8"><input id="cat8" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Table Lights">Table Lights</label></div> 2724 2725 2726 2727 2728 <div class="checkbox"><label class="form-check-label" for="cat9"><input id="cat9" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Linear Lights">Linear Lights</label></div> 2729 2730 2731 2732 2733 <div class="checkbox"><label class="form-check-label" for="cat10"><input id="cat10" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Battery Power">Battery Power</label></div> 2734 2735 2736 2737 2738 <div class="checkbox"><label class="form-check-label" for="cat11"><input id="cat11" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Pendants">Pendants</label></div> 2739 2740 2741 2742 2743 <div class="checkbox"><label class="form-check-label" for="cat12"><input id="cat12" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Cooling">Cooling</label></div> 2744 2745 2746 2747 2748 <div class="checkbox"><label class="form-check-label" for="cat13"><input id="cat13" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Hardwired">Hardwired</label></div> 2749 2750 2751 2752 2753 <div class="checkbox"><label class="form-check-label" for="cat14"><input id="cat14" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Electrical_Solar Power">Solar Power</label></div> 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 </div> 2781 <!--Electrical types ends --> 2782 2783 2784 <!-- Floor --> 2785 <div class="form-check"> 2786 <div class="position-relative l1"> 2787 2788 <label class="form-check-label" for="chk_Floor"><input id="chk_Floor" type="checkbox" class="form-check-input me-2" value="c_Floor" onclick="chkCat(this)">Floor</label> 2789 <div id="lbl_Floor" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div> 2790 </div> 2791 </div> 2792 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Floor"> 2793 <!--Floor types --> 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 <div class="checkbox"><label class="form-check-label" for="cat16"><input id="cat16" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Modular Framing">Modular Framing</label></div> 2822 2823 2824 2825 2826 <div class="checkbox"><label class="form-check-label" for="cat17"><input id="cat17" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Custom Frame">Custom Frame</label></div> 2827 2828 2829 2830 2831 <div class="checkbox"><label class="form-check-label" for="cat18"><input id="cat18" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Framed Support">Framed Support</label></div> 2832 2833 2834 2835 2836 <div class="checkbox"><label class="form-check-label" for="cat19"><input id="cat19" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Flooring Panels">Flooring Panels</label></div> 2837 2838 2839 2840 2841 <div class="checkbox"><label class="form-check-label" for="cat20"><input id="cat20" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Floor_Pedestals">Pedestals</label></div> 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 </div> 2859 <!--Floor types ends --> 2860 2861 2862 <!-- Furnishing --> 2863 <div class="form-check"> 2864 <div class="position-relative l1"> 2865 2866 <label class="form-check-label" for="chk_Furnishing"><input id="chk_Furnishing" type="checkbox" class="form-check-input me-2" value="c_Furnishing" onclick="chkCat(this)">Furnishing</label> 2867 <div id="lbl_Furnishing" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div> 2868 </div> 2869 </div> 2870 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Furnishing"> 2871 <!--Furnishing types --> 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 <div class="checkbox"><label class="form-check-label" for="cat22"><input id="cat22" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Furnishing_Tables">Tables</label></div> 2910 2911 2912 2913 2914 <div class="checkbox"><label class="form-check-label" for="cat23"><input id="cat23" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Furnishing_Chairs">Chairs</label></div> 2915 2916 2917 2918 2919 <div class="checkbox"><label class="form-check-label" for="cat24"><input id="cat24" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Furnishing_Benches">Benches</label></div> 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 </div> 2931 <!--Furnishing types ends --> 2932 2933 2934 <!-- Overhead Covering --> 2935 <div class="form-check"> 2936 <div class="position-relative l1"> 2937 2938 <label class="form-check-label" for="chk_Overhead-Covering"><input id="chk_Overhead-Covering" type="checkbox" class="form-check-input me-2" value="c_Overhead-Covering" onclick="chkCat(this)">Overhead Covering</label> 2939 <div id="lbl_Overhead-Covering" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div> 2940 </div> 2941 </div> 2942 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Overhead-Covering"> 2943 <!--Overhead Covering types --> 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 <div class="checkbox"><label class="form-check-label" for="cat26"><input id="cat26" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Overhead Covering_Rigid Panel Systems">Rigid Panel Systems</label></div> 2988 2989 2990 2991 2992 <div class="checkbox"><label class="form-check-label" for="cat27"><input id="cat27" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Overhead Covering_Awning System">Awning System</label></div> 2993 2994 2995 2996 2997 <div class="checkbox"><label class="form-check-label" for="cat28"><input id="cat28" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Overhead Covering_Fabric Canopy">Fabric Canopy</label></div> 2998 2999 3000 3001 3002 </div> 3003 <!--Overhead Covering types ends --> 3004 3005 3006 <!-- Screening --> 3007 <div class="form-check"> 3008 <div class="position-relative l1"> 3009 3010 <label class="form-check-label" for="chk_Screening"><input id="chk_Screening" type="checkbox" class="form-check-input me-2" value="c_Screening" onclick="chkCat(this)">Screening</label> 3011 <div id="lbl_Screening" class="position-absolute top-0 end-0 t_ico" onclick="showSubCat(this)"><i class="bi bi-chevron-down"></i></div> 3012 </div> 3013 </div> 3014 <div class="ms-3 form-group s_sec" style="display:none;" id="exp_Screening"> 3015 <!--Screening types --> 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 <div class="checkbox"><label class="form-check-label" for="cat30"><input id="cat30" onclick="chkSubCat(this)" type="checkbox" class="form-check-input" value="c_Screening_Screening">Screening</label></div> 3066 3067 3068 </div> 3069 <!--Screening types ends --> 3070 3071 </div> 3072 </div> 3073 3074 <!--Material--> 3075 <div class="card sq sq1 sq2"> 3076 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Material</div> 3077 <div class="p-2" style="display:none;"> 3078 3079 3080 3081 <div class="checkbox"><label class="form-check-label" for="mat1"><input id="mat1" type="checkbox" class="form-check-input" value="mat_Composite Material" >Composite Material</label></div> 3082 3083 3084 3085 3086 <div class="checkbox"><label class="form-check-label" for="mat2"><input id="mat2" type="checkbox" class="form-check-input" value="mat_Fabric" >Fabric</label></div> 3087 3088 3089 3090 3091 <div class="checkbox"><label class="form-check-label" for="mat3">
3091<input id="mat3" type="checkbox" class="form-check-input" value="mat_Metal" >Metal</label></div> 3092 3093 3094 3095 3096 <div class="checkbox"><label class="form-check-label" for="mat4"><input id="mat4" type="checkbox" class="form-check-input" value="mat_Plastic" >Plastic</label></div> 3097 3098 3099 3100 3101 <div class="checkbox"><label class="form-check-label" for="mat5"><input id="mat5" type="checkbox" class="form-check-input" value="mat_Wood" >Wood</label></div> 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 <!--Material ends--> 3161 </div> 3162 </div> 3163 3164 <!--Sustainability--> 3165 <div class="card sq"> 3166 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Sustainability</div> 3167 <div class="p-2" style="display:none;"> 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 <div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480000" value="sus_Recyclable" >Recyclable</label></div> 3182 3183 3184 3185 3186 <div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480001" value="sus_FSC Certified" >FSC Certified</label></div> 3187 3188 3189 3190 3191 <div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480002" value="sus_Green Seal" >Green Seal</label></div> 3192 3193 3194 3195 3196 <div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480003" value="sus_Cradle to Cradle" >Cradle to Cradle</label></div> 3197 3198 3199 3200 3201 <div class="checkbox"><label class="form-check-label" for="sus"><input id="sus" type="checkbox" class="form-check-input" data-id="773480004" value="sus_Certified B Corporation" >Certified B Corporation</label></div> 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 </div> 3251 </div> 3252 <!--Sustainability ends--> 3253 </div> 3254 3255 <div style="width:100%" id="service_fltr"> 3256 <div class="sq sq_hdr">SERVICES</div> 3257 <!--Service Type--> 3258 <div class="card sq sq1 sq2"> 3259 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-up-fill"></i> Service Type</div> 3260 <div class="p-2"> 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 <div class="checkbox"><label class="form-check-label" for="srvtype1"><input id="srvtype1" type="checkbox" class="form-check-input" data-id="2" value="svctyp_Fabrication">Fabrication</label></div> 3314 3315 3316 3317 3318 3319 3320 <div class="checkbox"><label class="form-check-label" for="srvtype2"><input id="srvtype2" type="checkbox" class="form-check-input" data-id="3" value="svctyp_Installation">Installation</label></div> 3321 3322 3323 3324 3325 3326 3327 <div class="checkbox"><label class="form-check-label" for="srvtype3"><input id="srvtype3" type="checkbox" class="form-check-input" data-id="4" value="svctyp_Removal">Removal</label></div> 3328 3329 3330 3331 3332 3333 3334 <div class="checkbox"><label class="form-check-label" for="srvtype4"><input id="srvtype4" type="checkbox" class="form-check-input" data-id="5" value="svctyp_Storage">Storage</label></div> 3335 3336 3337 3338 3339 3340 3341 <div class="checkbox"><label class="form-check-label" for="srvtype5"><input id="srvtype5" type="checkbox" class="form-check-input" data-id="6" value="svctyp_Leasing/Renting">Leasing/Renting</label></div> 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 <div class="checkbox"><label class="form-check-label" for="srvtype6"><input id="srvtype6" type="checkbox" class="form-check-input" data-id="8" value="svctyp_Lighting">Lighting</label></div> 3353 3354 3355 3356 3357 3358 3359 <div class="checkbox"><label class="form-check-label" for="srvtype7"><input id="srvtype7" type="checkbox" class="form-check-input" data-id="9" value="svctyp_Site Planning">Site Planning</label></div> 3360 3361 3362 3363 3364 3365 3366 <div class="checkbox"><label class="form-check-label" for="srvtype8"><input id="srvtype8" type="checkbox" class="form-check-input" data-id="10" value="svctyp_Architecture/Engineering/Landscape">Architecture/Engineering/Landscape</label></div> 3367 3368 3369 3370 </div> 3371 </div> 3372 <!--ServiceType ends--> 3373 3374 <!--Area Served--> 3375 <div class="card sq sq1 sq2"> 3376 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i> Area Served</div> 3377 <div class="p-2" style="display:none;"> 3378 <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Brooklyn" >Brooklyn</label></div> 3379 <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Bronx" >Bronx</label></div> 3380 <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Manhattan" >Manhattan</label></div> 3381 <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Queens" >Queens</label></div> 3382 <div class="checkbox"><label class="form-check-label"><input type="checkbox" class="form-check-input" value="area_Staten" >Staten Island</label></div> 3383 </div> 3384 </div> 3385 3386 <!--Language--> 3387 <div class="card sq"> 3388 <div class="card-header sq chdr" onclick="toggleSec(this)"><i class="bi bi-caret-down-fill"></i>
3388 Language</div> 3389 <div class="p-2" style="display:none;"> 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 <div class="checkbox"><label class="form-check-label" for="lang1"><input id="lang1" type="checkbox" class="form-check-input" data-id="773480000" value="lang_English">English</label></div> 3414 3415 3416 3417 3418 <div class="checkbox"><label class="form-check-label" for="lang2"><input id="lang2" type="checkbox" class="form-check-input" data-id="773480001" value="lang_Spanish">Spanish</label></div> 3419 3420 3421 3422 3423 <div class="checkbox"><label class="form-check-label" for="lang3"><input id="lang3" type="checkbox" class="form-check-input" data-id="773480002" value="lang_Chinese">Chinese</label></div> 3424 3425 3426 3427 3428 <div class="checkbox"><label class="form-check-label" for="lang4"><input id="lang4" type="checkbox" class="form-check-input" data-id="773480003" value="lang_Russian">Russian</label></div> 3429 3430 3431 3432 3433 <div class="checkbox"><label class="form-check-label" for="lang5"><input id="lang5" type="checkbox" class="form-check-input" data-id="773480004" value="lang_Yiddish">Yiddish</label></div> 3434 3435 3436 3437 3438 <div class="checkbox"><label class="form-check-label" for="lang6"><input id="lang6" type="checkbox" class="form-check-input" data-id="773480005" value="lang_Bengali">Bengali</label></div> 3439 3440 3441 3442 3443 <div class="checkbox"><label class="form-check-label" for="lang7"><input id="lang7" type="checkbox" class="form-check-input" data-id="773480006" value="lang_Korean">Korean</label></div> 3444 3445 3446 3447 3448 <div class="checkbox"><label class="form-check-label" for="lang8"><input id="lang8" type="checkbox" class="form-check-input" data-id="773480007" value="lang_Haitian Creole">Haitian Creole</label></div> 3449 3450 3451 3452 3453 <div class="checkbox"><label class="form-check-label" for="lang9"><input id="lang9" type="checkbox" class="form-check-input" data-id="773480008" value="lang_Italian">Italian</label></div> 3454 3455 3456 3457 3458 <div class="checkbox"><label class="form-check-label" for="lang10"><input id="lang10" type="checkbox" class="form-check-input" data-id="773480009" value="lang_Arabic">Arabic</label></div> 3459 3460 3461 3462 3463 <div class="checkbox"><label class="form-check-label" for="lang11"><input id="lang11" type="checkbox" class="form-check-input" data-id="773480010" value="lang_Polish">Polish</label></div> 3464 3465 3466 3467 3468 <div class="checkbox"><label class="form-check-label" for="lang12"><input id="lang12" type="checkbox" class="form-check-input" data-id="773480011" value="lang_French">French</label></div> 3469 3470 3471 3472 3473 <div class="checkbox"><label class="form-check-label" for="lang13"><input id="lang13" type="checkbox" class="form-check-input" data-id="773480012" value="lang_Urdu">Urdu</label></div> 3474 3475 3476 3477 3478 <div class="checkbox"><label class="form-check-label" for="lang14"><input id="lang14" type="checkbox" class="form-check-input" data-id="773480013" value="lang_Other">Other</label></div> 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 </div> 3500 </div> 3501 <!--Language ends--> 3502 </div> 3503</div> 3504</div> 3505 3506 3507 3508</div> 3509</div> 3510<!--Filter ends --> 3511 3512 <!-- results Sec --> 3513<div style="position:relative;"> 3514 <div id="resultSec" class="moffset"> 3515 <!--Results --> 3516 <div class="rpanel" id="filter_results"></div> 3517 </div> 3518</div> 3519<!-- ends results Sec --> 3520 3521</div> 3522</div> 3523 3524<div id="prod_tmpl" style="display:none;"> 3525 <div onclick="showDetail('[p_id]')" class="card m-1 mb-2 dcard"> 3526 <div class="[smc]"><span class="txt">[sm]</span></div> 3527 <div class="itm"><span class="[p]">[dir]</span></div> 3528 <img src="" class="card-img-top" alt="[name]"> 3529 <div class="card-body"> 3530 <h5 class="card-title">[name]</h5> 3531 <span class="ptxt">[desc]</span> 3532 </div> 3533 </div> 3534</div> 3535 3536<div id="service_tmpl" style="display:none;"> 3537 <div onclick="showServiceDetail('[s_id]')" class="card m-1 mb
3537-2 dcard"> 3538 <div class="itm"><span class="s">SERVICES</span></div> 3539 <img src="" class="card-img-top" alt="[name]"> 3540 <div class="card-body"> 3541 <h5 class="card-title">[name]</h5> 3542 <div class='pscat'>[svctyp]</div> 3543 <div class="form-group ptxt"> 3544 <i>[desc]</i> 3545 </div> 3546 <div class="svcinfo">[loc], [mwbe] [lang]</div> 3547 </div> 3548 </div> 3549</div> 3550 3551 3552 </div> 3553 3554 </div> 3555 3556</div> 3557 3558 3559<div class="text-center"> 3560 <a href="#" class="do-lnk2" onclick="openCloseDisclaimer('OPEN')">Important information to use the directory</a><br> 3561</div> 3562 3563 3564 3565<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> 3566 3567 3568 3569 </div> 3570 3571</div> 3572 3573</div></div> 3574</div> 3575</div> 3576 3577 3578
3578<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/pcf-loader.bundle-f4a0e619b8.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/pcf-loader.bundle-f4a0e619b8.js" type="text/javascript"></script>
3578 3579 3580 3581 3582 3583 3584 3585 <div id="pp-native-controls-react-root"></div>
3586<script>window._nativeControlConfig = { "publicPath":"https://gov.content.powerapps.us/resource/powerappsportal/controls", "versions": {"pcf_loader":"0.0.51","pcf_controls":"3.24.8","mf_shared":"0.2.32","host":"0.15.1","data_grid":"1.12.3","controls_fluent_v9":"0.0.54"}, "pvaEmbedded": { "defaultWidgetMode": "normal", "useCustomTypingIndicator": false, "skipSingleBotWelcomeScreen": false } }</script>
vendor: 1 bytes, line 3586
3586
3587<script defer="defer" src="https://gov.content.powerapps.us/resource/powerappsportal/controls/host/main.3ee2491f78.chunk.js"></script>
3587 3588 3589 3590 3591 <footer role="contentinfo" class="footer" style="left: 0; bottom: 0; width: 100%;"> 3592 <div class="footer-bottom hidden-print"> 3593 <div class="container"> 3594 <div class="row"> 3595 <!-- <div class="col-md-12 col-sm-12 col-xs-12 text-left">--> 3596 <div class="xrm-editable-html xrm-attribute" data-languageContext="English"><div class="xrm-attribute-value"><!-- 3597<p style="color: var(--portalThemeOnColor7);"> 3598<span style="position: relative; color: var(--portalThemeColor7);">Copyright © </span><span style="position: relative; color: var(--portalThemeColor7);">2026</span> 3599<span style="position: relative; color: var(--portalThemeColor7);">. All rights reserved.</span> 3600</p> 3601--> 3602<!-- 3603<style> 3604.container-md, .container-sm, .container-xl, .container-xxl { 3605 --bs-gutter-x: 1.5rem; 3606 --bs-gutter-y: 0; 3607 width: 100%; 3608 padding-right: calc(var(--bs-gutter-x)* .5); 3609 padding-left: calc(var(--bs-gutter-x)* .5); 3610 margin-right: auto; 3611 margin-left: auto; 3612} 3613</style>--> 3614<div class="container-md" style="color: var(--portalThemeColor8);"> 3615 <div class="site-footer__bottom"> 3616 <section class="row region region-footer-fifth"> 3617 <div id="block-footer" class="block block-block-content block-block-contentdceeb4f4-fca7-47f7-8c53-db3422892411"> 3618 3619 3620 <div class="content"> 3621 3622 <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"> 3623 <div class="col-md-4"><div class="footer-1"> 3624 <div class="item"><a href="https://www.nyc.gov/"> 3625 <img src="/nycwhite.png" alt="NYClogo"> 3626 </a></div><div class="item"><a href="https://www.nyc.gov/html/dot/html/home/home.shtml"><img src="/dot-logo-white.png" alt="DOT logo"></a> 3627 </div> 3628 <div class="item">Questions? <a href="https://www.diningoutnyc.info/contact-us">Contact us</a></div></div></div> 3629 <div class="col-md-4 footer-2"><div class="foot-2-left"><img src="/311-logo.png" alt="311 logo"></div> 3630 <div class="foot-2-right"><a href="https://portal.311.nyc.gov/article/?kanumber=KA-03321">Report an outdoor dining complaint to NYC 311</a></div></div> 3631 <div class="col-md-4 footer-3"><p>© City of New York. 2024 All Rights Reserved, <br> 3632 NYC is a trademark and service mark of the City of New York.</p><br><p><a href="https://www1.nyc.gov/home/privacy-policy.page">Privacy Policy.</a> 3633 <a href="https://www1.nyc.gov/home/terms-of-use.page">Terms of Use.</a> <a href="https://www.nyc.gov/site/mopd/resources/digital-accessibility.page"> 3634 Accessibility</a></p></div><style> 3635 3636</style></div> 3637 3638 </div> 3639 </div> 3640 3641 </section> 3642 3643 </div> 3644 </div></div></div> 3645 <!-- </div>--> 3646 <div id="accessibilityLinkContainer" class="col-md-3 col-sm-3 col-xs-3 text-right"> 3647 3648 </div> 3649 </div> 3650 </div> 3651</footer> 3652<!--<footer role="contentinfo" class="footer"> 3653 3654</footer>-->
3655<script type="text/javascript"> 3656 window.onload = function() { 3657 const accessibilityLinkContainer = document.getElementById("accessibilityLinkContainer"); 3658 switch(window.navigator.language) { 3659 case "fr": 3660 if (accessibilityLinkContainer != null) { 3661 const accessibilityText="Accessibilité : partiellement conforme"; 3662 const frenchAccessibilityAnchor = document.createElement("a"); 3663 frenchAccessibilityAnchor.id = "frenchAccesssibleLink"; 3664 frenchAccessibilityAnchor.target = "_blank"; 3665 frenchAccessibilityAnchor.href = "https://go.microsoft.com/fwlink/?linkid=2163806"; 3666 frenchAccessibilityAnchor.title = accessibilityText; 3667 frenchAccessibilityAnchor.innerText = accessibilityText; 3668 accessibilityLinkContainer.appendChild(frenchAccessibilityAnchor); 3669 } 3670 break; 3671 case "it": 3672 if (accessibilityLinkContainer != null) { 3673 const accessibilityText="Accessibilità : parzialmente conforme"; 3674 const italianAccessibilityAnchor = document.createElement("a"); 3675 italianAccessibilityAnchor.id = "italianAccesssibleLink"; 3676 italianAccessibilityAnchor.target = "_blank"; 3677 italianAccessibilityAnchor.href = "https://go.microsoft.com/fwlink/?linkid=2208177"; 3678 italianAccessibilityAnchor.title = accessibilityText; 3679 italianAccessibilityAnchor.innerText = accessibilityText; 3680 accessibilityLinkContainer.appendChild(italianAccessibilityAnchor); 3681 } 3682 break; 3683 default: 3684 accessibilityLinkContainer.remove(); 3685 } 3686 }; 3687 </script>
3687 3688 3689 3690
3690<script type="text/javascript"> 3691 3692 function trackCopilotCustomUsage(botSchema) { 3693 const request = { 3694 botSchemaName: botSchema 3695 } 3696 var json = JSON.stringify(request); 3697 shell.ajaxSafePost({ 3698 type: "POST", 3699 contentType: "application/json", 3700 url: "/_services/copilot/TrackUsage", 3701 data: json 3702 }).done(function () { 3703 }).fail(function (jqXhr) { 3704 }); 3705 } 3706 3707 function findAndLogCustomCopilotUsage() { 3708 const pageSource = document.documentElement.outerHTML; 3709 const customPvaBotWebchatRegex = /api\.(preprod\.|test\.)?powerplatform\.(com|us|cn|appsplatform\.us)\/powervirtualagents\/botsbyschema\/([^/]+)\/directline\/token/; 3710 const customPvaBotIframeRegex = /powerva\.microsoft\.com\/environments\/([0-9a-fA-F\-]+)\/bots\/([^/]+)\/webchat/; 3711 const omniChannelRegex = /livechatwidget\/scripts\/LiveChatBootstrapper\.js/; 3712 3713 const matchPvaBotWebchat = pageSource.match(customPvaBotWebchatRegex); 3714 if (matchPvaBotWebchat && matchPvaBotWebchat[3]) { 3715 trackCopilotCustomUsage(matchPvaBotWebchat[3]); 3716 } 3717 3718 const matchPvaBotIframe = pageSource.match(customPvaBotIframeRegex); 3719 if (matchPvaBotIframe && matchPvaBotIframe[2]) { 3720 trackCopilotCustomUsage(matchPvaBotIframe[2]); 3721 } 3722 3723 const matchOmniChannel = pageSource.match(omniChannelRegex); 3724 if (matchOmniChannel && matchOmniChannel[0]) { 3725 trackCopilotCustomUsage("omnichannelWidget"); 3726 } 3727 } 3728 3729 window.addEventListener("load", function () { 3730 findAndLogCustomCopilotUsage(); 3731 }); 3732 </script>
3732 3733 3734 3735 3736 3737 3738 3739 3740
3740<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/bootstrap.bundle-105a4995b8.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/bootstrap.bundle-105a4995b8.js" type="text/javascript"></script>
3740 3741 3742
3742<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/postpreform.bundle-4687dda8df.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/postpreform.bundle-4687dda8df.js" type="text/javascript"></script>
3742 3743 3744
3744<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/app.bundle-1e948af604.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/app.bundle-1e948af604.js" type="text/javascript"></script>
3744 3745 3746
3746<script onerror="javascript: var target = event.target; var script = document.createElement('script'); script.crossOrigin = target.crossOrigin; script.src = '/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js'; script.type = 'text/javascript'; target.insertAdjacentElement('afterend',script);" src="https://gov.content.powerapps.us/resource/powerappsportal/dist/default-1033.moment_2_29_4.bundle-eda4e638fd.js" type="text/javascript"></script>
3746 3747 3748 3749 3750 3751 3752 3753
3753<script> 3754 //this event will update the title of the page based on active breadcrumb 3755 $('.breadcrumb').ready(function () { 3756 if ($('.breadcrumb').is(':visible')) { 3757 document.querySelector('title').innerHTML = ($('.breadcrumb > li.active').text() + ""); 3758 } 3759 }); 3760 3761 function GoToNewEditor() { 3762 var editCmsUrlSegment = "EditInCms"; 3763 var currentUrl = window.location.href; 3764 if (currentUrl.indexOf('?') > -1) { 3765 var urlSegments = currentUrl.split("?"); 3766 window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname + '?' + urlSegments[1]; 3767 } 3768 else { 3769 window.location.href = window.location.origin + '/' + editCmsUrlSegment + window.location.pathname; 3770 } 3771 } 3772 </script>
3772 3773 3774 3775 3776 3777 3778
3778<script> 3779 if ('serviceWorker' in navigator) { 3780 navigator.serviceWorker.getRegistrations().then(function (registrations) { 3781 for (let registration of registrations) { 3782 registration.unregister(); 3783 } 3784 }).catch(function (err) { 3785 console.log('Service Worker unregister action failed: ', err); 3786 }); 3787 } 3788 </script>
3788 3789 3790 3791 3792 <!--Start Show Session Expire Warning Popup here --> 3793 3794 3795</body> 3796</html> 3797<!-- Generated at 10/8/2026 7:38:43 AM --> 3798<!-- Page OK -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.