1 2 3<!DOCTYPE html> 4<html> 5<head> 6 7 <link rel="shortcut icon" type="image/x-icon" href="https://vertassets.blob.core.windows.net/sites/favicons/vm-favicon.ico"/> 8 <title>Products Documents on Textile Web</title> 9 <link rel="preconnect" href="https://munchkin.marketo.net" crossorigin/> 10 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/> 11 <link rel="dns-prefetch" href="https://cdn.onesignal.com" crossorigin/> 12 <link rel="dns-prefetch" href="https://www.googletagmanager.com" crossorigin/> 13 <link rel="dns-prefetch" href="https://vertassets.blob.core.windows.net/" crossorigin/> 14 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Arimo|Roboto+Condensed|Oswald|Oxygen|Open+Sans"/> 15 16 17 18<meta charset="utf-8" /> 19<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2" /> 20<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 21 22<meta name="title" content="Products Documents on Textile Web" /> 23<meta name="description" content="Current Products documents from Textile Web." /> 24 <meta name="robots" content="noindex" /> 25 <meta property="og:image" content="https://vertassets.blob.core.windows.net/sites/logos/texw.png"> 26<link rel="canonical" href="https://www.textileweb.com/hub/bucket/products" /> 27 28
28<script src="https://code.jquery.com/jquery-3.5.1.min.js" 29 integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" 30 crossorigin="anonymous"></script>
30 31 32
32<script src="/js/site.js?v=q9fURCl8Kszc5J2rZjAaVnpdpxmiXsi4IJhy1C-9fNw"></script>
vendor: 114 bytes, lines 32-36
32 33 34 35 36 <script async src="https://www.google.com/recaptcha/enterprise.js?onload=loadRecaptcha&render=
366LcLaKAqAAAAABSYggTjhciseHb2va5CrWEG1Hz5
vendor: 35 bytes, lines 36-37
36&trustedtypes=true"></script> 37
37<script type="text/javascript"> 38 window['__RECAPTCHA_PUBLIC_KEY__'] = '6LcLaKAqAAAAABSYggTjhciseHb2va5CrWEG1Hz5'; 39 40 window['__OPT_IN_CONFIRMATION_PAGE__'] = ''; 41 </script>
41 42 43 44 45 <link rel="stylesheet" href="/css/lib.css?v=_c4rzDumxhYdb0MZ6QnCtnjJH4swr6ivicSO31k7D1w"> 46 <link rel="stylesheet" href="/css/themes/default.css?v=J22WVGe3Xt6A3UtKc29SY-inBT7Qp67QoBa28EeF5IQ" /> 47 <link rel="stylesheet" href="/css/gdpr-consent.css" /> 48 49 50
50<script type="text/javascript"> 51 window["__currentOnline__"]= 'TEXW'; 52 window["__mainPopUpFormId__"] = ''; 53 window.googletag = window.googletag || {}; 54 window.googletag.cmd = window.googletag.cmd || []; 55 </script>
55 56 57 58 59 60<!-- AdDaptive Pixel -->
61<script> 62(function () { 63 var tagUrl = "s.dpmsrv.com/dpm_2ef94c5be6406817949fc2211a9cdf209bdd4a1b.min.js"; 64 65 function hasAdvertisingConsent() { 66 var match = document.cookie.match(/(?:^|; )cookieyes-consent=([^;]*)/); 67 if (!match) { return false; } 68 var value = decodeURIComponent(match[1]); 69 return /(?:^|,)advertisement:yes(?:,|$)/.test(value); 70 } 71 72 function loadPixel() { 73 var h = document.getElementsByTagName('head')[0]; 74 var s = document.createElement('script'); 75 var sc = 'https:' == document.location.protocol ? 'https://' : 'http://'; 76 s.type = 'text/javascript'; 77 s.async = true; 78 s.src = sc + tagUrl; 79 h.appendChild(s); 80 } 81 82 if (hasAdvertisingConsent()) { 83 loadPixel(); 84 return; 85 } 86 87 document.addEventListener('cookieyes_consent_update', function onUpdate() { 88 if (hasAdvertisingConsent()) { 89 document.removeEventListener('cookieyes_consent_update', onUpdate); 90 loadPixel(); 91 } 92 }); 93 94 // CookieYes is installed via a GTM tag here, so its cookie may not exist yet when 95 // this script runs (it renders before GTM's bootstrap). Poll briefly as a fallback 96 // in case this account's CookieYes version doesn't dispatch cookieyes_consent_update. 97 var attempts = 0; 98 var poll = window.setInterval(function () { 99 attempts += 1; 100 if (hasAdvertisingConsent()) { 101 window.clearInterval(poll); 102 loadPixel(); 103 } else if (attempts >= 40) { 104 window.clearInterval(poll); 105 } 106 }, 500); 107})(); 108</script>
108 109<!-- End AdDaptive Pixel --> 110 111
111<script src="https://go.lifescienceconnect.com/js/lsc-enhance.js" defer></script>
111 112 113 114 115 <!-- Google Tag Manager --> 116
116<script>
vendor: 379 bytes, lines 116-120
116(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 117 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 118 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 119 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 120 })(window,document,'script','dataLayer','
120GTM-KB9LXSX
vendor: 3 bytes, line 120
120');
120</script>
120 121 <!-- End Google Tag Manager --> 122 <!-- Initialize GetSiteControl var--> 123
123<script> 124 window.gsc = window.gsc || function () { 125 (gsc.q = gsc.q || []).push(arguments); 126 }; 127 </script>
127 128</head> 129<body> 130 131 <!-- Google Tag Manager (noscript) -->
vendor: 73 bytes, lines 131-132
131 132 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
132GTM-KB9LXSX
vendor: 95 bytes, lines 132-134
132" 133 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 134
134<!-- End Google Tag Manager (noscript) --> 135 136 137 138 139<div class="container-fluid vm-full-width-header-container"> 140 <div class="container vm-header-container"> 141 <div class="row pt-2 align-items-end vert-header"> 142 <div class="col-sm-auto col-md"> 143 <a href="/"> 144 <img src="https://vertassets.blob.core.windows.net/sites/logos/texw.png" alt="Products Documents on Textile Web" class="mb-1"/> 145 </a> 146 </div> 147 <div class="col-auto text-sm-right ml-sm-auto pr-0"> 148 <div class="vm-logged-out-container d-print-none"> 149 <a data-ga-event data-ga-category="Sign-In" data-ga-action="Site-Request" data-ga-label="NA" href="/usersession/login?referringlink=header&docUrl=NA"> 150 Log In 151 </a> or 152 <a data-ga-event data-ga-category="Register" data-ga-action="Site-Start" data-ga-label="NA" href="/user/new?referringlink=header&docUrl=NA"> 153 Subscribe 154 </a> 155 </div> 156 </div> 157 </div> 158 </div> 159</div> 160<header class="vert-nav"> 161 <nav class="navbar navbar-dark bg-dark navbar-expand-md"> 162 <div class="container vm-nav-container pr-0 pl-0"> 163 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> 164 <span class="navbar-toggler-icon text-white"></span> 165 </button> 166 <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> 167 <div class="navbar-nav mr-auto"> 168 <a class="nav-item nav-link" href="/hub/bucket/products" target="">Product Showcase</a> 169 <a class="nav-item nav-link" href="/resource/news" target="">News</a> 170 </div> 171 </div> 172 <form method="get" class="form-inline nav-search pr-0" action="/search"> 173 <input class="form-control-sm" name="keyword" type="search" maxlength="250" placeholder="Search" aria-label="Search"/> 174 <button type="submit" class="btn-sm btn-dark"> 175 <i class="fas fa-search fa-sm"></i> 176 </button> 177 </form> 178 </div> 179 </nav> 180</header> 181 182<div class="container-fluid p-1 vm-top-ads-container overflow-hidden d-print-none"> 183 <div class="row mobile-hide justify-content-center"> 184 <div class="col-auto"> 185 186 187<!-- Adds PubAds Section -->
188<script> 189 googletag.cmd.push(function () { 190 googletag 191 .defineSlot('/52748101/textileweb/texw-leaderboard', [728,90], 'Ad_e2aac896-dfcd-48e5-baf8-078bc3ff5b72') 192 .addService(googletag.pubads()); 193 googletag.pubads().enableLazyLoad({ 194 fetchMarginPercent: 50, 195 renderMarginPercent: 0, 196 mobileScaling: 2.0, 197 }); 198 googletag.pubads().enableSingleRequest(); 199 googletag.enableServices(); 200 }); 201</script>
201 202<div id="Ad_e2aac896-dfcd-48e5-baf8-078bc3ff5b72" class="ad "> 203
203<script> 204 googletag.cmd.push(function () { googletag.display("Ad_e2aac896-dfcd-48e5-baf8-078bc3ff5b72"); }); 205 </script>
205 206 207</div> 208 209 210 </div> 211 <div class="col-auto d-none d-lg-block"> 212 213 214<!-- Adds PubAds Section -->
215<script> 216 googletag.cmd.push(function () { 217 googletag 218 .defineSlot('/52748101/textileweb/texw-earpiece', [230,90], 'Ad_c7baea70-1548-42a3-8972-7ae1796fec40') 219 .addService(googletag.pubads()); 220 googletag.pubads().enableLazyLoad({ 221 fetchMarginPercent: 50, 222 renderMarginPercent: 0, 223 mobileScaling: 2.0, 224 }); 225 googletag.pubads().enableSingleRequest(); 226 googletag.enableServices(); 227 }); 228</script>
228 229<div id="Ad_c7baea70-1548-42a3-8972-7ae1796fec40" class="ad "> 230
230<script> 231 googletag.cmd.push(function () { googletag.display("Ad_c7baea70-1548-42a3-8972-7ae1796fec40"); }); 232 </script>
232 233 234</div> 235 236 237 </div> 238 </div> 239</div> 240 241 242<div class="container vm-main-container"> 243 <main role="main"> 244 245<div class="row no-gutters pt-3 vm-hub-page"> 246 <div class="vm-layout-content-primary"> 247 <h1 class="vm-section-header">Products</h1> 248 <ol class="m-0 pt-3 pl-3" start="1"> 249 </ol> 250 251 <div class="row justify-content-center"> 252 <pager></pager> 253 </div> 254 </div> 255 256 <div class="vm-layout-content-secondary pr-1 pl-4"> 257 <div class="row justify-content-center"> 258 <div class="row mb-3"> 259 <div class="vm-content-item col-sm-12"> 260 261 262<!-- Adds PubAds Section -->
263<script> 264 googletag.cmd.push(function () { 265 googletag 266 .defineSlot('/52748101/textileweb/texw-medium-rectangle', [300,250], 'Ad_bdb5c485-1069-4494-a138-59b231ff34ae') 267 .addService(googletag.pubads()); 268 googletag.pubads().enableLazyLoad({ 269 fetchMarginPercent: 50, 270 renderMarginPercent: 0, 271 mobileScaling: 2.0, 272 }); 273 googletag.pubads().enableSingleRequest(); 274 googletag.enableServices(); 275 }); 276</script>
276 277<div id="Ad_bdb5c485-1069-4494-a138-59b231ff34ae" class="ad "> 278
278<script> 279 document.addEventListener("DOMContentLoaded", function () { 280 vertLib.site.Common.setupObserverIntersection("#Ad_bdb5c485-1069-4494-a138-59b231ff34ae", () => { 281 googletag.cmd.push(function () { 282 googletag.display("Ad_bdb5c485-1069-4494-a138-59b231ff34ae"); 283 }); 284 }); 285 }); 286 </script>
286 287 288</div> 289 290 291 </div> 292 </div> 293 294 295 <div class="row mb-3"> 296 <div class="vm-content-item col-sm-12"> 297 298 299<!-- Adds PubAds Section -->
300<script> 301 googletag.cmd.push(function () { 302 googletag 303 .defineSlot('/52748101/textileweb/texw-medium-rectangle', [300,250], 'Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4') 304 .addService(googletag.pubads()); 305 googletag.pubads().enableLazyLoad({ 306 fetchMarginPercent: 50, 307 renderMarginPercent: 0, 308 mobileScaling: 2.0, 309 }); 310 googletag.pubads().enableSingleRequest(); 311 googletag.enableServices(); 312 }); 313</script>
313 314<div id="Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4" class="ad "> 315
315<script> 316 document.addEventListener("DOMContentLoaded", function () { 317 vertLib.site.Common.setupObserverIntersection("#Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4", () => { 318 googletag.cmd.push(function () { 319 googletag.display("Ad_c0817a2b-3d75-4a67-b338-e2cef99d6eb4"); 320 }); 321 }); 322 }); 323 </script>
323 324 325</div> 326 327 328 </div> 329 </div> 330</div> 331 332<div class="row mobile-hide justify-content-center"> 333 <div class="col-auto pb-3"> 334 335 336<!-- Adds PubAds Section -->
337<script> 338 googletag.cmd.push(function () { 339 googletag 340 .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9') 341 .addService(googletag.pubads()); 342 googletag.pubads().enableLazyLoad({ 343 fetchMarginPercent: 50, 344 renderMarginPercent: 0, 345 mobileScaling: 2.0, 346 }); 347 googletag.pubads().enableSingleRequest(); 348 googletag.enableServices(); 349 }); 350</script>
350 351<div id="Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9" class="ad "> 352
352<script> 353 document.addEventListener("DOMContentLoaded", function () { 354 vertLib.site.Common.setupObserverIntersection("#Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9", () => { 355 googletag.cmd.push(function () { 356 googletag.display("Ad_e5333e8b-449b-4711-8fda-d6d31f264fd9"); 357 }); 358 }); 359 }); 360 </script>
360 361 362</div> 363 364 365 </div> 366 <div class="col-auto pb-3"> 367 368 369<!-- Adds PubAds Section -->
370<script> 371 googletag.cmd.push(function () { 372 googletag 373 .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_59011af4-c98c-481f-a52a-803d2de22cdc') 374 .addService(googletag.pubads()); 375 googletag.pubads().enableLazyLoad({ 376 fetchMarginPercent: 50, 377 renderMarginPercent: 0, 378 mobileScaling: 2.0, 379 }); 380 googletag.pubads().enableSingleRequest(); 381 googletag.enableServices(); 382 }); 383</script>
383 384<div id="Ad_59011af4-c98c-481f-a52a-803d2de22cdc" class="ad "> 385
385<script> 386 document.addEventListener("DOMContentLoaded", function () { 387 vertLib.site.Common.setupObserverIntersection("#Ad_59011af4-c98c-481f-a52a-803d2de22cdc", () => { 388 googletag.cmd.push(function () { 389 googletag.display("Ad_59011af4-c98c-481f-a52a-803d2de22cdc"); 390 }); 391 }); 392 }); 393 </script>
393 394 395</div> 396 397 398 </div> 399</div> 400<div class="row mobile-hide justify-content-center"> 401 <div class="col-auto pb-3"> 402 403 404<!-- Adds PubAds Section -->
405<script> 406 googletag.cmd.push(function () { 407 googletag 408 .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0') 409 .addService(googletag.pubads()); 410 googletag.pubads().enableLazyLoad({ 411 fetchMarginPercent: 50, 412 renderMarginPercent: 0, 413 mobileScaling: 2.0, 414 }); 415 googletag.pubads().enableSingleRequest(); 416 googletag.enableServices(); 417 }); 418</script>
418 419<div id="Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0" class="ad "> 420
420<script> 421 document.addEventListener("DOMContentLoaded", function () { 422 vertLib.site.Common.setupObserverIntersection("#Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0", () => { 423 googletag.cmd.push(function () { 424 googletag.display("Ad_6ce04cd7-fec2-4420-b24a-767d2f2cc2b0"); 425 }); 426 }); 427 }); 428 </script>
428 429 430</div> 431 432 433 </div> 434 <div class="col-auto pb-3"> 435 436 437<!-- Adds PubAds Section -->
438<script> 439 googletag.cmd.push(function () { 440 googletag 441 .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_41b301c3-c70f-431d-b726-43465957669d') 442 .addService(googletag.pubads()); 443 googletag.pubads().enableLazyLoad({ 444 fetchMarginPercent: 50, 445 renderMarginPercent: 0, 446 mobileScaling: 2.0, 447 }); 448 googletag.pubads().enableSingleRequest(); 449 googletag.enableServices(); 450 }); 451</script>
451 452<div id="Ad_41b301c3-c70f-431d-b726-43465957669d" class="ad "> 453
453<script> 454 document.addEventListener("DOMContentLoaded", function () { 455 vertLib.site.Common.setupObserverIntersection("#Ad_41b301c3-c70f-431d-b726-43465957669d", () => { 456 googletag.cmd.push(function () { 457 googletag.display("Ad_41b301c3-c70f-431d-b726-43465957669d"); 458 }); 459 }); 460 }); 461 </script>
461 462 463</div> 464 465 466 </div> 467</div> 468<div class="row mobile-hide justify-content-center"> 469 <div class="col-auto pb-3"> 470 471 472<!-- Adds PubAds Section -->
473<script> 474 googletag.cmd.push(function () { 475 googletag 476 .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519') 477 .addService(googletag.pubads()); 478 googletag.pubads().enableLazyLoad({ 479 fetchMarginPercent: 50, 480 renderMarginPercent: 0, 481 mobileScaling: 2.0, 482 }); 483 googletag.pubads().enableSingleRequest(); 484 googletag.enableServices(); 485 }); 486</script>
486 487<div id="Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519" class="ad "> 488
488<script> 489 document.addEventListener("DOMContentLoaded", function () { 490 vertLib.site.Common.setupObserverIntersection("#Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519", () => { 491 googletag.cmd.push(function () { 492 googletag.display("Ad_6926ec3a-2487-49d0-87c3-b6e4407c9519"); 493 }); 494 }); 495 }); 496 </script>
496 497 498</div> 499 500 501 </div> 502 <div class="col-auto pb-3"> 503 504 505<!-- Adds PubAds Section -->
506<script> 507 googletag.cmd.push(function () { 508 googletag 509 .defineSlot('/52748101/textileweb/texw-square-button', [125,125], 'Ad_c6db556b-da83-479b-b57c-fe4beca497de') 510 .addService(googletag.pubads()); 511 googletag.pubads().enableLazyLoad({ 512 fetchMarginPercent: 50, 513 renderMarginPercent: 0, 514 mobileScaling: 2.0, 515 }); 516 googletag.pubads().enableSingleRequest(); 517 googletag.enableServices(); 518 }); 519</script>
519 520<div id="Ad_c6db556b-da83-479b-b57c-fe4beca497de" class="ad "> 521
521<script> 522 document.addEventListener("DOMContentLoaded", function () { 523 vertLib.site.Common.setupObserverIntersection("#Ad_c6db556b-da83-479b-b57c-fe4beca497de", () => { 524 googletag.cmd.push(function () { 525 googletag.display("Ad_c6db556b-da83-479b-b57c-fe4beca497de"); 526 }); 527 }); 528 }); 529 </script>
529 530 531</div> 532 533 534 </div> 535</div> 536 537 </div> 538</div> 539 540 </main> 541</div> 542 543 544<footer class="border-top vert-footer d-print-none"> 545 <div class="container"> 546 <div class="row"> 547 <div class="col-sm"> 548 549 <h5 class="text-dark text-primary">About Us</h5> 550 <ul class="list-unstyled"> 551 <li> 552 <a href="/static/about" >Contact TextileWeb</a> 553 </li> 554 <li> 555 <a href="/doc/guest-expert-article-guidelines-0001	" >Editorial Submission Guidelines</a> 556 </li> 557 </ul> 558 </div> 559 </div> 560 </div> 561 <div class="container pb-3"> 562 <div class="d-print-none row no-gutters justify-content-center"> 563 <div class="d-none d-md-block col-auto"> 564 565 566<!-- Adds PubAds Section -->
567<script> 568 googletag.cmd.push(function () { 569 googletag 570 .defineSlot('/52748101/textileweb/texw-leaderboard', [728,90], 'Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00') 571 .addService(googletag.pubads()); 572 googletag.pubads().enableLazyLoad({ 573 fetchMarginPercent: 50, 574 renderMarginPercent: 0, 575 mobileScaling: 2.0, 576 }); 577 googletag.pubads().enableSingleRequest(); 578 googletag.enableServices(); 579 }); 580</script>
580 581<div id="Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00" class="ad "> 582
582<script> 583 document.addEventListener("DOMContentLoaded", function () { 584 vertLib.site.Common.setupObserverIntersection("#Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00", () => { 585 googletag.cmd.push(function () { 586 googletag.display("Ad_ea605198-d5bc-4e8c-987e-47c8dd70cc00"); 587 }); 588 }); 589 }); 590 </script>
590 591 592</div> 593 594 595 </div> 596 <div class="d-none d-md-block col-auto pl-2"> 597 598 599<!-- Adds PubAds Section -->
600<script> 601 googletag.cmd.push(function () { 602 googletag 603 .defineSlot('/52748101/textileweb/texw-earpiece', [230,90], 'Ad_71dac201-b303-44a3-8c93-c81f3db50a9f') 604 .addService(googletag.pubads()); 605 googletag.pubads().enableLazyLoad({ 606 fetchMarginPercent: 50, 607 renderMarginPercent: 0, 608 mobileScaling: 2.0, 609 }); 610 googletag.pubads().enableSingleRequest(); 611 googletag.enableServices(); 612 }); 613</script>
613 614<div id="Ad_71dac201-b303-44a3-8c93-c81f3db50a9f" class="ad "> 615
615<script> 616 document.addEventListener("DOMContentLoaded", function () { 617 vertLib.site.Common.setupObserverIntersection("#Ad_71dac201-b303-44a3-8c93-c81f3db50a9f", () => { 618 googletag.cmd.push(function () { 619 googletag.display("Ad_71dac201-b303-44a3-8c93-c81f3db50a9f"); 620 }); 621 }); 622 }); 623 </script>
623 624 625</div> 626 627 628 </div> 629 </div> 630 </div> 631 632 <div class="container small pb-3 text-center"> 633 <a href="/static/copyright">Copyright</a> 634 © 1996-2026 <a href="https://www.vertmarkets.com">VertMarkets, Inc.</a> 635 All Rights Reserved. 636 <a href="/static/legal">Terms of Use</a>. 637 <a href="/static/privacy">Privacy Statement</a>. 638 <a href="/user-request">Subscriber Request Form</a>. 639 <a href="/user-request?privacyType=ccpa">Don't sell my information</a> 640 </div> 641</footer> 642 643 644 645<!-- Google Tag Manager -->
646<script type="text/javascript"> 647 let score = ''; 648 let gtmEvents = []; 649 650 function loadRecaptcha () { 651 if (vertLib && typeof vertLib.site.Common.getRecaptchaToken === 'function') { 652 // when load and library is loaded then execute 653 vertLib.site.Common.setupGTM(dataLayer); 654 vertLib.site.Common.getRecaptchaToken('ga').then(function (token) { 655 return $.post('/recaptcha', { token: token }); 656 }).then(function (response) { 657 score = response.score.toString(); 658 gtmEvents = [{"$type":"Vert.Sites.Web.Models.Analytics.Events.GtmUserDataEvent, Vert.Sites.Web","event":"page_view","event_category":"","event_action":"","event_source":"server_side","portal":"TEXW"}] || []; 659 vertLib.site.Common.logGTMEvents(gtmEvents, score, dataLayer); 660 }); 661 } 662 } 663</script>
663 664
665<script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script>
665 666 667<!-- End Google Tag Manager --> 668 669
669<script type="text/javascript"> 670 window["munchkinUrl"] = 'https://app-ab30.marketo.com'; 671 window["munchkinFormId"] ='1067' 672 window["munchkinInstanceId"] = '075-NVC-086'; 673</script>
673 674
675<script> 676 window.addEventListener('load', initMunchkin); 677 678 function initMunchkin() { 679 if (vertLib && typeof vertLib.site.Common.associateMunchkin === 'function') { 680 vertLib.site.Common.associateMunchkin({ Email: window['__USER_EMAIL__'], UserId: window['__USER_ID__'] }); 681 } 682 } 683</script>
683 684 685<div id="userSubscriptionFormModal" class="modal"> 686 <div class="modal-dialog vm-modal"> 687 <div class="modal-content"> 688 <div class="modal-header"> 689 <img src="https://vertassets.blob.core.windows.net/sites/logos/texw.png" alt="Products Documents on Textile Web" class="mt-3" /> 690 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 691 </div> 692 <div class="modal-body"> 693 <div id="userSubscriptionContainer"> 694 <div id="areaOfFocus" class="mt-3 mx-4 mb-4"></div> 695 <div id="login" class="mt-3 mx-4 mb-4"></div> 696</div> 697
698<script id="areaOfFocusTemplate" type="text/x-template"> 699 {{@if (it.message)}} 700 <div class="alert alert-success d-flex flex-row p-2 m-0"> 701 <i class="fa fa-info mr-2 mt-1"></i> 702 <div>{{it.message | safe}}</div> 703 </div> 704 {{/if}} 705 <form method="post" action="/user-subscription/update" id="areaOfFocusForm" class="vm-form-alt"> 706 {{@if (it.showUserInfoFields)}} 707 <div> 708 <div class="pt-3">Please tell us more about you so that we can customize our newsletters to your specific interests:</div> 709 <div class="row"> 710 <div class="form-group col-md-6"> 711 <label for="JobTitle">Job Title</label> 712 <input type="text" class="form-control form-control-sm" id="JobTitle" name="JobTitle" value="{{ it.jobTitle }}" /> 713 </div> 714 <div class="form-group col-md-6"> 715 <label for="Company">Company</label> 716 <input type="text" class="form-control form-control-sm" id="Company" name="Company" value="{{ it.company }}" /> 717 </div> 718 </div> 719 </div> 720 {{/if}} 721 {{@if (it.subscriptions.length)}} 722 <div class="vm-checkbox-container primary"> 723 <div class="form-check-inline p-2 input-container form-check"> 724 {{@if (it.subscriptions[0].isSelected)}} 725 <input type="checkbox" name="subscriptions" checked="checked" value="{{it.subscriptions[0].id}}" class="form-check-input"/> <label class="form-check-label">{{it.subscriptions[0].text}}</label> 726 {{#else}} 727 <input type="checkbox" name="subscriptions" value="{{it.subscriptions[0].id}}" class="form-check-input"/> <label class="form-check-label">{{it.subscriptions[0].text}}</label> 728 {{/if}} 729 </div> 730 </div> 731 {{/if}} 732 {{@if (it.personas.length)}} 733 <div class="vm-checkbox-container"> 734 <div class="p-4 input-container"> 735 <div class="topics-blurb">What topics interest you? (Check all that apply.)</div> 736 {{@each(it.personas) => pers, index}} 737 {{@if (index%2 === 0)}} 738 <div class="row pl-3 vm-checkbox-container"> 739 {{/if}} 740 <div class="col-md-6 text-capitalize form-check"> 741 {{@if (pers.isSelected)}} 742 <input type="checkbox" name="personas" checked="checked" value="{{pers.id}}" class="form-check-input"/> <label class="form-check-label">{{pers.text}}</label> 743 {{#else}} 744 <input type="checkbox" name="personas" value="{{pers.id}}" class="form-check-input"/> <label class="form-check-label">{{pers.text}}</label> 745 {{/if}} 746 </div> 747 {{@if (index%2 !== 0 && index > 0)}} 748 </div> 749 {{/if}} 750 {{/each}} 751 {{@if (it.personas.length%2 === 0)}} 752 </div> 753 {{/if}} 754 </div> 755 </div> 756 {{#elif (it.subscriptions.length)}} 757 <div class="pt-3">You may also be interested in these industry newsletters:</div> 758 <div class="p-4 input-container"> 759 {{@each(it.subscriptions) => sub, index}} 760 {{@if (index > 0)}} 761 {{@if (index%2 !== 0)}} 762 <div class="row pl-3 vm-checkbox-container"> 763 {{/if}} 764 <div class="col-md-6 text-capitalize form-check"> 765 {{@if (sub.isSelected)}} 766 <input type="checkbox" name="subscriptions" checked="checked" value="{{sub.id}}" class="form-check-input"/> <label class="form-check-label">{{sub.text}}</label> 767 {{#else}} 768 <input type="checkbox" name="subscriptions" value="{{sub.id}}" class="form-check-input"/> <label class="form-check-label">{{sub.text}}</label> 769 {{/if}} 770 </div> 771 {{@if (index%2 === 0)}} 772 </div> 773 {{/if}} 774 {{/if}} 775 {{/each}} 776 {{@if (it.subscriptions.length%2 === 0)}} 777 </div> 778 {{/if}} 779 <button id="selectAll" type="button" class="btn btn-link pl-0 pt-2">Select All</button> 780 </div> 781 {{/if}} 782 <div class="row justify-content-end"> 783 <div class="col-12"> 784 <button type="submit" class="btn vm-alt-button mt-4">
785 <span class="vm-button-text">Finish</span> 786 </button> 787 </div> 788 </div> 789 <input type="hidden" name="OnlineId" id="OnlineId" value="{{it.onlineId}}" /> 790 </form> 791</script>
791 792
793<script id="loginTemplate" type="text/x-template"> 794 {{@if (it.message)}} 795 {{@if (it.hasError)}} 796 <div class="alert alert-danger d-flex flex-row p-2 m-0"> 797 {{ #else }} 798 <div class="alert alert-warning d-flex flex-row p-2 m-0"> 799 {{/if}} 800 <i class="fa fa-info mr-2 mt-1"></i> 801 <div>{{it.message | safe}}</div> 802 </div> 803 {{/if}} 804 <form method="post" action="/user-subscription/login" id="loginForm" class="vm-form-alt"> 805 <div class="row"> 806 <div class="form-group col"> 807 <label for="Email">Email</label> 808 <input type="text" class="form-control form-control" id="Email" name="Email" maxlength="100" value="{{it.email}}" /> 809 </div> 810 </div> 811 <div class="row"> 812 <div class="form-group col"> 813 <label for="Password">Password</label> 814 <input type="password" class="form-control form-control" id="Password" name="Password" /> 815 </div> 816 </div> 817 <div class="row"> 818 <div class="form-group col"> 819 <small> 820 <a href="/password/forgotpassword">Forgot your password?</a> 821 </small> 822 </div> 823 </div> 824 825 <div class="vm-oauth-providers"> 826 <span class="small mb-4">... or you can:</span> 827 <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Google&source=user-sub"> 828 <i class="fa fa-google" aria-hidden="true"></i> 829 </a> 830 <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=Facebook&source=user-sub"> 831 <i class="fa fa-facebook" aria-hidden="true"></i> 832 </a> 833 <a class="btn btn-lg rounded-circle" role="button" href="/user-oauth/login?oAuthType=LinkedIn&source=user-sub"> 834 <i class="fa fa-linkedin" aria-hidden="true"></i> 835 </a> 836 </div> 837 838 <div class="row justify-content-end"> 839 <div class="col-12"> 840 <button type="submit" class="btn vm-alt-button mt-4"> 841 <span class="vm-button-text">Sign In</span> 842 </button> 843 </div> 844 </div> 845 846 <input type="hidden" name="JobTitle" id="JobTitle" value="{{it.jobTitle}}" /> 847 <input type="hidden" name="Company" id="Company" value="{{it.company}}" /> 848 <input type="hidden" name="OnlineId" id="OnlineId" value="{{it.onlineId}}" /> 849 <input type="hidden" name="Privacy" id="OnlineId" value="{{it.privacy}}" /> 850 </form> 851</script>
851 852
853<script> 854 window.userSubSettings = undefined; 855</script>
855 856 </div> 857 </div> 858 </div> 859</div> 860 861 862
863<script id="modalTemplate" type="text/x-template"> 864 <div class="modal fade" id="{{ it.id }}" role="dialog" tabindex="-1" data-keyboard="false" data-backdrop="{{ (it.backdrop || 'true') }}"> 865 <div class="modal-dialog vm-modal"> 866 <div class="modal-content"> 867 {{ @if(it.title) }} 868 <div class="modal-header no-gutters justify-content-between"> 869 <div class="col"> 870 <h2>{{ it.title | safe }}</h2> 871 </div> 872 <div class="col-auto"> 873 <div class="vm-ajax-loader"><span></span></div> 874 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 875 </div> 876 </div> 877 {{ /if }} 878 <div class="modal-body">{{ it.body | safe }}</div> 879 {{ @if (it.hideFooter !== true) }} 880 <div class="modal-footer"> 881 <div class="row justify-content-end"> 882 <div class="col-12"> 883 <button type="button" data-dismiss="modal" class="btn vm-button">Close</button> 884 </div> 885 </div> 886 </div> 887 {{ /if }} 888 </div> 889 </div> 890 </div> 891</script>
891 892 893</body> 894</html>
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.