PageSourceSearch

https://mas.adobe.com/studio.html

html adobe.com collected 2026-10-09 21:29:18 UTC 12,557 bytes, 152 lines download raw bytes

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.