1<!doctype html> 2<html> 3 <head> 4 <title>Merch at Scale Studio</title> 5 <meta property="og:title" content="Merch at Scale Studio" /> 6 <meta name="robots" content="noindex, nofollow" /> 7 <meta name="nofollow-links" content="on" /> 8 <meta name="viewport" content="width=device-width, initial-scale=1" /> 9 <meta name="aem-base-url" /> 10 <meta name="io-base-url" /> 11
11<script> 12 // Relay check - redirect back to origin port if relayPort param + token in hash 13 const relayPort = new URLSearchParams(window.location.search).get('relayPort'); 14 if (relayPort && window.location.hash.length > 1) { 15 const url = new URL(window.location.href); 16 url.hostname = 'localhost'; 17 url.port = relayPort; 18 url.searchParams.delete('relayPort'); 19 window.location.replace(url.toString()); 20 } 21 </script>
21 22
22<script type="importmap"> 23 { 24 "imports": { 25 "lit": "/web-components/dist/lit-all.min.js", 26 "lit/directives/unsafe-html.js": "/web-components/dist/lit-all.min.js", 27 "lit/directives/style-map.js": "/web-components/dist/lit-all.min.js", 28 "lit/directives/class-map.js": "/web-components/dist/lit-all.min.js", 29 "lit/directives/repeat.js": "/web-components/dist/lit-all.min.js", 30 "lit/directives/until.js": "/web-components/dist/lit-all.min.js", 31 "lit/directives/keyed.js": "/web-components/dist/lit-all.min.js", 32 "prosemirror-state": "/studio/libs/prosemirror.js", 33 "prosemirror-model": "/studio/libs/prosemirror.js", 34 "prosemirror-view": "/studio/libs/prosemirror.js", 35 "prosemirror-keymap": "/studio/libs/prosemirror.js", 36 "prosemirror-schema-basic": "/studio/libs/prosemirror.js", 37 "prosemirror-commands": "/studio/libs/prosemirror.js", 38 "prosemirror-schema-list": "/studio/libs/prosemirror.js", 39 "prosemirror-history": "/studio/libs/prosemirror.js", 40 "fragment-client": "/studio/libs/fragment-client.js" 41 } 42 } 43 </script>
43 44
44<script> 45 const BUCKETS = { 46 qa: 'e155390', 47 stage: 'e59471', 48 prod: 'e59433', 49 }; 50 const params = new URLSearchParams(window.location.search); 51 const envOverride = params.get('aem.env'); 52 const isLocal = window.location.href.includes('localhost'); 53 let bucket; 54 let baseUrl; 55 if (isLocal) { 56 const proxyPort = params.get('proxy.port') || 8080; 57 baseUrl = `http://localhost:${proxyPort}`; 58 } else { 59 bucket = envOverride && BUCKETS[envOverride] ? BUCKETS[envOverride] : BUCKETS.prod; 60 baseUrl = `https://author-p22655-${bucket}.adobeaemcloud.com`; 61 } 62 if (envOverride) { 63 document.querySelector('title').innerText += ` [${envOverride.toUpperCase()}]`; 64 } 65 document.querySelector('meta[name="aem-base-url"]')?.setAttribute('content', baseUrl); 66 const ioStudioEnvParam = params.get('io.studio.env') || envOverride; 67 const ioStudioEnv = ioStudioEnvParam ? `-${ioStudioEnvParam}` : ''; 68 const ioBaseUrl = `https://14257-masstudio${ioStudioEnv}.adobeioruntime.net/api/v1/web/MerchAtScaleStudio`; 69 document.querySelector('meta[name="io-base-url"]')?.setAttribute('content', ioBaseUrl); 70 </script>
70 71
71<script src="../web-components/dist/mas.js" type="module"></script>
71 72
72<script src="studio/libs/swc.js" type="module"></script>
72 73 74 <!-- OST: legacy tacocat bundle by default; ?ost=new (or #ost=new) loads the new Lit OST from the same deployment. --> 75
75<script> 76 (function () { 77 const search = new URLSearchParams(location.search).get('ost'); 78 const hash = (location.hash.match(/(?:^#|&)ost=([^&]+)/) || [])[1]; 79 const useNew = (search || hash) === 'new'; 80 const newJs = 'studio/ost/ost-new.js'; 81 const newCss = './studio/ost/index.css'; 82 const legacyJs = 'studio/ost/index.js'; 83 const legacyCss = 'studio/ost/index.css'; 84 const js = useNew ? newJs : legacyJs; 85 const css = useNew ? newCss : legacyCss; 86 document.write(`
86<script src="${js}" defer><\/script>`); 87 document.write(`<link rel="stylesheet" href="${css}" />`); 88 })(); 89 </script>
89 90 <link rel="stylesheet" href="studio/libs/spectrum.css" /> 91 <link rel="stylesheet" href="./studio/style.css" /> 92 <link rel="stylesheet" href="./studio/merch-card.css" /> 93 <link rel="stylesheet" href="./studio/con-button.css" /> 94 <link rel="stylesheet" href="https://use.typekit.net/hah7vzn.css" /> 95
95<script> 96 function initMasStudio() { 97 console.info('[M@S Studio] IMS is ready, signed in'); 98 const studio = document.createElement('mas-studio'); 99 studio.setAttribute('base-url', baseUrl); 100 bucket && studio.setAttribute('aem-bucket', bucket); 101 document.querySelector('sp-theme').appendChild(studio); 102 if (envOverride) studio.aemEnv = envOverride; 103 } 104 const context = { 105 profile_filter: `{"findFirst":true,"fallbackToAA":true,"searchEntireCluster":true};isOwnedByOrg('3B962FB55F5F922E0A495C88@AdobeOrg')`, 106 }; 107 window.adobeid = { 108 api_parameters: { 109 profile_filter: "isOwnedByOrg('3B962FB55F5F922E0A495C88@AdobeOrg')", 110 }, 111 client_id: 'mas-studio', 112 environment: 'prod', 113 locale: 'en_US', 114 redirect_uri: 115 location.port && location.port !== '3000' 116 ? `http://localhost:3000/studio.html?relayPort=${location.port}` 117 : location.href.substring(0, location.href.length - location.hash.length), 118 response_type: 'id_token', 119 scope: 'additional_info,additional_info.projectedProductContext,additional_info.roles,AdobeID,openid,read_organizations,read_members', 120 useLocalStorage: true, 121 authorize() { 122 const { expire, token } = window.adobeIMS?.getAccessToken() ?? {}; 123 if (token && (expire?.valueOf() ?? 0) > Date.now()) return token; 124 window.adobeIMS?.signIn(); 125 }, 126 onError(error) { 127 console.error('[M@S Studio] IMS error: ', error); 128 }, 129 onReady() { 130 adobeIMS 131 .validateToken() 132 .then(initMasStudio) 133 .catch((e) => { 134 console.error('[M@S Studio] failed to refresh IMS token: ', e); 135 console.info('[M@S Studio] Signing in'); 136 adobeIMS.signIn(context); 137 }); 138 }, 139 }; 140 </script>
140 141
141<script src="https://www.adobe.com/libs/deps/imslib.min.js"></script>
141 142
142<script src="studio/src/studio.js" type="module"></script>
142 143
144<script>(window.BOOMR_mq=window.BOOMR_mq||[]).push(["addVar",{"rua.upush":"false","rua.cpush":"false","rua.upre":"false","rua.cpre":"false","rua.uprl":"false","rua.cprl":"false","rua.cprf":"false","rua.trans":"","rua.cook":"false","rua.ims":"false","rua.ufprl":"false","rua.cfprl":"false","rua.isuxp":"false","rua.texp":"norulematch","rua.ceh":"false","rua.ueh":"false","rua.ieh.st":"0"}]);</script>
144 145
145<script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="6T7C3-G6RXN-N3YTK-LJQUQ-BJ47R",function(){function e(){if(!i){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,o.parentNode.appendChild(e),i=!0}}function t(e){i=!0;var n,t,a,r,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(o.parentNode,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",r=(a.frameElement||a).style,r.width=0,r.height=0,r.border=0,r.display="none",o.parentNode.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void(0);",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=12,window.BOOMR.url=n+"6T7C3-G6RXN-N3YTK-LJQUQ-BJ47R";var o=document.currentScript||document.getElementsByTagName("script")[0],i=!1,r=document.createElement("link");if(r.relList&&"function"==typeof r.relList.supports&&r.relList.supports("preload")&&"as"in r)window.BOOMR.snippetMethod="p",r.href=window.BOOMR.url,r.rel="preload",r.as="script",r.addEventListener("load",e),r.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!i)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),o.parentNode.appendChild(r);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="wxlucpqxah7mw2wjlsxa-f-b3ba7279f-clientnsv4-s.akamaihd.net",o="false"=="true"?2:1,i={"ak.v":"41","ak.cp":"1776643","ak.ai":parseInt("1156825",10),"ak.ol":"0","ak.cr":0,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"a1620134","ak.r":54388,"ak.a2":n,"ak.m":"","ak.n":"ff","ak.cport":59475,"ak.gh":"2.20.68.75","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"bbr","ak.t":"1791581358","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==jkQJCmt4WNv1WX8MM/GGr3mJmb2i8ek9KFSxbj2VM/bfL+gkoNaz0JOCA8cD1PBEe87yD63u+XkfadBPtrbfnYYmyJR/FL2qQB+27esQejDyboNdrW1sBe5cXXXvRqIUtDE+I/1mb1okpbSpvipH/4pNA+fC8GAoZyGXNteTbgwH8NSvUT8woqayrl/1m2ELGyN5P3+LWB9wBC7yoAA+xb6qt+lwAbG2HiXn6lnAy2TnUbaRunccIITjsC/ukF81LcjKjAjDgLqPEVtvzZx5qbHIu8S7uxHg/cr2HrGFlD7+V/NzMxr1Tq5rnrZkkWqu06AzcoY0EzxlL0Thc//wo08BQc6IZkQg4QhDijQlYdLLYkGK9IypZWHpqmLwPv7X1KTSmSfOTz7OGe22wBvjZmjTOrETtH/JkTCbXVq+sAk=","ak.pv":"9","ak.dpoabenc":"","ak.tf":o};if(""!==t)i["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))i["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(i)},rv:function(){var e=["ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:i,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script>
145</head> 146 <body class="spectrum spectrum--medium spectrum--light"> 147 <mas-commerce-service></mas-commerce-service> 148 <main> 149 <sp-theme system="spectrum-two" color="light" scale="medium"> </sp-theme> 150 </main> 151 </body> 152</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.