PageSourceSearch

https://patternflow.work/_next/static/immutable/chunks/0ohnjxif3diww.js

js patternflow.work collected 2026-10-08 09:44:27 UTC 9,192 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,658250,e=>{"use strict";var t=e.i(414294),r=e.i(504561),a=e.i(430878),i=e.i(956115),n=e.i(709729),l=e.i(778600);let u={en:{meta:{title:"The Patternflow guide",description:"Four guides, by where you are: build a Patternflow from bare parts, play the one you've built, make your own patterns, and bring sound and MIDI to it with the Audio edition."},kicker:"The guide",title:"Start where you are.",guides:{build:{situation:"You're soldering one from bare parts."},play:{situation:"Your Patternflow is built."},make:{situation:"It plays. Now make your own."},audio:{situation:"It plays. Now add sound and MIDI."}},report:{label:"Stuck? Tell us",where:"The guide, somewhere not listed"}},ko:{meta:{title:"패턴플로우 가이드",description:"지금 있는 곳에 맞춰 고르는 가이드 네 개. 맨 부품에서 납땜해 만들고, 다 만든 걸 연주하고, 내 패턴을 만들고, 오디오 에디션으로 소리와 MIDI를 이어요."},kicker:"가이드",title:"지금 있는 곳에서 시작해요.",guides:{build:{situation:"맨 부품부터 직접 납땜해 만들어요."},play:{situation:"패턴플로우를 다 만들었어요."},make:{situation:"잘 돌아가요. 이제 내 패턴을 만들어요."},audio:{situation:"잘 돌아가요. 이제 소리나 DAW를 이어요."}},report:{label:"막혔나요? 알려 주세요",where:"가이드 어딘가 (단계 없음)"}}};var s=e.i(94350),o=e.i(251237);let d="^(flash|knobs|patterns|console|next)(-[0-9]+)?$",c={"/guide":"/guide/play","/guide/ko":"/guide/play/ko"};JSON.stringify(c),JSON.stringify(d);var f=e.i(206552),h=e.i(79192),p=e.i(891703),g=e.i(62092),w=e.i(222084),m=e.i(647266),_=e.i(79371),b=e.i(512209),v=e.i(893576);let k={scale:3,hop:8,sitAfter:7e3};function E({within:e,chosen:r,onChoose:i}){let{el:n,path:l,engine:u}=(0,v.useResident)(k),o=(0,a.useRef)([]),d=(0,a.useRef)(-1),c=(0,a.useRef)(r);return(0,a.useEffect)(()=>{c.current=r},[r]),(0,a.useEffect)(()=>{let t=e.current,r=u.current;if(!t||!r)return;let a=()=>{let e=Array.from(t.querySelectorAll("[data-guide]"));if(!e.length||0===e[0].offsetWidth)return;let a=t.getBoundingClientRect(),i=e.map(e=>{let t=e.getBoundingClientRect();return{left:t.left-a.left,right:t.right-a.left,top:t.top-a.top}}),n=-1/0,l=t.querySelector("h1");if(l){let e=document.createRange();e.selectNodeContents(l),n=e.getBoundingClientRect().right-a.left}let u=t.querySelector("[data-report]"),s=u?u.getBoundingClientRect().left-a.left:1/0,c=r.width,f=[i[0].left];for(let e of i){let t=(e.left+e.right)/2-c/2;t<n+16&&n+16+c<=e.right-8&&(t=n+16),t+c>s-16&&s-16-c>=Math.max(e.left+8,n+16)&&(t=s-16-c),f.push(t)}o.current=f;let h=[],p=0;for(let e=0;e+1<i.length;e++)h.push((i[e].right+i[e+1].left)/2),p=Math.max(p,(i[e+1].left-i[e].right)/2+12);r.setGaps(h,p),r.setGround(a.left,i[0].top-3*b.ROWS),r.put(f[d.current+1])};a();let i=new ResizeObserver(a);return i.observe(t),window.addEventListener("resize",a),()=>{i.disconnect(),window.removeEventListener("resize",a)}},[e,u]),(0,a.useEffect)(()=>f.useGuideStore.subscribe((e,t)=>{let r=u.current;r&&"hub"===e.page&&(e.preview!==t.preview&&(e.preview&&(d.current=s.GUIDE_ORDER.indexOf(e.preview),r.walkTo(o.current[d.current+1])),r.setRestful(null===e.preview)),e.leaving!==t.leaving&&e.leaving&&"hub"!==e.leaving&&r.hop())}),[u]),(0,a.useEffect)(()=>{let t=t=>{let r=f.useGuideStore.getState(),a=c.current;if(c.current=t,i(t),t)return r.setPreview(t),!1;let n=e.current?.querySelector("[data-guide]:hover")?.dataset.guide;return n?r.setPreview(n):a&&r.preview===a&&r.setPreview(null),!!n},r=r=>{if(r.defaultPrevented||r.altKey||r.ctrlKey||r.metaKey||r.shiftKey||(0,_.busy)(r.target)||null!==f.useGuideStore.getState().leaving)return;let a=e.current,i=u.current;if(!a||!i||!i.isPlaced)return;let n=r.key,l="ArrowRight"===n||"d"===n||"D"===n?1:"ArrowLeft"===n||"a"===n||"A"===n?-1:0,h=document.activeElement;if(l){let e=Array.from(a.querySelectorAll("[data-guide] > a")),n=h?e.indexOf(h):-1;if(n>=0){r.preventDefault(),e[n+l]?.focus();return}let u=Math.max(-1,Math.min(s.GUIDE_ORDER.length-1,d.current+l));
1if(r.preventDefault(),u<0){if(t(null))return;d.current=-1,i.walkTo(o.current[0]);return}d.current=u,t(s.GUIDE_ORDER[u]),i.walkTo(o.current[u+1]);return}let p=c.current;if(p){if("Escape"===n)return void t(null);"Enter"!==n&&" "!==n||h&&h!==document.body||(r.preventDefault(),a.querySelector(`[data-guide="${p}"] > a`)?.click())}};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[e,u,i]),(0,t.jsx)(v.Figure,{el:n,path:l,engine:u,scale:3,place:"hub"})}function y(e){return(0,v.useWide)()?(0,t.jsx)(E,{...e}):null}function P(e){f.useGuideStore.getState().setPreview(e)}function x(e){let t=f.useGuideStore.getState();t.preview===e&&t.setPreview(null)}e.s(["default",0,function({lang:e}){let _=l.COPY[e],b=u[e],v="en"===e?"ko":"en",k=(0,a.useRef)(null),E=(0,a.useRef)(null),[S,j]=(0,a.useState)(null);return(0,a.useLayoutEffect)(()=>{let e=document.documentElement,t=()=>{var t,r,a;let i,n,l=(t=window.location.pathname,r=window.location.search,a=window.location.hash,i=c[t.replace(/\/+$/,"")],n=a.replace(/^#/,""),i&&new RegExp(d).test(n)?`${i}${r}#${n}`:null);l&&(e.style.visibility="hidden",window.location.replace(l))},r=t=>{t.persisted&&(e.style.visibility="")};return t(),window.addEventListener("hashchange",t),window.addEventListener("pageshow",r),()=>{window.removeEventListener("hashchange",t),window.removeEventListener("pageshow",r)}},[]),(0,p.useGuidePage)("hub",e),(0,a.useLayoutEffect)(()=>{let e=E.current;if(!e)return;let t=()=>f.useGuideStore.getState().setHubTop(Math.round(e.getBoundingClientRect().top+window.scrollY));t();let r=new ResizeObserver(t);return r.observe(e),window.addEventListener("resize",t),()=>{r.disconnect(),window.removeEventListener("resize",t)}},[E]),(0,m.usePanelTint)(k),(0,a.useEffect)(()=>()=>f.useGuideStore.setState({preview:null}),[]),(0,t.jsxs)("div",{className:`${i.default.page} ${n.default.page}`,lang:e,ref:k,"data-page":"hub",children:[(0,t.jsx)(g.default,{}),(0,t.jsxs)("header",{className:`${i.default.top} ${n.default.top}`,children:[(0,t.jsxs)("div",{className:i.default.brandRow,children:[(0,t.jsx)(r.default,{href:"/",className:i.default.brand,children:_.brand}),(0,t.jsx)("span",{className:i.default.wip,title:_.ui.wip,children:"WIP"})]}),(0,t.jsx)(h.default,{to:"hub",lang:v,className:i.default.lang,hrefLang:v,children:_.langSwitch.label})]}),(0,t.jsx)("main",{className:i.default.story,children:(0,t.jsx)("section",{className:`${i.default.scene} ${n.default.hub}`,"data-scene":"opening",id:"top",children:(0,t.jsxs)("div",{ref:E,className:n.default.inner,"data-leaves":"",children:[(0,t.jsxs)("h1",{className:n.default.title,children:[(0,t.jsx)("span",{className:n.default.kicker,children:b.kicker})," ",b.title]}),(0,t.jsx)(y,{within:E,chosen:S,onChoose:j}),(0,t.jsx)("ol",{className:n.default.guides,"data-walk":S?"":void 0,onPointerMove:e=>{if(null===S||"mouse"!==e.pointerType)return;j(null);let t=e.target.closest?.("[data-guide]")?.dataset.guide;f.useGuideStore.getState().setPreview(t??null)},children:s.GUIDE_ORDER.map((r,l)=>{let u=s.PAGES[r].text(e),o=`hub-${r}-inside`;return(0,t.jsxs)("li",{className:n.default.guide,"data-guide":r,"data-here":S===r?"":void 0,children:[(0,t.jsxs)(h.default,{to:r,lang:e,className:n.default.go,"aria-describedby":o,onPointerOver:e=>{"mouse"===e.pointerType&&P(r)},onPointerLeave:()=>x(r),onFocus:()=>{j(null),P(r)},onBlur:()=>x(r),children:[(0,t.jsx)("span",{className:n.default.num,children:String(l+1).padStart(2,"0")}),(0,t.jsx)("span",{className:`${n.default.name} ${i.default.wordsNow}`,children:(0,t.jsx)(w.default,{text:u.name})}),(0,t.jsx)("span",{className:n.default.arrow,"aria-hidden":"true",children:"→"}),(0,t.jsx)("span",{className:n.default.situation,children:b.guides[r].situation})]}),(0,t.jsx)("p",{className:n.default.inside,id:o,children:u.chapters.map((e,r)=>(0,t.jsxs)(a.Fragment,{children:[(0,t.jsx)("span",{className:n.default.chapter,children:r<u.chapters.length-1?`${e.label} \xb7`:e.label})," "]},e.id))})]},r)})}),(0,t.jsxs)("a",{className:`${i.default.report} ${n.default.report}`,href:(0,o.reportUrl)("stuck",b.report.where),target:"_blank",rel:"noopener noreferrer",title:_.ui.report.hint,"data-report":!0,onClick:e=>{e.currentTarget.href=(0,o.reportUrl)("stuck",b.report.where,(0,o.hereFor)())},children:[b.report.label,(0,t.jsx)("span",{"aria-hidden":"true",children:"↗"})]})]})})})]})}],658250)},709729,e=>{e.v({arrow:"Hub-module__qaPEka__arrow",chapter:"Hub-module__qaPEka__chapter",go:"Hub-module__qaPEka__go",guide:"Hub-module__qaPEka__guide",guides:"Hub-module__qaPEka__guides",hub
1:"Hub-module__qaPEka__hub",hubDraw:"Hub-module__qaPEka__hubDraw",hubLine:"Hub-module__qaPEka__hubLine",inner:"Hub-module__qaPEka__inner",inside:"Hub-module__qaPEka__inside",kicker:"Hub-module__qaPEka__kicker",name:"Hub-module__qaPEka__name",num:"Hub-module__qaPEka__num",page:"Hub-module__qaPEka__page",report:"Hub-module__qaPEka__report",situation:"Hub-module__qaPEka__situation",title:"Hub-module__qaPEka__title",top:"Hub-module__qaPEka__top"})}]);

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.