PageSourceSearch

https://okaydev.co/dist/assets/edit-portfolio-renderer-DMXNSR-_.js

js okaydev.co collected 2026-10-03 23:31:17 UTC 373,525 bytes, 1 lines download raw bytes

1import{D as e}from"./default-renderer-B6hd38wO.js";/* empty css                  *//* empty css                              *//* empty css                     *//* empty css                       */import{t,bh as i,bi as r,b2 as a,I as o,b as s,T as l,s as n,G as d,f as c,g as u,aK as h,aL as m,Y as p}from"./HeaderLogoLetters-CMLHzChc.js";import{P as v}from"./app-BiaPDw27.js";import{w as g}from"./bentoProfileCopy-Cvj2CDYQ.js";import{d as y}from"./deletePjaxCacheEntriesForUrl-B0q5sCrG.js";import{e as b}from"./SocialPosts-Sl2W8KRq.js";import{a as f,p as S,s as L,n as k}from"./projectCredits-5PjutgUg.js";import{r as w,P,f as M,h as C,b as A,d as j,e as I}from"./videoPosterMediabunny-za3M6-YY.js";import{i as E,n as T,v as D,g as q}from"./mediaUploadStatusError-Wg01TlmW.js";import{C as R}from"./choices-C12I8513.js";import{D as x}from"./DragSort-DSmbhGco.js";import"./SplitText-VLUCmDhw.js";import"./lazyDialog-CU88mIO4.js";import"./distributeProjectAuthorCard-W_A8WnxX.js";import"./refreshNavbarAuth-V-4DhXEm.js";import"./patchCommentsProtect-0fppbX_Y.js";import"./loadEmojiPicker-CsEuOpyk.js";import"./output-BQAQukZ9.js";import"./Draggable-DXiwSRJk.js";const H={url:".project-link-section, #portfolioLink",date:".project-date, #portfolioDate",title:".project-title-section, #title",description:".project-description-section, .project-description-edit-surface",slug:".project-slug, #slug","social image":".project-social-share-image, [data-social-share-image]",credits:".project-credits, [data-credits-modal-content]",agency:".project-agency, #agency",client:".project-client, #client",awards:".project-awards-section","skills tools":".project-skills-tools, #skillsTools",categories:'.project-categories, dialog[data-dialog="categories"]',styles:'.project-styles, dialog[data-dialog="styles"]',publish:'[data-action="toggle-publish"]'};class B{constructor(e,i,{emit:r=t,dirty:a=(()=>!1)}={}){this.root=e,this.prefix=`project ${i?"new":"edit"} `,this.emit=r,this.readDirty=a,this.seen=new Set,this.lastArea="primary",this.saving=!1,this.departed=!1,this.meaningful=!1,this.gesture=null,this.abort=new AbortController,this.once("editor opened");const o={capture:!0,signal:this.abort.signal};e.addEventListener("pointerdown",(e=>{e.isTrusted&&(this.gesture={at:performance.now(),target:e.target})}),o),e.addEventListener("keydown",(e=>{e.isTrusted&&(this.gesture={at:performance.now(),keyboard:"Tab"===e.key,target:e.target})}),o),e.addEventListener("focusin",(e=>{var t,i;!e.isTrusted||!this.gesture||performance.now()-this.gesture.at>1e3||(this.gesture.keyboard||(null==(i=null==(t=this.gesture.target)?void 0:t.closest)?void 0:i.call(t,this.fieldSelector(e.target))))&&(this.fieldAction(e.target,"focused"),this.gesture=null)}),o);const s=e=>{var t;const i="change"===e.type&&e.target.matches("select")&&this.gesture&&performance.now()-this.gesture.at<500&&(this.gesture.target===e.target||(null==(t=e.target.closest(".choices"))?void 0:t.contains(this.gesture.target)));(e.isTrusted||i)&&(e.target.matches('.choices__input--cloned, input[type="search"], #member-credits-input')||(this.fieldAction(e.target,"changed"),this.changed(this.area(e.target))))};e.addEventListener("input",s,o),e.addEventListener("change",s,o),e.addEventListener("click",(e=>{if(!e.isTrusted)return;const t=e.target.closest("button");t&&!t.disabled&&t.matches('[data-action="toggle-publish"]')&&(this.fieldAction(t,"changed"),this.changed("extras")),(null==t?void 0:t.matches("[data-inline-toolbar-trigger]"))&&"true"!==t.getAttribute("aria-expanded")&&this.once("section opened content");const i=e.target.closest("[data-project-details-tab]");i&&"true"!==i.getAttribute("aria-selected")&&this.once(`section opened ${i.dataset.projectDetailsTab}`)}),o),window.addEventListener("pagehide",(e=>{e.persisted||this.depart()}),o),window.addEventListener("pageshow",(()=>{this.departed=!1}),o),this.observe()}once(e){this.seen.has(e)||(this.seen.add(e),this.emit(this.prefix+e))}area(e){var t,r,a,o;const s=null==(r=null==(t=null==e?void 0:e.closest)?void 0:t.call(e,"[data-project-details-group]"))?void 0:r.dataset.projectDetailsGroup;return i.includes(s)?s:(null==(a=null==e?void 0:e.closest)?void 0:a.call(e,"[data-media-component], [data-media-library]"))?"media":(null==(o=null==e?void 0:e.closest)?void 0:o.call(e,".portfolio-blocks"))?"content":this.lastArea}fieldSelector(e){return Object.values(H).find((t=>{var i;return null==(i=null==e?void 0:e.closest)?void 0:i.call(e,t)}))||"[data-no-analytics-field]"}fieldAction(e,t){for(const[i,r]of Object.entries(H))if(e.closest(r)){this.once(`field ${t} ${i}`);break}}observe(){if("undefined"==typeof IntersectionObserver)return;this.observer=new IntersectionObserver((e=>{for(const t of e)if(t.isIntersecting&&t.target.getClientRects().length){for(const e of this.exposures.get(t.target)||[])this.once(e);this.observer.unobserve(t.target)}}),{threshold:.1}),this.exposures=new Map;const e=(e,t)=>
1{e&&(this.exposures.set(e,[...this.exposures.get(e)||[],t]),this.observer.observe(e))};this.root.querySelectorAll("[data-project-details-group]").forEach((t=>e(t,`section viewed ${t.dataset.projectDetailsGroup}`))),e(this.root.querySelector("[data-media-component]"),"section viewed media"),e(this.root.querySelector(".portfolio-blocks"),"section viewed content");for(const[t,i]of Object.entries(H))this.root.querySelectorAll(i).forEach((i=>{"hidden"!==i.type&&e(i.closest(".choices")||i,`field viewed ${t}`)}))}changed(e=this.lastArea){i.includes(e)&&(this.lastArea=e),this.meaningful=!0,this.once("first change")}saveAttempt(){this.once("save attempted")}saveStart(){this.saveAttempt(),this.saving=!0}saveFailed(e,t){this.saving=!1;const i=r(e,t);"validation"===i&&this.once("validation blocked"),this.once(`save failed ${i}`)}saved(){this.saving=!1,this.meaningful=!1,this.once("save succeeded"),this.emit("project saved "+(this.prefix.includes(" new ")?"new":"edit"))}depart(){this.departed||(this.departed=!0,this.saving?this.once("exit while saving unknown"):this.meaningful&&this.readDirty()&&this.once(`unsaved exit ${this.lastArea}`))}destroy(){var e;this.depart(),this.abort.abort(),null==(e=this.observer)||e.disconnect()}}function $(e,t=(e=>null==(e=null==globalThis?void 0:globalThis.window)?void 0:e.hljs)(),i=b){if(!t||!e||"function"!=typeof e.querySelectorAll)return;const r=[...e.querySelectorAll("pre code")].filter((e=>{var t,i,r;return!(null==(i=null==(t=e.classList)?void 0:t.contains)?void 0:i.call(t,"hljs"))&&"true"!==(null==(r=e.dataset)?void 0:r.highlighted)}));return r.length?Promise.resolve(i()).then((()=>{r.forEach((e=>{try{t.highlightElement(e),e.dataset&&(e.dataset.highlighted="true")}catch(i){}}))})).catch((()=>{})):void 0}function F(e){var t,i;return!!(null==(i=null==(t=null==e?void 0:e.classList)?void 0:t.contains)?void 0:i.call(t,"has-asset"))||function(e){var t;const i=function(e){var t,i;return null!=(i=null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,"input[data-image-video-grid-file]"))?i:null}(e);return!!(null==(t=null==i?void 0:i.files)?void 0:t.length)}(e)}function V(e,t,i=0){const r=function(e,t=0){return Array.from(e||[]).filter(((e,i)=>i>=t&&!F(e)))}(e,i),a=Array.from(t||[]),o=Math.min(r.length,a.length);return r.slice(0,o).map(((e,t)=>({slot:e,file:a[t]})))}function O(e){return new Set(Array.from(e||[]))}function U(e,t){const i=O(e);return null!=t&&i.add(t),i}const N=new Set(["audio","button","canvas","embed","figure","form","iframe","img","input","math","object","oembed","option","picture","script","select","source","style","svg","template","textarea","track","video"]),z=new Set(["noopener","noreferrer"]);function G(e){return String(null!=e?e:"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function W(e){return G(e).replace(/`/g,"&#96;")}function K(e){var t,i,r;const a=[],o=function(e){const t=String(null!=e?e:"");for(let r=0;r<t.length;r++){const e=t.charCodeAt(r);if(e<32||127===e)return null}const i=t.trim();if(!i)return null;try{const e=new URL(i,"https://okaydev.invalid/");return["https:","http:","mailto:","tel:"].includes(e.protocol)?i:null}catch{return null}}(e.getAttribute("href")),s=String(null!=(t=e.getAttribute("title"))?t:"").trim(),l=String(null!=(i=e.getAttribute("target"))?i:"").trim(),n=String(null!=(r=e.getAttribute("rel"))?r:"").split(/\s+/).map((e=>e.trim().toLowerCase())).filter((e=>z.has(e)));return o&&a.push(` href="${W(o)}"`),s&&a.push(` title="${W(s)}"`),"_blank"===l&&a.push(' target="_blank"'),n.length&&a.push(` rel="${W(Array.from(new Set(n)).join(" "))}"`),a.join("")}function _(e,t,i=""){return"br"===e?"<br>":`<${e}${i}>${t}</${e}>`}function Y(e){var t,i;const r=String(null!=(t=e.tagName)?t:"").toLowerCase();if(!r)return"";if(N.has(r))return"";const a=function(e){var t;return Array.from(null!=(t=null==e?void 0:e.childNodes)?t:[]).map((e=>J(e))).join("")}(e);switch(r){case"br":return"<br>";case"a":return a?_("a",a,K(e)):"";case"pre":{const t=1===e.children.length&&"code"===e.firstElementChild.tagName.toLowerCase()?e.firstElementChild:e,r=String(t.getAttribute("class")||e.getAttribute("class")||"").split(/\s+/).find((e=>/^language-[a-z0-9_-]+$/i.test(e))),a=r?` class="${W(r)}"`:"";return _("pre",_("code",G(null!=(i=e.textContent)?i:""),a))}case"code":return a?_("code",a):"";case"b":case"strong":return a?_("strong",a):"";case"i":case"em":return a?_("em",a):"";case"s":case"strike":case"del":return a?_("del",a):"";case"u":return a?_("u",a):"";case"blockquote":case"ul":case"ol":case"li":return a?_(r,a):"";case"p":{const t=function(e,t){var i;return String(null!=(i=e.getAttribute("class"))?i:"").split(/\s+/).some((e=>e.trim()===t))}(e,"caption-styled")?' class="caption-styled"':"";return a?_("p",a,t):""}case"h1":case"h2":case"h3":case"h4":return a?'<h3 class="heading-styled">'+a+"</h3>":"";case"h5":case"h6":return a?'<h5 class="sub-heading-styled">'+a+"</h5>":"";default:return a}}function J(e){var t;switch(null==e?void 0:e.nodeType){case 1:return Y(e);case 3:return G(null!=(t=e.textContent)?t:"");default:return""}}function Z(e){const t=String(null!=e?e:"").trim();if(!t)return"";if("undefined"==typeof document)return t;const i=document.createElement("template");return i.innerHTML=t,Array.from(i.content.childNodes).map((e=>J(e))).join("").trim()}const X=()=>{var e,t;return"undefined"!=typeof document&&"true"===(null==(t=null==(e=
1document.documentElement)?void 0:e.dataset)?void 0:t.useProjectImageBlurredBg)};var Q,ee={exports:{}};Q=ee,function(e){let t;function i(e,t){const i=e.charCodeAt(t);if(isNaN(i))throw new RangeError("Index "+t+' out of range for string "'+e+'"; please open an issue at https://github.com/Trott/slug/issues/new');if(i<55296||i>57343)return[e.charAt(t),t];if(i>=55296&&i<=56319){if(e.length<=t+1)return[" ",t];const i=e.charCodeAt(t+1);return i<56320||i>57343?[" ",t]:[e.charAt(t)+e.charAt(t+1),t+1]}if(0===t)return[" ",t];const r=e.charCodeAt(t-1);if(r<55296||r>56319)return[" ",t];throw new Error('String "'+e+'" reaches code believed to be unreachable; please open an issue at https://github.com/Trott/slug/issues/new')}function r(e,a){let o=s(e,a);if(!0===(a&&void 0!==a.fallback?a.fallback:r.defaults.fallback)&&""===o){let r="";for(let t=0;t<e.length;t++){const a=i(e,t);t=a[1],r+=a[0]}o=s(t(r),a)}return o}t="undefined"!=typeof window?window.btoa?function(e){return btoa(unescape(encodeURIComponent(e)))}:function(e){const t=unescape(encodeURIComponent(e+""));let i="";for(let r,a,o=0,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.charAt(0|o)||(s="=",o%1);i+=s.charAt(63&r>>8-o%1*8)){if(a=t.charCodeAt(o+=3/4),a>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");r=r<<8|a}return i}:function(e){return Buffer.from(e).toString("base64")};const a={bg:{"Й":"Y","й":"y",X:"H",x:"h","Ц":"Ts","ц":"ts","Щ":"Sht","щ":"sht","Ъ":"A","ъ":"a","Ь":"Y","ь":"y"},de:{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue"},sr:{"đ":"dj","Đ":"DJ"},uk:{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"}};let o={};function s(e,t){if("string"!=typeof e)throw new Error("slug() requires a string argument, received "+typeof e);"string"==typeof t&&(t={replacement:t}),(t=t?Object.assign({},t):{}).mode=t.mode||r.defaults.mode;const i=r.defaults.modes[t.mode],s=["replacement","multicharmap","charmap","remove","lower","trim"];for(let r,a=0,o=s.length;a<o;a++)r=s[a],t[r]=r in t?t[r]:i[r];const l=a[t.locale]||o;let n=[];for(const r in t.multicharmap){if(!Object.prototype.hasOwnProperty.call(t.multicharmap,r))continue;const e=r.length;-1===n.indexOf(e)&&n.push(e)}n=n.sort((function(e,t){return t-e}));const d="rfc3986"===t.mode?/[^\w\s\-.~]/:/[^A-Za-z0-9\s]/;let c="";for(let r,a=0,o=e.length;a<o;a++){r=e[a];let i=!1;for(let o=0;o<n.length;o++){const s=n[o],l=e.substr(a,s);if(t.multicharmap[l]){a+=s-1,r=t.multicharmap[l],i=!0;break}}i||(r=l[r]?l[r]:t.charmap[r]?t.charmap[r].replace(t.replacement," "):r.includes(t.replacement)?r.replace(t.replacement," "):r.replace(d,"")),c+=r}return t.remove&&(c=c.replace(t.remove,"")),t.trim&&(c=c.trim()),c=c.replace(/\s+/g,t.replacement),t.lower&&(c=c.toLowerCase()),c}const l={"फ़":"Fi","ग़":"Ghi","ख़":"Khi","क़":"Qi","ड़":"ugDha","ढ़":"ugDhha","य़":"Yi","ज़":"Za","בִי":"i","בֵ":"e","בֵי":"e","בֶ":"e","בַ":"a","בָ":"a","בֹ":"o","וֹ":"o","בֻ":"u","וּ":"u","בּ":"b","כּ":"k","ךּ":"k","פּ":"p","שׁ":"sh","שׂ":"s","בְ":"e","חֱ":"e","חֲ":"a","חֳ":"o","בִ":"i"},n={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ő":"O","Ø":"O","Ō":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ű":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ő":"o","ø":"o","ō":"o","Œ":"OE","œ":"oe","ù":"u","ú":"u","û":"u","ü":"u","ű":"u","ý":"y","þ":"th","ÿ":"y","ẞ":"SS","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"th","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ά":"a","έ":"e","ί":"i","ό":"o","ύ":"y","ή":"h","ώ":"w","ς":"s","ϊ":"i","ΰ":"y","ϋ":"y","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"Th","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ά":"A","Έ":"E","Ί":"I","Ό":"O","Ύ":"Y","Ή":"H","Ώ":"W","Ϊ":"I","Ϋ":"Y","ş":"s","Ş":"S","ı":"i","İ":"I","ğ":"g","Ğ":"G","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ё":"yo","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ё":"Yo","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","Є":"Ye","І":"I","Ї":"Yi","Ґ":"G","є":"ye","і":"i","ї":"yi","ґ":"g","č":"c","ď":"d","ě":"e","ň":"n","ř":"r","š":"s","ť":"t","ů":"u","ž":"z","Č":"C","Ď":"D","Ě":"E","Ň":"N","Ř":"R","Š":"S","Ť":"T","Ů":"U","Ž":"Z","ľ":"l","ĺ":"l","ŕ":"r","Ľ":"L","Ĺ":"L","Ŕ":"R","ą":"a","ć":"
1c","ę":"e","ł":"l","ń":"n","ś":"s","ź":"z","ż":"z","Ą":"A","Ć":"C","Ę":"E","Ł":"L","Ń":"N","Ś":"S","Ź":"Z","Ż":"Z","ā":"a","ē":"e","ģ":"g","ī":"i","ķ":"k","ļ":"l","ņ":"n","ū":"u","Ā":"A","Ē":"E","Ģ":"G","Ī":"I","Ķ":"K","Ļ":"L","Ņ":"N","Ū":"U","أ":"a","إ":"i","ب":"b","ت":"t","ث":"th","ج":"g","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"d","ط":"t","ظ":"th","ع":"aa","غ":"gh","ف":"f","ق":"k","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"o","ي":"y","ء":"aa","ة":"a","آ":"a","ا":"a","پ":"p","ژ":"zh","گ":"g","چ":"ch","ک":"k","ی":"i","ė":"e","į":"i","ų":"u","Ė":"E","Į":"I","Ų":"U","ț":"t","Ț":"T","ţ":"t","Ţ":"T","ș":"s","Ș":"S","ă":"a","Ă":"A","Ạ":"A","Ả":"A","Ầ":"A","Ấ":"A","Ậ":"A","Ẩ":"A","Ẫ":"A","Ằ":"A","Ắ":"A","Ặ":"A","Ẳ":"A","Ẵ":"A","Ẹ":"E","Ẻ":"E","Ẽ":"E","Ề":"E","Ế":"E","Ệ":"E","Ể":"E","Ễ":"E","Ị":"I","Ỉ":"I","Ĩ":"I","Ọ":"O","Ỏ":"O","Ồ":"O","Ố":"O","Ộ":"O","Ổ":"O","Ỗ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ợ":"O","Ở":"O","Ỡ":"O","Ụ":"U","Ủ":"U","Ũ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ự":"U","Ử":"U","Ữ":"U","Ỳ":"Y","Ỵ":"Y","Ỷ":"Y","Ỹ":"Y","Đ":"D","ạ":"a","ả":"a","ầ":"a","ấ":"a","ậ":"a","ẩ":"a","ẫ":"a","ằ":"a","ắ":"a","ặ":"a","ẳ":"a","ẵ":"a","ẹ":"e","ẻ":"e","ẽ":"e","ề":"e","ế":"e","ệ":"e","ể":"e","ễ":"e","ị":"i","ỉ":"i","ĩ":"i","ọ":"o","ỏ":"o","ồ":"o","ố":"o","ộ":"o","ổ":"o","ỗ":"o","ơ":"o","ờ":"o","ớ":"o","ợ":"o","ở":"o","ỡ":"o","ụ":"u","ủ":"u","ũ":"u","ư":"u","ừ":"u","ứ":"u","ự":"u","ử":"u","ữ":"u","ỳ":"y","ỵ":"y","ỷ":"y","ỹ":"y","đ":"d","Ә":"AE","ә":"ae","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ө":"OE","ө":"oe","ђ":"dj","ј":"j","љ":"lj","њ":"nj","ћ":"c","џ":"dz","Ђ":"Dj","Ј":"j","Љ":"Lj","Њ":"Nj","Ћ":"C","Џ":"Dz","nj":"nj","lj":"lj","Nj":"NJ","Lj":"LJ","अ":"a","आ":"aa","ए":"e","ई":"ii","ऍ":"ei","ऎ":"ae","ऐ":"ai","इ":"i","ओ":"o","ऑ":"oi","ऒ":"oii","ऊ":"uu","औ":"ou","उ":"u","ब":"B","भ":"Bha","च":"Ca","छ":"Chha","ड":"Da","ढ":"Dha","फ":"Fa","ग":"Ga","घ":"Gha","ग़":"Ghi","ह":"Ha","ज":"Ja","झ":"Jha","क":"Ka","ख":"Kha","ख़":"Khi","ल":"L","ळ":"Li","ऌ":"Li","ऴ":"Lii","ॡ":"Lii","म":"Ma","न":"Na","ङ":"Na","ञ":"Nia","ण":"Nae","ऩ":"Ni","ॐ":"oms","प":"Pa","क़":"Qi","र":"Ra","ऋ":"Ri","ॠ":"Ri","ऱ":"Ri","स":"Sa","श":"Sha","ष":"Shha","ट":"Ta","त":"Ta","ठ":"Tha","द":"Tha","थ":"Tha","ध":"Thha","ड़":"ugDha","ढ़":"ugDhha","व":"Va","य":"Ya","य़":"Yi","ज़":"Za","ə":"e","Ə":"E","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"p","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","ב":"v","גּ":"g","ג":"g","ד":"d","דּ":"d","ה":"h","ו":"v","ז":"z","ח":"h","ט":"t","י":"y","כ":"kh","ך":"kh","ל":"l","מ":"m","ם":"m","נ":"n","ן":"n","ס":"s","פ":"f","ף":"f","ץ":"ts","צ":"ts","ק":"k","ר":"r","תּ":"t","ת":"t"};r.charmap=Object.assign({},n),r.multicharmap=Object.assign({},l),r.defaults={charmap:r.charmap,mode:"pretty",modes:{rfc3986:{replacement:"-",remove:null,lower:!0,charmap:r.charmap,multicharmap:r.multicharmap,trim:!0},pretty:{replacement:"-",remove:null,lower:!0,charmap:r.charmap,multicharmap:r.multicharmap,trim:!0}},multicharmap:r.multicharmap,fallback:!0},r.reset=function(){r.defaults.modes.rfc3986.charmap=r.defaults.modes.pretty.charmap=r.charmap=r.defaults.charmap=Object.assign({},n),r.defaults.modes.rfc3986.multicharmap=r.defaults.modes.pretty.multicharmap=r.multicharmap=r.defaults.multicharmap=Object.assign({},l),o=""},r.extend=function(e){const t=Object.keys(e),i={},a={};for(let r=0;r<t.length;r++)t[r].length>1?i[t[r]]=e[t[r]]:a[t[r]]=e[t[r]];Object.assign(r.charmap,a),Object.assign(r.multicharmap,i)},r.setLocale=function(e){o=a[e]||{}},Q.exports?Q.exports=r:e.slug=r}(a);const te=o(ee.exports),ie=(e,t,i)=>Math.min(Math.max(e,t),Math.max(t,i));class re{constructor({className:e="viewport-tooltip"}={}){this.className=e,this.el=null,this.timer=null,this.visible=!1,this.pending=null,this.hide=this.hide.bind(this),this.handleKeydown=e=>{"Escape"===e.key&&this.hide()}}show(e,t,{theme:i=""}={}){this.cancelPending(),e&&t&&(this.pending={anchor:e,text:t,theme:i},this.timer=window.setTimeout((()=>{this.timer=null,this.render()}),180))}hide(){var e;this.cancelPending(),this.visible&&(this.visible=!1,null==(e=this.el)||e.classList.remove("is-visible"),window.removeEventListener("scroll",this.hide,!0),window.removeEventListener("resize",this.hide),window.removeEventListener("keydown",this.handleKeydown))}destroy(){var e;this.hide(),null==(e=this.el)||e.remove(),this.el=null}cancelPending(){window.clearTimeout(this.timer),this.timer=null,this.pending=null}ensureElement(){return this.el||(this.el=document.createElement("div"),this.el.className=this.className,this.el.setAttribute("role","tooltip"),this.el.setAttribute("aria-hidden","true"),document.body.append(this.el)),this.el}render(){var e;const t=this.pending;if(this.pending=null,!(null==(e=null==t?void 0:t.anchor)?void 0:e.isConnected))return;const i={width:document.documentElement.clientWidth,height:window.innerHeight},r=this.ensureElement();r.textContent=t.text,t.theme?r.dataset.projectTheme=t.theme:delete r.dataset.projectTheme,r.style.maxWidth=`${Math.min(280,i.width-16)}px`,r.style.left="0px",r.style.top="0px";const a=r.getBoundingClientRect(),{left:o,top:s,placement:l}=function(e,t,i,{gap:r=8,margin:a=8}={}){const o=ie(e.left,a,i.width-t.width-a),s=i.height-e.bottom-r-a,l=e.top-r-a;let n="below";t.height>s&&(n=t.height<=l||l>s?"above":"below");const d="below"===n?e.bottom+r:e.top-r-t.height;return{left:o,top:ie(d,a,i.height-t.height-a),placement:n}}(t.anchor.getBoundingClientRect(),{width:a.width,height:a.height},i,{margin:8});r.style.left=`${Math.round(o)}px`,r.style.top=`${Math.round(s)}px`,r.dataset.placement=l,r.classList.add("is-visible"),this.visible||(this.visible=!0,window.addEventListener("scroll",this.hide,!0),window.addEventListener("resize",this.hide),window.addEventListener("keydown",this.handleKeydown))}}class ae{constructor({root:e,input:t,fields:i=[],getValidUrl:r,fetchOgData:a,onAttempt:o,onFetchFailed:s,onApplied:l,onApplyFailed:n,onReverted:d,onBusyChange:c}={}){this.root=null!=e?e:null,this.input=null!=t?t:null,this.fields=i,this.getValidUrl=r,this.fetchOgData=a,this.onAttempt=o,this.onFetchFailed=s,this.onApplied=l,this.onApplyFailed=n,this.onReverted=d,this.onBusyChange=c,this.url="",this.og=null,this.rows=[],this.token=0,this.timer=null,this.busyCount=0,this.cache=new Map,this.tooltip=new re({className:"project-link-suggestion-tooltip"}),this.root&&this.input&&(this.statusEl=this.root.querySelector("[data-suggestions-status]"),this.foundEl=this.root.querySelector("[data-suggestions-found]"),this.listEl=this.root.querySelector("[data-suggestions-list]"),this.announceEl=this.root.querySelector("[data-suggestions-announce]"),this.addListeners(),this.sync())}addListeners(){var e,t;s(this,["handleInput","handleChange","handleToggle","handleRetry"]),this.input.addEventListener("input",this.handleInput),this.input.addEventListener("change",this.handleChange),null==(e=this.listEl)||e.addEventListener("change",this.handleToggle),null==(t=this.statusEl)||t.addEventListener("click",this.handleRetry)}removeListeners(){var e,t,i,r;null==(e=this.input)||e.removeEventListener("input",this.handleInput),null==(t=this.input)||t.removeEventListener("change",this.handleChange),null==(i=this.listEl)||i.removeEventListener("change",this.handleToggle),null==(r=this.statusEl)||r.removeEventListener("click",this.handleRetry)}destroy(){this.removeListeners(),window.clearTimeout(this.timer),this.timer=null,this.token+=1,this.rows=[],this.cache.clear(),this.tooltip.destroy(),this.root=null,this.input=null}handleInput(){this.schedule(700)}handleChange(){this.schedule(0)}schedule(e){window.clearTimeout(this.timer),this.timer=window.setTimeout((()=>{this.timer=null,this.evaluate()}),e)}evaluate(){var e;if(!this.input)return;if(!this.input.value.trim())return void this.clear();const t=(null==(e=this.getValidUrl)?void 0:e.call(this))||"";t&&t!==this.url?this.load(t):this.render()}clear(){this.token+=1,this.revertApplied(),this.url="",this.og=null,this.setRows([]),this.setStatus(""),this.render()}async load(e){var t,i;const r=++this.token;this.url&&this.url!==e&&this.revertApplied(),this.url=e,this.og=null,this.setRows([]),this.setStatus("loading"),this.render(),null==(t=this.onAttempt)||t.call(this);const a=this.cache.get(e),o=null!=a?a:await this.fetchOgData(e);if(r===this.token){if(!o||o.error)return this.setStatus("error",null==o?void 0:o.error),this.render(),void(null==(i=this.onFetchFailed)||i.call(this,o));this.cache.set(e,o),this.og=o,this.setStatus(""),this.setRows(this.buildRows(o)),this.render(),await this.applyDefaults(r)}}handleRetry(e){if(!e.target.closest("[data-suggestions-retry]")||!this.url)return;const t=this.url;this.url="",this.load(t)}buildRows(e){return this.fields.filter((e=>{var t,i;return null==(i=null==(t=e.isAvailable)?void 0:t.call(e))||i})).map((t=>({field:t,offer:t.offer(e)}))).filter((({offer:e})=>e&&(e.text||void 0!==e.imageSrc))).map((({field:e,offer:t})=>this.createRow(e,t)))}createRow(e,t){const i=`project-link-suggestion-${e.key}`,r=document.createElement("li");r.className="project-link-suggestion",r.dataset.suggestion=e.key;const a=document.createElement("input");a.type="checkbox",a.id=i,a.className="project-link-suggestion__input",a.setAttribute("role","switch");const o=document.createElement("label");o.className="project-link-suggestion__row",o.htmlFor=i;const s=document.createElement("span");s.className="project-link-suggestion__switch",s.setAttribute("aria-hidden","true");const l=document.createElement("span");l.className="project-link-suggestion__name",l.textContent=e.label;const n=this.createValue(t);o.append(s,l,n);const d=document.createElement("p");return d.className="project-link-suggestion__note",d.hidden=!0,r.append(a,o,d),void 0===t.imageSrc&&this.bindTooltip(r,a,n),{field:e,item:r,checkbox:a,note:d,busy:!1,error:""}}bindTooltip(e,t,i){const r=()=>
1this.showFullText(i),a=()=>this.tooltip.hide();e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",a),t.addEventListener("focus",(()=>{t.matches(":focus-visible")&&r()})),t.addEventListener("blur",a)}showFullText(e){var t,i;!this.root||e.scrollHeight<=e.clientHeight+1||this.tooltip.show(e,e.textContent,{theme:null!=(i=null==(t=this.root.closest("[data-project-theme]"))?void 0:t.dataset.projectTheme)?i:""})}createValue(e){if(void 0===e.imageSrc){const t=document.createElement("span");return t.className="project-link-suggestion__value",t.textContent=e.text,t}const t=document.createElement("span");if(t.className="project-link-suggestion__thumb",e.imageSrc){const i=document.createElement("img");i.src=e.imageSrc,i.alt="",i.decoding="async",t.append(i)}else t.classList.add("is-empty");return t}setRows(e){this.tooltip.hide(),this.rows=e,this.listEl&&this.listEl.replaceChildren(...e.map((e=>e.item)))}handleToggle(e){const t=this.rows.find((t=>t.checkbox===e.target));t&&(t.checkbox.checked?this.activate(t):this.deactivate(t))}async applyDefaults(e){const t=[];for(const i of this.rows){if(e!==this.token)return;"off"===i.field.status()&&(await this.activate(i)&&t.push(i.field.label))}e===this.token&&t.length&&this.announce(`Filled ${t.join(", ")} from this page.`)}async activate(e){var t,i;if(e.busy||!this.og)return!1;const r=this.token;e.busy=!0,e.error="",this.setBusy(1),this.render();let a=!1;try{await e.field.apply(this.og,{isStale:()=>r!==this.token}),a=r===this.token,a&&(null==(t=this.onApplied)||t.call(this,e.field))}catch(o){e.error="Couldn’t add this. Try again.",null==(i=this.onApplyFailed)||i.call(this,o,e.field)}finally{e.busy=!1,this.setBusy(-1),this.render()}return a}deactivate(e){var t;e.error="",e.field.revert(),null==(t=this.onReverted)||t.call(this,e.field),this.render()}revertApplied(){this.rows.forEach((e=>{"on"===e.field.status()&&e.field.revert()})),this.fields.forEach((e=>{this.rows.some((t=>t.field===e))||"on"!==e.status()||e.revert()}))}setBusy(e){var t,i;const r=this.busyCount;this.busyCount=Math.max(0,this.busyCount+e),0===r&&this.busyCount>0&&(null==(t=this.onBusyChange)||t.call(this,!0)),r>0&&0===this.busyCount&&(null==(i=this.onBusyChange)||i.call(this,!1))}sync(){this.render()}setStatus(e,t=""){this.statusKind=e,this.statusMessage=t}render(){var e;if(!this.root)return;const t=!!(null==(e=this.getValidUrl)?void 0:e.call(this));let i=!1;this.rows.forEach((e=>{const t=e.field.status(),r=e.busy?"busy":t;("locked"!==t||e.busy)&&(i=!0),e.item.dataset.state=r,e.checkbox.checked="on"===r||"busy"===r,e.checkbox.disabled="locked"===r||"busy"===r,e.checkbox.setAttribute("aria-busy",e.busy?"true":"false");const a=e.error||("locked"===r?"Already set — left alone":"");e.note.textContent=a,e.note.hidden=!a,e.note.classList.toggle("is-error",!!e.error)}));const r=t&&this.rows.length>0&&i;this.foundEl&&(this.foundEl.hidden=!r),this.renderStatus(t),this.root.hidden=!(r||t&&this.statusKind),this.root.hidden&&this.tooltip.hide()}renderStatus(e){if(!this.statusEl)return;const t=e?this.statusKind:"";if(this.statusEl.hidden=!t,this.statusEl.dataset.state=t||"",this.statusEl.replaceChildren(),!t)return;if("loading"===t)return void(this.statusEl.textContent="Checking this page…");const i=document.createElement("span");i.textContent="Couldn’t read details from this page.";const r=document.createElement("button");if(r.type="button",r.className="project-link-suggestions__retry",r.dataset.suggestionsRetry="",r.textContent="Try again",this.statusEl.append(i," ",r),this.statusMessage){const e=document.createElement("span");e.className="project-link-suggestions__detail",e.textContent=this.statusMessage,this.statusEl.append(e)}}announce(e){this.announceEl&&(this.announceEl.textContent="",window.setTimeout((()=>{this.announceEl&&(this.announceEl.textContent=e)}),50))}}function oe(e){return String(null!=e?e:"").replace(/\s+/g," ").trim()}function se(e){return oe(String(null!=e?e:"").replace(/<[^>]*>/g," ").replace(/&nbsp;/g," ").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#0?39;/g,"'"))}const le=new Set(["_drafts"]),ne=10485760,de="10 MB",ce=new Set(["image/jpg","image/jpeg","image/pjpeg","image/png","image/apng","image/x-png","image/gif","
1image/webp"]);const ue=class{constructor(e=document.querySelector('[data-router-view="editPortfolio"]')){this.viewRoot=e,this.descriptionSyncCleanup=null,this.stopped=!1,this.initVars(),this.form&&(this.initPage(),this.leaveGuard=new v(this.viewRoot,(()=>this.isSaveButtonDirty)),this.analytics=new B(this.viewRoot,this.isNewProject,{dirty:()=>this.isSaveButtonDirty}))}initVars(){var e,t,i,r,a,o,s,l,n,d,c,u,h,m,p,v,g,y,b,f,S,L,k,w,P,M,C,A,j,I,E,T,D,q,R,x,H,B,$,F,V,O,U,N,z,G,W,K,_,Y,J,Z,X,Q,ee,ie,re,ae,oe,se,le,ne,de,ce,ue,he,me,pe,ve,ge,ye,be,fe,Se,Le,ke,we,Pe,Me,Ce,Ae,je,Ie,Ee,Te,De,qe,Re,xe,He,Be,$e,Fe,Ve,Oe,Ue,Ne,ze,Ge,We,Ke,_e,Ye,Je,Ze,Xe,Qe,et,tt,it,rt,at,ot,st,lt,nt,dt,ct,ut,ht,mt,pt,vt,gt,yt,bt,ft,St,Lt,kt,wt,Pt,Mt,Ct,At,jt,It,Et,Tt,Dt,qt,Rt,xt,Ht,Bt,$t,Ft,Vt,Ot,Ut,Nt,zt,Gt,Wt,Kt,_t,Yt,Jt,Zt,Xt,Qt,ei,ti,ii,ri,ai,oi,si,li,ni,di,ci,ui,hi,mi,pi,vi,gi,yi,bi,fi,Si,Li,ki,wi,Pi,Mi,Ci,Ai,ji,Ii,Ei;this.userThemeElem=this.viewRoot,this.userTheme=null!=(i=null==(t=null==(e=this.userThemeElem)?void 0:e.dataset)?void 0:t.theme)?i:"light",this.isDark="dark"===this.userTheme,this.singleSelects=this.viewRoot.querySelectorAll(".is-choice"),this.multiSelects=this.viewRoot.querySelectorAll(".is-choices"),this.choicesInputs=[],this.keepBtns=this.viewRoot.querySelectorAll(".btn-keep"),this.portfolioSocialShareImageInput=this.viewRoot.querySelector("#portfolioSocialShareImage"),this.clearValueBtns=this.viewRoot.querySelectorAll(".btn-clear-value"),this.mediaComponent=this.viewRoot.querySelector("[data-media-component]"),this.mediaHero=null!=(a=null==(r=this.mediaComponent)?void 0:r.querySelector('[data-media-role="hero"]'))?a:null,this.mediaThumbsContainer=null!=(s=null==(o=this.mediaComponent)?void 0:o.querySelector('[data-media-role="thumbnails"]'))?s:null,this.mediaThumbs=this.mediaThumbsContainer?Array.from(this.mediaThumbsContainer.querySelectorAll('[data-media-role="thumb"]')):[],this.emptyHeroHtml=this.getEmptyHeroHtml(),this.projectMediaPreviewActiveIndex=0,this.newThumbCounter=0,this.newCount=0,this.portfolioBlocks=this.viewRoot.querySelector(".portfolio-blocks"),this.dragSortContainers=this.viewRoot.querySelectorAll(".dragSort-container"),this.modal=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="reorder"]'),this.modalContent=null!=(n=null==(l=this.modal)?void 0:l.querySelector("[data-reorder-content]"))?n:null,this.btnModalClose=null!=(c=null==(d=this.modal)?void 0:d.querySelector(".btn-close-dialog"))?c:null,this.btnModalCancel=null!=(h=null==(u=this.modal)?void 0:u.querySelector("[data-reorder-cancel]"))?h:null,this.btnModalSave=null!=(p=null==(m=this.modal)?void 0:m.querySelector("[data-reorder-save]"))?p:null,this.reorderReturnFocusEl=null,this.form=this.viewRoot.querySelector(".js-new-project-form"),this.btnSaveProject=this.viewRoot.querySelector(".btn-save-project"),this.isSaveButtonDirty=!1,this._saveSuccessTimeout=null,this.btnCuratedToggles=Array.from(this.viewRoot.querySelectorAll('[data-action="toggle-curated"]')),this.curatedInputs=Array.from(this.viewRoot.querySelectorAll("input[data-curated-input]")),this.btnPublishToggle=this.viewRoot.querySelector('[data-action="toggle-publish"]'),this.publishPortfolioInput=this.viewRoot.querySelector('input[data-publish-input="portfolio"]'),this.publishToggleWrapper=null!=(g=null==(v=this.btnPublishToggle)?void 0:v.closest("[data-publish-toggle-wrapper]"))?g:null,this.publishLockedTooltip=null!=(b=null==(y=this.publishToggleWrapper)?void 0:y.querySelector("[data-publish-locked-tooltip]"))?b:null,this.publishLockedTooltipTimeout=null,this.publishAvailabilityFrame=null,this.mediaPublishObserver=null,this.isNewProject=!!this.viewRoot.querySelector('[data-handle="new-project"]'),this.editorContainer=this.viewRoot.querySelector(".project-editor-container"),this.btnEditorModes=this.viewRoot.querySelectorAll('.editor-mode-toggle, .editor-mode-toggle-thumb, [data-action="toggle-editor-mode"]'),this.slugInput=this.viewRoot.querySelector("#slug"),this.slugManuallyEdited=!1,this.slugDuplicateCheckTimeout=null,this.slugDuplicateCheckRequestId=0,this.slugDuplicateMessage="This project URL slug is already used in your portfolio. If you save, it will be incremented automatically.",this.projectLinkSuggestionsRoot=this.viewRoot.querySelector("[data-project-link-suggestions]"),this.projectLinkSuggestions=null,this.projectLinkAppliedText={t
1itle:null,description:null},this.projectLinkImageUploads=new Map,this.inputPortfolioLink=this.viewRoot.querySelector("#portfolioLink"),this.inputPortfolioTitle=this.viewRoot.querySelector("#title"),this.projectTitleDisplayPreview=this.viewRoot.querySelector('[data-project-title-display="preview"]'),this.inputPortfolioDescription=null!=(f=this.viewRoot.querySelector(".project-description-edit-surface #portfolioDescription, .project-description-edit-surface .project-description-input"))?f:this.viewRoot.querySelector("#portfolioDescription");const Ti=(null==(k=null==(L=null==(S=this.slugInput)?void 0:S.value)?void 0:L.trim)?void 0:k.call(L))||"",Di=te((null==(w=this.inputPortfolioTitle)?void 0:w.value)||"",{lower:!0});this.slugManuallyEdited=!(!Ti||Di&&Ti===Di),this.btnProjectDescriptionEdit=this.viewRoot.querySelector('button.project-description-edit-button[data-dialog="project-description"]'),this.projectDescriptionDisplayEdit=this.viewRoot.querySelector('[data-project-description-display="edit"]'),this.projectDescriptionDisplayPreview=this.viewRoot.querySelector('[data-project-description-display="preview"]'),this.projectDescriptionModal=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="project-description"]'),this.projectDescriptionModalBtnSave=null!=(C=null==(M=null==(P=this.projectDescriptionModal)?void 0:P.querySelector)?void 0:M.call(P,"[data-project-description-save]"))?C:null,this.projectDescriptionModalBtnCancel=null!=(I=null==(j=null==(A=this.projectDescriptionModal)?void 0:A.querySelectorAll)?void 0:j.call(A,"[data-project-description-cancel]"))?I:[],this.projectDescriptionOriginalValue=null,this.projectDescriptionSaved=!1,this.projectDescriptionShouldRestoreOnClose=!1,this.blockInsertTargetId=null,this.blockInsertPosition=null,this.creditsValue=this.viewRoot.querySelector("[data-credits-value]"),this.btnCreditsEdit=this.viewRoot.querySelector("[data-credits-edit]"),this.creditsDisplayEdit=this.viewRoot.querySelector('[data-credits-display="edit"]'),this.creditsDisplayPreview=this.viewRoot.querySelector('[data-credits-display="preview"]'),this.creditsModal=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="credits"]'),this.creditsModalContent=null!=(T=null==(E=this.creditsModal)?void 0:E.querySelector("[data-credits-modal-content]"))?T:null,this.creditsModalRows=null!=(q=null==(D=this.creditsModal)?void 0:D.querySelector("[data-credits-modal-rows]"))?q:null,this.creditsModalBtnAdd=null!=(x=null==(R=this.creditsModal)?void 0:R.querySelector("[data-credits-modal-add]"))?x:null,this.creditsModalBtnSave=null!=(B=null==(H=this.creditsModal)?void 0:H.querySelector("[data-credits-save]"))?B:null,this.creditsModalBtnCancel=null!=(F=null==($=this.creditsModal)?void 0:$.querySelectorAll("[data-credits-cancel]"))?F:[],this.creditsRemoveIcon=null!=(z=null==(N=null==(U=null==(O=null==(V=this.creditsModal)?void 0:V.querySelector("[data-credits-icon-remove]"))?void 0:O.innerHTML)?void 0:U.trim)?void 0:N.call(U))?z:null,this.creditsOriginalValue=null,this.creditsSaved=!1,this.creditsShouldRestoreOnClose=!0,this.creditsMax=10,this.memberCreditsModal=this.creditsModal,this.btnMemberCreditsEdit=null,this.memberCreditsModalBtnSave=null,this.memberCreditsModalBtnCancel=[],this.memberCreditsOriginalSelectedHtml=null,this.memberCreditsSaved=!1,this.memberCreditsInput=this.viewRoot.querySelector("#member-credits-input"),this.memberCreditsSelectedWrapper=this.viewRoot.querySelector("[data-member-credits-selected]"),this.memberCreditsModalSelectedWrapper=null!=(K=null==(W=null==(G=this.creditsModal)?void 0:G.querySelector)?void 0:W.call(G,"[data-member-credits-modal-selected]"))?K:null,this.memberCreditsContainer=null!=(J=null==(Y=null==(_=this.memberCreditsSelectedWrapper)?void 0:_.closest)?void 0:Y.call(_,".project-credits"))?J:null,this.memberCreditsPreviewList=this.viewRoot.querySelector("[data-member-credits-preview-list]"),this.memberCreditsPreviewWrapper=this.viewRoot.querySelector("[data-member-credits-preview-wrapper]"),this.memberCreditsPreviewAuthorTemplate=null!=(ie=null==(ee=null==(Q=null==(X=null==(Z=this.memberCreditsPreviewList)?void 0:Z.querySelector)?void 0:X.call(Z,"[data-member-credits-author]"))?void 0:Q.cloneNode)?void 0:ee.call(Q,!0))?ie:null,this.projectDetailsPanelRoot=this.viewRoot.querySelector("[data-project-details-panel]"),this.projectDetailsLauncher=null!=(ae=null==(re=this.projectDetailsPanelRoot)?void 0:re.querySelector("[data-bento-customizer-launcher]"))?ae:null,this.projectDetailsPanel=null!=(se=null==(oe=this.projectDetailsPanelRoot)?void 0:oe.querySelector(".bento-customizer__panel"))?se:null,this.projectDetailsHeader=null!=(ne=null==(le=this.projectDetailsPanelRoot)?void 0:le.querySelector(".bento-customizer__panel-header"))?ne:null,this.projectDetailsSections=this.viewRoot.querySelector("[data-project-details-sections]"),this.projectLinkCredits=null!=(de=this.projectDetailsSections)?de:this.viewRoot.querySelector(".project-link-credits"),this.projectLinkCreditsSections=[],this.metaPillGroups=this.viewRoot.querySelectorAll("[data-pill-target]"),this.metaPreviewCategories=this.viewRoot.querySelector('[data-project-meta-preview="portfolioCategories"]'),this.metaPreviewStyles=this.viewRoot.querySelector('[data-project-meta-preview="portfolioStyles"]'),this.metaPreviewPlaceholderCategories=this.viewRoot.querySelector('[data-project-meta-placeholder="portfolioCategories"]'),this.metaPreviewPlaceholderStyles=this.viewRoot.querySelector('[data-project-meta-placeholder="portfolioStyles"]'),this.btnCategoriesEdit=this.viewRoot.querySelectorAll('button[data-dialog="categories"]'),this.btnStylesEdit=this.viewRoot.querySelectorAll('button[data-dialog="styles"]'),this.categoriesModal=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="categories"]'),this.stylesModal=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="styles"]'),this.categoriesModalBtnSave=null!=(he=null==(ue=null==(ce=this.categoriesModal)?void 0:ce.querySelector)?void 0:ue.call(ce,"[data-categories-save]"))?he:null,this.stylesModalBtnSave=null!=(ve=null==(pe=null==(me=this.stylesModal)?void 0:me.querySelector)?void 0:pe.call(me,"[data-styles-save]"))?ve:null,this.categoriesModalBtnCancel=null!=(be=null==(ye=null==(ge=this.categoriesModal)?void 0:ge.querySelectorAll)?void 0:ye.call(ge,"[data-categories-cancel]"))?be:[],this.stylesModalBtnCancel=null!=(Le=null==(Se=null==(fe=this.stylesModal)?void 0:fe.querySelectorAll)?void 0:Se.call(fe,"[data-styles-cancel]"))?Le:[],this.categoriesOriginalSelected=null,this.stylesOriginalSelected=null,this.categoriesSaved=!1,this.stylesSaved=!1,this.categoriesShouldRestoreOnClose=!1,this.stylesShouldRestoreOnClose=!1,this.projectSettingsDialog=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="project-settings"]'),this.projectSettingsSnapshot=null,this.projectSettingsApplied=!1,this.projectSettingsSocialShareDirty=!1,this.projectSettingsShouldRestoreOnClose=!1,this.projectMediaDraftTokenInput
1=this.viewRoot.querySelector('.js-new-project-form input[name="projectMediaDraftToken"]'),this.mediaLibraryDialog=this.viewRoot.querySelector('dialog.okay-dialog[data-dialog="media-library"]'),this.mediaLibraryRoot=null!=(Pe=null==(we=null==(ke=this.mediaLibraryDialog)?void 0:ke.querySelector)?void 0:we.call(ke,"[data-media-library]"))?Pe:null,this.mediaLibraryUploadInput=null!=(Ae=null==(Ce=null==(Me=this.mediaLibraryDialog)?void 0:Me.querySelector)?void 0:Ce.call(Me,"[data-media-library-upload]"))?Ae:null,this.mediaLibraryFeedback=null!=(Ee=null==(Ie=null==(je=this.mediaLibraryDialog)?void 0:je.querySelector)?void 0:Ie.call(je,"[data-media-library-feedback]"))?Ee:null,this.mediaLibraryLoading=null!=(qe=null==(De=null==(Te=this.mediaLibraryDialog)?void 0:Te.querySelector)?void 0:De.call(Te,"[data-media-library-loading]"))?qe:null,this.mediaLibraryTable=null!=(He=null==(xe=null==(Re=this.mediaLibraryDialog)?void 0:Re.querySelector)?void 0:xe.call(Re,"[data-media-library-table]"))?He:null,this.mediaLibraryRows=null!=(Fe=null==($e=null==(Be=this.mediaLibraryDialog)?void 0:Be.querySelector)?void 0:$e.call(Be,"[data-media-library-rows]"))?Fe:null,this.mediaLibraryEmpty=null!=(Ue=null==(Oe=null==(Ve=this.mediaLibraryDialog)?void 0:Ve.querySelector)?void 0:Oe.call(Ve,"[data-media-library-empty]"))?Ue:null,this.mediaLibrarySelectionSummary=null!=(Ge=null==(ze=null==(Ne=this.mediaLibraryDialog)?void 0:Ne.querySelector)?void 0:ze.call(Ne,"[data-media-library-selection-summary]"))?Ge:null,this.mediaLibraryDropzone=null!=(_e=null==(Ke=null==(We=this.mediaLibraryDialog)?void 0:We.querySelector)?void 0:Ke.call(We,"[data-media-library-dropzone]"))?_e:null,this.mediaLibraryDropzoneText=null!=(Ze=null==(Je=null==(Ye=this.mediaLibraryDialog)?void 0:Ye.querySelector)?void 0:Je.call(Ye,"[data-media-library-dropzone-text]"))?Ze:null,this.mediaLibrarySelectAllInput=null!=(et=null==(Qe=null==(Xe=this.mediaLibraryDialog)?void 0:Xe.querySelector)?void 0:Qe.call(Xe,"[data-media-library-select-all]"))?et:null,this.mediaLibraryAddBtn=null!=(rt=null==(it=null==(tt=this.mediaLibraryDialog)?void 0:tt.querySelector)?void 0:it.call(tt,"[data-media-library-add]"))?rt:null,this.mediaLibraryDeleteBtn=null!=(st=null==(ot=null==(at=this.mediaLibraryDialog)?void 0:at.querySelector)?void 0:ot.call(at,"[data-media-library-delete]"))?st:null,this.mediaLibrarySelectBtn=null!=(dt=null==(nt=null==(lt=this.mediaLibraryDialog)?void 0:lt.querySelector)?void 0:nt.call(lt,"[data-media-library-select]"))?dt:null,this.mediaLibraryUploadStatus=null!=(ht=null==(ut=null==(ct=this.mediaLibraryDialog)?void 0:ct.querySelector)?void 0:ut.call(ct,"[data-media-library-upload-status]"))?ht:null,this.mediaLibraryPrompt=null!=(vt=null==(pt=null==(mt=this.mediaLibraryDialog)?void 0:mt.querySelector)?void 0:pt.call(mt,"[data-media-library-prompt]"))?vt:null,this.mediaLibraryPromptPreview=null!=(bt=null==(yt=null==(gt=this.mediaLibraryDialog)?void 0:gt.querySelector)?void 0:yt.call(gt,"[data-media-library-prompt-preview]"))?bt:null,this.mediaLibraryPromptText=null!=(Lt=null==(St=null==(ft=this.mediaLibraryDialog)?void 0:ft.querySelector)?void 0:St.call(ft,"[data-media-library-prompt-text]"))?Lt:null,this.mediaLibraryPromptSubtext=null!=(Pt=null==(wt=null==(kt=this.mediaLibraryDialog)?void 0:kt.querySelector)?void 0:wt.call(kt,"[data-media-library-prompt-subtext]"))?Pt:null,this.mediaLibraryPromptActions=null!=(At=null==(Ct=null==(Mt=this.mediaLibraryDialog)?void 0:Mt.querySelector)?void 0:Ct.call(Mt,"[data-media-library-prompt-actions]"))?At:null,this.mediaLibraryBrowse=null!=(Et=null==(It=null==(jt=this.mediaLibraryRoot)?void 0:jt.querySelector)?void 0:It.call(jt,"[data-media-library-browse]"))?Et:null,this.mediaLibraryBrowseFooter=null!=(qt=null==(Dt=null==(Tt=this.mediaLibraryDialog)?void 0:Tt.querySelector)?void 0:Dt.call(Tt,"[data-media-library-browse-footer]"))?qt:null,this.mediaLibraryPosterFooter=null!=(Ht=null==(xt=null==(Rt=this.mediaLibraryDialog)?void 0:Rt.querySelector)?void 0:xt.call(Rt,"[data-media-library-poster-footer]"))?Ht:null,this.mediaLibraryPosterStep=null!=(Ft=null==($t=null==(Bt=this.mediaLibraryRoot)?void 0:Bt.querySelector)?void 0:$t.call(Bt,"[data-media-library-poster-step]"))?Ft:null,this.mediaLibraryPosterLoading=null!=(Ut=null==(Ot=null==(Vt=this.mediaLibraryRoot)?void 0:Vt.querySelector)?void 0:Ot.call(Vt,"[data-media-library-poster-loading]"))?Ut:null,this.mediaLibraryPosterLoadingText=null!=(Gt=null==(zt=null==(Nt=this.mediaLibraryRoot)?void 0:Nt.querySelector)?void 0:zt.call(Nt,"[data-media-library-poster-loading-text]"))?Gt:null,this.mediaLibraryPosterError=null!=(_t=null==(Kt=null==(Wt=this.mediaLibraryRoot)?void 0:Wt.querySelector)?void 0:Kt.call(Wt,"[data-media-library-poster-error]"))?_t:null,this.mediaLibraryPosterBody=null!=(Zt=null==(Jt=null==(Yt=this.mediaLibraryRoot)?void 0:Yt.querySelector)?void 0:Jt.call(Yt,"[data-media-library-poster-body]"))?Zt:null,this.mediaLibraryPosterPreview=null!=(ei=null==(Qt=null==(Xt=this.mediaLibraryRoot)?void 0:Xt.querySelector)?void 0:Qt.call(Xt,"[data-media-library-poster-preview]"))?ei:null,this.mediaLibraryPosterBackBtn=null!=(ri=null==(ii=null==(ti=this.mediaLibraryDialog)?void 0:ti.querySelector)?void 0:ii.call(ti,"[data-media-library-poster-back]"))?ri:null,this.mediaLibraryPosterConfirmBtn=null!=(si=null==(oi=null==(ai=this.mediaLibraryDialog)?void 0:ai.querySelector)?void 0:oi.call(ai,"[data-media-library-poster-confirm]"))?si:null,this.mediaLibraryPosterUploadInput=null!=(di=null==(ni=null==(li=this.mediaLibraryRoot)?void 0:li.querySelector)?void 0:ni.call(li,"[data-media-library-poster-upload]"))?di:null,this.mediaLibraryPosterDropzone=null!=(hi=null==(ui=null==(ci=this.mediaLibraryRoot)?void 0:ci.querySelector)?void 0:ui.c
1all(ci,"[data-media-library-poster-dropzone]"))?hi:null,this.mediaLibraryPosterCustomPreview=null!=(vi=null==(pi=null==(mi=this.mediaLibraryRoot)?void 0:mi.querySelector)?void 0:pi.call(mi,"[data-media-library-poster-custom-preview]"))?vi:null,this.mediaLibraryPosterCustomThumb=null!=(bi=null==(yi=null==(gi=this.mediaLibraryRoot)?void 0:gi.querySelector)?void 0:yi.call(gi,"[data-media-library-poster-custom-thumb]"))?bi:null,this.mediaLibraryPosterCustomName=null!=(Li=null==(Si=null==(fi=this.mediaLibraryRoot)?void 0:fi.querySelector)?void 0:Si.call(fi,"[data-media-library-poster-custom-name]"))?Li:null,this.mediaLibraryPosterCustomRemoveBtn=null!=(Pi=null==(wi=null==(ki=this.mediaLibraryRoot)?void 0:ki.querySelector)?void 0:wi.call(ki,"[data-media-library-poster-custom-remove]"))?Pi:null,this.mediaLibraryPosterCustomError=null!=(Ai=null==(Ci=null==(Mi=this.mediaLibraryRoot)?void 0:Mi.querySelector)?void 0:Ci.call(Mi,"[data-media-library-poster-custom-error]"))?Ai:null,this.mediaLibraryDialogHeading=null!=(Ei=null==(Ii=null==(ji=this.mediaLibraryDialog)?void 0:ji.querySelector)?void 0:Ii.call(ji,".dialog-heading-text"))?Ei:null,this.mediaLibraryState={assets:[],selectedIds:new Set,deselectedCurrentIds:new Set,target:null,statusItems:[],promptResolver:null,previewPopoverEl:null,previewPopoverAnchor:null,previewPopoverAssetId:null,previewPopoverHideTimeout:null,autoApplyAfterUpload:!1,lastAppliedAssetIds:[],step:"browse",pendingHeroVideo:null,posterSelection:null,posterLoadToken:0,posterVideoPlayerEl:null,posterVideoObjectUrl:"",posterVideoSeekHandler:null,posterVideoPauseHandler:null,posterProgrammaticSeek:!1,posterSeekToken:0,savedDialogHeading:"",posterOnlyMode:!1,posterCustomImage:null,posterCustomImageObjectUrl:"",posterVideoFetchController:null},this.mediaLibraryStatusTimeouts=new Map,this.mediaLibraryActiveOperations=new Map,this.normalizedProjectVideoFiles=new WeakSet,this.normalizedProjectVideoMetadata=new WeakMap,this.pendingProjectVideoTelemetry=[],this.mediaLibraryReturnFocusEl=null,this.mediaLibraryLoadToken=0,this.handleClickOutsideListener=null}initPage(){var e,t,i,r,a,o,d,c,u,h,m,p,v,g,y,b,f,S,L,k;const w=this;l.setMode(this.isDark?"dark":"light"),n.isDevice||(this.singleSelects.forEach((e=>{e.choices=new R(e,{allowHTML:!0,searchEnabled:!1,removeItemButton:!0,shouldSort:!1,shouldSortItems:!1,callbackOnInit:function(){var e,t;null==(t=null==(e=this.input)?void 0:e.element)||t.setAttribute("autocomplete","okay-edit-portfolio")}})})),this.multiSelects.forEach((e=>{e.choices=new R(e,{allowHTML:!0,removeItemButton:!0,shouldSort:!1,shouldSortItems:!1,callbackOnInit:function(){var e,t;null==(t=null==(e=this.input)?void 0:e.element)||t.setAttribute("autocomplete","okay-edit-portfolio")}}),w.choicesInputs.push(e)}))),s(this,["initProjectDetailsPanel","openProjectDetailsPanel","closeProjectDetailsPanel","handleProjectDetailsKeyDown","initProjectLinkCreditsAccordion","setProjectLinkCreditsSectionExpanded","focusProjectLinkCreditsTextInput","renderProjectLinkCreditsAddButton","syncProjectLinkCreditsAccordion","handleProjectLinkCreditsInlineInput","handleProjectLinkCreditsAccordionClick"]),null==(e=this.initProjectDetailsPanel)||e.call(this),null==(t=this.initProjectLinkCreditsAccordion)||t.call(this),this.addListeners(),null==(i=this.scheduleSlugDuplicateCheck)||i.call(this,{immediate:!0});const P=(null==(r=this.editorContainer)?void 0:r.getAttribute("data-editor-mode"))||"edit";this.setEditorMode(P,{animateThumb:!1}),null==(a=this.renumberBlocks)||a.call(this),null==(o=this.updateReorderButtonState)||o.call(this),null==(d=this.updateEmptyStateVisibility)||d.call(this),this.creditsValue&&this.renderCreditsDisplay(),null==(c=this.bindMemberCreditsRemoveButtons)||c.call(this),null==(u=this.syncMemberCreditsEmptyState)||u.call(this),null==(h=this.renderMemberCreditsPreviewAvatars)||h.call(this),null==(m=this.renderMetaPreviewList)||m.call(this,"portfolioCategories"),null==(p=this.renderMetaPreviewList)||p.call(this,"portfolioStyles"),null==(v=this.hydrateServerRenderedMediaSelections)||v.call(this),null==(g=this.syncSocialShareImagePreview)||g.call(this),null==(y=this.updateAddEditButtons)||y.call(this),null==(b=this.syncCuratedToggleState)||b.call(this),null==(f=this.syncPublishAvailability)||f.call(this,{silent:!0}),null==(S=this.syncProjectMediaPreviewState)||S.call(this),this.dragSortContainers&&this.dragSortContainers.forEac
1h((e=>{e.querySelectorAll(".dragSort-item").length&&w.initDragSort(e)})),null==(L=this.initMediaDragSort)||L.call(this),document.querySelectorAll("[data-image-video-grid-slots]").forEach((e=>{w.initImageVideoGridSlots(e)})),document.querySelectorAll(".image-video-grid-slot").forEach((e=>{w.syncGridItemCaptionVisibility(e)})),this.initInlineToolbars(),this.form&&(this.form.addEventListener("input",w.handleSaveButtonDirtyInput,!0),this.form.addEventListener("change",w.handleSaveButtonDirtyInput,!0)),null==(k=this.syncSaveButtonIdleState)||k.call(this)}updateEmptyStateVisibility(){document.querySelectorAll(".portfolio-blocks").forEach((e=>{const t=e.querySelector(".portfolio-blocks-empty-state");if(!t)return;const i=e.querySelectorAll(":scope > .block-item").length;t.classList.toggle("is-hidden",i>0)}))}addListeners(){var e,t,i,a,o,l,n,u,h,m;const p=this;s(p,["handleProjectDetailShortcut","handleEscapeKey","handleProjectEditorKeyDown","handleMemberCreditsSearchInput","handleMemberCreditsResultKeyDown","handleClickOutside","afterSwap","memberCreditsAddItem","memberCreditsRemoveItem","keepToggle","inputThumbnailsUpdate","clearValue","socialShareImageAddClick","socialShareImageContainerClick","socialShareImageClear","imageBlockAddClick","imageBlockClear","setImageBlockActionState","videoBlockAddClick","videoBlockClear","setVideoBlockActionState","imageVideoGridSlotAction","setImageVideoGridBlockActionState","initImageVideoGridSlots","clearImageVideoGridSlotToEmpty","compactImageVideoGridSlots","refreshImageVideoGridDragSort","handleImageVideoGridSlotFileChange","syncGridItemCaptionVisibility","handleGridItemCaptionInput","embedUpdate","editorModeToggle","handleSlugInput","handleTitleInputForSlug","handleSaveButtonDirtyInput","toggleCuratedState","syncCuratedToggleState","togglePublishState","syncPublishToggleState","syncPublishAvailability","schedulePublishAvailabilitySync","fetchOgData","uploadOgImage","handleEditorBlockAction","handleCaseStudyEmptyMediaClick","handleCaptionToggle","handleCaptionBlur","handleBlockNumberInputChange","handleBlockNumberInputKeydown","handleBlockNumberInputBlur","handleMediaEmptySlotClick","handleProjectMediaPreviewThumbClick","renumberBlocks","actionReorder","reorderDialogClose","reorderDialogCancel","actionModalSave","actionAdd","actionRemove","creditsOpen","creditsClose","creditsHandleDialogClose","creditsHandleModalClick","creditsHandleModalInput","creditsSave","projectDescriptionOpen","projectDescriptionHandleDialogClose","projectDescriptionCancel","projectDescriptionSave","handleMetaPillToggle","handleMetaPreviewRemove","renderMetaPreviewList","updateAddEditButtons","categoriesRememberOriginal","categoriesHandleDialogClose","categoriesCancel","categoriesSave","projectSettingsSnapshotOnOpen","projectSettingsRememberBeforeOpen","projectSettingsRestoreOnClose","projectSettingsApplyClick","syncSocialShareImagePreview","stylesRememberOriginal","stylesHandleDialogClose","stylesCancel","stylesSave","initProjectDetailsPanel","openProjectDetailsPanel","closeProjectDetailsPanel","handleProjectDetailsKeyDown","initProjectLinkCreditsAccordion","setProjectLinkCreditsSectionExpanded","focusProjectLinkCreditsTextInput","renderProjectLinkCreditsAddButton","syncProjectLinkCreditsAccordion","handleProjectLinkCreditsInlineInput","handleProjectLinkCreditsAccordionClick","updateCreditsRowStates","renderCreditsDisplay","bindMemberCreditsRemoveButtons","memberCreditsRememberOriginal","memberCreditsHandleDialogClose","memberCreditsCancel","memberCreditsSave","handleMediaAction","handleMediaFileChange","handleMediaThumbDragover","handleMediaThumbDragleave","handleMediaThumbDrop","handleSocialShareImageDragover","handleSocialShareImageDragleave","handleSocialShareImageDrop","handleMediaHeroDragover","handleMediaHeroDragleave","handleMediaHeroDrop","handleMediaHeroVideoPlaying","handleEditorBlockMediaDragover","handleEditorBlockMediaDragleave","handleEditorBlockMediaDrop","handleWindowResize","handleRichTextLayoutSelect","handleRichTextShiftTabNavigation","handleInlineToolbarPointerOver","handleInlineToolbarPointerOut","handleInlineToolbarFocusIn","handleInlineToolbarFocusOut","handleInlineToolbarTriggerClick","handleMediaLibraryRowsClick","handleMediaLibraryRowsChange","handleMediaLibraryRowsMouseOver","handleMediaLibraryRowsMouseOut","handleMediaLibraryAddClick","handleMediaLibraryUploadChange","handleMediaLibraryDeleteClick","handleMediaLibrarySelectClick","handleMediaLibraryDialogClose","handleMediaLibrarySelectAllChange","handleMediaLibrarySelectAllClick","handleMediaLibraryStatusClick","handleMediaLibraryDropzoneClick","handleMediaLibraryDropzoneDragOver","handleMediaLibraryDropzoneDragLeave","handleMediaLibraryDropzoneDrop","handleMediaLibraryPosterBackClick","handleMediaLibraryPosterConfirmClick","handleMediaLibraryPosterDropzoneClick","handleMediaLibraryPosterDropzoneKeyD
1own","handleMediaLibraryPosterDropzoneDragOver","handleMediaLibraryPosterDropzoneDragLeave","handleMediaLibraryPosterDropzoneDrop","handleMediaLibraryPosterUploadChange","handleMediaLibraryPosterCustomRemoveClick","handleMediaLibraryPosterCustomErrorClick"]),document.addEventListener("keydown",p.handleEscapeKey),this.form.addEventListener("keydown",p.handleProjectEditorKeyDown,!0),null==(e=this.memberCreditsInput)||e.addEventListener("input",p.handleMemberCreditsSearchInput),document.addEventListener("click",p.handleClickOutside),document.addEventListener("click",p.handleEditorBlockAction),document.addEventListener("click",p.handleCaseStudyEmptyMediaClick),document.addEventListener("click",p.imageVideoGridSlotAction),document.addEventListener("click",p.handleCaptionToggle),document.addEventListener("keydown",p.handleRichTextShiftTabNavigation,!0),document.addEventListener("blur",p.handleCaptionBlur,!0),document.addEventListener("input",p.handleGridItemCaptionInput,!0),document.addEventListener("change",p.handleBlockNumberInputChange),document.addEventListener("keydown",p.handleBlockNumberInputKeydown),document.addEventListener("blur",p.handleBlockNumberInputBlur,!0),document.addEventListener("click",p.handleMetaPreviewRemove),document.addEventListener("click",p.handleProjectLinkCreditsAccordionClick,!0),document.addEventListener("keydown",p.handleProjectDetailShortcut),document.addEventListener("input",p.handleProjectLinkCreditsInlineInput,!0),document.addEventListener("change",p.handleRichTextLayoutSelect),document.addEventListener("dragover",p.handleEditorBlockMediaDragover),document.addEventListener("dragleave",p.handleEditorBlockMediaDragleave),document.addEventListener("drop",p.handleEditorBlockMediaDrop),document.addEventListener("pointerover",p.handleInlineToolbarPointerOver),document.addEventListener("pointerout",p.handleInlineToolbarPointerOut),document.addEventListener("mouseover",p.handleInlineToolbarPointerOver),document.addEventListener("mouseout",p.handleInlineToolbarPointerOut),document.addEventListener("focusin",p.handleInlineToolbarFocusIn),document.addEventListener("focusout",p.handleInlineToolbarFocusOut),document.addEventListener("click",p.handleInlineToolbarTriggerClick),window.addEventListener("resize",p.handleWindowResize),d.on("htmx:afterSwap",p.afterSwap),this.btnProjectDescriptionEdit&&this.btnProjectDescriptionEdit.addEventListener("click",p.projectDescriptionOpen),this.projectDescriptionModal&&this.projectDescriptionModal.addEventListener("close",p.projectDescriptionHandleDialogClose),this.projectDescriptionModalBtnSave&&this.projectDescriptionModalBtnSave.addEventListener("click",p.projectDescriptionSave),(null==(t=this.projectDescriptionModalBtnCancel)?void 0:t.length)&&this.projectDescriptionModalBtnCancel.forEach((e=>e.addEventListener("click",p.projectDescriptionCancel))),(null==(i=this.metaPillGroups)?void 0:i.length)&&this.metaPillGroups.forEach((e=>e.addEventListener("click",p.handleMetaPillToggle))),(null==(a=this.btnCategoriesEdit)?void 0:a.length)&&this.btnCategoriesEdit.forEach((e=>e.addEventListener("click",p.categoriesRememberOriginal))),this.categoriesModal&&this.categoriesModal.addEventListener("close",p.categoriesHandleDialogClose),this.categoriesModalBtnSave&&this.categoriesModalBtnSave.addEventListener("click",p.categoriesSave),(null==(o=this.categoriesModalBtnCancel)?void 0:o.length)&&this.categoriesModalBtnCancel.forEach((e=>e.addEventListener("click",p.categoriesCancel))),(null==(l=this.btnStylesEdit)?void 0:l.length)&&this.btnStylesEdit.forEach((e=>e.addEventListener("click",p.stylesRememberOriginal))),this.stylesModal&&this.stylesModal.addEventListener("close",p.stylesHandleDialogClose),this.stylesModalBtnSave&&this.stylesModalBtnSave.addEventListener("click",p.stylesSave),(null==(n=this.stylesModalBtnCancel)?void 0:n.length)&&this.stylesModalBtnCancel.forEach((e=>e.addEventListener("click",p.stylesCancel))),this.projectSettingsDialog&&(this.projectSettingsDialog.addEventListener("close",p.projectSettingsRestoreOnClose),this.projectSettingsDialog.addEventListener("click",p.projectSettingsApplyClick,!0)),this.mediaLibraryDialog&&(this.mediaLibraryDialog.addEventListener("close",p.handleMediaLibraryDialogClose),this.mediaLibraryDialog.addEventListener("click",p.handleMediaLibrarySelectClick,!0)),this.mediaLibraryRows&&(this.mediaLibraryRows.addEventListener("click",p.handleMediaLibraryRowsClick),this.mediaLibraryRows.addEventListener("change",p.handleMediaLibraryRowsChange),this.mediaLibraryRows.addEventListener("mouseover",p.handleMediaLibraryRowsMouseOver),this.mediaLibraryRows.addEventListener("mouseout",p.handleMediaLibraryRowsMouseOut)),this.mediaLibrarySelectAllInput&&(this.mediaLibrarySelectAllInput.addEventListener("mousedown",p.handleMediaLibrarySelectAllClick),this.mediaLibrarySelectAllInput.addEventListener("change",p.handleMediaLibrarySelectAllChange)),this.mediaLibraryAddBtn&&this.mediaLibraryAddBtn.addEventListener("click",p.handleMediaLibraryAddClick),this.mediaLibraryDeleteBtn&&this.mediaLibraryDeleteBtn.addEventListener("click",p.handleMediaLibraryDeleteClick),this.mediaLibraryUploadInput&&this.mediaLibraryUploadInput.addEventListener("change",p.handleMediaLibraryUploadChange),this.mediaLibraryUploadStatus&&this.mediaLibraryUploadStatus.addEventListener("click",p.handleMediaLibraryStatusClick),this.mediaLibraryDropzone&&(this.mediaLibraryDropzone.addEventListener("click",p.handleMediaLibraryDropzoneClick),this.mediaLibraryDropzone.addEventListener("dragover",p.handleMediaLibraryDropzoneDragOver),this.mediaLibraryDropzone.addEventListener("dragleave",p.handleMediaLibraryDropzoneDragLeave),this.mediaLibraryDropzone.addEventListener("drop",p.handleMediaLibraryDropzoneDrop)),this.mediaLibraryPosterBackBtn&&this.mediaLibraryPosterBackBtn.addEventListener("click",p.handleMediaLibraryPosterBackClick),this.mediaLibraryPosterConfirmBtn&&this.mediaLibraryPosterConfirmBtn.addEventListener("click",p.handleMediaLibraryPosterConfirmClick),this.mediaLibraryPosterDropzone&&(this.mediaLibraryPosterDropzone.addEventListener("click",p.handleMediaLibraryPosterDropzoneClick),this.mediaLibraryPosterDropzone.addEventListener("keydown",p.handleMediaLibraryPosterDropzoneKeyD
1own),this.mediaLibraryPosterDropzone.addEventListener("dragover",p.handleMediaLibraryPosterDropzoneDragOver),this.mediaLibraryPosterDropzone.addEventListener("dragleave",p.handleMediaLibraryPosterDropzoneDragLeave),this.mediaLibraryPosterDropzone.addEventListener("drop",p.handleMediaLibraryPosterDropzoneDrop)),this.mediaLibraryPosterUploadInput&&this.mediaLibraryPosterUploadInput.addEventListener("change",p.handleMediaLibraryPosterUploadChange),this.mediaLibraryPosterCustomRemoveBtn&&this.mediaLibraryPosterCustomRemoveBtn.addEventListener("click",p.handleMediaLibraryPosterCustomRemoveClick),this.mediaLibraryPosterCustomError&&this.mediaLibraryPosterCustomError.addEventListener("click",p.handleMediaLibraryPosterCustomErrorClick),document.addEventListener("click",p.projectSettingsRememberBeforeOpen,!0),this.keepBtns.forEach((e=>{e.addEventListener("change",p.keepToggle)})),this.portfolioSocialShareImageInput&&this.portfolioSocialShareImageInput.addEventListener("change",p.inputThumbnailsUpdate);const v=document.querySelector('[data-action="social-share-image-add"]');v&&this.portfolioSocialShareImageInput&&v.addEventListener("click",p.socialShareImageAddClick);const g=document.querySelector("[data-social-share-image]");if(g&&this.portfolioSocialShareImageInput&&(g.addEventListener("click",p.socialShareImageContainerClick),g.addEventListener("dragover",p.handleSocialShareImageDragover),g.addEventListener("dragleave",p.handleSocialShareImageDragleave),g.addEventListener("drop",p.handleSocialShareImageDrop)),document.querySelectorAll('[data-action="social-share-image-clear"]').forEach((e=>{e.addEventListener("click",p.socialShareImageClear)})),document.querySelectorAll('[data-action="image-block-add"]').forEach((e=>{e.addEventListener("click",p.imageBlockAddClick)})),document.querySelectorAll('[data-action="image-block-clear"]').forEach((e=>{e.addEventListener("click",p.imageBlockClear)})),document.querySelectorAll('[data-action="video-block-add"]').forEach((e=>{e.addEventListener("click",p.videoBlockAddClick)})),document.querySelectorAll('[data-action="video-block-clear"]').forEach((e=>{e.addEventListener("click",p.videoBlockClear)})),this.clearValueBtns.forEach((e=>{e.addEventListener("click",p.clearValue)})),this.mediaComponent){this.mediaComponent.addEventListener("click",p.handleMediaAction),this.mediaComponent.addEventListener("click",p.handleMediaEmptySlotClick),this.mediaComponent.addEventListener("click",p.handleProjectMediaPreviewThumbClick);const e=null==(u=this.mediaHero)?void 0:u.querySelector('[data-media-file="hero"]');e&&e.addEventListener("change",p.handleMediaFileChange),this.mediaThumbs.forEach(((e,t)=>{const i=e.querySelector(`[data-media-file="thumb-${t}"]`);i&&i.addEventListener("change",p.handleMediaFileChange)})),this.mediaThumbsContainer&&(this.mediaThumbsContainer.addEventListener("dragover",p.handleMediaThumbDragover),this.mediaThumbsContainer.addEventListener("dragleave",p.handleMediaThumbDragleave),this.mediaThumbsContainer.addEventListener("drop",p.handleMediaThumbDrop)),this.mediaHero&&(this.mediaHero.addEventListener("dragover",p.handleMediaHeroDragover),this.mediaHero.addEventListener("dragleave",p.handleMediaHeroDragleave),this.mediaHero.addEventListener("drop",p.handleMediaHeroDrop),this.mediaHero.addEventListener("playing",p.handleMediaHeroVideoPlaying,!0)),this.mediaComponent&&this.btnPublishToggle&&"undefined"!=typeof MutationObserver&&(this.mediaPublishObserver=new MutationObserver(p.schedulePublishAvailabilitySync),this.mediaPublishObserver.observe(this.mediaComponent,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["class"]}))}document.querySelectorAll(".input-thumbnails-update").forEach((e=>{e.addEventListener("change",p.inputThumbnailsUpdate),p.inputThumbnailsUpdate(null,e)}));document.querySelectorAll(".input-embed-update").forEach((e=>{e.addEventListener("change",p.embedUpdate),p.embedUpdate(null,e)})),document.querySelectorAll("select[data-rich-text-layout-select]").forEach((e=>{const t=e.closest(".editor-block-fields");p.applyRichTextLayoutClasses(t,e.value||"middle")})),this.modal&&this.modalContent&&this.btnModalSave&&(this.modal.addEventListener("close",p.reorderDialogClose),this.btnModalCancel&&this.btnModalCancel.addEventListener("click",p.reorderDialogCancel,!0),this.btnModalSave.addEventListener("click",p.actionModalSave)),this.inputPortfolioTitle&&this.inputPortfolioTitle.addEventListener("input",p.handleTitleInputForSlug),this.slugInput&&this.slugInput.addEventListener("input",p.handleSlugInput),(null==(h=this.btnCuratedToggles)?void 0:h.length)&&this.btnCuratedToggles.forEac
1h((e=>e.addEventListener("click",p.toggleCuratedState))),this.btnPublishToggle&&this.btnPublishToggle.addEventListener("click",p.togglePublishState),this.btnEditorModes&&this.btnEditorModes.length&&this.btnEditorModes.forEach((e=>e.addEventListener("click",p.editorModeToggle))),this.initProjectLinkSuggestions(),this.btnCreditsEdit&&this.btnCreditsEdit.addEventListener("click",p.creditsOpen),this.creditsModal&&(this.creditsModal.addEventListener("click",p.creditsHandleModalClick),this.creditsModal.addEventListener("close",p.creditsHandleDialogClose)),this.creditsModalContent&&this.creditsModalContent.addEventListener("input",p.creditsHandleModalInput),null==(m=p.initProjectDescriptionInline)||m.call(p),this.form.addEventListener("invalid",(e=>{var t,i,r;null==(t=p.analytics)||t.saveAttempt(),null==(i=p.analytics)||i.saveFailed({status:422}),p.setEditorMode("edit"),null==(r=p.revealValidationTarget)||r.call(p,e.target)}),!0),this.form.addEventListener("submit",(async e=>{var t,i,a,o,s,l,n,d,u,h,m;if(e.preventDefault(),p.form.classList.contains("is-submitting")||(null==(t=p.analytics)?void 0:t.saving))return;if(null==(i=p.analytics)||i.saveAttempt(),p.setEditorMode("edit"),"function"==typeof p.form.reportValidity&&!p.form.reportValidity())return;null==(a=p.analytics)||a.saveStart(),p.setSaveButtonSavingState(!0);const v=await c();try{await p.normalizePendingProjectVideoInputs()}catch(P){return null==(o=p.analytics)||o.saveFailed({},"media"),p.setSaveButtonSavingState(!1),void p.form.classList.remove("is-submitting")}let g=null;this.portfolioSocialShareImageInput&&(g=p.portfolioSocialShareImageInput.files[0],g&&document.querySelectorAll('input[name="fields[portfolioSocialShareImage][]"]').forEach((e=>{e.checked=!1}))),p.form.classList.add("is-submitting"),null==(s=p.syncProjectDescriptionTextareaFromRedactor)||s.call(p),null==(l=p.syncProjectDescriptionDisplays)||l.call(p),document.querySelectorAll('.editor-block-fields textarea[name*="[portfolioBlocksRichTextCopy]"]').forEach((e=>{var t;const i=e.closest(".editor-block-fields"),r=null==i?void 0:i.querySelector(".redactor-in"),a=Z("string"==typeof(null==r?void 0:r.innerHTML)?r.innerHTML:null!=(t=e.value)?t:"");e.value=a}));const b=null==(n=p.mediaComponent)?void 0:n.querySelector('[data-media-file="hero"]');(null==(d=null==b?void 0:b.files)?void 0:d.length)&&p.mediaComponent.querySelectorAll('input[name="fields[portfolioFeaturedAsset][]"]').forEach((e=>{e.checked=!1}));const f=()=>{var e;const t=new FormData(p.form);p.pendingProjectVideoTelemetry.length&&t.append("projectVideoNormalizationTelemetry",JSON.stringify(p.pendingProjectVideoTelemetry));const i=!!document.querySelector('input[name="fields[portfolioSocialShareImage][]"]:checked'),r=!!document.querySelector('input[name="fields[portfolioFeaturedAsset][]"]:checked'),a=!!document.querySelector('input[name="fields[portfolioFeaturedAssetVideoPoster][]"]:checked');return(null==(e=null==b?void 0:b.files)?void 0:e[0])?(t.delete("fields[portfolioFeaturedAsset]"),t.append("fields[portfolioFeaturedAsset]",b.files[0])):r&&t.delete("fields[portfolioFeaturedAsset]"),a&&t.delete("fields[portfolioFeaturedAssetVideoPoster]"),g?(t.delete("fields[portfolioSocialShareImage]"),t.append("fields[portfolioSocialShareImage]",g)):i&&t.delete("fields[portfolioSocialShareImage]"),p.form.querySelectorAll("[data-image-video-grid-block-editor] .image-video-grid-slot").forEach((e=>{var i;if(!p.isNestedGridBlock(e))return;const r=e.closest("[data-image-video-grid-block-editor]"),a=p.getExistingGridItemKey(e),o=p.getGridItemNames(r,a);if(!o)return;const s=e.querySelector("input[data-image-video-grid-file]"),l=e.querySelector('input[type="checkbox"][data-image-video-grid-keep]'),n=(null==l?void 0:l.checked)?l.value:"";t.delete(o.assetEmpty),t.delete(o.asset),t.delete(o.keep),(null==(i=null==s?void 0:s.files)?void 0:i[0])?t.append(o.asset,s.files[0]):n?t.append(o.keep,n):t.append(o.assetEmpty,"")})),p.form.querySelectorAll("[data-image-video-grid-block-editor][data-grid-block-entry-key]").forEach((e=>{const i=e.dataset.gridBlockEntryKey;if(!i)return;Array.from(e.querySelectorAll(".image-video-grid-slot")).some((e=>{var t;if(!p.isNestedGridBlock(e))return!1;const i=e.querySelector("input[data-image-video-grid-file]"),r=e.querySelector('input[type="checkbox"][data-image-video-grid-keep]');return!!p.getExistingGridItemKey(e)||!!(null==(t=null==i?void 0:i.files)?void 0:t[0])||!!(null==r?void 0:r.checked)}))||t.append(`fields[portfolioBlocks][entries][${i}][fields][portfolioBlocksGridItems][sortOrder][]`,"")})),t},S=p.form.getAttribute("action");if(document.querySelectorAll(".has-error").forEach((e=>e.classList.remove("has-error"))),document.querySelectorAll(".error-message").forEach((e=>e.remove())),null==(u=p.updateReservedSlugError)||u.call(p),le.has(((null==(h=p.slugInput)?void 0:h.value)||"").trim().toLowerCase())){null==(m
1=p.analytics)||m.saveFailed({status:422});const e=p.form.querySelector(".has-error");return e&&p.scrollToElement(e,-82),p.setSaveButtonSavingState(!1),void p.form.classList.remove("is-submitting")}const L=e=>({method:"POST",mode:"same-origin",cache:"no-cache",credentials:"same-origin",headers:{Accept:"application/json",...v?{"X-CSRF-Token":v}:{}},redirect:"follow",referrerPolicy:"no-referrer",body:e}),k=new Set,w=e=>k.forEach((t=>{var i;return null==(i=p.analytics)?void 0:i.once(`upload ${e} ${t}`)}));fetch(S,L(f())).then((e=>{if(e.ok)return e.json();let t=new Error("HTTP status code: "+e.status);throw t.response=e,t.status=e.status,t})).then((()=>{const e=f();for(const t of e.values())t instanceof File&&t.size&&(t.type.startsWith("image/")?k.add("image"):t.type.startsWith("video/")&&k.add("video"));return w("attempted"),fetch("/api/save-project",L(e))})).then((e=>{if(!e.ok)throw Object.assign(new Error("Project save failed"),{response:e,status:e.status});return e.json()})).then((e=>{var t,i,r,a,o,s,l;if(e.errors&&Object.keys(e.errors).length>0){null==(t=p.analytics)||t.saveFailed({status:422}),k.forEach((e=>{var t;return null==(t=p.analytics)?void 0:t.once(`upload failed ${e} validation`)})),p.addErrorMessages(e);const i=p.form.querySelector(".has-error");i&&p.scrollToElement(i,-82)}else{if(!e.modelId&&!(null==(i=e.model)?void 0:i.id)||!(null==(r=e.model)?void 0:r.url))throw new Error("Missing saved project");w("succeeded"),null==(a=p.analytics)||a.saved(),p.setSaveButtonDirtyState(!1),p.setSaveButtonSavingState(!1),p.form.classList.remove("is-submitting"),p.pendingProjectVideoTelemetry=[],e.model&&e.model.url&&(p.form.dataset.redirectAfterSave?window.location.href=e.model.url:(null==(o=e.projectMedia)?void 0:o.didChangeSlug)&&(null==(s=e.projectMedia)?void 0:s.editUrl)?window.location.href=e.projectMedia.editUrl:(y([e.model.url,null==(l=e.projectMedia)?void 0:l.editUrl].filter(Boolean)),p.showSaveSuccessFeedback()))}})).catch((e=>{var t;null==(t=p.analytics)||t.saveFailed(e),k.forEach((t=>{var i;return null==(i=p.analytics)?void 0:i.once(`upload failed ${t} ${r(e,"media")}`)})),e.response&&e.response.json().then((e=>{p.addErrorMessages(e);const t=p.form.querySelector(".has-error");t&&p.scrollToElement(t,-82)})).catch((()=>{}))})).finally((()=>{p.setSaveButtonSavingState(!1),p.form.classList.remove("is-submitting")}))}))}removeListeners(){var e,t,i,r,a,o;const s=this;this._saveSuccessTimeout&&(clearTimeout(this._saveSuccessTimeout),this._saveSuccessTimeout=null),this.form&&(this.form.removeEventListener("keydown",s.handleProjectEditorKeyDown,!0),this.form.removeEventListener("input",s.handleSaveButtonDirtyInput,!0),this.form.removeEventListener("change",s.handleSaveButtonDirtyInput,!0)),document.removeEventListener("keydown",s.handleEscapeKey),null==(e=this.memberCreditsInput)||e.removeEventListener("input",s.handleMemberCreditsSearchInput),document.removeEventListener("click",s.handleClickOutside),document.removeEventListener("click",s.handleEditorBlockAction),document.removeEventListener("click",s.handleCaseStudyEmptyMediaClick),document.removeEventListener("click",s.imageVideoGridSlotAction),document.removeEventListener("click",s.handleCaptionToggle),document.removeEventListener("blur",s.handleCaptionBlur,!0),document.removeEventListener("input",s.handleGridItemCaptionInput,!0),document.removeEventListener("change",s.handleBlockNumberInputChange),document.removeEventListener("keydown",s.handleBlockNumberInputKeydown),document.removeEventListener("blur",s.handleBlockNumberInputBlur,!0),document.removeEventListener("click",s.handleMetaPreviewRemove),document.removeEventListener("click",s.handleProjectLinkCreditsAccordionClick,!0),document.removeEventListener("keydown",s.handleProjectDetailShortcut),document.removeEventListener("input",s.handleProjectLinkCreditsInlineInput,!0),document.removeEventListener("change",s.handleRichTextLayoutSelect),document.removeEventListener("dragover",s.handleEditorBlockMediaDragover),document.removeEventListener("dragleave",s.handleEditorBlockMediaDragleave),document.removeEventListener("drop",s.handleEditorBlockMediaDrop),document.removeEventListener("pointerover",s.handleInlineToolbarPointerOver),document.removeEventListener("pointerout",s.handleInlineToolbarPointerOut),document.removeEventListener("mouseover",s.handleInlineToolbarPointerOver),document.removeEventListener("mouseout",s.handleInlineToolbarPointerOut),document.removeEventListener("focusin",s.handleInlineToolbarFocusIn),document.removeEventListener("focusout",s.handleInlineToolbarFocusOut),document.removeEventListener("click",
1s.handleInlineToolbarTriggerClick),window.removeEventListener("resize",s.handleWindowResize),null==(t=this.projectWorkspace)||t.removeEventListener("transitionend",this.handleProjectWorkspaceTransitionEnd),this._gridResizeFrame&&(window.cancelAnimationFrame(this._gridResizeFrame),this._gridResizeFrame=null),d.off("htmx:afterSwap",s.afterSwap),this.keepBtns.forEach((e=>{e.removeEventListener("change",s.keepToggle)})),this.portfolioSocialShareImageInput&&this.portfolioSocialShareImageInput.removeEventListener("change",s.inputThumbnailsUpdate);const l=document.querySelector('[data-action="social-share-image-add"]');l&&this.portfolioSocialShareImageInput&&l.removeEventListener("click",s.socialShareImageAddClick);const n=document.querySelector("[data-social-share-image]");if(n&&this.portfolioSocialShareImageInput&&(n.removeEventListener("click",s.socialShareImageContainerClick),n.removeEventListener("dragover",s.handleSocialShareImageDragover),n.removeEventListener("dragleave",s.handleSocialShareImageDragleave),n.removeEventListener("drop",s.handleSocialShareImageDrop)),document.querySelectorAll('[data-action="social-share-image-clear"]').forEach((e=>{e.removeEventListener("click",s.socialShareImageClear)})),document.querySelectorAll('[data-action="image-block-add"]').forEach((e=>{e.removeEventListener("click",s.imageBlockAddClick)})),document.querySelectorAll('[data-action="image-block-clear"]').forEach((e=>{e.removeEventListener("click",s.imageBlockClear)})),document.querySelectorAll('[data-action="video-block-add"]').forEach((e=>{e.removeEventListener("click",s.videoBlockAddClick)})),document.querySelectorAll('[data-action="video-block-clear"]').forEach((e=>{e.removeEventListener("click",s.videoBlockClear)})),this.clearValueBtns.forEach((e=>{e.removeEventListener("click",s.clearValue)})),this.mediaComponent){this.mediaComponent.removeEventListener("click",s.handleMediaAction),this.mediaComponent.removeEventListener("click",s.handleMediaEmptySlotClick),this.mediaComponent.removeEventListener("click",s.handleProjectMediaPreviewThumbClick);const e=null==(i=this.mediaHero)?void 0:i.querySelector('[data-media-file="hero"]');e&&e.removeEventListener("change",s.handleMediaFileChange),this.mediaThumbs.forEach(((e,t)=>{const i=e.querySelector(`[data-media-file="thumb-${t}"]`);i&&i.removeEventListener("change",s.handleMediaFileChange)})),this.mediaThumbsContainer&&(this.mediaThumbsContainer.removeEventListener("dragover",s.handleMediaThumbDragover),this.mediaThumbsContainer.removeEventListener("dragleave",s.handleMediaThumbDragleave),this.mediaThumbsContainer.removeEventListener("drop",s.handleMediaThumbDrop)),this.mediaHero&&(this.mediaHero.removeEventListener("dragover",s.handleMediaHeroDragover),this.mediaHero.removeEventListener("dragleave",s.handleMediaHeroDragleave),this.mediaHero.removeEventListener("drop",s.handleMediaHeroDrop),this.mediaHero.removeEventListener("playing",s.handleMediaHeroVideoPlaying,!0)),null==(r=this.mediaPublishObserver)||r.disconnect(),this.mediaPublishObserver=null,this.publishAvailabilityFrame&&(window.cancelAnimationFrame(this.publishAvailabilityFrame),this.publishAvailabilityFrame=null),this.hidePublishLockedTooltip()}document.querySelectorAll(".input-thumbnails-update").forEach((e=>{e.removeEventListener("change",s.inputThumbnailsUpdate)}));document.querySelectorAll(".input-embed-update").forEach((e=>{e.removeEventListener("change",s.embedUpdate)})),this.modal&&this.btnModalSave&&(this.modal.removeEventListener("close",s.reorderDialogClose),this.btnModalCancel&&this.btnModalCancel.removeEventListener("click",s.reorderDialogCancel,!0),this.btnModalSave.removeEventListener("click",s.actionModalSave)),this.inputPortfolioTitle&&this.inputPortfolioTitle.removeEventListener("input",s.handleTitleInputForSlug),this.slugInput&&this.slugInput.removeEventListener("input",s.handleSlugInput),(null==(a=this.btnCuratedToggles)?void 0:a.length)&&this.btnCuratedToggles.forEach((e=>e.removeEventListener("click",s.toggleCuratedState))),this.btnPublishToggle&&this.btnPublishToggle.removeEventListener("click",s.togglePublishState),this.btnEditorModes&&this.btnEditorModes.length&&this.btnEditorModes.forEac
1h((e=>e.removeEventListener("click",s.editorModeToggle))),null==(o=this.projectLinkSuggestions)||o.destroy(),this.projectLinkSuggestions=null,this.btnCreditsEdit&&this.btnCreditsEdit.removeEventListener("click",s.creditsOpen),this.creditsModal&&(this.creditsModal.removeEventListener("click",s.creditsHandleModalClick),this.creditsModal.removeEventListener("close",s.creditsHandleDialogClose)),this.creditsModalContent&&this.creditsModalContent.removeEventListener("input",s.creditsHandleModalInput),this.projectSettingsDialog&&(this.projectSettingsDialog.removeEventListener("close",s.projectSettingsRestoreOnClose),this.projectSettingsDialog.removeEventListener("click",s.projectSettingsApplyClick,!0)),this.mediaLibraryDialog&&(this.mediaLibraryDialog.removeEventListener("close",s.handleMediaLibraryDialogClose),this.mediaLibraryDialog.removeEventListener("click",s.handleMediaLibrarySelectClick,!0)),this.mediaLibraryRows&&(this.mediaLibraryRows.removeEventListener("click",s.handleMediaLibraryRowsClick),this.mediaLibraryRows.removeEventListener("change",s.handleMediaLibraryRowsChange),this.mediaLibraryRows.removeEventListener("mouseover",s.handleMediaLibraryRowsMouseOver),this.mediaLibraryRows.removeEventListener("mouseout",s.handleMediaLibraryRowsMouseOut)),this.mediaLibrarySelectAllInput&&(this.mediaLibrarySelectAllInput.removeEventListener("mousedown",s.handleMediaLibrarySelectAllClick),this.mediaLibrarySelectAllInput.removeEventListener("change",s.handleMediaLibrarySelectAllChange)),this.mediaLibraryAddBtn&&this.mediaLibraryAddBtn.removeEventListener("click",s.handleMediaLibraryAddClick),this.mediaLibraryDeleteBtn&&this.mediaLibraryDeleteBtn.removeEventListener("click",s.handleMediaLibraryDeleteClick),this.mediaLibraryUploadInput&&this.mediaLibraryUploadInput.removeEventListener("change",s.handleMediaLibraryUploadChange),this.mediaLibraryUploadStatus&&this.mediaLibraryUploadStatus.removeEventListener("click",s.handleMediaLibraryStatusClick),this.mediaLibraryDropzone&&(this.mediaLibraryDropzone.removeEventListener("click",s.handleMediaLibraryDropzoneClick),this.mediaLibraryDropzone.removeEventListener("dragover",s.handleMediaLibraryDropzoneDragOver),this.mediaLibraryDropzone.removeEventListener("dragleave",s.handleMediaLibraryDropzoneDragLeave),this.mediaLibraryDropzone.removeEventListener("drop",s.handleMediaLibraryDropzoneDrop)),this.mediaLibraryPosterDropzone&&(this.mediaLibraryPosterDropzone.removeEventListener("click",s.handleMediaLibraryPosterDropzoneClick),this.mediaLibraryPosterDropzone.removeEventListener("keydown",s.handleMediaLibraryPosterDropzoneKeyDown),this.mediaLibraryPosterDropzone.removeEventListener("dragover",s.handleMediaLibraryPosterDropzoneDragOver),this.mediaLibraryPosterDropzone.removeEventListener("dragleave",s.handleMediaLibraryPosterDropzoneDragLeave),this.mediaLibraryPosterDropzone.removeEventListener("drop",s.handleMediaLibraryPosterDropzoneDrop)),this.mediaLibraryPosterUploadInput&&this.mediaLibraryPosterUploadInput.removeEventListener("change",s.handleMediaLibraryPosterUploadChange),this.mediaLibraryPosterCustomRemoveBtn&&this.mediaLibraryPosterCustomRemoveBtn.removeEventListener("click",s.handleMediaLibraryPosterCustomRemoveClick),this.mediaLibraryPosterCustomError&&this.mediaLibraryPosterCustomError.removeEventListener("click",s.handleMediaLibraryPosterCustomErrorClick),this.mediaLibraryPosterBackBtn&&this.mediaLibraryPosterBackBtn.removeEventListener("click",s.handleMediaLibraryPosterBackClick),this.mediaLibraryPosterConfirmBtn&&this.mediaLibraryPosterConfirmBtn.removeEventListener("click",s.handleMediaLibraryPosterConfirmClick),document.removeEventListener("click",s.projectSettingsRememberBeforeOpen,!0),document.querySelectorAll('[data-inline-toolbar][data-inline-toolbar-ready="true"]').forEach((e=>{var t,i,r,a,o;const s=e._inlineToolbarHandlers;if(!s)return;const l=e._inlineToolbarState;(null==l?void 0:l.openTimeline)&&l.openTimeline.kill(),(null==l?void 0:l.closeTimeline)&&l.closeTimeline.kill(),window.clearTimeout(null==l?void 0:l.shiftTimer),e.removeEventListener("mouseenter",s.mouseenter),e.removeEventListener("mouseover",s.mouseenter),e.removeEventListener("pointerenter",s.mouseenter),e.removeEventListener("mouseleave",s.mouseleave),e.removeEventListener("mouseout",s.mouseleave),e.removeEventListener("pointerleave",s.mouseleave),e.removeEventListener("click",
1s.click),e.removeEventListener("keydown",s.keydown),e.removeEventListener("focusin",s.focusin),e.removeEventListener("focusout",s.focusout),null==(t=null==l?void 0:l.pill)||t.removeEventListener("mouseenter",s.pillMouseenter),null==(i=null==l?void 0:l.pill)||i.removeEventListener("mouseover",s.pillMouseenter),null==(r=null==l?void 0:l.pill)||r.removeEventListener("pointerenter",s.pillPointerenter),null==(a=null==l?void 0:l.pill)||a.removeEventListener("focus",s.pillFocus),null==(o=null==l?void 0:l.pill)||o.removeEventListener("click",s.pillClick),delete e._inlineToolbarHandlers,delete e._inlineToolbarState,delete e.dataset.inlineToolbarReady})),s._blocksObserver&&s.portfolioBlocks&&(s._blocksObserver.unobserve(s.portfolioBlocks),s._blocksObserver.disconnect(),s._blocksObserver=null)}creditsOpen(e){var t,i;if(null==(t=null==e?void 0:e.preventDefault)||t.call(e),!this.creditsModal||!this.creditsModalRows||!this.creditsValue)return;null==(i=this.memberCreditsRememberOriginal)||i.call(this),this.creditsOriginalValue=this.creditsValue.value,this.creditsSaved=!1,this.creditsShouldRestoreOnClose=!1,this.creditsModalRows.innerHTML="";const r=(this.creditsValue.value||"").trim(),a=r?this.parseCredits(r):[];a.length&&a.forEach((e=>this.creditsModalRows.appendChild(this.createCreditsModalRow(e)))),this.ensureCreditsEmptyRow(),this.updateCreditsRowStates(),this.updateCreditsAddButtonState(),"function"==typeof this.creditsModal.showModal&&(this.creditsModal.showModal(),requestAnimationFrame((()=>{var e,t;null==(t=null==(e=this.creditsModal)?void 0:e.focus)||t.call(e,{preventScroll:!0})}
1)))}initInlineToolbars(e=document){var t,i;null==(i=null==(t=e.querySelectorAll)?void 0:t.call(e,"[data-inline-toolbar]"))||i.forEach((e=>{e.closest(".block-references")||this.setupInlineToolbar(e)}))}ensureInlineToolbar(e){return e?e.closest(".block-references")?null:("true"!==e.dataset.inlineToolbarReady&&this.setupInlineToolbar(e),"true"===e.dataset.inlineToolbarReady?e:null):null}handleInlineToolbarPointerOver(e){var t,i;const r=this.ensureInlineToolbar(null==(i=(t=e.target).closest)?void 0:i.call(t,"[data-inline-toolbar]"));r&&(e.relatedTarget&&r.contains(e.relatedTarget)||this.activateInlineToolbar(r))}handleInlineToolbarPointerOut(e){var t,i;const r=null==(i=(t=e.target).closest)?void 0:i.call(t,"[data-inline-toolbar]");r&&(e.relatedTarget&&r.contains(e.relatedTarget)||requestAnimationFrame((()=>{r.matches(":hover")||r.matches(":focus-within")||this.deactivateInlineToolbar(r)})))}handleInlineToolbarFocusIn(e){var t,i;const r=this.ensureInlineToolbar(null==(i=(t=e.target).closest)?void 0:i.call(t,"[data-inline-toolbar]"));r&&this.activateInlineToolbar(r)}handleInlineToolbarFocusOut(e){var t,i;const r=null==(i=(t=e.target).closest)?void 0:i.call(t,"[data-inline-toolbar]");r&&requestAnimationFrame((()=>{r.matches(":hover")||r.matches(":focus-within")||this.deactivateInlineToolbar(r)}))}handleInlineToolbarTriggerClick(e){var t,i;const r=null==(i=(t=e.target).closest)?void 0:i.call(t,".editor-inline-toolbar-pill");if(!r||e.target.closest(".editor-inline-toolbar-button"))return;const a=this.ensureInlineToolbar(r.closest("[data-inline-toolbar]"));if(!a)return;const o=a._inlineToolbarState;o&&(o.supportsHover||(e.preventDefault(),this.activateInlineToolbar(a)))}setupInlineToolbar(e){var t,i,r,a;if(!e||"true"===e.dataset.inlineToolbarReady)return;const o=e.querySelector(".editor-inline-toolbar-pill"),s=e.querySelector(".editor-inline-toolbar-plus"),l=e.querySelector(".editor-inline-toolbar-actions"),n=Array.from(e.querySelectorAll(".editor-inline-toolbar-button, .editor-inline-toolbar-divider"));if(!(o&&s&&l&&n.length))return;const d=null==(i=null==(t=window.matchMedia)?void 0:t.call(window,"(hover: hover) and (pointer: fine)"))?void 0:i.matches,c=!(null==(a=null==(r=window.matchMedia)?void 0:r.call(window,"(prefers-reduced-motion: reduce)"))?void 0:a.matches);e.dataset.inlineToolbarReady="true",e._inlineToolbarState={active:!1,useMotion:c,supportsHover:d,pill:o,plus:s,actions:l,items:n,collapsedWidth:50,expandedWidth:50,openTimeline:null,closeTimeline:null},this.resetInlineToolbarVisualState(e);const u=()=>this.activateInlineToolbar(e);e._inlineToolbarHandlers={mouseenter:u,mouseleave:()=>{e.matches(":focus-within")||e.matches(":hover")||this.deactivateInlineToolbar(e)},click:t=>{var i;t.target.closest(".editor-inline-toolbar-button")||t.target.closest(".editor-inline-toolbar-pill")&&!(null==(i=e._inlineToolbarState)?void 0:i.supportsHover)&&(t.preventDefault(),this.activateInlineToolbar(e))},pillMouseenter:u,pillPointerenter:u,pillFocus:u,pillClick:t=>{var i;t.target.closest(".editor-inline-toolbar-button")||(null==(i=e._inlineToolbarState)?void 0:i.supportsHover)||(t.preventDefault(),this.activateInlineToolbar(e))},keydown:t=>{t.target.closest(".editor-inline-toolbar-pill")&&(t.target.closest(".editor-inline-toolbar-button")||("Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.activateInlineToolbar(e)),"Escape"===t.key&&(t.preventDefault(),this.deactivateInlineToolbar(e),o.blur()
1)))},focusin:u,focusout:()=>{requestAnimationFrame((()=>{e.matches(":focus-within")||e.matches(":hover")||this.deactivateInlineToolbar(e)}))}},e.addEventListener("mouseenter",e._inlineToolbarHandlers.mouseenter),e.addEventListener("mouseover",e._inlineToolbarHandlers.mouseenter),e.addEventListener("pointerenter",e._inlineToolbarHandlers.mouseenter),e.addEventListener("mouseleave",e._inlineToolbarHandlers.mouseleave),e.addEventListener("mouseout",e._inlineToolbarHandlers.mouseleave),e.addEventListener("pointerleave",e._inlineToolbarHandlers.mouseleave),e.addEventListener("click",e._inlineToolbarHandlers.click),e.addEventListener("keydown",e._inlineToolbarHandlers.keydown),e.addEventListener("focusin",e._inlineToolbarHandlers.focusin),e.addEventListener("focusout",e._inlineToolbarHandlers.focusout),o.addEventListener("mouseenter",e._inlineToolbarHandlers.pillMouseenter),o.addEventListener("mouseover",e._inlineToolbarHandlers.pillMouseenter),o.addEventListener("pointerenter",e._inlineToolbarHandlers.pillPointerenter),o.addEventListener("focus",e._inlineToolbarHandlers.pillFocus),o.addEventListener("click",e._inlineToolbarHandlers.pillClick)}getInlineToolbarWidths(e){if(!(null==e?void 0:e.pill)||!(null==e?void 0:e.plus)||!(null==e?void 0:e.actions))return{collapsedWidth:50,expandedWidth:50};const t=window.getComputedStyle(e.pill),i=window.getComputedStyle(e.plus),r=Math.round(parseFloat(t.minWidth)||50),a=["paddingLeft","paddingRight","borderLeftWidth","borderRightWidth"].reduce(((e,i)=>e+(parseFloat(t[i])||0)),0),o=e.plus.getBoundingClientRect().width+(parseFloat(i.marginRight)||0),s=e.actions.getBoundingClientRect().width;return{collapsedWidth:r,expandedWidth:Math.max(r,Math.ceil(a+o+s))}}resetInlineToolbarVisualState(e){const t=null==e?void 0:e._inlineToolbarState;if(!t)return;const{collapsedWidth:i,expandedWidth:r}=this.getInlineToolbarWidths(t);t.collapsedWidth=i,t.expandedWidth=r,u.set(t.pill,{xPercent:-50,yPercent:-50,width:i,x:0,y:0}),u.set(t.actions,{pointerEvents:"none"}),u.set(t.items,{autoAlpha:0})}syncInlineToolbarDisabledStates(e){var t;const i=null==e?void 0:e._inlineToolbarState;(null==(t=null==i?void 0:i.items)?void 0:t.length)&&i.items.forEach((t=>{var i;if(!(null==(i=t.matches)?void 0:i.call(t,".editor-inline-toolbar-reorder")))return;const r=t.disabled||"true"===t.getAttribute("aria-disabled");e.classList.contains("is-active")&&u.set(t,{autoAlpha:r?.4:1})}))}getInlineToolbarRevealGroups(e){const t=[],i=[];return((null==e?void 0:e.items)||[]).forEach((e=>{var r;(null==(r=e.matches)?void 0:r.call(e,".editor-inline-toolbar-reorder"))&&(e.disabled||"true"===e.getAttribute("aria-disabled"))?i.push(e):t.push(e)})),{enabledItems:t,disabledItems:i}}activateInlineToolbar(e){var t,i;const r=null==e?void 0:e._inlineToolbarState;if(!r||r.active)return;document.querySelectorAll("[data-inline-toolbar].is-active").forEach((t=>{t!==e&&this.deactivateInlineToolbar(t)})),r.active=!0,r.pill.setAttribute("aria-expanded","true");const{useMotion:a,pill:o,actions:s,items:l}=r,{enabledItems:n,disabledItems:d}=this.getInlineToolbarRevealGroups(r);null==(t=r.openTimeline)||t.kill(),null==(i=r.closeTimeline)||i.kill(),u.killTweensOf([o,s,...l]),e.classList.add("is-active");const{collapsedWidth:c,expandedWidth:h}=this.getInlineToolbarWidths(r);if(r.collapsedWidth=c,r.expandedWidth=h,u.set(s,{pointerEvents:"auto"}),!a)return u.set(o,{xPercent:-50,yPercent:-50,width:h,x:0,y:0}),u.set(n,{autoAlpha:1}),void u.set(d,{autoAlpha:.4});r.openTimeline=u.timeline({defaults:{overwrite:"auto"}}),r.openTimeline.to(o,{xPercent:-50,yPercent:-50,width:h,duration:.42,ease:"power3.out"},0).to(o,{xPercent:-50,yPercent:-50,x:19,duration:.12,ease:"power2.out"},0).to(o,{xPercent:-50,yPercent:-50,x:0,duration:.3,ease:"power3.out"},.12).to(n,{autoAlpha:1,duration:.12,ease:"power2.out",stagger:.02},.13).to(d,{autoAlpha:.4,duration:.12,ease:"power2.out"},.13)}deactivateInlineToolbar(e){var t,i;const r=null==e?void 0:e._inlineToolbarState;if(!r)return;r.active=!1;const{useMotion:a,pill:o,actions:s,items:l}=r;if(null==(t=r.openTimeline)||t.kill(),null==(i=r.closeTimeline)||i.kill(),u.killTweensOf([o,s,...l]),!a)return r.pill.setAttribute("aria-expanded","fal
1se"),e.classList.remove("is-active"),void this.resetInlineToolbarVisualState(e);u.set(s,{pointerEvents:"none"}),r.closeTimeline=u.timeline({defaults:{overwrite:"auto"},onComplete:()=>{r.active||(r.pill.setAttribute("aria-expanded","false"),e.classList.remove("is-active"),this.resetInlineToolbarVisualState(e))}}),r.closeTimeline.to(l,{autoAlpha:0,duration:.08,ease:"power1.in",stagger:0},0).to(o,{xPercent:-50,yPercent:-50,width:r.collapsedWidth,x:0,y:0,duration:.22,ease:"power2.inOut"},0)}handleRichTextLayoutSelect(e){var t,i;const r=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"select[data-rich-text-layout-select]");if(!r)return;const a=r.closest(".editor-block-fields");this.applyRichTextLayoutClasses(a,r.value||"middle")}applyRichTextLayoutClasses(e,t="middle"){if(!e)return;const i=e.querySelectorAll("[data-rich-text-layout-target]");if(!i.length)return;const r="left"===t?2:"right"===t?7:4,a="middle"===t?6:5,o=["s:col-start-2","s:col-start-4","s:col-start-7"],s=["s:col-span-5","s:col-span-6"];i.forEach((e=>{e.classList.remove(...o,...s),e.classList.add(`s:col-start-${r}`,`s:col-span-${a}`)}))}creditsClose({restore:e=!1}={}){this.creditsModal&&this.creditsValue&&(this.creditsShouldRestoreOnClose=e,"function"==typeof this.creditsModal.close&&this.creditsModal.close())}creditsHandleDialogClose(){if(this.resetMemberCreditsResults(),this.creditsSaved)return this.creditsSaved=!1,this.memberCreditsSaved=!1,this.creditsOriginalValue=null,void(this.creditsShouldRestoreOnClose=!1);this.creditsShouldRestoreOnClose&&null!=this.creditsOriginalValue&&this.creditsValue?(this.creditsValue.value=this.creditsOriginalValue,this.renderCreditsDisplay(),this.renderMemberCreditsPageSelected(this.memberCreditsOriginalSelected||[])):this.applyCreditsModalChanges(),this.creditsOriginalValue=null,this.creditsShouldRestoreOnClose=!1}creditsHandleModalClick(e){var t;if(this.creditsModal){if(e.target.closest("[data-credits-cancel]"))return e.preventDefault(),void this.creditsClose({restore:!0});if(e.target.closest("[data-credits-save]"))return e.preventDefault(),void this.creditsSave();if(e.target.closest("[data-credits-modal-add]")){if(e.preventDefault(),!this.creditsModalRows)return;const i=Array.from(this.creditsModalRows.querySelectorAll("[data-credits-row]"));if(this.creditsMax&&i.length>=this.creditsMax)return void this.updateCreditsAddButtonState();const r=this.createCreditsModalRow({name:"",url:"",suffix:"",mode:"link",rawOriginal:""},!0);return this.creditsModalRows.appendChild(r),this.updateCreditsRowStates(),this.updateCreditsAddButtonState(),void(null==(t=r.querySelector("[data-credits-name]"))||t.focus())}if(e.target.closest("[data-credits-remove]")){e.preventDefault();const t=e.target.closest("[data-credits-row]");return null==t||t.remove(),this.ensureCreditsEmptyRow(),this.updateCreditsRowStates(),void this.updateCreditsAddButtonState()}}}creditsHandleModalInput(e){e.target.closest('dialog.okay-dialog[data-dialog="credits"]')&&(this.updateCreditsRowStates(),this.updateCreditsAddButtonState())}ensureCreditsEmptyRow(){if(!this.creditsModalRows)return;const e=Array.from(this.creditsModalRows.querySelectorAll("[data-credits-row]"));if(this.creditsMax&&e.length>=this.creditsMax)return;this.creditsModalRows.querySelector("[data-credits-row].is-empty")||this.creditsModalRows.appendChild(this.createCreditsModalRow({name:"",url:"",suffix:"",mode:"link",rawOriginal:""},!0))}updateCreditsRowStates(){if(!this.creditsModalRows)return;Array.from(this.creditsModalRows.querySelectorAll("[data-credits-row]")).forEach((e=>{const t=e.querySelector("[data-credits-name]"),i=e.querySelector("[data-credits-remove]"),r=((null==t?void 0:t.value)||"").trim();if(e.classList.contains("is-empty"))return i&&(i.disabled=!r),void(r&&e.classList.remove("is-empty"));r?i&&(i.disabled=!1):(e.classList.add("is-empty"),i&&(i.disabled=!0))}))}updateCreditsAddButtonState(){if(!this.creditsModalBtnAdd||!this.creditsModalRows)return;const e=Array.from(this.creditsModalRows.querySelectorAll("[data-credits-row]"));this.creditsModalBtnAdd.disabled=!!(this.creditsMax&&e.length>=this.creditsMax)}applyCreditsModalChanges({markSaved:e=!1}={}){var t,i,r;if(!this.creditsModalRows||!this.creditsValue)return;const a=Array.from(this.creditsModalRows.querySelectorAll("[data-credits-row]")).map((e=>{var t,i,r;const a=e.dataset.mode||"link",o=e.dataset.raw||"",s=((null==(t=e.querySelector("[data-credits-name]"))?void 0:t.value)||"").trim(),l=f(((null==(i=e.querySelector("[data-credits-url]"))?void 0:i.value)||"").trim()),n=((null==(r=e.querySelector("[data-credits-role]"))?void 0:r.value)||"").trim(),d=this.normalizeRole(n);if(!s)return"";if("raw"===a&&!l&&o&&s===o)return o;let c="";return c=s&&l?`[${s}](${l})`:s,d&&(c+=` (${d})`),c}
1)).filter(Boolean).slice(0,this.creditsMax||void 0);this.creditsValue.value=a.join(", ");const o=this.getMemberCreditsFromWrapper(this.memberCreditsModalSelectedWrapper);this.renderMemberCreditsPageSelected(o),this.renderCreditsDisplay(),null==(t=this.syncProjectCreditsSectionState)||t.call(this),null==(i=this.updateAddEditButtons)||i.call(this),(a.length||o.length)&&(null==(r=this.expandProjectLinkCreditsSection)||r.call(this,this.memberCreditsContainer||".project-credits")),e&&(this.creditsSaved=!0,this.memberCreditsSaved=!0),this.creditsShouldRestoreOnClose=!1}creditsSave(){var e,t,i,r;const a=JSON.stringify([null==(e=this.creditsValue)?void 0:e.value,this.getMemberCreditsFromWrapper(this.memberCreditsSelectedWrapper).map((({id:e})=>e))]);this.applyCreditsModalChanges({markSaved:!0});a!==JSON.stringify([null==(t=this.creditsValue)?void 0:t.value,this.getMemberCreditsFromWrapper(this.memberCreditsSelectedWrapper).map((({id:e})=>e))])&&(null==(i=this.analytics)||i.once("field changed credits"),null==(r=this.analytics)||r.changed("credits")),this.setSaveButtonDirtyState(!0),this.creditsModal&&"function"==typeof this.creditsModal.close&&this.creditsModal.close()}renderCreditsDisplay(){if(!this.creditsValue)return;const e=(this.creditsValue.value||"").trim(),t=e?this.parseCredits(e):[],i=t.length?`<ul class="project-credits-list" aria-labelledby="project-credits">\n\t\t\t\t${t.map((e=>{const t=(e.suffix||"").trim(),i=t?t.startsWith("(")&&t.endsWith(")")?this.normalizeRole(t):t:"",r=i?this.escapeHtml(i):"",a=t?` <span class="credit-role">&mdash; ${r}</span>`:"";return"link"===e.mode&&e.name&&e.url?`<li class="credit"><span class="credit-name"><a data-router-disabled target="_blank" rel="noopener" href="${this.escapeHtml(e.url)}">${this.escapeHtml(e.name)}</a></span>${a}</li>`:`<li class="credit"><span class="credit-name">${this.escapeHtml(e.name||e.rawOriginal||"")}</span>${a}</li>`})).join("")}\n\t\t\t</ul>`:"";this.creditsDisplayEdit&&(this.creditsDisplayEdit.innerHTML=i,this.creditsDisplayEdit.querySelectorAll(".credit").forEach(((e,i)=>{const r=document.createElement("button");r.type="button",r.className="btn-credit-selected-remove",r.setAttribute("aria-label",`Remove ${t[i].name||"credit"}`),r.addEventListener("click",(e=>{var r,a,o;e.preventDefault(),e.stopPropagation(),this.creditsValue.value=t.filter(((e,t)=>t!==i)).map((e=>e.rawOriginal)).join(", "),this.renderCreditsDisplay(),null==(r=this.syncProjectCreditsSectionState)||r.call(this),null==(a=this.updateAddEditButtons)||a.call(this),this.setSaveButtonDirtyState(!0);const s=this.creditsDisplayEdit.querySelectorAll(".btn-credit-selected-remove");null==(o=s[Math.min(i,s.length-1)]||this.btnCreditsEdit)||o.focus()})),e.appendChild(r)}))),this.creditsDisplayPreview&&(this.creditsDisplayPreview.innerHTML=i)}syncProjectCreditsSectionState(){var e,t,i,r,a,o,s;const l=this.viewRoot.querySelectorAll(".project-credits");if(!l.length)return!1;const n=!!(null==(i=null==(t=null==(e=this.creditsValue)?void 0:e.value)?void 0:t.trim)?void 0:i.call(t)),d=null!=(s=null==(o=null==(a=null==(r=this.memberCreditsSelectedWrapper)?void 0:r.querySelectorAll)?void 0:a.call(r,".member-credit-selected"))?void 0:o.length)?s:0,c=n||d>0;return l.forEach((e=>{c?e.removeAttribute("data-editor-empty"):e.setAttribute("data-editor-empty","1")})),c}bindMemberCreditsRemoveButtons(){const e=this;document.querySelectorAll(".btn-member-credit-selected-remove").forEach((t=>{t.removeEventListener("click",e.memberCreditsRemoveItem),t.removeEventListener("keydown",e.memberCreditsRemoveItem),t.addEventListener("click",e.memberCreditsRemoveItem),t.addEventListener("keydown",e.memberCreditsRemoveItem)}))}parseCredits(e){return S(e)}splitCredits(e){return L(e)}createCreditsModalRow({name:e,url:t,suffix:i,mode:r,rawOriginal:a},o=!1){const s=document.createElement("div");s.className="credits-row"+(o?" is-empty":""),s.dataset.creditsRow="true",s.dataset.mode=r||"link",s.dataset.raw=a||"";const l=this.normalizeRole(i||"");return s.innerHTML=`\n\t\t\t<div class="credits-row-top">\n\t\t\t\t<div class="credits-row-fields">\n\t\t\t\t\t<input type="text" class="credits-row-input" data-credits-name placeholder="Name" value="${this.escapeHtml(e||"")}">\n\t\t\t\t\t<input type="text" class="credits-row-input" data-credits-role placeholder="Role (optional)" value="${this.escapeHtml(l||"")}">\n\t\t\t\t</div>\n\t\t\t\t<button type="button" class="button credits-row-remove" data-credits-remove aria-label="Remove credit" ${o?"disabled":""}>${this.creditsRemoveIcon||"×"}</button>\n\t\t\t</div>\n\n\t\t\t<div class="credits-row-url">\n\t\t\t\t<input type="text" class="credits-row-input" inputmode="url" autocapitalize="off" autocorrect="off" spellcheck="false" data-credits-url placeholder="URL (optional)" value="${this.escapeHtml(t||"")}">\n\t\t\t</div>\n\n\t\t\t<hr class="credits-row-divider">\n\t\t`,s}normalizeRole(e){return k(e)}escapeHtml(e){return String(e).replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;").replaceAll("'","&#039;")}handleProjectEditorKeyDown(e){var t,i,r,a,o;if(e.isComposing||229===e.keyCode)return;const s=e.target;"Enter"===e.key&&(null==(t=s.matches)?void 0:t.call(s,'input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"])'))&&e.preventDefault();const l=this.viewRoot.querySelector("#member-credits-results"),n=s===this.memberCreditsInput||(null==l?void 0:l.contains(s));
1if(n&&l&&!l.hidden&&["ArrowDown","ArrowUp"].includes(e.key)){const t=Array.from(l.querySelectorAll(".member-credits-list-item"));if(t.length){e.preventDefault();const i=t.indexOf(s.closest(".member-credits-list-item"));t[i<0?"ArrowDown"===e.key?0:t.length-1:(i+("ArrowDown"===e.key?1:-1)+t.length)%t.length].focus()}}if("Escape"!==e.key)return;if(n&&!this.memberCreditsSearchDismissed&&((null==(i=this.memberCreditsInput)?void 0:i.value.trim())||(null==l?void 0:l.childElementCount)))return e.preventDefault(),e.stopPropagation(),this.dismissMemberCreditsResults(),void(null==(r=this.memberCreditsInput)||r.focus({preventScroll:!0}));const d=null==(a=s.closest)?void 0:a.call(s,".choices.is-open"),c=null==(o=null==d?void 0:d.querySelector("select"))?void 0:o.choices;c&&(e.preventDefault(),e.stopPropagation(),c.hideDropdown())}handleMemberCreditsSearchInput(){this.memberCreditsSearchDismissed=!1;const e=this.viewRoot.querySelector("#member-credits-results");e&&(e.hidden=!1)}dismissMemberCreditsResults(){this.memberCreditsSearchDismissed=!0;const e=this.viewRoot.querySelector("#member-credits-results");e&&(e.hidden=!0),d.trigger(this.memberCreditsInput,"htmx:abort")}resetMemberCreditsResults(){var e;this.memberCreditsInput&&(this.dismissMemberCreditsResults(),null==(e=this.viewRoot.querySelector("#member-credits-results"))||e.replaceChildren(),this.memberCreditsInput.value="")}handleMemberCreditsResultKeyDown(e){!e.isComposing&&["Enter"," "].includes(e.key)&&(e.preventDefault(),this.memberCreditsAddItem(e))}handleEscapeKey(e){var t,i,r,a,o;if("Escape"===e.key||27===e.keyCode){if(e.defaultPrevented||document.querySelector(".okay-dialog[open]"))return;if(null==(t=this.modal)?void 0:t.open)return void this.modal.close();if(this.projectDetailsPanel&&!this.projectDetailsPanel.hidden&&this.projectDetailsPanel.contains(e.target)){if(!(null==(r=null==(i=this.projectDetailsPanelRoot)?void 0:i.querySelector)?void 0:r.call(i,"dialog[open]")))return this.closeProjectDetailsPanel(),null==(o=null==(a=this.projectDetailsLauncher)?void 0:a.focus)||o.call(a),void e.preventDefault()}this.resetMemberCreditsResults(),(e.target.classList.contains("member-credits-list-item")||e.target===this.memberCreditsInput)&&document.activeElement.blur()}}handleClickOutside(e){const t=document.querySelector("#member-credits-results");document.querySelectorAll("[data-inline-toolbar].is-active").forEach((t=>{const i=null==t?void 0:t._inlineToolbarState;i&&!i.supportsHover&&(t.contains(e.target)||this.deactivateInlineToolbar(t))})),t&&e.target!==this.memberCreditsInput&&!t.contains(e.target)&&(this.resetMemberCreditsResults(),(e.target.classList.contains("member-credits-list-item")||e.target===this.memberCreditsInput)&&document.activeElement.blur())}getRedactorApi(){return"function"==typeof $R?$R:null}queueRedactorInit(e,t=0){if(!(null==e?void 0:e.isConnected)||e._redactorInitTimer)return!1;const i=[0,50,150,300,600,1e3,1500,2e3],r=i[Math.min(t,i.length-1)];return e.dataset.redactorPending="true",e._redactorInitTimer=window.setTimeout((()=>{e._redactorInitTimer=null,delete e.dataset.redactorPending,this.ensureRedactorInitialized(e,t+1)}),r),!1}ensureRedactorInitialized(e,t=0){var i;if(!e)return!1;if(null==(i=e.closest)?void 0:i.call(e,".redactor-box"))return!0;const r=this.getRedactorApi();if(!r)return t<7&&this.queueRedactorInit(e,t);try{return r(e,this.getRedactorConfig(e)),!0}catch(a){return t<7&&this.queueRedactorInit(e,t)}}ensureRedactorsInScope(e=this.form){var t,i,r;null==(r=null==(i=null==(t=null==e?void 0:e.querySelectorAll)?void 0:t.call(e,"textarea.is-redactor"))?void 0:i.forEach)||r.call(i,(e=>{this.ensureRedactorInitialized(e)}))}initProjectDescriptionInline(){var e,t;this.inputPortfolioDescription&&(this.ensureRedactorsInScope(this.form),null==(e=this.syncProjectDescriptionDisplays)||e.call(this),null==(t=this.bindProjectDescriptionInlinePreviewSync)||t.call(this))}getProjectDescriptionRedactor(){var e;try{const t=this.getRedactorApi();return t&&(null==(e=this.inputPortfolioDescription)?void 0:e.id)?t(`#${this.inputPortfolioDescription.id}`):null}catch(t){return null}}getRedactorConfig(e){return{callbacks:{syncing:t=>this.stopped||e!==this.inputPortfolioDescription?t:e.classList.contains("redactor-source-open")?e.value:t,synced:t=>{this.stopped||e!==this.inputPortfolioDescription||(e.value=t,this.syncProjectDescriptionDisplays(t))}},air:!1,tab:{key:!1},buttonsTextLabeled:!1,buttons:e===this.inputPortfolioDescription?["bold","italic","underline","deleted","link"]:["undo","redo","html","format","bold","italic","underline","deleted","ul","ol","link"],formattingHide:["h1","h2","h3","h4","h5","h6"],formattingAdd:{heading:{title:"Heading",api:"module.block.format",args:{tag:"h3",class:"heading-styled",type:"toggle"}},subHeading:{title:"Sub Heading",api:"module.block.format",args:{tag:"h5",class:"sub-heading-styled",type:"toggle"}},caption:{title:"Caption",api:"module.block.format",args:{tag:"p",class:"caption-styled",type:"toggle"}}}}}getProjectDescriptionHtml(){var e,t,i,r,a,o,s,l,n;const d=null!=(t=null==(e=this.inputPortfolioDescription)?void 0:e.value)?t:"",c=null==(r=null==(i=this.inputPortfolioDescription)?void 0:i.closest)?void 0:r.call(i,".project-description-edit-surface"),u=null==c?void 0:c.querySelector(".redactor-source");if(u&&c.querySelector(".redactor-source-view, .redactor-source-on"))return null!=(a=u.value)?a:d;const h=null==(o=null==c?void 0:c.querySelector)?void 0:o.call(c,".redactor-in");if(h&&"string"==typeof h.innerHTML)return h.innerHTML;const m=null==(s=this.getProjectDescriptionRedactor)?void 0:s.call(this);if(!m)return d;try{if(null==(l=null==m?void 0:m.source)?void 0:l.get)return m.source.get();if(null==(n=null==m?void 0:m.code)?void 0:n.get)return m.code.get()}catch(p){}return d}syncProjectDescriptionTextareaFromRedactor(){var e,t;if(!this.inputPortfolioDescription)return"";const i=Z(null!=(t=null==(e=this.getProjectDescriptionHtml)?void 0:e.call(this))?t:"");return this.inputPortfolioDescription.value=i,this.inputPortfolioDescription.value}syncProjectDescriptionDisplays(e){var t,i,r,a,o;if(!this.projectDescriptionDisplayPreview)return;const s=Z(null!=(i=null!=e?e:null==(t=this.getProjectDescriptionHtml)?void 0:t.call(this))?i:""),l=this.isRedactorEmpty(s),n=null==(a=(r=this.projectDescriptionDisplayPreview).closest)?void 0:a.call(r,".project-details"),d=l?"":Z(s);this.projectDescriptionDisplayPreview.innerHTML=d,n&&(l?n.setAttribute("data-editor-empty","1"):n.removeAttribute("data-editor-empty")),$(this.projectDescriptionDisplayPreview),null==(o=this.syncProjectLinkSuggestions)||o.call(this)}syncProjectTitlePreview(){var e,t,i;if(!this.inputPortfolioTitle||!this.projectTitleDisplayPreview)return;const r=String(null!=(e=this.inputPortfolioTitle.value)?e:"").trim(),a="edit"===(null==(i=null==(t=this.editorContainer)?void 0:t.dataset)?void 0:i.editorMode),o=r?this.escapeHtml(r):'<span class="editor-placeholder">Untitled project</span>';this.projectTitleDisplayPreview.innerHTML=a?`<button type="button" class="project-title-edit-button" data-project-detail-target=".project-title-section">${o}</button>`:o}syncProjectDatePreview(){var e,t,i;const r=document.getElementById("portfolioDate"),a=null!=(e=document.querySelector(".project-discussion-layout .project-date"))?e:document.querySelector(".project-date"),o=null!=(t=null==a?void 0:a.querySelector("[data-project-date-preview]"))?t:null==a?void 0:a.querySelector(".preview-only.project-date-text");if(!r||!o||!a)return;const s=a.querySelector("[data-project-date-heading]"),l=String(null!=(i=null==r?void 0:r.value)?i:"").trim();if(!l)return o.innerHTML="",void a.setAttribute("data-editor-empty","1");a.setAttribute("data-editor-empty","0");const n=e=>String(e).split("").map((e=>`<span${"7"===e?' class="is-seven"':""}>${this.escapeHtml(e)}</span>`)).join("");if(/^\d{4}-\d{2}$/.test(l)){const[e,t]=l.split("-").map(Number),i={6:"June",7:"July",9:"Sept"}[t]||new Date(e,t-1,1).toLocaleDateString("en-US",{month:"short"});o.innerHTML=`\n\t\t\t\t<span class="project-date-text is-month-year">\n\t\t\t\t\t<span class="project-date-year">${n(String(e))}</span>\n\t\t\t\t\t<span class="project-date-month" aria-label="${this.escapeHtml(i)}">${n(i)}</span>\n\t\t\t\t</span>`,s&&(s.textContent="Date")}else/^\d{4}$/.test(l)?(o.innerHTML=`\n\t\t\t\t<span class="project-date-text is-year-only">\n\t\t\t\t\t<span class="project-date-year">${n(l)}</span>\n\t\t\t\t</span>`,s&&(s.textContent="Year")):(o.innerHTML=`<span class="project-date-text">${this.escapeHtml(l)}</span>`,s&&(s.textContent="Date"))}syncProjectClientPreview(){var e,t;const i=document.getElementById("client"),r=null!=(e=document.querySelector(".project-discussion-layout .project-client"))?e:document.querySelector(".project-client"),a=null==r?void 0:r.querySelector(".preview-only");if(!i||!r||!a)return;const o=String(null!=(t=null==i?void 0:i.value)?t:"").trim();a.textContent=o||"",r.setAttribute("data-editor-empty",o?"0":"1")}syncProjectAgencyPreview(){var e,t;const i=document.getElementById("agency"),r=null!=(e=document.querySelector(".project-discussion-layout .project-agency"))?e:document.querySelector(".project-agency"),a=null==r?void 0:r.querySelector(".preview-only");if(!i||!r||!a)return;const o=String(null!=(t=null==i?void 0:i.value)?t:"").trim();a.textContent=o||"",r.setAttribute("data-editor-empty",o?"0":"1")}syncProjectSlugPreview(){var e,t,i;const r=document.getElementById("slug");if(!r)return;const a=String(null!=(e=r.value)?e:"").trim();this.syncSlugUrlPreview(a);const o=document.querySelector(".project-slug"),s=null!=(t=null==o?void 0:o.querySelector(".project-slug-preview"))?t:null==o?void 0:o.querySelector(".preview-only");o&&s&&((null==(i=s.classList)?void 0:i.contains("project-slug-preview"))?s.textContent=a||"":s.innerHTML=a?`<span class="project-slug-preview">${this.escapeHtml(a)}</span>`:"",o.setAttribute("data-editor-empty",a?"0":"1"))}syncSlugUrlPreview(e=(e=>null!=(e=(e=>null==(e=this.slugInput)?void 0:e.value)())?e:"")()){var t,i,r;const a=document.querySelector("[data-slug-url-preview]");if(!a)return;
1const o=null!=(t=a.dataset.slugUrlBase)?t:"",s=String(null!=e?e:"").trim()||(null==(i=this.slugInput)?void 0:i.placeholder)||"untitled-project";a.textContent=`${o}${s}`;const l=null==(r=this.projectDetailsPanelRoot)?void 0:r.querySelector("[data-slug-copy-status]");l&&(l.textContent="Project URL")}async copyProjectUrl(e){var t,i;this.syncSlugUrlPreview();const r=e.closest(".project-details-info-wrapper"),a=null==(i=null==(t=null==r?void 0:r.querySelector("[data-slug-url-preview]"))?void 0:t.textContent)?void 0:i.trim(),o=null==r?void 0:r.querySelector("[data-slug-copy-status]");if(a)try{await g(a),o&&(o.textContent="URL copied")}catch{o&&(o.textContent="Could not copy URL")}}getSlugErrorMessages(){var e,t,i,r,a;return null!=(a=null==(r=null==(i=null==(t=null==(e=this.slugInput)?void 0:e.closest)?void 0:t.call(e,".project-slug"))?void 0:i.querySelector)?void 0:r.call(i,"[data-slug-messages], .error-messages"))?a:null}setSlugDuplicateNotice(e=""){const t=this.getSlugErrorMessages();t&&(t.querySelectorAll("[data-slug-duplicate-notice]").forEach((e=>e.remove())),e&&t.insertAdjacentHTML("beforeend",`<li class="slug-status-message" data-slug-duplicate-notice>${this.escapeHtml(e)}</li>`))}scheduleSlugDuplicateCheck({immediate:e=!1}={}){var t;window.clearTimeout(this.slugDuplicateCheckTimeout);const i=((null==(t=this.slugInput)?void 0:t.value)||"").trim();if(!i||le.has(i.toLowerCase()))return this.slugDuplicateCheckRequestId+=1,void this.setSlugDuplicateNotice("");const r=()=>{this.slugDuplicateCheckTimeout=null,this.checkSlugDuplicateNotice(i)};e?r():this.slugDuplicateCheckTimeout=window.setTimeout(r,260)}async checkSlugDuplicateNotice(e=""){const t=String(e||"").trim();if(!t||le.has(t.toLowerCase()))return this.slugDuplicateCheckRequestId+=1,void this.setSlugDuplicateNotice("");const i=++this.slugDuplicateCheckRequestId,r=new URLSearchParams({slug:t}),a=this.getProjectMediaEntryId();a&&r.set("entryId",String(a));try{const e=await fetch(`/api/project-slug/check?${r.toString()}`,{headers:this.getProjectMediaRequestHeaders(),credentials:"same-origin"}),t=await e.json();if(i!==this.slugDuplicateCheckRequestId)return;if(!(null==t?void 0:t.success)||!(null==t?void 0:t.exists))return void this.setSlugDuplicateNotice("");this.setSlugDuplicateNotice(t.message||this.slugDuplicateMessage)}catch(o){if(i!==this.slugDuplicateCheckRequestId)return;this.setSlugDuplicateNotice("")}}syncProjectSkillsToolsPreview(){var e,t;const i=document.getElementById("skillsTools"),r=null!=(e=document.querySelector(".project-discussion-layout .project-skills-tools"))?e:document.querySelector(".project-skills-tools"),a=null==r?void 0:r.querySelector(".preview-only");if(!i||!a||!r)return;const o=String(null!=(t=null==i?void 0:i.value)?t:"").trim(),s=o?o.split(",").map((e=>e.trim())).filter(Boolean):[];s.length?(a.innerHTML=`\n\t\t\t\t<ul class="project-skills-tools-list" aria-labelledby="project-skills-tools">\n\t\t\t\t\t${s.map((e=>{const t="csharp"===e.toLowerCase()?"C#":"cplusplus"===e.toLowerCase()?"C++":e;return`<li class="project-skill"><button type="button" tabindex="-1">${this.escapeHtml(t)}</button></li>`})).join("")}\n\t\t\t\t</ul>\n\t\t\t`,r.setAttribute("data-editor-empty","0")):(a.innerHTML="",r.setAttribute("data-editor-empty","1"))}syncProjectAwardsPreview(){var e;const t=null!=(e=document.querySelector(".project-discussion-layout .project-awards-section .preview-only"))?e:document.querySelector(".project-awards-section .preview-only");if(!t)return;const i=document.querySelectorAll('[data-project-details-sections] .project-awards-section input[name="fields[portfolioAwards][]"]:checked, .project-awards-section input[name="fields[portfolioAwards][]"]:checked'),r=t.querySelector("[data-earned-okay-pick]"),a=document.createDocumentFragment();r&&a.appendChild(r),i.forEach((e=>{const t=e.closest("label.award-toggle"),i=null==t?void 0:t.querySelector(".award");if(!i)return;const r=document.createElement("li");r.className=i.className,r.title=t.title||"",r.setAttribute("aria-label",t.title||i.getAttribute("aria-label")||""),r.innerHTML=i.innerHTML,a.appendChild(r)}));const o=t.querySelector("ul.project-awards")||document.createElement("ul");o.className="project-awards",o.innerHTML="",o.append(a),t.contains(o)||t.appendChild(o);const s=t.closest(".project-awards-section");
1s&&(i.length||r?s.removeAttribute("data-editor-empty"):s.setAttribute("data-editor-empty","1"))}bindProjectDescriptionInlinePreviewSync(){var e,t;null==(e=this.descriptionSyncCleanup)||e.call(this);const i=null==(t=this.inputPortfolioDescription)?void 0:t.closest(".project-description-edit-surface");if(!i)return;const r=()=>{this.syncProjectDescriptionTextareaFromRedactor(),this.syncProjectDescriptionDisplays()},a=["input","change","focusout"];a.forEach((e=>i.addEventListener(e,r))),this.descriptionSyncCleanup=()=>{a.forEach((e=>i.removeEventListener(e,r)))}}projectDescriptionOpen(e){var t,i;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.projectDescriptionModal&&this.inputPortfolioDescription&&(this.projectDescriptionOriginalValue=null!=(i=this.inputPortfolioDescription.value)?i:"",this.projectDescriptionSaved=!1,this.projectDescriptionShouldRestoreOnClose=!1,this.ensureRedactorInitialized(this.inputPortfolioDescription),"function"==typeof this.projectDescriptionModal.showModal&&this.projectDescriptionModal.showModal())}projectDescriptionHandleDialogClose(){var e,t;if(this.inputPortfolioDescription){if(this.projectDescriptionSaved)return this.projectDescriptionSaved=!1,this.projectDescriptionOriginalValue=null,this.projectDescriptionShouldRestoreOnClose=!1,void(null==(e=this.syncProjectDescriptionDisplays)||e.call(this));this.projectDescriptionShouldRestoreOnClose&&null!==this.projectDescriptionOriginalValue&&(this.inputPortfolioDescription.value=this.projectDescriptionOriginalValue),this.projectDescriptionOriginalValue=null,this.projectDescriptionShouldRestoreOnClose=!1,null==(t=this.syncProjectDescriptionDisplays)||t.call(this)}}projectDescriptionCancel(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.projectDescriptionModal&&this.inputPortfolioDescription&&(this.projectDescriptionShouldRestoreOnClose=!0,null!==this.projectDescriptionOriginalValue&&(this.inputPortfolioDescription.value=this.projectDescriptionOriginalValue),"function"==typeof this.projectDescriptionModal.close&&this.projectDescriptionModal.close())}projectDescriptionSave(e){var t,i,r,a,o;if(null==(t=null==e?void 0:e.preventDefault)||t.call(e),!this.projectDescriptionModal||!this.inputPortfolioDescription)return;let s=null!=(i=this.inputPortfolioDescription.value)?i:"";try{const e=this.getRedactorApi(),t=e&&(null==(r=this.inputPortfolioDescription)?void 0:r.id)?e(`#${this.inputPortfolioDescription.id}`):null;(null==(a=null==t?void 0:t.source)?void 0:a.get)?s=t.source.get():(null==(o=null==t?void 0:t.code)?void 0:o.get)&&(s=t.code.get())}catch(n){}s=Z(s),this.inputPortfolioDescription.value=s;const l=this.isRedactorEmpty(s)?"":Z(s);this.projectDescriptionDisplayEdit&&(this.projectDescriptionDisplayEdit.innerHTML=l),this.projectDescriptionDisplayPreview&&(this.projectDescriptionDisplayPreview.innerHTML=l),this.projectDescriptionSaved=!0,this.setSaveButtonDirtyState(!0),"function"==typeof this.projectDescriptionModal.close&&this.projectDescriptionModal.close()}isRedactorEmpty(e){const t=String(null!=e?e:"").trim();if(!t)return!0;if(/^<p>(?:\s|&nbsp;|<br\s*\/?>)*<\/p>$/i.test(t))return!0;return!t.replace(/<[^>]*>/g,"").replace(/&nbsp;/g," ").trim()}handleMetaPreviewRemove(e){var t,i,r,a,o,s,l,n,d;const c=e.target,u=null==(t=c.closest)?void 0:t.call(c,".btn-meta-remove"),h=null==(i=c.closest)?void 0:i.call(c,".project-meta-item");if(!u&&!h)return;const m=null==(a=null==(r=u||h)?void 0:r.closest)?void 0:a.call(r,"ul[data-project-meta-preview]"),p=null==(o=null==m?void 0:m.dataset)?void 0:o.metaKey,v=null!=(n=null==(s=null==u?void 0:u.dataset)?void 0:s.metaValue)?n:null==(l=null==h?void 0:h.dataset)?void 0:l.metaValue;if(!p||void 0===v)return;e.preventDefault(),e.stopPropagation();const g=document.querySelector(`select[data-pill-source="${p}"]`);if(!g)return;const y=Array.from(g.options).find((e=>String(e.value)===String(v)));y&&(y.selected=!1,this.syncMetaPillsFromSelect(p),this.renderMetaPreviewList(p),null==(d=this.updateAddEditButtons)||d.call(this))}handleMetaPillToggle(e){var t,i,r,a,o,s,l;const n=null==(i=(t=e.target).closest)?void 0:i.call(t,"button.project-meta-pill");
1if(!n)return;e.preventDefault();const d=null==(r=n.closest)?void 0:r.call(n,"[data-pill-target]"),c=null==(a=null==d?void 0:d.dataset)?void 0:a.pillTarget,u=n.dataset.pillValue;if(!c||!u)return;const h=document.querySelector(`select[data-pill-source="${c}"]`);if(!h)return;const m=Array.from(h.options).find((e=>String(e.value)===String(u)));if(!m)return;m.selected=!m.selected,n.classList.toggle("is-selected",m.selected),n.setAttribute("aria-pressed",m.selected?"true":"false");const p="portfolioCategories"===c&&!!(null==(o=this.categoriesModal)?void 0:o.open),v="portfolioStyles"===c&&!!(null==(s=this.stylesModal)?void 0:s.open);p||v||(this.renderMetaPreviewList(c),null==(l=this.updateAddEditButtons)||l.call(this))}renderMetaPreviewList(e){const t=document.querySelector(`select[data-pill-source="${e}"]`);if(!t)return;const i=Array.from(t.options).filter((e=>e.selected&&e.value)).map((e=>{var t,i;return{label:(null==(i=null==(t=e.textContent)?void 0:t.trim)?void 0:i.call(t))||"",value:e.value}})).filter((e=>e.label)),r="portfolioCategories"===e,a=r?this.metaPreviewPlaceholderCategories:this.metaPreviewPlaceholderStyles,o=r?"project-category":"project-style";document.querySelectorAll(`ul[data-project-meta-preview="${e}"]`).forEach((e=>{e.innerHTML=i.map((e=>{const t=this.escapeHtml(e.label),i=this.escapeHtml(String(e.value));return`<li class="${o} project-meta-item" data-meta-value="${i}"><span class="project-meta-item-label">${t}</span><button type="button" class="btn-meta-remove" data-meta-value="${i}" aria-label="Remove ${t}">×</button></li>`})).join("")})),document.querySelectorAll(`ul[data-project-meta-display="${e}"]`).forEach((e=>{e.innerHTML=i.map((e=>{const t=this.escapeHtml(e.label),i=this.escapeHtml(String(e.value));return`<li class="${o}" data-meta-value="${i}"><button type="button" tabindex="-1">${t}</button></li>`})).join("");const t=e.closest(".project-categories, .project-styles");t&&(i.length?t.removeAttribute("data-editor-empty"):t.setAttribute("data-editor-empty","1"))})),document.querySelectorAll(`[data-project-meta-count="${e}"]`).forEach((e=>{e.textContent=i.length?`(${i.length})`:""})),a&&(a.style.display=i.length?"none":"")}updateAddEditButtons(){var e,t,i,r,a,o,s,l,n,d,c,u,h,m,p,v,g,y,b,f,S,L,k,w,P;const M=(e,{hasValue:t,addLabel:i,editLabel:r})=>{e&&(e.classList.add("project-link-credits-add-toggle"),e.dataset.hasValue=t?"1":"0",e.dataset.labelAdd=i,e.dataset.labelEdit=r,e.setAttribute("aria-label",t?r:i),this.renderProjectLinkCreditsAddButton(e,t))},C=document.querySelector(".project-credits .btn-credits-edit");if(C&&this.creditsValue){const o=!!(null==(t=null==(e=this.creditsValue.value)?void 0:e.trim)?void 0:t.call(e)),s=(null!=(a=null==(r=null==(i=this.memberCreditsSelectedWrapper)?void 0:i.querySelectorAll)?void 0:r.call(i,".member-credit-selected").length)?a:0)>0;M(C,{hasValue:o||s,addLabel:"Add credits",editLabel:"Edit credits"})}if(this.memberCreditsContainer){const e=!!(null==(l=null==(s=null==(o=this.creditsValue)?void 0:o.value)?void 0:s.trim)?void 0:l.call(s)),t=(null!=(c=null==(d=null==(n=this.memberCreditsSelectedWrapper)?void 0:n.querySelectorAll)?void 0:d.call(n,".member-credit-selected").length)?c:0)>0;e||t?this.memberCreditsContainer.removeAttribute("data-editor-empty"):this.memberCreditsContainer.setAttribute("data-editor-empty","1")}const A=null!=(h=null==(u=this.projectDetailsSections)?void 0:u.querySelector(".project-categories"))?h:document.querySelector(".project-categories"),j=null==(m=null==A?void 0:A.querySelector)?void 0:m.call(A,'button[data-dialog="categories"]');if(A){const e=null!=(g=null==(v=null==(p=this.categoriesModal)?void 0:p.querySelector)?void 0:v.call(p,'select[data-pill-source="portfolioCategories"]'))?g:document.querySelector('select[data-pill-source="portfolioCategories"]'),t=e?this.getSelectedValuesFromSelect(e):[];j&&M(j,{hasValue:t.length>0,addLabel:"Add categories",editLabel:"Edit categories"}),t.length?A.removeAttribute("data-editor-empty"):A.setAttribute("data-editor-empty","1")}const I=null!=(b=null==(y=this.projectDetailsSections)?void 0:y.querySelector(".project-styles"))?b:document.querySelector(".project-styles"),E=null==(f=null==I?void 0:I.querySelector)?void 0:f.call(I,'button[data-dialog="styles"]');if(I){const e=null!=(k=null==(L=null==(S=this.stylesModal)?void 0:S.querySelector)?void 0:L.call(S,'select[data-pill-source="portfolioStyles"]'))?k:document.querySelector('select[data-pill-source="portfolioStyles"]'),t=e?this.get
1SelectedValuesFromSelect(e):[];E&&M(E,{hasValue:t.length>0,addLabel:"Add styles",editLabel:"Edit styles"}),t.length?I.removeAttribute("data-editor-empty"):I.setAttribute("data-editor-empty","1")}const T=document.querySelector(".project-social-share-image"),D=null==(w=null==T?void 0:T.querySelector)?void 0:w.call(T,'button[data-dialog="project-settings"]');if(T&&D){const e=!!T.querySelector(".project-social-share-image-thumb img");M(D,{hasValue:e,addLabel:"Add social share image",editLabel:"Edit social share image"}),e?T.removeAttribute("data-editor-empty"):T.setAttribute("data-editor-empty","1")}null==(P=this.syncProjectLinkCreditsAccordion)||P.call(this)}initProjectDetailsPanel(){var e,t,i,r;if(!this.projectDetailsPanelRoot||!this.projectDetailsPanel||!this.projectDetailsLauncher)return;this.projectDetailsContentShiftCleanup=null==(e=n.coreHeaderController)?void 0:e.registerContentShiftTarget(this.projectDetailsPanelRoot),this.projectWorkspace=null==(t=this.form)?void 0:t.querySelector(".project-editor-workspace"),this.handleProjectWorkspaceTransitionEnd=e=>{e.target===this.projectWorkspace&&"flex-basis"===e.propertyName&&this.handleWindowResize()},null==(i=this.projectWorkspace)||i.addEventListener("transitionend",this.handleProjectWorkspaceTransitionEnd),this.projectDetailsLauncher.addEventListener("click",this.openProjectDetailsPanel),null==(r=this.projectDetailsHeader)||r.addEventListener("click",this.closeProjectDetailsPanel);window.matchMedia("(min-width: 768px)").matches&&"1"===this.projectDetailsPanelRoot.dataset.openByDefault&&this.openProjectDetailsPanel({animate:!1}),this.projectDetailsReadyFrame=requestAnimationFrame((()=>{this.projectDetailsReadyFrame=requestAnimationFrame((()=>{var e;this.projectDetailsReadyFrame=null,null==(e=this.editorContainer)||e.setAttribute("data-project-details-ready","")}))}))}openProjectDetailsPanel({animate:e=!0,focusPanel:t=!0}={}){var i;if(!this.projectDetailsPanelRoot||!this.projectDetailsPanel||!this.projectDetailsLauncher)return;window.cancelAnimationFrame(this.projectDetailsRevealFrame);const r=t&&document.activeElement===this.projectDetailsLauncher;this.projectDetailsPanel.hidden=!1,this.projectDetailsLauncher.hidden=!0,this.projectDetailsLauncher.setAttribute("aria-expanded","true"),null==(i=this.stopProjectDetailsAppTop)||i.call(this),this.stopProjectDetailsAppTop=h(this.projectDetailsPanelRoot,this.projectDetailsPanel);const a=()=>{var e;this.projectDetailsRevealFrame=null,this.projectDetailsPanel.hidden||(this.projectDetailsPanelRoot.classList.add("is-open"),r&&(null==(e=this.projectDetailsPanel.querySelector('[data-project-details-tab][aria-selected="true"]'))||e.focus({preventScroll:!0})),window.matchMedia("(prefers-reduced-motion: reduce)").matches&&this.handleWindowResize())};e?this.projectDetailsRevealFrame=requestAnimationFrame(a):a()}closeProjectDetailsPanel(){var e;if(!this.projectDetailsPanelRoot||!this.projectDetailsPanel||!this.projectDetailsLauncher)return;window.cancelAnimationFrame(this.projectDetailsRevealFrame),this.projectDetailsRevealFrame=null;const t=this.projectDetailsPanel.contains(document.activeElement);this.projectDetailsPanelRoot.classList.remove("is-open"),this.projectDetailsPanel.hidden=!0,this.projectDetailsLauncher.hidden=!1,this.projectDetailsLauncher.setAttribute("aria-expanded","false"),null==(e=this.stopProjectDetailsAppTop)||e.call(this),this.stopProjectDetailsAppTop=null,t&&this.projectDetailsLauncher.focus({preventScroll:!0}),window.matchMedia("(prefers-reduced-motion: reduce)").matches&&this.handleWindowResize()}handleProjectDetailsKeyDown(e){var t,i,r,a;"Escape"===e.key&&((null==(i=null==(t=this.projectDetailsPanelRoot)?void 0:t.querySelector)?void 0:i.call(t,"dialog[open]"))||this.projectDetailsPanel&&!this.projectDetailsPanel.hidden&&(this.closeProjectDetailsPanel(),null==(a=null==(r=this.projectDetailsLauncher)?void 0:r.focus)||a.call(r),e.preventDefault()))}initProjectLinkCreditsAccordion(){var e,t,i;this.projectLinkCredits&&(null==(t=null==(e=this.editorContainer)?void 0:e.classList)?void 0:t.contains("editor-mode-edit"))&&(this.projectLinkCreditsSections=Array.from(this.projectLinkCredits.querySelectorAll("[data-link-credits-accordion-section]")),this.projectLinkCreditsSections.forEach((e=>{e.querySelectorAll(".project-link-credits-section-content dialog.okay-dialog").forEach((t=>{e.appendChild(t)}))})),this.syncProjectLinkCreditsAccordion(),this.projectDetailsTabs=Array.from(this.projectLinkCredits.querySelectorAll("[data-project-details-tab]")),this.projectDetailsTabKeyDown=e=>{var t;const i=e.target.closest("[data-project-details-tab]"),r=this.projectDetailsTabs.indexOf(i);
1if(r<0||!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;e.preventDefault();const a=this.projectDetailsTabs.length,o="Home"===e.key?0:"End"===e.key?a-1:(r+("ArrowRight"===e.key?1:-1)+a)%a;this.projectDetailsTabs[o].click(),e.isTrusted&&(null==(t=this.analytics)||t.once(`section opened ${this.projectDetailsTabs[o].dataset.projectDetailsTab}`)),this.projectDetailsTabs[o].focus({preventScroll:!0})},this.projectLinkCredits.addEventListener("keydown",this.projectDetailsTabKeyDown),null==(i=this.projectDetailsScrollFadesCleanup)||i.call(this),this.projectDetailsScrollFadesCleanup=m(this.projectLinkCreditsSections.map((e=>e.querySelector(":scope > .project-link-credits-section-content"))).filter(Boolean),{topFade:!0}))}resolveProjectLinkCreditsSection(e){var t,i;const r="string"==typeof e?document.querySelector(e):e;return r&&null!=(i=null==(t=r.closest)?void 0:t.call(r,"[data-link-credits-accordion-section]"))?i:null}applyProjectLinkCreditsSectionState(e,t){e.dataset.accordionExpanded=t?"1":"0",e.hidden=!t;const i=e.querySelector(":scope > .project-link-credits-section-content");i&&(i.inert=!t);const r=this.projectLinkCredits.querySelector(`[aria-controls="${e.id}"]`);null==r||r.setAttribute("aria-selected",t?"true":"false"),null==r||r.setAttribute("tabindex",t?"0":"-1")}setProjectLinkCreditsSectionExpanded(e,t,{focusTextInput:i=!1}={}){var r;const a=this.resolveProjectLinkCreditsSection(e);a&&t&&(null==(r=this.projectLinkCreditsSections)||r.forEach((e=>{e.dataset.accordionUserToggled="1",this.applyProjectLinkCreditsSectionState(e,e===a)})),i&&this.focusProjectLinkCreditsTextInput(a))}revealValidationTarget(e){var t,i,r,a;const o=this.resolveProjectLinkCreditsSection(e);return!!o&&(null==(t=this.openProjectDetailsPanel)||t.call(this,{animate:!1,focusPanel:!1}),this.setProjectLinkCreditsSectionExpanded(o,!0,{animate:!1}),null==(a=null==(r=null==(i=null==e?void 0:e.closest)?void 0:i.call(e,".project-details-field"))?void 0:r.scrollIntoView)||a.call(r,{block:"nearest",behavior:"smooth"}),!0)}focusProjectLinkCreditsTextInput(e){const t=null==e?void 0:e.querySelector('.project-link-credits-section-content input:is([type="text"], [type="url"]):not([disabled])');return!(!t||"function"!=typeof t.focus)&&(t.dataset.quietFocus="1",t.addEventListener("blur",(()=>{delete t.dataset.quietFocus}),{once:!0}),requestAnimationFrame((()=>{var e;t.focus({preventScroll:!0}),null==(e=t.select)||e.call(t)})),!0)}renderProjectLinkCreditsAddButton(e,t){e&&(e.innerHTML=t?'<span class="btn-edit-link-edit">Edit</span>':'<span class="btn-edit-link-plus" aria-hidden="true">+</span><span class="btn-edit-link-add">Add</span>')}syncProjectLinkCreditsAccordion(){var e;if(!(null==(e=this.projectLinkCreditsSections)?void 0:e.length))return;let t=!1;this.projectLinkCreditsSections.forEach((e=>{let i="1"===e.dataset.accordionUserToggled?"1"===e.dataset.accordionExpanded:"1"===e.dataset.accordionDefaultExpanded;i&&t&&(i=!1),i&&(t=!0),this.applyProjectLinkCreditsSectionState(e,i)}))}expandProjectLinkCreditsSection(e,t={}){const i=this.resolveProjectLinkCreditsSection(e);return!!i&&(this.setProjectLinkCreditsSectionExpanded(i,!0,t),!0)}handleProjectLinkCreditsInlineInput(e){var t,i,r,a,o,s,l,n,d;if("edit"!==(null==(i=null==(t=this.editorContainer)?void 0:t.dataset)?void 0:i.editorMode))return;const c=null==e?void 0:e.target;c&&(null==(r=this.projectLinkCredits)?void 0:r.contains(c))&&("client"===c.id?null==(a=this.syncProjectClientPreview)||a.call(this):"agency"===c.id?null==(o=this.syncProjectAgencyPreview)||o.call(this):"portfolioDate"===c.id?null==(s=this.syncProjectDatePreview)||s.call(this):"slug"===c.id?null==(l=this.syncProjectSlugPreview)||l.call(this):"skillsTools"===c.id?null==(n=this.syncProjectSkillsToolsPreview)||n.call(this):"fields[portfolioAwards][]"===c.name&&(null==(d=this.syncProjectAwardsPreview)||d.call(this)))}syncProjectDetailShortcuts(){var e,t;const i=this.viewRoot.querySelector("[data-bento-project-overlay-fragment]");if(!i)return;const r="edit"===(null==(t=null==(e=this.editorContainer)?void 0:e.dataset)?void 0:t.editorMode);[[".project-details",".project-description-section","description"],[".project-date",".project-date","date"],[".project-client",".project-client","client"],[".project-agency",".project-agency","agency"],[".project-credits",".project-credits","credits"],[".project-awards-section",".project-awards-section","awards"],[".project-skills-tools",".project-skills-tools","skills and tools"],[".project-categories",".project-categories","categories"],[".project-styles",".project-styles","styles"]].forEac
1h((([e,t,a])=>{i.querySelectorAll(e).forEach((e=>{r?(e.dataset.projectDetailTarget=t,e.setAttribute("role","button"),e.setAttribute("tabindex","0"),e.setAttribute("aria-label",`Edit project ${a}`)):["data-project-detail-target","role","tabindex","aria-label"].forEach((t=>{e.removeAttribute(t)}))}))}))}handleProjectDetailShortcut(e){var t,i,r,a,o,s,l;if("edit"!==(null==(i=null==(t=this.editorContainer)?void 0:t.dataset)?void 0:i.editorMode))return!1;const n=null==(a=null==(r=e.target)?void 0:r.closest)?void 0:a.call(r,"[data-project-detail-target]");if(!n||!this.viewRoot.contains(n))return!1;if("keydown"===e.type&&(e.target!==n||"BUTTON"===n.tagName||!["Enter"," "].includes(e.key)))return!1;const d=null==(o=this.projectDetailsPanel)?void 0:o.querySelector(n.dataset.projectDetailTarget);if(!d||!this.revealValidationTarget(d))return!1;e.preventDefault(),e.stopPropagation();const c=d.querySelector('button[data-dialog="categories"], button[data-dialog="styles"]');if(c)return c.focus({preventScroll:!0}),c.click(),!0;const u=null!=(l=null!=(s=d.querySelector('.redactor-in[contenteditable="true"]'))?s:d.querySelector('input:not([type="hidden"]):not([hidden]):not([disabled]), textarea:not([hidden]):not([disabled])'))?l:d.querySelector("button:not([disabled]):not(.project-details-info)");return null==u||u.focus({preventScroll:!0}),!0}handleProjectLinkCreditsAccordionClick(e){var t,i,r,a,o,s,l,n,d,c,u,h;if("edit"!==(null==(i=null==(t=this.editorContainer)?void 0:t.dataset)?void 0:i.editorMode))return;const m=null==(a=null==(r=e.target)?void 0:r.closest)?void 0:a.call(r,"[data-copy-project-url]");if(m&&(null==(o=this.projectDetailsPanelRoot)?void 0:o.contains(m)))return e.preventDefault(),e.stopPropagation(),void this.copyProjectUrl(m);if(this.handleProjectDetailShortcut(e))return;const p=null==(l=null==(s=e.target)?void 0:s.closest)?void 0:l.call(s,".project-details-field-header");if(p&&(null==(n=this.projectLinkCredits)?void 0:n.contains(p))&&!e.target.closest(".btn-edit-link")){const t=p.querySelector(".btn-edit-link");return void(t&&(e.preventDefault(),e.stopPropagation(),t.click()))}const v=null==(c=null==(d=e.target)?void 0:d.closest)?void 0:c.call(d,"[data-project-details-tab]");if(!v||!(null==(u=this.projectLinkCredits)?void 0:u.contains(v)))return;const g=null==(h=this.projectLinkCreditsSections)?void 0:h.find((e=>e.id===v.getAttribute("aria-controls")));g&&(e.preventDefault(),e.stopPropagation(),this.setProjectLinkCreditsSectionExpanded(g,!0))}getSelectedValuesFromSelect(e){return e?Array.from(e.options).filter((e=>e.selected&&e.value)).map((e=>String(e.value))):[]}restoreSelectValues(e,t){if(!e)return;const i=new Set((t||[]).map(String));Array.from(e.options).forEach((e=>{e.value&&(e.selected=i.has(String(e.value)))}))}syncMetaPillsFromSelect(e){const t=document.querySelector(`select[data-pill-source="${e}
1"]`),i=document.querySelector(`[data-pill-target="${e}"]`);if(!t||!i)return;const r=new Set(this.getSelectedValuesFromSelect(t));i.querySelectorAll("button.project-meta-pill").forEach((e=>{const t=e.dataset.pillValue,i=r.has(String(t));e.classList.toggle("is-selected",i),e.setAttribute("aria-pressed",i?"true":"false")}))}categoriesRememberOriginal(){this.categoriesSaved=!1,this.categoriesShouldRestoreOnClose=!1;const e=document.querySelector('select[data-pill-source="portfolioCategories"]');this.categoriesOriginalSelected=this.getSelectedValuesFromSelect(e)}categoriesHandleDialogClose(){var e;const t=document.querySelector('select[data-pill-source="portfolioCategories"]');!this.categoriesSaved&&this.categoriesShouldRestoreOnClose&&(this.restoreSelectValues(t,this.categoriesOriginalSelected),this.syncMetaPillsFromSelect("portfolioCategories")),this.renderMetaPreviewList("portfolioCategories"),null==(e=this.updateAddEditButtons)||e.call(this),this.categoriesSaved=!1,this.categoriesShouldRestoreOnClose=!1}categoriesCancel(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.categoriesSaved=!1,this.categoriesShouldRestoreOnClose=!0,this.categoriesModal&&"function"==typeof this.categoriesModal.close&&this.categoriesModal.close()}categoriesSave(e){var t,i;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.categoriesSaved=!0,this.renderMetaPreviewList("portfolioCategories"),null==(i=this.updateAddEditButtons)||i.call(this),this.setSaveButtonDirtyState(!0),this.categoriesModal&&"function"==typeof this.categoriesModal.close&&this.categoriesModal.close()}stylesRememberOriginal(){this.stylesSaved=!1,this.stylesShouldRestoreOnClose=!1;const e=document.querySelector('select[data-pill-source="portfolioStyles"]');this.stylesOriginalSelected=this.getSelectedValuesFromSelect(e)}stylesHandleDialogClose(){var e;const t=document.querySelector('select[data-pill-source="portfolioStyles"]');!this.stylesSaved&&this.stylesShouldRestoreOnClose&&(this.restoreSelectValues(t,this.stylesOriginalSelected),this.syncMetaPillsFromSelect("portfolioStyles")),this.renderMetaPreviewList("portfolioStyles"),null==(e=this.updateAddEditButtons)||e.call(this),this.stylesSaved=!1,this.stylesShouldRestoreOnClose=!1}stylesCancel(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.stylesSaved=!1,this.stylesShouldRestoreOnClose=!0,this.stylesModal&&"function"==typeof this.stylesModal.close&&this.stylesModal.close()}stylesSave(e){var t,i;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.stylesSaved=!0,this.renderMetaPreviewList("portfolioStyles"),null==(i=this.updateAddEditButtons)||i.call(this),this.setSaveButtonDirtyState(!0),this.stylesModal&&"function"==typeof this.stylesModal.close&&this.stylesModal.close()}getProjectSettingsSnapshot(){var e,t,i,r,a,o,s,l,n,d,c,u,h,m;const p=this.projectSettingsDialog;if(!p)return null;const v=p.querySelector('input[name="fields[portfolioSocialShareImage]"]'),g=p.querySelectorAll('input[name="fields[portfolioSocialShareImage][]"]'),y=p.querySelector("#portfolioSocialShareImage"),b=p.querySelector("#portfolioSocialShareImageThumbnail"),f=p.querySelector(".social-share-image-preview-image"),S=p.querySelector("[data-social-share-image]"),L=null==(e=null==S?void 0:S.querySelector)?void 0:e.call(S,'[data-action="social-share-image-add"]'),k=Array.from(g).filter((e=>e.checked)).map((e=>e.value)),w=Array.from(null!=(r=null==(i=null==(t=this.form)?void 0:t.querySelectorAll)?void 0:i.call(t,'input[data-og-injected="true"][name="fields[portfolioSocialShareImage][]"]'))?r:[]).map((e=>e.value));return{portfolioSocialShareImageHidden:null!=(a=null==v?void 0:v.value)?a:"",portfolioSocialShareImageKeep:k,hadFile:!!(null==(o=null==y?void 0:y.files)?void 0:o.length),portfolioSocialShareImageWasEmpty:!(null==v?void 0:v.value)&&0===k.length&&!(null==(s=null==y?void 0:y.files)?void 0:s.length),portfolioSocialShareImageOgInjected:w,portfolioSocialShareImageThumbnailHtml:null!=(l=null==b?void 0:b.innerHTML)?l:"",portfolioSocialShareImagePreviewImageHtml:null!=(n=null==f?void 0:f.innerHTML)?n:"",portfolioSocialShareImageEditorHasAsset:null!=(d=null==S?void 0:S.classList.contains("has-asset"))&&d,portfolioSocialShareImageEditorHasPreview:null!=(c=null==S?void 0:S.classList.contains("has-preview"))&&c,portfolioSocialShareImageAddButtonHtml:null!=(u=null==L?void 0:L.innerHTML)?u:"",portfolioSocialShareImageAddButtonAriaLabel:null!=(h=null==L?void 0:L.getAttribute("aria-label"))?h:"Add image",portfolioSocialShareImageAddButtonIsReplace:null!=(m=null==L?void 0:L.classList.contains("is-replace"))&&m}}syncProjectSettingsSocialShareOgInputs(e=[]){this.form&&(this.form.querySelectorAll('input[data-og-injected="true"][name="fields[portfolioSocialShareImage][]"]').forEach((e=>e.remove())),e.forEach((e=>{const t=document.createElement("input");t.type="checkbox",t.name="fields[portfolioSocialShareImage][]",t.value=e,t.checked=!0,t.dataset.ogInjected="true",t.style.position="absolute",t.style.left="-9999px",this.form.appendChild(t)})))}markProjectSettingsSocialShareDirty(e=null){this.projectSettingsDialog&&(e&&!this.projectSettingsDialog.contains(e)||(this.projectSettingsSocialShareDirty=!0))}restoreProjectSettingsEmptyFields(e){var t,i,r;if(!e||!this.projectSettingsDialog)return;const a=this.projectSettingsDialog,o=a.querySelector('input[name="fields[portfolioSocialShareImage]"]'),s=a.querySelectorAll('input[name="fields[portfolioSocialShareImage][]"]'),l=a.querySelector("#portfolioSocialShareImage"),n=a.querySelector("#portfolioSocialShareImageThumbnail"),d=a.querySelector(".social-share-image-preview-image"),c=a.querySelector("[data-social-share-image]");
1e.portfolioSocialShareImageWasEmpty&&(o&&(o.value=""),s.forEach((e=>{e.checked=!1})),l&&(l.value="",(null==(t=l.files)?void 0:t.length)&&(l.type="",l.type="file")),d?d.innerHTML='<div id="portfolioSocialShareImageThumbnail" class="input-thumbnails"></div>':n&&(n.innerHTML=""),c&&(c.classList.remove("has-asset","has-preview"),this.setSocialShareImageActionState(c,!1))),this.syncProjectSettingsSocialShareOgInputs(null!=(i=e.portfolioSocialShareImageOgInjected)?i:[]),this.revertProjectLinkImportState({revertSocial:!1,revertFeatured:!1}),null==(r=this.syncSocialShareImagePreview)||r.call(this)}restoreProjectSettings(e){var t,i,r,a,o,s,l,n,d,c,u,h;if(!e||!this.projectSettingsDialog)return;const m=this.projectSettingsDialog,p=m.querySelector('input[name="fields[portfolioSocialShareImage]"]'),v=m.querySelectorAll('input[name="fields[portfolioSocialShareImage][]"]'),g=m.querySelector("#portfolioSocialShareImage"),y=m.querySelector("#portfolioSocialShareImageThumbnail"),b=m.querySelector(".social-share-image-preview-image"),f=m.querySelector("[data-social-share-image]"),S=null==(t=null==f?void 0:f.querySelector)?void 0:t.call(f,'[data-action="social-share-image-add"]');p&&(p.value=null!=(i=e.portfolioSocialShareImageHidden)?i:""),v.forEach((t=>{var i;t.checked=(null!=(i=e.portfolioSocialShareImageKeep)?i:[]).includes(t.value)})),this.syncProjectSettingsSocialShareOgInputs(null!=(r=e.portfolioSocialShareImageOgInjected)?r:[]);const L=!!v.length&&Array.from(v).some((e=>e.checked)),k=(null!=(a=e.portfolioSocialShareImageOgInjected)?a:[]).length>0;g&&(g.value="",(null==(o=g.files)?void 0:o.length)&&(g.type="",g.type="file")),b?b.innerHTML=null!=(s=e.portfolioSocialShareImagePreviewImageHtml)?s:'<div id="portfolioSocialShareImageThumbnail" class="input-thumbnails"></div>':y&&(y.innerHTML=null!=(l=e.portfolioSocialShareImageThumbnailHtml)?l:""),f&&(f.classList.toggle("has-asset",null!=(n=e.portfolioSocialShareImageEditorHasAsset)?n:L||k),f.classList.toggle("has-preview",null!=(d=e.portfolioSocialShareImageEditorHasPreview)&&d),this.setActionRailState(f.querySelector(".social-share-image-actions"),f.classList.contains("has-asset")||f.classList.contains("has-preview"))),S&&(S.classList.toggle("is-replace",null!=(c=e.portfolioSocialShareImageAddButtonIsReplace)?c:L||k),S.setAttribute("aria-label",null!=(u=e.portfolioSocialShareImageAddButtonAriaLabel)?u:"Add image"),e.portfolioSocialShareImageAddButtonHtml&&(S.innerHTML=e.portfolioSocialShareImageAddButtonHtml)),this.revertProjectLinkImportState({revertSocial:!1,revertFeatured:!1}),null==(h=this.syncSocialShareImagePreview)||h.call(this)}revertProjectLinkImportState({revertSocial:e=!0,revertFeatured:t=!0}={}){var i;const r=this.form;if(!r)return;const a=e?r.querySelectorAll('input[data-og-injected="true"][name="fields[portfolioSocialShareImage][]"]'):[],o=t?r.querySelectorAll('input[data-og-injected="true"][name="fields[portfolioFeaturedAsset][]"]'):[],s=a.length>0,l=o.length>0;if(a.forEach((e=>e.remove())),o.forEach((e=>e.remove())),e&&s){const e=document.getElementById("portfolioSocialShareImageThumbnail");e&&(e.innerHTML="");const t=document.querySelector("[data-social-share-image]");t&&(t.classList.remove("has-asset","has-preview"),this.setSocialShareImageActionState(t,!1)),null==(i=this.syncSocialShareImagePreview)||i.call(this)}if(t&&l){const e=document.querySelector('[data-media-role="hero"]');if(e){e.classList.remove("has-asset");const t=e.querySelector(".project-media-hero-content");if(t&&(t.querySelectorAll(".project-media-hero-slide-bg, .project-media-hero-slide-content").forEach((e=>e.remove())),!t.querySelector(".project-media-label"))){const e=document.createElement("div");e.className="project-media-label editor-only",e.innerHTML=this.getEmptyHeroLabelMarkup(),t.insertBefore(e,t.firstChild)}const i=e.querySelector(".project-media-actions");if(i){this.setProjectMediaSlotActionState(e,!1);const t=i.querySelector('[data-media-action="delete"]');t&&t.remove()}}}this.syncProjectLinkSuggestions()}projectSettingsSnapshotOnOpen(){this.projectSettingsApplied=!1,this.projectSettingsSocialShareDirty=!1,this.projectSettingsShouldRestoreOnClose=!1,this.projectSettingsSnapshot=this.getProjectSettingsSnapshot()}projectSettingsRememberBeforeOpen(e){var t,i,r;if(!this.projectSettingsDialog)return;const a=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,'[data-dialog="project-settings"]');a&&((null==(r=a.closest)?void 0:r.call(a,".okay-dialog"))||this.projectSettingsSnapshotOnOpen())}projectSettingsRestoreOnClose(){var e;this.projectSettingsShouldRestoreOnClose&&this.projectSettingsSnapshot&&this.projectSettingsSocialShareDirty&&this.restoreProjectSettings(this.projectSettingsSnapshot),null==(e=this.syncSocialShareImagePreview)||e.call(this),this.projectSettingsSnapshot=null,this.projectSettingsApplied=!1,this.projectSettingsSocialShareDirty=!1,this.projectSettingsShouldRestoreOnClose=!1}projectSettingsApplyClick(e){var t,i,r,a,o,s;const l=null==(i=(t=e.target).closest)?void 0:i.call(t,'[data-dialog-action="primary"]');if(l&&this.projectSettingsDialog&&l.closest(".okay-dialog")===this.projectSettingsDialog){const e=this.projectSettingsSocialShareDirty;return this.projectSettingsApplied=!0,this.projectSettingsSocialShareDirty=!1,this.projectSettingsShouldRestoreOnClose=!1,null==(r=this.syncSocialShareImagePreview)||r.call(this),null==(a=this.expandProjectLinkCreditsSection)||a.call(this,".project-social-share-image"),void(e&&this.setSaveButtonDirtyState(!0))}const n=null==(s=(o=e.target).closest)?void 0:s.call(o,'[data-dialog-action="cancel"]');n&&this.projectSettingsDialog&&n.closest(".okay-dialog")===this.projectSettingsDialog&&(this.projectSettingsShouldRestoreOnClose=!0)}memberCreditsRememberOriginal(e){this.memberCreditsSaved=!1;const t=this.getMemberCreditsFromWrapper(this.memberCreditsSelectedWrapper);this.memberCreditsOriginalSelected=t,this.renderMemberCreditsModalSelected(t)}memberCreditsHandleDialogClose(){this.memberCreditsSaved||this.renderMemberCreditsModalSelected(this.memberCreditsOriginalSelected||[])}memberCreditsCancel(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.memberCreditsSaved=!1,this.memberCreditsModal&&"function"==typeof this.memberCreditsModal.close&&this.memberCreditsModal.close()}memberCreditsSave(e){var t,i;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const r=this.getMemberCreditsFromWrapper(this.memberCreditsModalSelectedWrapper);this.renderMemberCreditsPageSelected(r),this.memberCreditsSaved=!0,null==(i=this.updateAddEditButtons)||i.call(this),this.setSaveButtonDirtyState(!0),this.memberCreditsModal&&"function"==typeof this.memberCreditsModal.close&&this.memberCreditsModal.close()}getMemberCreditsFromWrapper(e){if(!e)return[];return Array.from(e.querySelectorAll(".member-credit-selected")).map((e=>{var t,i,r,a,o,s,l,n,d;const c=e.dataset.userId||(null==(t=e.querySelector('input[name="fields[portfolioMemberCredits][]"]'))?void 0:t.value)||"",u=e.dataset.userFullname||(null==(a=null==(r=null==(i=e.querySelector(".member-credit-name"))?void 0:i.textContent)?void 0:r.trim)?void 0:a.call(r))||(null==(s=null==(o=e.textContent)?void 0:o.trim)?void 0:s.call(o))||"",h=e.dataset.userUsername||"",m="
11"===e.dataset.userIsBusiness,p=(null==(d=null==(n=null==(l=e.querySelector(".member-credit-avatar-template"))?void 0:l.innerHTML)?void 0:n.trim)?void 0:d.call(n))||(e.dataset.userAvatarHtml?this.unescapeHtml(e.dataset.userAvatarHtml):"");return{id:String(c).trim(),name:String(u).trim(),username:String(h).trim(),isBusiness:m,avatarHtml:p}})).filter((e=>e.id&&e.name))}renderMemberCreditsModalSelected(e){this.memberCreditsModalSelectedWrapper&&(this.memberCreditsModalSelectedWrapper.innerHTML="",e.forEach((e=>{this.memberCreditsModalSelectedWrapper.insertAdjacentHTML("beforeend",`\n\t\t\t\t<div class="member-credit-selected" data-user-id="${this.escapeHtml(e.id)}" data-user-fullname="${this.escapeHtml(e.name)}" data-user-username="${this.escapeHtml(e.username||"")}" data-user-is-business="${e.isBusiness?"1":"0"}" data-user-avatar-html="${this.escapeHtml(e.avatarHtml||"")}">\n\t\t\t\t\t<input type="checkbox" value="${this.escapeHtml(e.id)}" name="fields[portfolioMemberCredits][]" checked disabled>\n\t\t\t\t\t<span class="member-credit-name">${this.escapeHtml(e.name)}</span>\n\t\t\t\t\t<button class="btn-member-credit-selected-remove" type="button" data-user-id="${this.escapeHtml(e.id)}" aria-label="Remove ${this.escapeHtml(e.name)}"></button>\n\t\t\t\t\t<span class="member-credit-avatar-template" hidden>${e.avatarHtml||""}</span>\n\t\t\t\t</div>\n\t\t\t`)})),this.bindMemberCreditsRemoveButtons())}renderMemberCreditsPageSelected(e){var t,i,r;if(this.memberCreditsSelectedWrapper){if(this.memberCreditsSelectedWrapper.innerHTML="",e.forEach((e=>{this.memberCreditsSelectedWrapper.insertAdjacentHTML("beforeend",`\n\t\t\t\t<div class="member-credit-selected" data-user-id="${this.escapeHtml(e.id)}" data-user-fullname="${this.escapeHtml(e.name)}" data-user-username="${this.escapeHtml(e.username||"")}" data-user-is-business="${e.isBusiness?"1":"0"}" data-user-avatar-html="${this.escapeHtml(e.avatarHtml||"")}">\n\t\t\t\t\t<input type="checkbox" value="${this.escapeHtml(e.id)}" name="fields[portfolioMemberCredits][]" checked>\n\t\t\t\t\t<span class="member-credit-name">${this.escapeHtml(e.name)}</span>\n\t\t\t\t\t<button class="btn-member-credit-selected-remove" type="button" data-user-id="${this.escapeHtml(e.id)}" aria-label="Remove ${this.escapeHtml(e.name)}"></button>\n\t\t\t\t\t<span class="member-credit-avatar-template" hidden>${e.avatarHtml||""}</span>\n\t\t\t\t</div>\n\t\t\t`)})),this.memberCreditsContainer){const a=!!(null==(r=null==(i=null==(t=this.creditsValue)?void 0:t.value)?void 0:i.trim)?void 0:r.call(i));e.length||a?this.memberCreditsContainer.removeAttribute("data-editor-empty"):this.memberCreditsContainer.setAttribute("data-editor-empty","1")}this.bindMemberCreditsRemoveButtons(),this.renderMemberCreditsPreviewAvatars()}}syncMemberCreditsEmptyState(){var e,t,i;if(!this.memberCreditsContainer||!this.memberCreditsSelectedWrapper)return;const r=this.memberCreditsSelectedWrapper.querySelectorAll(".member-credit-selected").length,a=!!(null==(i=null==(t=null==(e=this.creditsValue)?void 0:e.value)?void 0:t.trim)?void 0:i.call(t));r||a?this.memberCreditsContainer.removeAttribute("data-editor-empty"):this.memberCreditsContainer.setAttribute("data-editor-empty","1")}renderMemberCreditsPreviewAvatars(){var e,t;if(!this.memberCreditsPreviewList||!this.memberCreditsSelectedWrapper)return;const i=Array.from(this.memberCreditsSelectedWrapper.querySelectorAll(".member-credit-selected"));if(this.memberCreditsPreviewList.innerHTML="",this.memberCreditsPreviewWrapper&&(this.memberCreditsPreviewWrapper.hidden=0===i.length),!i.length)return;const r=this.memberCreditsPreviewList.querySelector("[data-member-credits-author]")||(null==(t=null==(e=this.memberCreditsPreviewAuthorTemplate)?void 0:e.cloneNode)?void 0:t.call(e,!0))||null;r&&this.memberCreditsPreviewList.appendChild(r),i.forEach((e=>{var t,i,r,a,o,s;const l=e.dataset.userUsername||"",n=e.dataset.userFullname||(null==(r=null==(i=null==(t=e.querySelector(".member-credit-name"))?void 0:t.textContent)?void 0:i.trim)?void 0:r.call(i))||"",d="1"===e.dataset.userIsBusiness,c=(null==(s=null==(o=null==(a=e.querySelector(".member-credit-avatar-template"))?void 0:a.innerHTML)?void 0:o.trim)?void 0:s.call(o))||(e.dataset.userAvatarHtml?this.unescapeHtml(e.dataset.userAvatarHtml):"");if(!l||!c)return;const u=`/u/${l}`,h=document.createElement("li");h.className=d?"member-credit is-business-account":"member-credit",h.innerHTML=`\n\t\t\t\t<a class="member-credit-link" href="${this.escapeHtml(u)}" title="${this.escapeHtml(n)}">\n\t\t\t\t\t${c}\n\t\t\t\t</a>\n\t\t\t`,this.memberCreditsPreviewList.appendChild(h)}))}unescapeHtml(e){return String(e).replaceAll("&lt;","<").replaceAll("&gt;",">").replaceAll("&quot;",'"').replaceAll("&#039;","'").replaceAll("&amp;","&")}handleEditorBlockAction(e){var t,i;const r=null==(i=null==(t=e.target)?void 0:t.closest)?void 0:i.call(t,"button[data-action]");if(!r)return;if(r.disabled)return;const a=r.dataset.action;if("add"===a)return e.preventDefault(),void this.actionAdd({currentTarget:r});if("reorder"===a)return e.preventDefault(),void this.actionReorder();const o=r.dataset.target;if(!o)return;const s=document.getElementById(o);if(s&&s.classList.contains("editor-block"))if("toggle-block-fields"!==a)if("move-up"!==a){if("move-down"!==a)return"remove"===a?(e.preventDefault(),void this.actionRemove({currentTarget:r})):void 0;{const e=s.nextElementSibling;e&&e.classList.contains("editor-block")&&(e.parentElement.insertBefore(e,s),this.renumberBlocks())}}else{const e=s.previousElementSibling;e&&e.classList.contains("editor-block")&&(e.parentElement.insertBefore(s,e),this.renumberBlocks())}else{const e=s.querySelector(".editor-block-fields-content");null==e||e.classList.toggle("is-collapsed")}}handleCaseStudyEmptyMediaClick(e){var t,i,r,a,o,s,l,n;if(null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,'button, a, input, label, [role="button"]'))return;const d=null==(a=null==(r=null==e?void 0:e.target)?void 0:r.closest)?void 0:a.call(r,".image-block-content");
1if(d){const e=d.closest("[data-image-block-editor]");if(!e||e.classList.contains("has-asset")||e.classList.contains("has-preview"))return;return void this.openMediaLibrary(this.createMediaLibraryTarget("image-block",{editor:e}))}const c=null==(s=null==(o=null==e?void 0:e.target)?void 0:o.closest)?void 0:s.call(o,".video-block-content");if(c){const e=c.closest("[data-video-block-editor]");if(!e||e.classList.contains("has-asset")||e.classList.contains("has-preview"))return;return void this.openMediaLibrary(this.createMediaLibraryTarget("video-block",{editor:e}))}const u=null==(n=null==(l=null==e?void 0:e.target)?void 0:l.closest)?void 0:n.call(l,".image-video-grid-block-content");if(u){const e=u.closest("[data-image-video-grid-block-editor]");if(!e||e.classList.contains("has-asset")||e.classList.contains("has-preview"))return;const t=e.querySelector('.image-video-grid-slot[data-slot-index="0"]');this.openMediaLibrary(this.createMediaLibraryTarget("image-video-grid",{editor:e,startSlot:t}))}}handleCaptionToggle(e){var t,i;const r=null==(i=null==(t=e.target)?void 0:t.closest)?void 0:i.call(t,'button[data-action="caption-toggle"]');if(!r)return;const a=r.closest(".caption-field-toggle");if(!a)return;a.classList.add("is-expanded");const o=a.querySelector(".caption-field-input-wrap input");o&&requestAnimationFrame((()=>o.focus()))}handleCaptionBlur(e){const t=e.target;if("INPUT"!==t.tagName||"text"!==t.type)return;const i=t.closest(".caption-field-toggle");i&&""===(t.value||"").trim()&&i.classList.remove("is-expanded")}applyBlockNumberInputPosition(e){var t,i;if(!(null==(t=null==e?void 0:e.classList)?void 0:t.contains("editor-block-number-input")))return!1;const r=e.dataset.target,a=r?document.getElementById(r):e.closest(".editor-block, .block-item");if(!a)return!1;const o=a.parentElement;if(!(null==(i=null==o?void 0:o.classList)?void 0:i.contains("portfolio-blocks")))return!1;const s=Array.from(o.querySelectorAll(".editor-block, .block-item")),l=s.length;if(l<=1)return!1;let n=parseInt(e.value,10);(Number.isNaN(n)||n<1)&&(n=1),n>l&&(n=l);const d=s.indexOf(a),c=n-1;if(d===c)return!1;const u=d<c?c+1<s.length?s[c+1]:null:s[c];return u?o.insertBefore(a,u):o.appendChild(a),this.renumberBlocks(),!0}handleBlockNumberInputChange(e){this.applyBlockNumberInputPosition(e.target)}handleBlockNumberInputKeydown(e){var t,i;(null==(i=null==(t=e.target)?void 0:t.classList)?void 0:i.contains("editor-block-number-input"))&&"Enter"===e.key&&(e.preventDefault(),this.applyBlockNumberInputPosition(e.target))}handleBlockNumberInputBlur(e){var t,i;const r=e.target;if(!(null==(t=null==r?void 0:r.classList)?void 0:t.contains("editor-block-number-input")))return;const a=r.dataset.target,o=a?document.getElementById(a):r.closest(".editor-block, .block-item");if(!o)return;const s=o.parentElement;if(!(null==(i=null==s?void 0:s.classList)?void 0:i.contains("portfolio-blocks")))return;const l=Array.from(s.querySelectorAll(".editor-block, .block-item")),n=l.indexOf(o)+1,d=l.length,c=parseInt(r.value,10);if(""===r.value.trim()||Number.isNaN(c)||c<1||c>d)return r.value=n,void r.setAttribute("max",d);c!==n&&this.applyBlockNumberInputPosition(r)}getFocusableElements(e=document){const t=["a[href]","button:not([disabled])",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])",'[contenteditable="true"]','[tabindex]:not([tabindex="-1"])'].join(", ");return Array.from(e.querySelectorAll(t)).filter((e=>{var t,i,r,a;return!!(null==e?void 0:e.isConnected)&&(!e.hidden&&("true"!==(null==(t=e.getAttribute)?void 0:t.call(e,"aria-hidden"))&&(!(null==(i=e.closest)?void 0:i.call(e,'[hidden], [aria-hidden="true"]'))&&(("function"!=typeof e.matches||!e.matches(":disabled"))&&("-1"!==(null==(r=e.getAttribute)?void 0:r.call(e,"tabindex"))&&!!(null==(a=e.getClientRects)?void 0:a.call(e).length))))))}))}handleRichTextShiftTabNavigation(e){var t,i,r,a,o,s;if("Tab"!==(null==e?void 0:e.key)||!e.shiftKey||e.altKey||e.ctrlKey||e.metaKey)return;const l=(Array.isArray(null==(t=e.composedPath)?void 0:t.call(e))?e.composedPath():[]).filter((e=>(null==e?void 0:e.nodeType)===Node.ELEMENT_NODE)).find((e=>{var t;return null==(t=e.matches)?void 0:t.call(e,'.redactor-in, .redactor-editor, [contenteditable="true"]')}))||(null==(r=null==(i=e.target)?void 0:i.closest)?void 0:r.call(i,'.redactor-in, .redactor-editor, [contenteditable="true"]'));if(!l)return;const n=(null==(a=l.closest)?void 0:a.call(l,".redactor-box"))||l,d=(null==(o=n.closest)?void 0:o.call(n,"dialog[open], .project-editor-container, form"))||document,c=this.getFocusableElements(d),u=c.map(((e,t)=>n.contains(e)?t:-1)).filter((e=>e>=0));if(!u.length)return;const h=c[Math.min(...u)-1];h&&(e.preventDefault(),e.stopPropagation(),null==(s=e.stopImmediatePropagation)||s.call(e),this.focusElementWithTemporaryTabindex(h))}renumberBlocks(){var e;const t=document.querySelectorAll(".portfolio-blocks .editor-block, .portfolio-blocks .block-item");t.forEach(((e,i)=>{const r=i+1,a=e.dataset.type,o=this.getReorderTypeLabel(a),s=e.querySelector(".editor-block-number-input");s&&(s.value=r,s.setAttribute("max",t.length));const l=e.querySelector(".editor-block-label");l&&(l.textContent=`#${r} ${a}`);const n=e.querySelector(".block-heading");n&&(n.textContent=`#${r} ${a}`);const d=e.querySelector(".block-type-label");if(d){const e=d.querySelector(".block-type-label-text");e?e.textContent=o:d.textContent=o}const c=e.querySelector(".field-container-block-label label");if(c&&(c.textContent=`#${r} ${o}`),"richText"===a&&!d){const t=e.querySelector(".field-container .field-container label");t&&(t.textContent=`#${r} ${o}`)}})),null==(e=this.updateBlockMoveButtons)||e.call(this,t)}updateBlockMoveButtons(e=null){const t=e?Array.from(e):Array.from(document.querySelectorAll(".portfolio-blocks .editor-block")),i=t.length;t.forEach(((e,t)=>{const r=e.querySelector('button[data-action="move-up"]'),a=e.querySelector('button[data-action="move-down"]'),o=i<=1||0===t,s=i<=1||t===i-1;r&&(r.disabled=o,r.setAttribute("aria-disabled",o?"true":"false"),r.setAttribute("title",o?"Already first block":"Move block up")),a&&(a.disabled=s,a.setAttribute("aria-disabled",s?"true":"false"),a.setAttribute("title",s?"Already last block":"Move block down"))}))}handleTitleInputForSlug(e){var t,i,r,a,o,s,l;if(!this.slugManuallyEdited&&this.slugInput){const r=(null==(t=null==e?void 0:e.target)?void 0:t.value)||"";this.slugInput.value=te(r,{lower:!0}),null==(i=this.syncProjectSlugPreview)||i.call(this)}null==(r=this.updateReservedSlugError)||r.call(this),null==(a=this.scheduleSlugDuplicateCheck)||a.call(this),null==(o=this.syncProjectTitlePreview)||o.call(this),null==(s=this.updateAddEditButtons)||s.call(this),null==(l=this.syncProjectLinkSuggestions)||l.call(this)}handleSlugInput(e){var t,i,r,a,o,s,l;const n=((null==(t=null==e?void 0:e.target)?void 0:t.value)||"").trim(),d=te((null==(i=this.inputPortfolioTitle)?void 0:i.value)||"",{lower:!0});this.slugManuallyEdited=!(!n||d&&n===d);const c=null==(a=null==(r=this.slugInput)?void 0:r.closest)?void 0:a.call(r,".project-slug");c&&(n?c.removeAttribute("data-editor-empty"):c.setAttribute("data-editor-empty","1")),null==(o=this.updateReservedSlugError)||o.call(this),null==(s=this.scheduleSlugDuplicateCheck)||s.call(this),null==(l=this.updateAddEditButtons)||l.call(this)}updateReservedSlugError(){if(!this.slugInput)return;const e=this.slugInput.closest(".project-slug"),t=null==e?void 0:e.querySelector(".error-messages");if(!t)return;const i=(this.slugInput.value||"").trim().toLowerCase(),r=le.has(i),a="This project URL slug is reserved. Please choose another.",o=Array.from(t.querySelectorAll(".error-message")).filter((e=>{var t;return null==(t=e.textContent)?void 0:t.includes(a)}));r&&this.setSlugDuplicateNotice(""),this.slugInput.classList.toggle("has-error",r),r?0===o.length&&t.insertAdjacentHTML("beforeend",`<li class="error-message">${a}</li>
1`):o.forEach((e=>e.remove()))}toggleCuratedState(e){var t,i;if(null==(t=null==e?void 0:e.preventDefault)||t.call(e),!(null==(i=this.curatedInputs)?void 0:i.length))return;const r=!this.curatedInputs.some((e=>e.checked));this.curatedInputs.forEach((e=>{e.checked=r})),this.syncCuratedToggleState(),this.setSaveButtonDirtyState(!0)}syncCuratedToggleState(){var e,t;if(!(null==(e=this.btnCuratedToggles)?void 0:e.length)||!(null==(t=this.curatedInputs)?void 0:t.length))return;const i=this.curatedInputs.some((e=>e.checked));this.curatedInputs.forEach((e=>{e.checked=i})),this.btnCuratedToggles.forEach((e=>{e.dataset.curated=i?"1":"0",e.classList.toggle("is-published",i),e.setAttribute("aria-pressed",i?"true":"false"),e.setAttribute("aria-label",i?"Mark project as not curated":"Mark project as curated");const t=e.querySelector(".text");t&&(t.textContent="Curated")}))}togglePublishState(e){var t,i,r,a,o,s,l;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.publishPortfolioInput&&("1"!==(null==(r=null==(i=this.btnPublishToggle)?void 0:i.dataset)?void 0:r.publishLocked)?"1"!==(null==(o=null==(a=this.btnPublishToggle)?void 0:a.dataset)?void 0:o.limitLocked)||"1"===this.btnPublishToggle.dataset.published?(this.publishPortfolioInput.checked=!("1"===(null==(l=null==(s=this.btnPublishToggle)?void 0:s.dataset)?void 0:l.published)),this.syncPublishToggleState(),this.setSaveButtonDirtyState(!0)):this.showPublishLockedTooltip(this.btnPublishToggle.dataset.limitMessage):this.showPublishLockedTooltip())}syncPublishToggleState(){const e=this.btnPublishToggle;if(!e||!this.publishPortfolioInput)return;const t=this.publishPortfolioInput.checked,i=e.querySelector(".text");e.dataset.published=t?"1":"0",e.classList.toggle("is-published",t),e.setAttribute("aria-pressed",t?"true":"false"),e.setAttribute("aria-label",t?"Make project unlisted":"List project"),i&&(i.textContent=t?"Listed":"Unlisted")}hasSliderImageValue(){var e,t;return Array.from((null==(t=null==(e=this.mediaThumbsContainer)?void 0:e.querySelectorAll)?void 0:t.call(e,'[data-media-role="thumb"]'))||[]).some((e=>{var t,i;return e.classList.contains("has-asset")||!!e.querySelector("[data-media-keep]:checked")||!!(null==(i=null==(t=e.querySelector("[data-media-file]"))?void 0:t.files)?void 0:i.length)}))}schedulePublishAvailabilitySync(){this.publishAvailabilityFrame||(this.publishAvailabilityFrame=window.requestAnimationFrame((()=>{this.publishAvailabilityFrame=null,this.syncPublishAvailability()})))}syncPublishAvailability({silent:e=!1}={}){var t,i;const r=this.btnPublishToggle,a=this.publishPortfolioInput;if(!r||!a)return;const{locked:o,published:s}=function({published:e,hasFeaturedAsset:t,hasSliderImage:i}){const r=!(t||i);return{locked:r,published:!r&&!!e}}({published:a.checked,hasFeaturedAsset:this.hasFeaturedAssetValue(),hasSliderImage:this.hasSliderImageValue()});r.dataset.publishLocked=o?"1":"0",r.setAttribute("aria-disabled",o?"true":"false"),null==(t=this.publishToggleWrapper)||t.classList.toggle("is-publish-locked",o),(null==(i=this.publishLockedTooltip)?void 0:i.id)&&(o?r.setAttribute("aria-describedby",this.publishLockedTooltip.id):r.getAttribute("aria-describedby")===this.publishLockedTooltip.id&&r.removeAttribute("aria-describedby")),o||this.hidePublishLockedTooltip(),a.checked!==s&&(a.checked=s,e||this.setSaveButtonDirtyState(!0)),this.syncPublishToggleState()}showPublishLockedTooltip(e=""){const t=this.publishToggleWrapper;if(!t)return;const i=this.publishLockedTooltip;i&&(null==this.publishLockedTooltipDefaultText&&(this.publishLockedTooltipDefaultText=i.textContent),i.textContent=e||this.publishLockedTooltipDefaultText),t.classList.add("is-tooltip-visible"),window.clearTimeout(this.publishLockedTooltipTimeout),this.publishLockedTooltipTimeout=window.setTimeout((()=>this.hidePublishLockedTooltip()),2600)}hidePublishLockedTooltip(){var e;window.clearTimeout(this.publishLockedTooltipTimeout),this.publishLockedTooltipTimeout=null,null==(e=this.publishToggleWrapper)||e.classList.remove("is-tooltip-visible"),this.publishLockedTooltip&&null!=this.publishLockedTooltipDefaultText&&(this.publishLockedTooltip.textContent=this.publishLockedTooltipDefaultText)}syncSocialShareImagePreview({expandSection:e=!1}={}){var t,i,r,a;const o=document.querySelector(".project-social-share-image"),s=null==(t=null==o?void 0:o.querySelector)?void 0:t.call(o,"[data-social-share-image-preview]"),l=this.projectSettingsDialog;if(!o||!s||!l)return;const n=!!l.querySelector('input[name="fields[portfolioSocialShareImage][]"]:checked'),d=l.querySelector("#portfolioSocialShareImageThumbnail img")||(n?l.querySelector(".social-share-image-existing .social-share img"):null),c=!!d||n;if(s.innerHTML="",d){const e=document.createElement("div");e.className="project-social-share-image-thumb";const t=d.cloneNode(!0);t.classList.add("project-social-share-image-thumb-image"),e.appendChild(t),s.appendChild(e)}c?o.removeAttribute("data-editor-empty"):o.setAttribute("data-editor-empty","1"),null==(i=this.updateAddEditButtons)||i.call(this),null==(r=this.syncProjectLinkSuggestions)||r.call(this),e&&c&&(null==(a=this.expandProjectLinkCreditsSection)||a.call(this,o))}editorModeToggle(e){var t,i,r,a;e.preventDefault(),e.currentTarget.classList.contains("editor-mode-toggle-thumb")&&e.stopPropagation();const o=e.currentTarget,s=null!=(i=null==(t=null==o?void 0:o.closest)?void 0:t.call(o,".project-editor-container"))?i:this.editorContainer;if(!s)return;const l=s.getAttribute("data-editor-mode")||"edit",n=null!=(a=null==(r=null==o?void 0:o.dataset)?void 0:r.mode)?a:"edit"===l?"preview":"edit";this.setEditorMode(n,{container:s})}setEditorMode(e="edit",t={}){var i,r,a,o,s,l,n,d,c,u,h,m,p,v,g,y,b,f;const{container:S=this.editorContainer,animateThumb:L=!0}=t;if(!S)return;const k=S.getAttribute("data-editor-mode")||"edit",w="preview"===e?"preview":"edit",P=S.querySelector(".editor-mode-toggle"),M=null==P?void 0:P.querySelector(".editor-mode-toggle-thumb");S.setAttribute("data-editor-mode",w),S.classList.toggle("editor-mode-preview","preview"===w),S.classList.toggle("editor-mode-edit","edit"===w),this.editorContainer!==S&&(this.editorContainer=S),M&&(L&&(M.classList.remove("is-preview"),M.offsetHeight),M.classList.toggle("is-preview","preview"===w),M.setAttribute("aria-label","edit"===w?"Switch to preview mode":"Switch to edit mode"),M.setAttribute("title","edit"===w?"Switch to preview mode":"Switch to edit mode"));const C=null==P?void 0:P.querySelector("[data-editor-mode-tooltip]");C&&(C.textContent="preview"===w?"CLICK TO EDIT":"CLICK TO PREVIEW"),document.querySelectorAll('[data-action="toggle-editor-mode"]').forEach((e=>{const t="preview"===w;e.classList.toggle("is-enabled",t),e.setAttribute("aria-pressed",t?"true":"false"),e.setAttribute("aria-label",t?"Switch to edit mode":"Switch to preview mode"),e.setAttribute("title",t?"Switch to edit mode":"Switch to preview mode")})),"preview"!==k&&"preview"===w&&(this.projectMediaPreviewActiveIndex=0,null==(i=this.closeProjectDetailsPanel)||i.call(this)),null==(r=this.renderCreditsDisplay)||r.call(this),null==(a=this.renderMemberCreditsPreviewAvatars)||a.call(this),null==(o=this.syncProjectCreditsSectionState)||o.call(this),null==(s=this.syncMemberCreditsEmptyState)||s.call(this),null==(l=this.syncProjectMediaPreviewState)||l.call(this),"preview"===w&&(null==(n=this.resetFeaturedHeroVideoForPreview)||n.call(this)),null==(d=this.refreshMediaDragSort)||d.call(this),null==(c=this.syncProjectTitlePreview)||c.call(this),null==(u=this.syncProjectDescriptionTextareaFromRedactor)||u.call(this),null==(h=this.syncProjectDescriptionDisplays)||h.call(this),null==(m
1=this.syncProjectDatePreview)||m.call(this),null==(p=this.syncProjectClientPreview)||p.call(this),null==(v=this.syncProjectAgencyPreview)||v.call(this),null==(g=this.syncProjectSlugPreview)||g.call(this),null==(y=this.syncProjectSkillsToolsPreview)||y.call(this),null==(b=this.syncProjectAwardsPreview)||b.call(this),null==(f=this.syncCaseStudyBlockPreviews)||f.call(this),this.syncProjectDetailShortcuts()}syncCaseStudyBlockPreviews(){document.querySelectorAll(".portfolio-blocks .editor-block").forEach((e=>{var t;const i=null==(t=null==e?void 0:e.dataset)?void 0:t.type;"richText"===i?this.syncRichTextBlockPreview(e):"image"===i?this.syncImageBlockPreview(e):"video"===i?this.syncVideoBlockPreview(e):"imageVideoGrid"===i||"grid"===i?this.syncImageVideoGridBlockPreview(e):"embed"===i&&this.syncEmbedBlockPreview(e),this.ensureBlockPreviewPlaceholder(e,i)}))}syncRichTextBlockPreview(e){var t,i,r,a;if(!e)return;const o=e.querySelector(".editor-block-preview");if(!o)return;const s=e.querySelector(".editor-block-fields"),l=null==s?void 0:s.querySelector('select[name*="[portfolioBlocksRichTextLayout]"]'),n=null==s?void 0:s.querySelector('textarea[name*="[portfolioBlocksRichTextCopy]"]'),d=null==s?void 0:s.querySelector(".redactor-in"),c=(null==l?void 0:l.value)||"middle",u=Z("string"==typeof(null==d?void 0:d.innerHTML)?d.innerHTML:null!=(t=null==n?void 0:n.value)?t:"");n&&(n.value=u);if(null!=(r=null==(i=this.isRedactorEmpty)?void 0:i.call(this,u))?r:!String(null!=u?u:"").trim())return o.classList.add("editor-block-preview-empty"),void(o.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Rich Text — Placeholder</div>');const h=null!=(a={left:2,middle:4,right:7}[c])?a:4,m=4===h?6:5;o.classList.remove("editor-block-preview-empty"),o.innerHTML=`\n\t\t\t<div class="portfolio-block block-rich-text s:col-start-1 s:col-span-12 s:grid s:grid-12">\n\t\t\t\t<div class="rich-text-content s:col-start-${h} s:col-span-${m}">\n\t\t\t\t\t${Z(u)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`,$(o)}syncImageBlockPreview(e){if(!e)return;const t=e.querySelector(".editor-block-preview");if(!t)return;const i=e.querySelector(".editor-block-fields"),r=(null==i?void 0:i.querySelector('input[type="text"][name*="[portfolioBlocksImageCaption]"]'))||(null==i?void 0:i.querySelector('input[name*="[portfolioBlocksImageCaption]"]:not([type="hidden"])')),a=((null==r?void 0:r.value)||"").trim(),o=null==i?void 0:i.querySelector(".image-block-preview .input-thumbnails .thumbnail img"),s=null==i?void 0:i.querySelector(".image-block-existing .lazyPicture img, .image-block-existing img"),l=(null==o?void 0:o.getAttribute("src"))||(null==s?void 0:s.getAttribute("src"))||"";if(!l)return t.classList.add("editor-block-preview-empty"),void(t.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Image — Placeholder</div>');const n=this.escapeHtml(a);t.classList.remove("editor-block-preview-empty"),t.innerHTML=`\n\t\t\t${l?`<div class="portfolio-block block-image s:col-start-2 s:col-span-10"><span class="lazyPicture"><img class="asset" src="${l}" alt=""></span></div>`:""}\n\t\t\t${a?`<p class="caption-text text-2 s:col-start-2 s:col-span-10">${n}</p>`:""}\n\t\t`}syncVideoBlockPreview(e){if(!e)return;const t=e.querySelector(".editor-block-preview");if(!t)return;const i=e.querySelector(".editor-block-fields"),r=(null==i?void 0:i.querySelector('input[type="text"][name*="[portfolioBlocksVideoCaption]"]'))||(null==i?void 0:i.querySelector('input[name*="[portfolioBlocksVideoCaption]"]:not([type="hidden"])')),a=((null==r?void 0:r.value)||"").trim(),o=null==i?void 0:i.querySelector(".video-block-preview .input-thumbnails .thumbnail video"),s=null==i?void 0:i.querySelector(".video-block-existing video"),l=(null==o?void 0:o.getAttribute("src"))||(null==s?void 0:s.getAttribute("src"))||"";if(!l)return t.classList.add("editor-block-preview-empty"),void(t.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Video — 16:9 frame placeholder</div>');const n=this.escapeHtml(a);t.classList.remove("editor-block-preview-empty"),t.innerHTML=`\n\t\t\t${l?`<div class="portfolio-block block-video s:col-start-2 s:col-span-10"><video class="is-video-inview" src="${l}" preload="metadata" playsinline controls></video></div>`:""}\n\t\t\t${a?`<p class="caption-text text-2 s:col-start-2 s:col-span-10">${n}</p>`:""}\n\t\t`}syncImageVideoGridBlockPreview(e){var t;if(!e)return;const i=e.querySelector(".editor-block-preview");if(!i)return;const r=e.querySelector(".editor-block-fields"),a=e=>`${1===e?"xs:col-start-1 xs:col-span-6":3===e?"xs:col-span-6":"xs:col-span-3"} ${1===e?"s:col-start-4 s:col-span-6":3===e?"s:col-span-4":"s:col-span-6"}`;if("grid"===((null==(t=null==e?void 0:e.dataset)?void 0:t.type)||"")){const e=[];
1if(null==r||r.querySelectorAll(".image-video-grid-slot").forEach((t=>{if(e.length>=4)return;const i=t.querySelector(".image-video-grid-slot-content img, .image-video-grid-slot-content video"),r=null==i?void 0:i.getAttribute("src");if(!r)return;const a=t.querySelector("[data-grid-item-caption]");e.push({kind:i.tagName.toLowerCase(),src:r,caption:((null==a?void 0:a.value)||"").trim()})})),!e.length)return i.classList.add("editor-block-preview-empty"),void(i.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Grid — Placeholder</div>');const t=a(e.length),o=e.map((e=>{const i="video"===e.kind?`<video class="is-video-inview" src="${e.src}" preload="metadata" playsinline controls></video>`:`<span class="lazyPicture"><img class="asset" src="${e.src}" alt=""></span>`,r=e.caption?`<p class="caption-text text-2">${this.escapeHtml(e.caption)}</p>`:"";return`<div class="item ${t}">${i}${r}</div>`})).join("");return i.classList.remove("editor-block-preview-empty"),void(i.innerHTML=`\n\t\t\t\t<div class="portfolio-block block-image-video-grid s:col-start-1 s:col-span-12 xs:grid xs:grid-6 s:grid-12">${o}</div>\n\t\t\t`)}const o=(null==r?void 0:r.querySelector('input[type="text"][name*="[portfolioBlocksImageVideoGridCaption]"]'))||(null==r?void 0:r.querySelector('input[name*="[portfolioBlocksImageVideoGridCaption]"]:not([type="hidden"])')),s=((null==o?void 0:o.value)||"").trim(),l=[];null==r||r.querySelectorAll(".image-video-grid-slot.has-asset .image-video-grid-slot-content img, .image-video-grid-slot.has-asset .image-video-grid-slot-content video").forEach((e=>{const t=e.getAttribute("src");t&&l.push({kind:e.tagName.toLowerCase(),src:t})})),null==r||r.querySelectorAll(".image-video-grid-block-preview .input-thumbnails .thumbnail").forEach((e=>{const t=e.querySelector("img"),i=e.querySelector("video");(null==t?void 0:t.getAttribute("src"))?l.push({kind:"image",src:t.getAttribute("src")}):(null==i?void 0:i.getAttribute("src"))&&l.push({kind:"video",src:i.getAttribute("src")})}));const n=l.slice(0,4);if(!n.length&&!s)return i.classList.add("editor-block-preview-empty"),void(i.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Grid — Placeholder</div>');const d=this.escapeHtml(s),c=a(n.length),u=n.map((e=>"video"===e.kind?`<div class="item ${c}"><video class="is-video-inview" src="${e.src}" preload="metadata" playsinline controls></video></div>`:`<div class="item ${c}"><span class="lazyPicture"><img class="asset" src="${e.src}" alt=""></span></div>`)).join("");i.classList.remove("editor-block-preview-empty"),i.innerHTML=`\n\t\t\t${n.length?`<div class="portfolio-block block-image-video-grid s:col-start-1 s:col-span-12 xs:grid xs:grid-6 s:grid-12">${u}</div>`:""}\n\t\t\t${s?`<p class="caption-text text-2 s:col-start-1 s:col-span-12">${d}</p>`:""}\n\t\t`}syncEmbedBlockPreview(e){var t,i;if(!e)return;const r=e.querySelector(".editor-block-preview");if(!r)return;const a=e.querySelector(".editor-block-fields"),o=null==a?void 0:a.querySelector('select[name*="[portfolioBlocksEmbedService]"]'),s=null==a?void 0:a.querySelector('input[name*="[portfolioBlocksEmbedEmbedID]"]'),l=((null==o?void 0:o.value)||"").trim(),n=((null==s?void 0:s.value)||"").trim(),d=(null==(i=null==(t=null==o?void 0:o.querySelector("[data-codepen-username]"))?void 0:t.dataset)?void 0:i.codepenUsername)||"";if(!l||!n)return r.classList.add("editor-block-preview-empty"),void(r.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Embed — Placeholder</div>');let c="";if("vimeo"===l?c=`<iframe src="https://player.vimeo.com/video/${n}" frameborder="0" title="Vimeo video player"></iframe>`:"youtube"===l?c=`<iframe src="https://www.youtube-nocookie.com/embed/${n}?rel=0&showinfo=0&color=white" frameborder="0" allowfullscreen title="YouTube video player"></iframe>`:"codepen"===l&&d&&(c=`<iframe height="300" style="width: 100%;" scrolling="no" src="https://codepen.io/${d}/embed/preview/${n}?default-tab=result&theme-id=default" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true" title="CodePen embed"></iframe>`),!c)return r.classList.add("editor-block-preview-empty"),void(r.innerHTML='<div class="editor-placeholder s:col-start-1 s:col-span-12">Embed — Placeholder</div>');r.classList.remove("editor-block-preview-empty"),r.innerHTML=`\n\t\t\t<div class="portfolio-block block-embed s:col-start-3 s:col-span-8">\n\t\t\t\t<div class="block-embed-container is-${l}">\n\t\t\t\t\t${c}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`}ensureBlockPreviewPlaceholder(e,t=""){if(!e)return;const i=e.querySelector(".editor-block-preview");if(!i)return;const r=!!i.querySelector("img, video, iframe"),a=(i.textContent||"").replace(/\s+/g," ").trim().length>0&&!i.classList.contains("editor-block-preview-empty");if(r||a)return void i.classList.remove("editor-block-preview-empty");const o={richText:"Rich Text",image:"Image",video:"Video",grid:"Grid",imageVideoGrid:"Grid",embed:"Embed"}[t]||"Block";i.classList.add("editor-block-preview-empty"),i.innerHTML=`<div class="editor-placeholder s:col-start-1 s:col-span-12">${o} — Placeholder</div>`}getProjectLinkImportErrorMessage(e,t="Unable to read details from that URL."){const i=null==e?void 0:e.errors,r=Array.isArray(i)?i:Object.values(i||{}).flatMap((e=>Array.isArray(e)?e:[e])),a=[null==e?void 0:e.error,null==e?void 0:e.message,r.find((e=>"string"==typeof e&&e.trim())),"string"==typeof e?e:"",t];return String(a.find((e=>"string"==typeof e&&e.trim()))||t).trim()}isValidProjectLinkHostname(e=""){const t=String(e||"").trim().toLowerCase();return!!t&&/^.+\.[a-z]{2,}$/i.test(t)}getValidProjectLinkUrl(e=(e=>null==(e=this.inputPortfolioLink)?void 0:e.value)()){let t=String(e||"").trim();if(!t)return"";try{const e=new URL(t);return"https:"===e.protocol&&this.isValidProjectLinkHostname(e.hostname)?e.toString():""}catch(i){return""}}getProjectRelationSelectionState(e,{hasVisualValue:t=!1}={}){if(!e)return{hasValue:!!t,hasKeepSelection:!1,hasOgInjectedSelection:!1};const i=Array.from(document.querySelectorAll(`input[name="fields[${e}][]"]:checked`)),r=i.some((e=>"true"!==e.dataset.ogInjected)),a=i.some((e=>"true"===e.dataset.ogInjected));return t||r||!a?{hasValue:t||r||a,hasKeepSelection:r,hasOgInjectedSelection:a}:(this.removeOgInjectedRelationInputs(e),{hasValue:!1,hasKeepSelection:!1,hasOgInjectedSelection:!1})}hasSocialShareImageValue(){var e,t,i,r,a,o,s,l;const n=document.querySelector("[data-social-share-image]"),d=null==(t=null==(e=
1document.getElementById("portfolioSocialShareImageThumbnail"))?void 0:e.querySelector)?void 0:t.call(e,"img"),c=!!((null==(r=null==(i=this.portfolioSocialShareImageInput)?void 0:i.files)?void 0:r.length)||d||(null==(o=null==(a=null==n?void 0:n.classList)?void 0:a.contains)?void 0:o.call(a,"has-asset"))||(null==(l=null==(s=null==n?void 0:n.classList)?void 0:s.contains)?void 0:l.call(s,"has-preview")));return this.getProjectRelationSelectionState("portfolioSocialShareImage",{hasVisualValue:c}).hasValue}hasFeaturedAssetValue(){var e,t,i,r,a,o;const s=null==(t=null==(e=this.mediaHero)?void 0:e.querySelector)?void 0:t.call(e,'[data-media-file="hero"]'),l=!!(null==(i=null==s?void 0:s.files)?void 0:i.length)||!!(null==(o=null==(a=null==(r=this.mediaHero)?void 0:r.classList)?void 0:a.contains)?void 0:o.call(a,"has-asset"));return this.getProjectRelationSelectionState("portfolioFeaturedAsset",{hasVisualValue:l}).hasValue}hasOgInjectedRelation(e){return!!document.querySelector(`input[data-og-injected="true"][name="fields[${e}][]"]:checked`)}initProjectLinkSuggestions(){this.projectLinkSuggestionsRoot&&this.inputPortfolioLink&&(this.projectLinkSuggestions=new ae({root:this.projectLinkSuggestionsRoot,input:this.inputPortfolioLink,fields:this.getProjectLinkSuggestionFields(),getValidUrl:()=>this.getValidProjectLinkUrl(),fetchOgData:e=>this.fetchOgData(e),onAttempt:()=>{var e;return null==(e=this.analytics)?void 0:e.once("import attempted")},onFetchFailed:e=>{var t;null==(t=this.analytics)||t.once(`import failed ${r(e)}`)},onApplied:()=>{var e,t;null==(e=this.analytics)||e.once("import succeeded"),null==(t=this.analytics)||t.changed("primary"),this.setSaveButtonDirtyState(!0)},onApplyFailed:e=>{var t;null==(t=this.analytics)||t.once(`import failed ${r(e,null==e?void 0:e.analyticsCategory)}`),console.error("Project link import failed:",e)},onReverted:()=>{var e;null==(e=this.analytics)||e.changed("primary"),this.setSaveButtonDirtyState(!0)},onBusyChange:e=>this.setProjectLinkSuggestionsBusy(e)}))}syncProjectLinkSuggestions(){var e;null==(e=this.projectLinkSuggestions)||e.sync()}setProjectLinkSuggestionsBusy(e){const t=this.btnSaveProject;if(t)return e?(this.projectLinkSaveWasDisabled=t.disabled,void(t.disabled=!0)):void(t.classList.contains("is-saving")||(t.disabled=!!this.projectLinkSaveWasDisabled))}getProjectLinkSuggestionFields(){return[{key:"title",label:"Title",isAvailable:()=>!!this.inputPortfolioTitle,offer:e=>e.title?{text:e.title}:null,status:()=>{var e;return this.resolveProjectLinkText("title",null==(e=this.inputPortfolioTitle)?void 0:e.value)},apply:async e=>this.setProjectLinkTitle(e.title),revert:()=>this.setProjectLinkTitle("")},{key:"description",label:"Description",isAvailable:()=>!!this.inputPortfolioDescription,offer:e=>e.description?{text:e.description}:null,status:()=>{var e,t,i;return this.resolveProjectLinkText("description",se(null!=(i=null==(e=this.getProjectDescriptionHtml)?void 0:e.call(this))?i:null==(t=this.inputPortfolioDescription)?void 0:t.value))},apply:async e=>this.setProjectLinkDescription(e.description),revert:()=>this.setProjectLinkDescription("")},{key:"social-share-image",label:"Social share image",isAvailable:()=>!!document.querySelector("[data-social-share-image]"),offer:e=>this.offerProjectLinkImage(e),status:()=>this.resolveProjectLinkImage("portfolioSocialShareImage",(()=>this.hasSocialShareImageValue())),apply:async(e,{isStale:t})=>{const i=await this.importProjectLinkImage(e);t()||this.hasSocialShareImageValue()||this.applyAssetIdToRelationField("portfolioSocialShareImage",i.assetId,{previewDataUrl:i.previewDataUrl,previewContainerId:"portfolioSocialShareImageThumbnail",editorSelector:"[data-social-share-image]"})},revert:()=>this.revertProjectLinkImportState({revertSocial:!0,revertFeatured:!1})},{key:"featured-image",label:"Featured image",isAvailable:()=>!!document.querySelector('[data-media-file="hero"]'),offer:e=>this.offerProjectLinkImage(e),status:()=>this.resolveProjectLinkImage("portfolioFeaturedAsset",(()=>this.hasFeaturedAssetValue())),apply:async(e,{isStale:t})=>{const i=await this.importProjectLinkImage(e);t()||this.hasFeaturedAssetValue()||this.applyAssetIdToRelationField("portfolioFeaturedAsset",i.assetId,{previewDataUrl:i.previewDataUrl,heroSelector:'[data-media-role="hero"]'})},revert:()=>this.revertProjectLinkImportState({revertSocial:!1,revertFeatured:!0})}]}resolveProjectLinkText(e,t){if(this.projectLinkMutating&&null!==this.projectLinkAppliedText[e])return"on";const{status:i,appliedText:r}=function({appliedText:e=null,currentText:t=""}={}){const i=oe(t);return null!=e&&i===oe(e)?{status:"on",appliedText:e}:{status:i?"locked":"off",appliedText:null}}({appliedText:this.projectLinkAppliedText[e],currentText:t});return this.projectLinkAppliedText[e]=r,i}resolveProjectLinkImage(e,t){const i=t();return function({hasImportedValue:e=!1,hasAnyValue:t=!1}={}){return e?"on":t?"locked":"off"}({hasImportedValue:i&&this.hasOgInjectedRelation(e),hasAnyValue:i})}offerProjectLinkImage(e){return e.image?{imageSrc:e.imagePreview||""}:null}setProjectLinkTitle(e){const t=this.inputPortfolioTitle;if(t){this.projectLinkMutating=!0;try{t.value=e,this.projectLinkAppliedText.title=e?t.value:null,t.dispatchEvent(new Event("input",{bubbles:!0}))}finally{this.projectLinkMutating=!1}this.syncProjectLinkSuggestions()}}setProjectLinkDescription(e){const t=e?Z(Object.assign(document.createElement("p"),{textContent:String(e)}).outerHTML):"";this.projectLinkMutating=!0;try{this.projectLinkAppliedText.description=t?se(t):null,this.setProjectDescriptionHtml(t)}finally{this.projectLinkMutating=!1}this.syncProjectLinkSuggestions()}setProjectDescriptionHtml(e){var t,i,r,a,o,s,l,n;this.inputPortfolioDescription&&(this.inputPortfolioDescription.value=e);try{this.ensureRedactorInitialized(this.inputPortfolioDescription);const o=this.getRedactorApi(),s=o&&(null==(t=this.inputPortfolioDescription)?void 0:t.id)?o(`#${this.inputPortfolioDescription.id}`):null;(null==(i=null==s?void 0:s.editor)?void 0:i.setContent)?s.editor.setContent({html:e}):(null==(r=null==s?void 0:s.source)?void 0:r.set)?s.source.set(e):(null==(a=null==s?void 0:s.code)?void 0:a.set)&&s.code.set(e)}catch(u){}const d=null==(s=null==(o=this.inputPortfolioDescription)?void 0:o.closest)?void 0:s.call(o,".project-description-edit-surface"),c=null==(l=null==d?void 0:d.querySelector)?void 0:l.call(d,".redactor-in");c&&(c.innerHTML=e,c.dispatchEvent(new Event("input",{bubbles:!0}))),null==(n=this.syncProjectDescriptionDisplays)||n.call(this)}importProjectLinkImage(e){const t=e.image;if(!this.projectLinkImageUploads.has(t)){const i=(async()=>{var t;const i=await this.uploadOgImage(e.image);if(!(null==(t=null==i?void 0:i.asset)?void 0:t.id))throw Object.assign(new Error("Imported image unavailable"),{analyticsCategory:"media"});return this.upsertMediaLibraryAsset(i.asset),{assetId:String(i.asset.id),previewDataUrl:i.asset.previewUrl||e.imagePreview||""}})();i.catch((()=>this.projectLinkImageUploads.delete(t))),this.projectLinkImageUploads.set(t,i)}return this.projectLinkImageUploads.get(t)}removeOgInjectedRelationInputs(e){e&&document.querySelectorAll(`input[data-og-injected="true"][name="fields[${e}][]"]`).forEach((e=>e.remove()))}applyAssetIdToRelationField(e,t,{previewDataUrl:i="",previewContainerId:r="",editorSelector:a="",heroSelector:o=""}={}){var s,l;if(!e||!t)return;this.removeOgInjectedRelationInputs(e),document.querySelectorAll(`input[type="checkbox"][name="fields[${e}][]"]`).forEach((e=>{e.checked=!1}
1));const n=document.createElement("input");if(n.type="checkbox",n.name=`fields[${e}][]`,n.value=t,n.checked=!0,n.dataset.ogInjected="true",n.style.position="absolute",n.style.left="-9999px",null==(s=document.querySelector(".js-new-project-form"))||s.appendChild(n),i&&r){const e=document.getElementById(r);if(e){e.innerHTML="";const t=document.createElement("img");t.src=i,t.alt="Imported preview",e.appendChild(t)}}if(a){const e=document.querySelector(a);e&&(e.classList.add("has-asset"),this.setSocialShareImageActionState(e,!0)),null==(l=this.syncSocialShareImagePreview)||l.call(this)}if(o&&i){const e=document.querySelector(o);if(e){e.classList.add("has-asset");const t=e.querySelector(".project-media-actions");if(t){this.setProjectMediaSlotActionState(e,!0);t.querySelector('[data-media-action="delete"]')||t.appendChild(this.createDeleteActionButton())}const r=e.querySelector(".project-media-hero-content");if(r){const e=r.querySelector(".project-media-label");e&&e.remove(),r.querySelectorAll(".project-media-hero-slide-bg, .project-media-hero-slide-content").forEach((e=>e.remove()));const t=document.createElement("div");t.className="project-media-hero-slide-content";const a=document.createElement("img");if(a.src=i,a.alt="Featured asset",a.style.cssText="width:100%;height:100%;object-fit:contain;object-position:center",X()){const e=document.createElement("div");e.className="project-media-hero-slide-bg",e.setAttribute("aria-hidden","true");const t=a.cloneNode(!0);t.style.cssText="width:100%;height:100%;object-fit:cover;object-position:center",e.appendChild(t),r.insertBefore(e,r.firstChild)}t.appendChild(a),r.appendChild(t)}}}}async fetchOgData(e){const t=`/actions/og-fetcher/og/fetch?url=${encodeURIComponent(e)}`;try{const e=await fetch(t,{headers:{Accept:"application/json"},credentials:"same-origin"}),r=await e.text();let a={};if(r)try{a=JSON.parse(r)}catch(i){a={}}return e.ok?r?Object.keys(a).length?(null==a?void 0:a.error)||(null==a?void 0:a.message)?{...a,error:this.getProjectLinkImportErrorMessage(a)}:a:{error:this.getProjectLinkImportErrorMessage({},"The page details service returned an unreadable response.")}:{error:this.getProjectLinkImportErrorMessage({},"The page details service returned an empty response.")}:{...a,status:e.status,error:this.getProjectLinkImportErrorMessage(a,`Unable to read details from that URL (${e.status}).`)}}catch(r){return{status:0,error:this.getProjectLinkImportErrorMessage(r,"Unable to read details right now.")}}}async uploadOgImage(e){const t=await fetch("/api/project-media/import-og-image",{method:"POST",headers:{...this.getProjectMediaRequestHeaders(),"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({...this.getProjectMediaContextPayload(),url:e})}),i=await t.text();try{const e=JSON.parse(i);return(null==e?void 0:e.draftToken)&&this.projectMediaDraftTokenInput&&(this.projectMediaDraftTokenInput.value=e.draftToken),e}catch{return console.warn("uploadOgImage: server returned non-JSON (likely an error page)"),{error:t.ok?"Invalid response":`Request failed (${t.status})`}}}addErrorMessages(e){var t,i,r;for(const a in e.errors){const o=e.errors[a];let s;if("slug"===a)s=this.slugInput||this.form.querySelector('[name="slug"]');else if(a.includes("portfolioAwards"))s=this.form.querySelector('[name="fields[portfolioAwards]"]');else if(a.includes("portfolioFeaturedAsset"))s=this.form.querySelector('[data-media-file="hero"]')||this.form.querySelector('[name="fields[portfolioFeaturedAsset]"]');else if(a.includes("portfolioThumbnails"))s=Array.from(this.form.querySelectorAll('[data-media-role="thumb"] [data-media-file^="thumb-"]')).find((e=>{var t;return null==(t=e.files)?void 0:t.length}))||this.form.querySelector('[data-media-role="thumb"] [data-media-file^="thumb-"]')||this.form.querySelector('[name="fields[portfolioThumbnails]"]');else if(a.includes("portfolioSocialShareImage"))s=this.form.querySelector('[name="fields[portfolioSocialShareImage]"]');else if(this.isGridItemAssetErrorKey(a))s=this.findGridItemErrorInput(a);else if(a.startsWith("fields.portfolioBlocks")){const e=a.match(/fields\.portfolioBlocks\.entries\.([^.]+)\.fields/);if(e){const t=document.querySelector(`[id*="${e[1]}"]`).closest(".block-item").querySelectorAll("input, select, textarea"),i=t[t.length-1];i?s=i:console.log("No input elements found")}else console.log("No match found")}else if(o.callback){let e=null,t=null;a.includes("new-block")?(e=a.match(/new-block-\d+/),e&&(t=e[0],s=document.getElementById(t))):(e=a.match(/blocks\.(\d+)\.fields\.asset/),e&&(t=e[1],s=a.includes("assets")?document.getElementById(`fields-portfolioBlocks-blocks-${t}-fields[assets][]`):document.getElementById(`fields-portfolioBlocks-blocks-${t}-fields[asset]`))),s||(s=this.form.querySelector(`[name="${a.replace(".","[").replace(/\./g,"][")+"]"}"]`))}else if(a.includes("assets")){const e=this.transformAssetsKey(a).replace("[*]","");
1s=this.form.querySelector(e)}else s=this.form.querySelector(`[name="${a.replace(".","[").replace(/\./g,"][")+"]"}"]`);if(s){s.classList.add("has-error");const e=s.closest(".image-video-grid-slot");e&&e.classList.add("has-error");const a=s.closest(".project-media-thumb, .project-media-hero");a&&a.classList.add("has-error");const l=s.closest(".field-container"),n=(null==l?void 0:l.querySelector(".error-messages"))||(null==(t=s.closest(".editor-only"))?void 0:t.querySelector(".error-messages"))||(null==(i=s.parentElement)?void 0:i.querySelector(".error-messages"))||(null==(r=s.closest(".project-slug, .project-date, .project-client, .project-agency, .project-skills-tools, .project-credits, .project-categories, .project-styles, .project-social-share-image, .project-media"))?void 0:r.querySelector(".error-messages"));n&&Object.values(o).forEach((e=>{n.innerHTML+=`<li class="error-message">${e}</li>`}))}}}isGridItemAssetErrorKey(e){return e.includes("portfolioBlocksGridItems")&&e.includes("gridItemsAsset")}findGridItemErrorInput(e){const t=Array.from(this.form.querySelectorAll("input[data-image-video-grid-file]")).find((e=>{var t;return null==(t=e.files)?void 0:t.length}));if(t)return t;const i=e.match(/portfolioBlocks(?:\.entries)?(?:\[|\.)([^.\]]+).+portfolioBlocksGridItems(?:\.entries)?(?:\[|\.)([^.\]]+).+gridItemsAsset/);if(i){const[,e,t]=i,r=this.form.querySelector(`[data-image-video-grid-block-editor][data-grid-block-entry-key="${CSS.escape(e)}"] .image-video-grid-slot[data-grid-item-key="${CSS.escape(t)}"]`),a=null==r?void 0:r.querySelector("input[data-image-video-grid-file]");if(a)return a}return this.form.querySelector("[data-image-video-grid-block-editor] input[data-image-video-grid-file]")||null}transformAssetsKey(e){return`[name="${e.split(".").map(((e,t)=>0===t?e:`[${e}]`)).join("")}[]"]`}stopPage(){var e,t,i,r,a,o,s,l,n,d,c;null==(e=this.leaveGuard)||e.destroy(),null==(t=this.analytics)||t.destroy(),this.stopped=!0,null==(i=this.projectDetailsContentShiftCleanup)||i.call(this),null==(r=this.stopProjectDetailsAppTop)||r.call(this),null==(a=this.projectDetailsHeader)||a.removeEventListener("click",this.closeProjectDetailsPanel),window.cancelAnimationFrame(this.projectDetailsReadyFrame),window.cancelAnimationFrame(this.projectDetailsRevealFrame),null==(o=this.editorContainer)||o.removeAttribute("data-project-details-ready"),null==(s=this.descriptionSyncCleanup)||s.call(this),null==(l=this.form)||l.querySelectorAll("textarea.is-redactor").forEach((e=>{window.clearTimeout(e._redactorInitTimer)})),null==(n=this.projectDetailsScrollFadesCleanup)||n.call(this),null==(d=this.projectLinkCredits)||d.removeEventListener("keydown",this.projectDetailsTabKeyDown),null==(c=this.reorderScrollFadesCleanup)||c.call(this),window.clearTimeout(this.slugDuplicateCheckTimeout),this.removeListeners(),this.dragSortContainers&&this.dragSortContainers.forEach((e=>{e.dragSort&&e.dragSort.destroy()})),this.modalContent&&this.modalContent.dragSort&&this.modalContent.dragSort.destroy()}afterSwap(e){if("member-credits-results"!==e.detail.target.id)return;const t=this.viewRoot.querySelector("#member-credits-results");t&&(t.hidden=!!this.memberCreditsSearchDismissed,t.querySelectorAll(".member-credits-list-item").forEach((e=>{e.setAttribute("role","button"),e.addEventListener("click",this.memberCreditsAddItem),e.addEventListener("keydown",this.handleMemberCreditsResultKeyDown)})))}memberCreditsAddItem(e){var t,i,r;e.stopPropagation();const a=e.currentTarget,o=a.dataset.userFullname,s=a.dataset.userUsername||"",l=a.dataset.userId,n="1"===a.dataset.userIsBusiness,d=a.querySelector(".lazyPicture")||a.querySelector(".avatar-default")||a.querySelector("img")||null,c=d?d.outerHTML:"",u=this.memberCreditsModalSelectedWrapper||this.memberCreditsSelectedWrapper,h=null!=(i=null==(t=null==u?void 0:u.querySelectorAll)?void 0:t.call(u,'[name="fields[portfolioMemberCredits][]"]'))?i:[];let m=!1;if(h.forEach((e=>{e.value==l&&(m=!0)})),!m){if(u){const e=u===this.memberCreditsModalSelectedWrapper;u.insertAdjacentHTML("beforeend",`\n\t\t\t\t<div class="member-credit-selected" data-user-id="${this.escapeHtml(l)}" data-user-fullname="${this.escapeHtml(o)}" data-user-username="${this.escapeHtml(s)}" data-user-is-business="${n?"1":"0"}">\n\t\t\t\t\t<input type="checkbox" value="${this.escapeHtml(l)}" name="fields[portfolioMemberCredits][]" checked ${e?"disabled":""}>\n\t\t\t\t\t<span class="member-credit-name">${this.escapeHtml(o)}</span>\n\t\t\t\t\t<button class="btn-member-credit-selected-remove" type="button" data-user-id="${this.escapeHtml(l)}" aria-label="Remove ${this.escapeHtml(o)}"></button>\n\t\t\t\t\t<span class="member-credit-avatar-template" hidden>${c}</span>\n\t\t\t\t</div>\n\t\t\t`)}a.remove(),this.memberCreditsInput.focus(),this.bindMemberCreditsRemoveButtons(),null==(r=this.renderMemberCreditsPreviewAvatars)||r.call(this)}}memberCreditsRemoveItem(e){var t,i,r,a;e.stopPropagation();const o=this,s=e.currentTarget;
1if(s&&("click"===e.type||"keydown"===e.type&&"Enter"===e.key||"keydown"===e.type&&13===e.keyCode)){e.preventDefault(),s.removeEventListener("click",o.memberCreditsRemoveItem),s.removeEventListener("keydown",o.memberCreditsRemoveItem);const l=s.parentElement,n=null==(t=null==l?void 0:l.closest)?void 0:t.call(l,"[data-member-credits-selected], [data-member-credits-modal-selected], .member-credits-selected-wrapper");null==l||l.remove(),n&&n===this.memberCreditsSelectedWrapper&&(null==(i=this.syncProjectCreditsSectionState)||i.call(this)),n&&n===this.memberCreditsSelectedWrapper&&(null==(r=this.renderMemberCreditsPreviewAvatars)||r.call(this),null==(a=this.updateAddEditButtons)||a.call(this),this.setSaveButtonDirtyState(!0))}}keepToggle(e){var t,i;const r=null==e?void 0:e.target;"fields[portfolioSocialShareImage][]"===(null==r?void 0:r.name)&&(null==(t=this.markProjectSettingsSocialShareDirty)||t.call(this,r)),null==(i=this.syncSocialShareImagePreview)||i.call(this)}inputThumbnailsUpdate(e,t=null){var i,r,a,o;const s=null!=(i=null==e?void 0:e.target)?i:t;if(null==s)return;if(s.hasAttribute("data-image-video-grid-file"))return void this.handleImageVideoGridSlotFileChange(s,s.files||[]);const l=s.parentElement.parentElement,n=s.files,d=l.querySelector(".input-thumbnails");if(!d)return;if(d.innerHTML="","portfolioSocialShareImage"===s.id){e&&(null==(r=this.projectSettingsDialog)?void 0:r.contains(s))&&(null==(a=this.markProjectSettingsSocialShareDirty)||a.call(this,s));const t=l.querySelector('input[name="fields[portfolioSocialShareImage][]"]'),i=!!(null==t?void 0:t.checked);n.length?(this.removeOgInjectedRelationInputs("portfolioSocialShareImage"),l.classList.add("has-preview"),l.classList.remove("has-asset"),t&&(t.checked=!1)):(l.classList.remove("has-preview"),l.classList.toggle("has-asset",i)),this.setSocialShareImageActionState(l,n.length>0||i),null==(o=this.syncSocialShareImagePreview)||o.call(this)}const c=s.closest("[data-image-block-editor]");if(c){const e=c.querySelector("[data-image-block-keep]"),t=!!(null==e?void 0:e.checked);n.length?(c.classList.add("has-preview"),e&&(e.checked=!1),c.classList.remove("has-asset")):(c.classList.remove("has-preview"),t&&c.classList.add("has-asset")),this.setImageBlockActionState(c,n.length>0||t)}const u=s.closest("[data-video-block-editor]");if(u){const e=u.querySelector("[data-video-block-keep]"),t=!!(null==e?void 0:e.checked);n.length?(u.classList.add("has-preview"),e&&(e.checked=!1),u.classList.remove("has-asset")):(u.classList.remove("has-preview"),t&&u.classList.add("has-asset")),this.setVideoBlockActionState(u,n.length>0||t)}const h=s.closest("[data-image-video-grid-block-editor]");if(h){const e=h.querySelectorAll('input[type="checkbox"][data-image-video-grid-keep]:checked').length>0;n.length?(h.classList.add("has-preview"),h.querySelectorAll('input[type="checkbox"][data-image-video-grid-keep]').forEach((e=>{e.checked=!1})),h.classList.remove("has-asset")):(h.classList.remove("has-preview"),e&&h.classList.add("has-asset")),this.setImageVideoGridBlockActionState(h,n.length>0||e)}for(let m=0;m<n.length;m++){const e=n[m];if(e.type.startsWith("image/")||e.type.startsWith("video/")){const t=document.createElement("div");if(t.classList.add("thumbnail"),e.type.startsWith("image/")){const i=document.createElement("img");i.src=URL.createObjectURL(e),t.appendChild(i)}else if(e.type.startsWith("video/")){const i=document.createElement("video");i.src=URL.createObjectURL(e),s.closest("[data-image-video-grid-block-editor]")||i.setAttribute("controls","true"),i.setAttribute("muted","true"),i.setAttribute("playsinline","true"),t.appendChild(i)}d.appendChild(t)}}}clearValue(e){const t=e.currentTarget,i=t.parentElement.querySelector('input[type="file"]'),r=t.closest(".field-container"),a=r?r.querySelector(".error-messages"):null;if(null!==i&&"INPUT"===i.tagName){i.value="";const e=i.parentElement.parentElement;e.querySelector(".input-thumbnails").innerHTML="","portfolioSocialShareImage"===i.id&&e.classList.remove("has-preview"),a&&(a.innerHTML=""),this.setSaveButtonDirtyState(!0)}}socialShareImageAddClick(){const e=document.querySelector("[data-social-share-image]");e&&this.openMediaLibrary(this.createMediaLibraryTarget("social-share-image",{editor:e,mode:e.classList.contains("has-asset")||e.classList.contains("has-preview")?"replace":"add"}))}socialShareImageContainerClick(e){const t=null==e?void 0:e.currentTarget;t&&(t.classList.contains("has-asset")||t.classList.contains("has-preview")||e.target.closest('button, a, input, label, [role="button"]')||this.openMediaLibrary(this.createMediaLibraryTarget("social-share-image",{editor:t})))}socialShareImageClear(e){var t,i,r,a,o,s;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const l=(null==(r=null==(i=null==e?void 0:e.currentTarget)?void 0:i.closest)?void 0:r.call(i,"[data-social-share-image]"))||document.querySelector("[data-social-share-image]");if(!l)return;null==(a=this.markProjectSettingsSocialShareDirty)||a.call(this,l);const n=l.querySelector("#portfolioSocialShareImage"),d=l.querySelector(".social-share-image-preview-image");this.removeOgInjectedRelationInputs("portfolioSocialShareImage");const c=l.querySelector('input[name="fields[portfolioSocialShareImage][]"]');n&&(n.value=""),l.querySelectorAll('input[name="fields[portfolioSocialShareImage][]"]').forEach((e=>{var t;(null==(t=e.closest(".social-share-image-keep-input"))?void 0:t.remove())||e.remove()}
1)),d&&(d.innerHTML='<div id="portfolioSocialShareImageThumbnail" class="input-thumbnails"></div>'),c&&(c.checked=!1),l.classList.remove("has-asset","has-preview"),delete l.dataset.assetId,this.setSocialShareImageActionState(l,!1),null==(o=this.syncSocialShareImagePreview)||o.call(this),(null==(s=l.closest)?void 0:s.call(l,"dialog.okay-dialog[open]"))||this.setSaveButtonDirtyState(!0)}setActionRailState(e,t){e&&(e.classList.toggle("is-filled",!!t),e.classList.toggle("is-empty",!t))}getProjectMediaActionIconMarkup(e){switch(e){case"replace":return'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path fill="currentColor" d="M336.16-453.85v-291.23L222.77-631.69 180-673.85 366.15-860l186.16 186.15-42.77 42.16-113.39-113.39v291.23h-59.99ZM593.46-100 407.31-286.15l42.77-42.16 113.38 113.39v-291.23h60v291.23l113.39-113.39 42.76 42.16L593.46-100Z"/></svg>';case"delete":return'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M18 6 6 18M6 6l12 12" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/></svg>';case"drag":return'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" width="20"><path fill="currentColor" d="M359.788-222.769q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm240 0q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm-240-216q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm240 0q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm-240-216q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm240 0q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Z"/></svg>';default:return'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M12 4v16m8-8H4" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/></svg>'}}getProjectMediaActionMarkup(e,t){return`${this.getProjectMediaActionIconMarkup(e)}<span class="project-media-action-label">${this.escapeHtml(t)}</span>`}setAddReplaceActionState(e,{isReplace:t=!1,addLabel:i="Add",replaceLabel:r="Replace",addAriaLabel:a="Add media",replaceAriaLabel:o="Replace media"}={}){e&&(e.classList.toggle("is-replace",!!t),e.setAttribute("aria-label",t?o:a),e.innerHTML=this.getProjectMediaActionMarkup(t?"replace":"add",t?r:i))}createDeleteActionButton({actionAttribute:e="data-media-action",actionValue:t="delete",ariaLabel:i="Delete media",label:r="Delete"}={}){const a=document.createElement("button");return a.type="button",a.className="project-media-action",a.setAttribute(e,t),a.setAttribute("aria-label",i),a.innerHTML=this.getProjectMediaActionMarkup("delete",r),a}setSocialShareImageActionState(e,t){if(!e)return;const i=e.querySelector(".social-share-image-actions");this.setActionRailState(i,t),this.setAddReplaceActionState(null==i?void 0:i.querySelector('[data-action="social-share-image-add"]'),{isReplace:t,addAriaLabel:"Add image",replaceAriaLabel:"Replace image"})}setProjectMediaSlotActionState(e,t){if(!e)return;const i=e.querySelector(".project-media-actions");this.setActionRailState(i,t),this.setAddReplaceActionState(null==i?void 0:i.querySelector('[data-media-action="add"]'),{isReplace:t})}setImageVideoGridSlotActionState(e,t){if(!e)return;const i=e.querySelector(".image-video-grid-slot-actions");this.setActionRailState(i,t),this.setAddReplaceActionState(null==i?void 0:i.querySelector('[data-action="image-video-grid-slot-add"]'),{isReplace:t})}getProjectMediaEntryId(){var e,t,i;const r=(null==(i=null==(t=null==(e=this.form)?void 0:e.querySelector)?void 0:t.call(e,'input[name="entryId"]'))?void 0:i.value)||"",a=parseInt(r,10);return Number.isNaN(a)||a<=0?null:a}getProjectMediaDraftToken(){var e,t,i;return(null==(i=null==(t=null==(e=this.projectMediaDraftTokenInput)?void 0:e.value)?void 0:t.trim)?void 0:i.call(t))||""}getProjectMediaDraftSlug(){var e,t,i;return(null==(i=null==(t=null==(e=this.slugInput)?void 0:e.value)?void 0:t.trim)?void 0:i.call(t))||""}getProjectMediaRequestHeaders(){const e={Accept:"application/json"};return window.csrfToken&&(e["X-CSRF-Token"]=window.csrfToken),e}getProjectMediaContextPayload(){const e={},t=this.getProjectMediaEntryId(),i=this.getProjectMediaDraftToken(),r=this.getProjectMediaDraftSlug();return t?(e.entryId=String(t),e):(i&&(e.draftToken=i,r&&(e.draftSlug=r)),e)}getProjectMediaContextQuery(){const e=new URLSearchParams,t=this.getProjectMediaContextPayload();return Object.entries(t).forEach((([t,i])=>{i&&e.set(t,i)})),e.toString()}setMediaLibraryFeedback(e="",t=!1){if(this.mediaLibraryFeedback){if(!e)return this.mediaLibraryFeedback.hidden=!0,this.mediaLibraryFeedback.textContent="",void this.mediaLibraryFeedback.removeAttribute("data-error");this.mediaLibraryFeedback.hidden=!1,this.mediaLibraryFeedback.textContent=e,t?this.mediaLibraryFeedback.setAttribute("data-error","true"):this.mediaLibraryFeedback.removeAttribute("data-error")}}getMediaLibraryErrorMessage(e,t="Upload failed"){if(null==e?void 0:e.message)return e.message;const i=e=>{if(!e)return"";if("string"==typeof e)return e;if(Array.isArray(e)){for(const t of e){const e=i(t);if(e)return e}return""}if("object"==typeof e)for(const t of Object.values(e)){const e=i(t);if(e)return e}return""};return i(null==e?void 0:e.errors)||t}getMediaLibraryStatusParts(e){const t=String((null==e?void 0:e.label)||"").trim();if(!["error","warning"].includes(null==e?void 0:e.type)||!t)return{title:(null==e?void 0:e.name)||"",detail:t};
1const i=t.match(/^(.+?\.)\s+(.+)$/);return i?{title:i[1].trim(),detail:i[2].trim()}:{title:t,detail:""}}resetMediaLibraryState(){this.mediaLibraryActiveOperations.forEach((e=>e.abort())),this.mediaLibraryActiveOperations.clear(),this.resetMediaLibraryPosterStep(),this.mediaLibraryLoadToken+=1,this.clearAllMediaLibraryStatusTimeouts(),this.removeMediaLibraryPreviewPopover(),this.mediaLibraryState.assets=[],this.mediaLibraryState.selectedIds=new Set,this.mediaLibraryState.deselectedCurrentIds=new Set,this.mediaLibraryState.target=null,this.mediaLibraryState.statusItems=[],this.mediaLibraryState.autoApplyAfterUpload=!1,this.mediaLibraryState.lastAppliedAssetIds=[],this.mediaLibraryDropzone&&this.mediaLibraryDropzone.classList.remove("is-drag-over"),this.mediaLibrarySelectAllInput&&(this.mediaLibrarySelectAllInput.checked=!1,this.mediaLibrarySelectAllInput.indeterminate=!1),this.mediaLibraryRows&&(this.mediaLibraryRows.innerHTML=""),this.mediaLibraryEmpty&&(this.mediaLibraryEmpty.hidden=!0),this.mediaLibraryTable&&(this.mediaLibraryTable.hidden=!1),this.mediaLibrarySelectionSummary&&(this.mediaLibrarySelectionSummary.hidden=!0,this.mediaLibrarySelectionSummary.innerHTML=""),this.mediaLibraryRoot&&this.mediaLibraryRoot.setAttribute("aria-busy","false"),this.closeMediaLibraryPrompt(!0),this.setMediaLibraryFeedback(""),this.renderMediaLibraryUploadStatus()}setMediaLibraryLoading(e){this.mediaLibraryLoading&&(this.mediaLibraryLoading.hidden=!e),this.mediaLibraryTable&&(this.mediaLibraryTable.hidden=!!e),e&&this.mediaLibraryEmpty&&(this.mediaLibraryEmpty.hidden=!0)}focusMediaLibraryReturnTarget(){const e=this.mediaLibraryReturnFocusEl;this.mediaLibraryReturnFocusEl=null,(null==e?void 0:e.isConnected)&&window.requestAnimationFrame((()=>{if(!e.isConnected)return;const t=e.hasAttribute("tabindex");if(t||e.setAttribute("tabindex","-1"),e.focus({preventScroll:!0}),!t){const t=()=>{e.removeAttribute("tabindex"),e.removeEventListener("blur",t)};e.addEventListener("blur",t,{once:!0})}}))}focusElementWithTemporaryTabindex(e){(null==e?void 0:e.isConnected)&&window.requestAnimationFrame((()=>{if(!e.isConnected)return;const t=e.hasAttribute("tabindex");if(t||e.setAttribute("tabindex","-1"),e.focus({preventScroll:!0}),!t){const t=()=>{e.removeAttribute("tabindex"),e.removeEventListener("blur",t)};e.addEventListener("blur",t,{once:!0})}}))}getMediaLibraryReturnFocusTarget(e=this.mediaLibraryState.target){var t,i;const r=(null==e?void 0:e.editor)||null,a=(null==(t=null==r?void 0:r.closest)?void 0:t.call(r,".block-item"))||null,o=(null==(i=null==a?void 0:a.querySelector)?void 0:i.call(a,".block-type-label"))||null;return o||(r||a)}createMediaLibraryTarget(e,t={}){const i={type:e,...{"social-share-image":{acceptedKinds:["image"],maxSelections:1},hero:{acceptedKinds:["image","video"],maxSelections:1},thumb:{acceptedKinds:["image"],maxSelections:5},"image-block":{acceptedKinds:["image"],maxSelections:1},"video-block":{acceptedKinds:["video"],maxSelections:1},"image-video-grid":{acceptedKinds:["image","video"],maxSelections:4}}[e]||{acceptedKinds:["image","video"],maxSelections:1},...t};return i.currentAssetIds=this.getCurrentTargetAssetIds(i),i}isMediaLibraryReplacementMode(e=this.mediaLibraryState.target){return"replace"===(null==e?void 0:e.mode)}allowsMediaLibraryCurrentDeselection(e=this.mediaLibraryState.target){return"image-video-grid"===(null==e?void 0:e.type)&&!this.isMediaLibraryReplacementMode(e)}getMediaLibraryAcceptAttribute(e){const t=(null==e?void 0:e.acceptedKinds)||["image","video"],i=[];return t.includes("image")&&i.push("image/jpg","image/jpeg","image/pjpeg","image/png","image/apng","image/x-png","image/gif","image/webp"),t.includes("video")&&i.push("video/webm","video/mp4","video/x-m4v","video/quicktime",".mp4",".m4v",".mov",".webm"),i.join(", ")}getMediaLibraryInstructionMarkup(e=this.mediaLibraryState.target){var t;const i='\n\t\t\t<span class="media-library-dropzone-spec">\n\t\t\t\t<span class="media-library-dropzone-spec-title">Images:</span>\n\t\t\t\t<span>JPG, PNG, GIF, or WebP · up to 3840 × 2160 · 10 MB each</span>\n\t\t\t</span>\n\t\t',r='\n\t\t\t<span class="media-library-dropzone-spec">\n\t\t\t\t<span class="media-library-dropzone-spec-title">Videos*:</span>\n\t\t\t\t<span>MP4, MOV, M4V, or WebM · up to 500 MB · 2 minutes</span>\n\t\t\t\t<span>*Automatically optimized for web playback up to 1080p at 60 fps</span>\n\t\t\t</span>\n\t\t';return(null==(t=null==e?void 0:e.acceptedKinds)?void 0:t.length)?1===e.acceptedKinds.length&&"image"===e.acceptedKinds[0]?i:1===e.acceptedKinds.length&&"video"===e.acceptedKinds[0]?r:`${i}${r}`:`${i}${r}`}getMediaLibrarySelectionLimit(e=this.mediaLibraryState.target){var t,i,r,a;if(!e)return 0;if(this.isMediaLibraryReplacementMode(e))return 1;if("thumb"===e.type){const r=Array.from((null==(t=this.mediaThumbsContainer)?void 0:t.querySelectorAll('[data-media-role="thumb"]'))||[]).filter((e=>!e.classList.contains("has-asset"))).length;return Math.max(1,r+((null==(i=e.slot)?void 0:i.classList.contains("has-asset"))?1:0))}if("image-video-grid"===e.type){const t=Array.from((null==(r=e.editor)?void 0:r.querySelectorAll(".image-video-grid-slot"))||[]).filter((e=>!e.classList.contains("has-asset"))).length;return Math.max(1,t+((null==(a=e.startSlot)?void 0:a.classList.contains("has-asset"))?1:0))}return e.maxSelections||1}supportsMediaLibraryBulkSelect(e=this.mediaLibraryState.target){return this.getMediaLibrarySelectionLimit(e)>1}getCurrentTargetAssetIds(e=this.mediaLibraryState.target){var t,i,r,a,o,s,l,n,d,c,u,h,m,p,v,g,y,b,f,S,L,k,w;if(!e)return[];if(Array.isArray(e.currentAssetIds))return e.currentAssetIds;if("hero"===e.type){const e=parseInt((null==(i=null==(t=this.mediaHero)?void 0:t.dataset)?void 0:i.assetId)||"",10);return Number.isNaN(e)?[]:[e]}if("social-share-image"===e.type){const t=null==(o=null==(a=null==(r=e.editor)?void 0:r.querySelector)?void 0:a.call(r,'input[name="fields[portfolioSocialShareImage][]"]:checked'))?void 0:o.value,i=parseInt(t||(null==(l=null==(s=e.editor)?void 0:s.dataset)?void 0:l.assetId)||"",10);return Number.isNaN(i)?[]:[i]}if("thumb"===e.type){const t=parseInt((null==(d=null==(n=e.slot)?void 0:n.dataset)?void 0:d.assetId)||"",10);return Number.isNaN(t)?[]:[t]}if("image-block"===e.type||"video-block"===e.type){const t=null==(h=null==(u=null==(c=e.editor)?void 0:c.querySelector)?void 0:u.call(c,".btn-keep:checked"))?void 0:h.value,i=parseInt(t||(null==(p=null==(m=e.editor)?void 0:m.dataset)?void 0:p.assetId)||"",10);return Number.isNaN(i)?[]:[i]}if("image-video-grid"===e.type){if(this.isMediaLibraryReplacementMode(e)){const t=parseInt((null==(y=null==(g=null==(v=e.startSlot)?void 0:v.querySelector)?void 0:g.call(v,'input[type="checkbox"][data-image-video-grid-keep]'))?void 0:y.value)||(null==(f=null==(b=e.startSlot)?void 0:b.dataset)?void 0:f.assetId)||"",10);return Number.isNaN(t)?[]:[t]}const t=Array.from((null==(L=null==(S=e.editor)?void 0:S.querySelectorAll)?void 0:L.call(S,'input[type="checkbox"][data-image-video-grid-keep]:checked'))||[]).map((e=>parseInt(e.value||"",10))).filter((e=>!Number.isNaN(e)));return t.length?t:Array.from((null==(w=null==(k=e.editor)?void 0:k.querySelectorAll)?void 0:w.call(k,".image-video-grid-slot.has-asset"))||[]).map((e=>parseInt(e.dataset.assetId||"",10))).filter((e=>!Number.isNaN(e)))}return[]}getMediaLibraryFilteredAssets(){var e;const t=this.mediaLibraryState.target;return(null==(e=null==t?void 0:t.acceptedKinds)?void 0:e.length)?this.mediaLibraryState.assets.filter((e=>t.acceptedKinds.includes(e.kind))):[...this.mediaLibraryState.assets]}getMediaLibraryUsageCounts(){const e=new Map;if(!this.form)return e;return Array.from(this.form.querySelectorAll('input[type="checkbox"]:checked')).forEac
1h((t=>{const i=parseInt(t.value||"",10);if(Number.isNaN(i))return;const r=t.name||"";("fields[portfolioSocialShareImage][]"===r||"fields[portfolioFeaturedAsset][]"===r||r.includes("[fields][portfolioThumbnail][]")||r.includes("[portfolioBlocksImageAsset][]")||r.includes("[portfolioBlocksVideoAsset][]")||r.includes("[portfolioBlocksImageVideoGridAssets][]")||r.includes("[fields][gridItemsAsset][]"))&&e.set(i,(e.get(i)||0)+1)})),e}updateMediaLibraryDropzoneText(){this.mediaLibraryDropzoneText&&(this.mediaLibraryDropzoneText.innerHTML=this.getMediaLibraryInstructionMarkup())}getMediaLibraryTargetLabel(e=this.mediaLibraryState.target){switch(null==e?void 0:e.type){case"social-share-image":return"Social Share Image";case"hero":return"Featured Image/Video";case"thumb":return"Slider Images";case"image-block":return"Image block";case"video-block":return"Video block";case"image-video-grid":return"Grid block";default:return"Media"}}getMediaLibrarySelectionCapacity(e=this.mediaLibraryState.target){var t,i;return e?"thumb"===e.type?Array.from((null==(t=this.mediaThumbsContainer)?void 0:t.querySelectorAll('[data-media-role="thumb"]'))||[]).length||e.maxSelections||1:"image-video-grid"===e.type?Array.from((null==(i=e.editor)?void 0:i.querySelectorAll(".image-video-grid-slot"))||[]).length||e.maxSelections||1:e.maxSelections||1:0}shouldShowMediaLibraryCurrentSelections(e=this.mediaLibraryState.target){return"image-video-grid"===(null==e?void 0:e.type)||this.isMediaLibraryReplacementMode(e)}getMediaLibraryNewSelectedIds(e=this.mediaLibraryState.target){const t=this.shouldShowMediaLibraryCurrentSelections(e)?new Set(this.getCurrentTargetAssetIds(e)):new Set;return Array.from(this.mediaLibraryState.selectedIds).filter((e=>!t.has(e)))}getMediaLibraryLockedCurrentIds(e=this.mediaLibraryState.target){return!this.shouldShowMediaLibraryCurrentSelections(e)||this.isMediaLibraryReplacementMode(e)?[]:this.getCurrentTargetAssetIds(e)}getMediaLibraryPendingSelectionCount(e=this.mediaLibraryState.target){return e?this.getMediaLibraryNewSelectedIds(e).length:0}getMediaLibraryRemainingAssetCount(e=this.mediaLibraryState.target){const t=this.getMediaLibrarySelectionLimit(e),i=this.getMediaLibraryPendingSelectionCount(e),r=this.allowsMediaLibraryCurrentDeselection(e)?this.mediaLibraryState.deselectedCurrentIds.size:0;return Math.max(0,t-i+r)}getMediaLibrarySelectionSummaryParts(e=this.mediaLibraryState.target){if(!e)return null;const t=this.getMediaLibraryTargetLabel(e);if(this.isMediaLibraryReplacementMode(e))return"hero"===e.type&&this.isHeroSlotVideo()?{label:t,detail:"select a replacement or the current video to set the poster"}:{label:t,detail:"select a replacement"};if("hero"===e.type)return{label:t,detail:"select an asset"};const i=this.getMediaLibrarySelectionCapacity(e);if(i<=0)return null;return{label:t,detail:`${this.getMediaLibraryRemainingAssetCount(e)} of ${i} ${1===i?"asset":"assets"} remaining`}}updateMediaLibrarySelectionSummary(){if(!this.mediaLibrarySelectionSummary)return;const e=this.getMediaLibrarySelectionSummaryParts();this.mediaLibrarySelectionSummary.hidden=!e,this.mediaLibrarySelectionSummary.innerHTML=e?`<span class="media-library-selection-summary-label">${this.escapeHtml(e.label)}:</span> ${this.escapeHtml(e.detail)}`:""}upsertMediaLibraryAsset(e,{select:t=!1,onlySelection:i=!1}={}){if(!(null==e?void 0:e.id))return null;const r=this.mediaLibraryState.assets.findIndex((t=>t.id===e.id));return r>=0&&this.mediaLibraryState.assets.splice(r,1),this.mediaLibraryState.assets.unshift(e),t&&(i||this.getMediaLibrarySelectionLimit()<=1?this.mediaLibraryState.selectedIds=U(this.getMediaLibraryLockedCurrentIds(),e.id):this.mediaLibraryState.selectedIds.add(e.id)),e}getMediaLibraryProgressState(e){const t=["processing","optimizing","uploading"].includes(null==e?void 0:e.stage)?e.stage:"processing",i=Number.isFinite(null==e?void 0:e.progress)?Math.max(0,Math.min(1,e.progress)):null,r=["processing","optimizing","uploading"],a=r.indexOf(t);return{stage:t,progress:i,segments:r.map(((e,t)=>{const r=t<a;return{segment:e,active:t===a,complete:r,progress:r?1:t===a?i:0}}))}}getMediaLibraryProgressIndicatorMarkup(e){const t=this.getMediaLibraryProgressState(e),i="M12 2 A10 10 0 0 1 21.397 15.42",r=19.2;return`\n\t\t\t<svg class="media-library-progress-ring" viewBox="0 0 24 24" aria-hidden="true" focusable="false">\n\t\t\t\t${t.segments.map(((e,t)=>{const a=Number.isFinite(e.progress)&&e.progress<=0,o=["media-library-progress-segment",`is-${e.segment}`,e.active?"is-active":"",e.complete?"is-complete":"",a?"is-empty":"",e.active&&null===e.progress?"is-indeterminate":""].filter(
1Boolean).join(" "),s=Number.isFinite(e.progress)?Math.max(0,Math.min(r,e.progress*r)):0;return`\n\t\t\t\t<g transform="rotate(${120*t} 12 12)">\n\t\t\t\t\t<path class="media-library-progress-segment-track" d="${i}"></path>\n\t\t\t\t\t<path class="${o}" data-media-library-progress-segment="${e.segment}" d="${i}" style="stroke-dasharray: ${s} 19.2; stroke-dashoffset: 0"></path>\n\t\t\t\t</g>\n\t\t\t`})).join("")}\n\t\t\t</svg>\n\t\t`}getMediaLibraryProgressBadgeMarkup(e){const t=this.getMediaLibraryProgressState(e),i=null===t.progress?"":`${Math.round(100*t.progress)}%`;return`\n\t\t\t<span class="media-library-upload-status-badge is-uploading">\n\t\t\t\t<span class="media-library-upload-status-stage">${this.escapeHtml(e.label||"Processing")}</span>\n\t\t\t\t<span class="media-library-upload-status-percentage"${i?"":" hidden"}>${i}</span>\n\t\t\t</span>\n\t\t`}patchMediaLibraryProgressIndicator(e,t){const i=this.getMediaLibraryProgressState(t);i.segments.forEach((t=>{const i=e.querySelector(`[data-media-library-progress-segment="${t.segment}"]`);if(!i)return;const r=i.getTotalLength(),a=Number.isFinite(r)&&r>0?r:19.2,o=Number.isFinite(t.progress)?Math.max(0,Math.min(a,t.progress*a)):0;i.style.strokeDasharray=`${o} ${a}`,i.style.strokeDashoffset="0",i.classList.toggle("is-active",t.active),i.classList.toggle("is-complete",t.complete),i.classList.toggle("is-empty",Number.isFinite(t.progress)&&t.progress<=0),i.classList.toggle("is-indeterminate",t.active&&null===t.progress)}));const r=e.querySelector(".media-library-upload-status-stage"),a=e.querySelector(".media-library-upload-status-percentage");return!(!r||!a)&&(r.textContent=t.label||"Processing",null===i.progress?(a.hidden=!0,a.textContent=""):(a.hidden=!1,a.textContent=`${Math.round(100*i.progress)}%`),!0)}renderMediaLibraryUploadStatus(){if(!this.mediaLibraryUploadStatus)return;const e=this.mediaLibraryState.statusItems.slice(0,5);this.mediaLibraryUploadStatus.hidden=0===e.length,this.mediaLibraryUploadStatus.innerHTML=e.map((e=>{const t="success"===e.type?"is-success":"uploading"===e.type?"is-uploading":"warning"===e.type?"is-warning":"is-error";if("error"===e.type||"warning"===e.type){const i=this.getMediaLibraryStatusParts(e);return`\n\t\t\t\t\t<div class="media-library-upload-status-item ${t}" data-media-library-status-id="${this.escapeHtml(e.id||"")}">\n\t\t\t\t\t\t<div class="media-library-upload-status-copy">\n\t\t\t\t\t\t\t<span class="media-library-upload-status-title">${this.escapeHtml(i.title)}</span>\n\t\t\t\t\t\t\t${i.detail?`<span class="media-library-upload-status-detail">${this.escapeHtml(i.detail)}</span>`:""}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<button type="button" class="media-library-upload-status-dismiss" data-media-library-status-dismiss aria-label="Dismiss upload message">\n\t\t\t\t\t\t\t<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/></svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t`}return`\n\t\t\t\t<div class="media-library-upload-status-item ${t}" data-media-library-status-id="${this.escapeHtml(e.id||"")}">\n\t\t\t\t\t<span class="media-library-upload-status-name">${this.escapeHtml(e.name)}</span>\n\t\t\t\t\t${"uploading"===e.type?`<span class="media-library-upload-status-progress">${this.getMediaLibraryProgressBadgeMarkup(e)}${this.getMediaLibraryProgressIndicatorMarkup(e)}</span>`:`<span class="media-library-upload-status-badge">${this.escapeHtml(e.label)}</span>`}\n\t\t\t\t\t${e.cancelable?'\n\t\t\t\t\t\t<button type="button" class="media-library-upload-status-dismiss" data-media-library-status-cancel aria-label="Cancel video processing">\n\t\t\t\t\t\t\t<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"/></svg>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t':""}\n\t\t\t\t</div>\n\t\t\t`})).join("")}pushMediaLibraryStatus(e,t,i){const r=`status-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.setMediaLibraryStatus(r,e,t,i),r}setMediaLibraryStatus(e,t,i,r){if(!e)return;const a=this.mediaLibraryState.statusItems.findIndex((t=>t.id===e)),o={id:e,name:t,type:i,label:r};a>=0?this.mediaLibraryState.statusItems.splice(a,1,o):this.mediaLibraryState.statusItems.unshift(o),this.syncMediaLibraryStatusTimeout(e,i
1),this.renderMediaLibraryUploadStatus()}updateMediaLibraryStatus(e,t={}){if(!e)return;const i=this.mediaLibraryState.statusItems.findIndex((t=>t.id===e));if(i<0)return;const r=this.mediaLibraryState.statusItems[i],a={...r,...t};this.mediaLibraryState.statusItems.splice(i,1,a),this.syncMediaLibraryStatusTimeout(e,a.type),this.patchMediaLibraryProgressStatus(e,r,a)||this.renderMediaLibraryUploadStatus()}patchMediaLibraryProgressStatus(e,t,i){if("uploading"!==(null==t?void 0:t.type)||"uploading"!==(null==i?void 0:i.type)||!!t.cancelable!=!!i.cancelable||!this.mediaLibraryUploadStatus)return!1;const r=Array.from(this.mediaLibraryUploadStatus.querySelectorAll("[data-media-library-status-id]")).find((t=>t.dataset.mediaLibraryStatusId===e));if(!r)return!1;const a=r.querySelector(".media-library-upload-status-name");return!(!a||!this.patchMediaLibraryProgressIndicator(r,i))&&(a.textContent=i.name||"",!0)}removeMediaLibraryStatus(e){if(!e)return;const t=this.mediaLibraryState.statusItems.findIndex((t=>t.id===e));t<0||(this.clearMediaLibraryStatusTimeout(e),this.mediaLibraryActiveOperations.delete(e),this.mediaLibraryState.statusItems.splice(t,1),this.renderMediaLibraryUploadStatus())}clearMediaLibraryStatusTimeout(e){const t=this.mediaLibraryStatusTimeouts.get(e);t&&(window.clearTimeout(t),this.mediaLibraryStatusTimeouts.delete(e))}clearAllMediaLibraryStatusTimeouts(){this.mediaLibraryStatusTimeouts.forEach((e=>{window.clearTimeout(e)})),this.mediaLibraryStatusTimeouts.clear()}syncMediaLibraryStatusTimeout(e,t){if(this.clearMediaLibraryStatusTimeout(e),"error"===t||"warning"===t||"uploading"===t)return;const i=window.setTimeout((()=>{this.removeMediaLibraryStatus(e)}),3e3);this.mediaLibraryStatusTimeouts.set(e,i)}renderMediaLibraryRows(){if(!this.mediaLibraryRows||!this.mediaLibraryEmpty)return;this.removeMediaLibraryPreviewPopover();const e=this.getMediaLibraryFilteredAssets();this.mediaLibraryRows.innerHTML=e.map((e=>{const t="image"===e.kind&&e.previewUrl?`<div class="media-library-preview" data-media-library-preview><img src="${this.escapeHtml(e.previewUrl)}" alt=""></div>`:'<div class="media-library-preview" data-media-library-preview><svg class="media-library-video-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M8 6.82v10.36c0 .79.87 1.27 1.54.84l8.14-5.18a1 1 0 0 0 0-1.68L9.54 5.98A1 1 0 0 0 8 6.82Z"/></svg></div>',i=(e.sizeLabel||"").replace(/\s+/g,""),r=(null==e?void 0:e.isUsed)?"1":"-",a=[i?`<span class="media-library-detail-line">${this.escapeHtml(i)}</span>`:"",e.width&&e.height?`<span class="media-library-detail-line">${this.escapeHtml(`${e.width}x${e.height}`)}</span>`:""].filter(Boolean).join(""),o=e.dateUploaded?new Intl.DateTimeFormat("en-US",{month:"2-digit",day:"2-digit",year:"2-digit"}).format(new Date(e.dateUploaded)):e.dateUploadedLabel||"";return`\n\t\t\t\t<label class="media-library-row" data-media-library-row data-asset-id="${e.id}">\n\t\t\t\t\t<span class="media-library-cell media-library-cell-check">\n\t\t\t\t\t\t<input type="checkbox" class="media-library-checkbox" data-media-library-checkbox value="${e.id}">\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="media-library-cell">${t}</span>\n\t\t\t\t\t<span class="media-library-cell media-library-name">\n\t\t\t\t\t\t<span class="media-library-name-value">${this.escapeHtml(e.filename)}</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class="media-library-cell media-library-cell-details">${a}</span>\n\t\t\t\t\t<span class="media-library-cell">${this.escapeHtml(o)}</span>\n\t\t\t\t\t<span class="media-library-cell media-library-cell-used" data-media-library-used-value>${r}</span>\n\t\t\t\t</label>\n\t\t\t`})).join(""),this.mediaLibraryEmpty.hidden=e.length>0,this.updateMediaLibrarySelectionUi(),this.updateMediaLibraryUsageUi()}updateMediaLibrarySelectionUi(){if(!this.mediaLibraryRows)return;const e=this.mediaLibraryState.selectedIds,t=this.shouldShowMediaLibraryCurrentSelections()?new Set(this.getCurrentTargetAssetIds()):new Set,i=this.mediaLibraryState.deselectedCurrentIds,r=this.getMediaLibraryRemainingAssetCount(),a=this.supportsMediaLibraryBulkSelect()&&r<=0,o=this.isMediaLibraryReplacementMode(),s=o&&this.getMediaLibraryNewSelectedIds().length>0,l=this.mediaLibraryState.target;this.mediaLibraryRows.querySelectorAll("[data-media-library-row]").forEach((r=>{const n=parseInt(r.dataset.assetId||"",10),d=Number.isNaN(n)?null:this.mediaLibraryState.assets.find((e=>e.id===n))||null,c=!Number.isNaN(n)&&e.has(n),u=!Number.isNaN(n)&&t.has(n)&&!i.has(n),h=o&&u&&!s,m=h&&"hero"===(null==l?void 0:l.type)&&"video"===(null==d?void 0:d.kind)&&this.isHeroSlotVideo(),p=h&&!m||a&&!c&&!u,v=u&&(!o||!s),g=o?c||u&&!s:c||u;r.classList.toggle("is-selected",c),r.classList.toggle("is-current",v),r.classList.toggle("is-locked-current",h&&!m),r.classList.toggle("is-poster-entry-current",m),r.classList.toggle("is-disabled",p),r.setAttribute("aria-disabled",p?"true":"false"),m?r.setAttribute("title","Choose a video poster"):r.removeAttribute("title");const y=r.querySelector("[data-media-library-checkbox]");y&&(y.checked=g,y.disabled=p)}
1)),this.updateMediaLibrarySelectionSummary(),this.syncMediaLibraryActionState()}updateMediaLibraryUsageUi(){if(!this.mediaLibraryRows)return;const e=this.getMediaLibraryUsageCounts();this.mediaLibraryRows.querySelectorAll("[data-media-library-row]").forEach((t=>{const i=parseInt(t.dataset.assetId||"",10),r=Number.isNaN(i)?null:this.mediaLibraryState.assets.find((e=>e.id===i))||null,a=Number.isNaN(i)?0:e.get(i)||0,o=Math.max(a,(null==r?void 0:r.isUsed)?1:0),s=t.querySelector("[data-media-library-used-value]");s&&(s.textContent=o>0?String(o):"-")}))}clearMediaLibraryPreviewPopoverHideTimeout(){const e=this.mediaLibraryState.previewPopoverHideTimeout;e&&(window.clearTimeout(e),this.mediaLibraryState.previewPopoverHideTimeout=null)}scheduleMediaLibraryPreviewPopoverHide(){this.clearMediaLibraryPreviewPopoverHideTimeout(),this.mediaLibraryState.previewPopoverHideTimeout=window.setTimeout((()=>{this.removeMediaLibraryPreviewPopover()}),90)}removeMediaLibraryPreviewPopover(){this.clearMediaLibraryPreviewPopoverHideTimeout();const e=this.mediaLibraryState.previewPopoverEl;if(e){const t=e.querySelector("video");t&&(t.pause(),t.removeAttribute("src"),t.load()),e.remove()}this.mediaLibraryState.previewPopoverEl=null,this.mediaLibraryState.previewPopoverAnchor=null,this.mediaLibraryState.previewPopoverAssetId=null}getMediaLibraryPreviewPopoverDimensions(e){const t=220,i=Number(null==e?void 0:e.width)||0,r=Number(null==e?void 0:e.height)||0;if(i<=0||r<=0)return"video"===(null==e?void 0:e.kind)?{width:t,height:Math.max(120,Math.round(123.75))}:{width:184,height:184};const a=i/r;return!Number.isFinite(a)||a<=0?{width:184,height:184}:a>=1?{width:t,height:Math.max(120,Math.min(t,Math.round(t/a)))}:{width:Math.max(120,Math.min(t,Math.round(t*a))),height:t}}showMediaLibraryPreviewPopover(e,t){if(!this.mediaLibraryRoot||!e||!t)return;if(!window.matchMedia("(hover: hover)").matches)return;const i="video"===t.kind?t.url||"":t.previewUrl||t.url||"";if(!i)return;if(this.mediaLibraryState.previewPopoverEl&&this.mediaLibraryState.previewPopoverAnchor===e&&this.mediaLibraryState.previewPopoverAssetId===t.id)return void this.clearMediaLibraryPreviewPopoverHideTimeout();this.removeMediaLibraryPreviewPopover();const r=document.createElement("div"),a=this.getMediaLibraryPreviewPopoverDimensions(t);r.className="media-library-preview-popover",r.style.width=`${a.width}px`,r.style.height=`${a.height}px`,r.innerHTML="video"===t.kind?`<div class="media-library-preview-popover-media"><video src="${this.escapeHtml(i)}" autoplay muted loop playsinline preload="metadata"></video></div>`:`<div class="media-library-preview-popover-media"><img src="${this.escapeHtml(i)}" alt="${this.escapeHtml(t.filename||"Media preview")}"></div>`,r.addEventListener("mouseenter",(()=>{this.clearMediaLibraryPreviewPopoverHideTimeout()})),r.addEventListener("mouseleave",(()=>{this.scheduleMediaLibraryPreviewPopoverHide()})),this.mediaLibraryRoot.appendChild(r),this.mediaLibraryState.previewPopoverEl=r,this.mediaLibraryState.previewPopoverAnchor=e,this.mediaLibraryState.previewPopoverAssetId=t.id;const o=this.mediaLibraryRoot.getBoundingClientRect(),s=e.getBoundingClientRect(),l=r.getBoundingClientRect(),n=Math.max(0,Math.min(s.top-o.top+(s.height-l.height)/2,this.mediaLibraryRoot.offsetHeight-l.height)),d=s.right-o.left+14,c=Math.max(14,Math.min(d,this.mediaLibraryRoot.offsetWidth-l.width));r.style.top=`${Math.round(n)}px`,r.style.left=`${Math.round(c)}px`;const u=r.querySelector("video");u&&u.play().catch((()=>{}))}syncMediaLibraryActionState(){const e=this.getMediaLibraryNewSelectedIds().length>0,t=this.canEnterHeroPosterFromCurrentSelection(),i=e||this.mediaLibraryState.deselectedCurrentIds.size>0||t;if(this.mediaLibraryDeleteBtn&&(this.mediaLibraryDeleteBtn.disabled=!e,this.mediaLibraryDeleteBtn.hidden=!e),this.mediaLibrarySelectBtn&&(this.mediaLibrarySelectBtn.disabled=!i),this.mediaLibrarySelectAllInput){const e=this.getMediaLibraryFilteredAssets(),t=this.getMediaLibraryRemainingAssetCount(),i=this.supportsMediaLibraryBulkSelect(),r=e.length>0,a=t>1,o=i?Math.min(e.length,t):0,s=i&&r&&a;this.mediaLibrarySelectAllInput.disabled=!s,this.mediaLibrarySelectAllInput.hidden=!i;const l=this.getMediaLibraryNewSelectedIds().length;this.mediaLibrarySelectAllInput.indeterminate=s&&l>0&&l<o,this.mediaLibrarySelectAllInput.checked=s&&o>0&&l===o;const n=r?a?`Select the top ${o} ${1===o?"asset":"assets"} for the available slot${1===o?"":"s"}.`:"No empty slots available. Select a single asset instead.":"No media assets yet.";this.mediaLibrarySelectAllInput.setAttribute("aria-label",n),this.mediaLibrarySelectAllInput.title=n}}async loadMediaLibraryAssets(e=this.mediaLibraryLoadToken){const t=this.getProjectMediaContextQuery(),i=await fetch("/api/project-media/list"+(t?`?${t}`:""),{headers:this.getProjectMediaRequestHeaders(),credentials:"same-origin"}),r=await i.json();if(!(null==r?void 0:r.success))throw new Error((null==r?void 0:r.message)||"Unable to load media library.");if(e!==this.mediaLibraryLoadToken)return!1;this.mediaLibraryState.assets=Array.isArray(r.assets)?r.assets:[],r.draftToken&&this.projectMediaDraftTokenInput&&(this.projectMediaDraftTokenInput.value=r.draftToken);const a=this.getMediaLibrarySelectionLimit(),o=this.shouldShowMediaLibraryCurrentSelections()?this.getCurrentTargetAssetIds():this.getCurrentTargetAssetIds().slice(0,a);return this.mediaLibraryState.selectedIds=new Set(o),this.mediaLibraryState.deselectedCurrentIds=new Set,this.renderMediaLibraryRows(),!0}async openMediaLibrary(e,t={}){var i,r,a;if(!this.mediaLibraryDialog)return;null==(i=this.analytics)||i.once("section opened media");const o=this.getMediaLibraryAcceptAttribute(e);for(const n of["image","video"])o.includes(n)&&(null==(r=this.analytics)||r.once(`media picker opened ${n}`));this.resetMediaLibraryState();const s=this.mediaLibraryLoadToken;if(this.mediaLibraryState.target=e,this.mediaLibraryReturnFocusEl=this.getMediaLibraryReturnFocusTarget(e),this.mediaLibraryState.autoApplyAfterUpload=!!t.autoApplyAfterUpload,this.mediaLibraryState.posterOnlyMode=!1,this.mediaLibraryRoot&&this.mediaLibraryRoot.setAttribute("aria-busy","true"),this.setMediaLibraryLoading(!0),this.mediaLibraryUploadInput&&(this.mediaLibraryUploadInput.accept=this.getMediaLibraryAcceptAttribute(e)),this.updateMediaLibraryDropzoneText(),this.mediaLibraryDialog.open||(this.mediaLibraryDialog.showModal(),requestAnimationFrame((()=>{var e,t;null==(t=null==(e=this.mediaLibraryDialog)?void 0:e.focus)||t.call(e,{preventScroll:!0})}
1))),"poster"===t.step&&t.videoSource)return this.mediaLibraryRoot&&this.mediaLibraryRoot.setAttribute("aria-busy","false"),this.setMediaLibraryLoading(!1),void(await this.enterMediaLibraryPosterStep(t.videoSource));try{const e=await this.loadMediaLibraryAssets(s);if(s!==this.mediaLibraryLoadToken)return;if(this.mediaLibraryRoot&&this.mediaLibraryRoot.setAttribute("aria-busy","false"),this.setMediaLibraryLoading(!1),!e)return;if(null==(a=t.initialFiles)?void 0:a.length){const e=await this.uploadMediaLibraryFiles(t.initialFiles);if(s!==this.mediaLibraryLoadToken)return;if(this.mediaLibraryState.autoApplyAfterUpload&&e.length){const t=e[e.length-1];if(this.shouldEnterMediaLibraryPosterStepForHero(t))return await this.enterMediaLibraryPosterStep({file:t.normalizedFile||null,sourceFile:t.sourceFile||null,streamUrl:t.streamUrl,url:t.url,filename:t.filename,assetId:t.id,asset:t}),delete t.normalizedFile,void delete t.sourceFile;this.applyMediaLibrarySelection()&&this.mediaLibraryDialog.close()}}}catch(l){if(s!==this.mediaLibraryLoadToken)return;this.mediaLibraryRoot&&this.mediaLibraryRoot.setAttribute("aria-busy","false"),this.setMediaLibraryLoading(!1),this.setMediaLibraryFeedback((null==l?void 0:l.message)||"Unable to load the media library.",!0)}}handleMediaLibraryRowsClick(e){var t,i;const r=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"[data-media-library-row]");r&&r.classList.contains("is-poster-entry-current")&&(e.target.closest("[data-media-library-checkbox]")||(e.preventDefault(),e.stopPropagation(),this.enterHeroPosterStepFromCurrentSelection()))}handleMediaLibraryRowsMouseOver(e){var t,i,r,a;const o=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"[data-media-library-preview]");if(!o||!(null==(r=this.mediaLibraryRows)?void 0:r.contains(o)))return;if(o.contains(e.relatedTarget))return;const s=o.closest("[data-media-library-row]"),l=parseInt((null==(a=null==s?void 0:s.dataset)?void 0:a.assetId)||"",10);if(Number.isNaN(l))return;const n=this.mediaLibraryState.assets.find((e=>e.id===l))||null;this.showMediaLibraryPreviewPopover(o,n)}handleMediaLibraryRowsMouseOut(e){var t,i,r,a,o;const s=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"[data-media-library-preview]");s&&(null==(r=this.mediaLibraryRows)?void 0:r.contains(s))&&(s.contains(e.relatedTarget)||(null==(o=null==(a=this.mediaLibraryState.previewPopoverEl)?void 0:a.contains)?void 0:o.call(a,e.relatedTarget))||this.scheduleMediaLibraryPreviewPopoverHide())}handleMediaLibraryRowsChange(e){var t,i,r;const a=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"input[data-media-library-checkbox]");if(!a)return;const o=parseInt(a.value,10);if(Number.isNaN(o))return;let s=new Set(this.mediaLibraryState.selectedIds);const l=new Set(this.mediaLibraryState.deselectedCurrentIds),n=(this.shouldShowMediaLibraryCurrentSelections()?new Set(this.getCurrentTargetAssetIds()):new Set).has(o);if(e.isTrusted&&a.checked){const e=this.mediaLibraryState.assets.find((e=>e.id===o));e&&(null==(r=this.analytics)||r.once(`asset selected ${e.kind}`))}if(this.isMediaLibraryReplacementMode())return a.checked?(s.clear(),s.add(o)):n?s.clear():s.delete(o),this.mediaLibraryState.selectedIds=s,this.mediaLibraryState.deselectedCurrentIds=new Set,this.setMediaLibraryFeedback(""),void this.updateMediaLibrarySelectionUi();const d=n;if(a.checked)if(d)s.add(o),l.delete(o);else if(n)s.add(o),l.delete(o);else if(this.getMediaLibrarySelectionLimit()<=1)s=U(this.getMediaLibraryLockedCurrentIds(),o),l.clear();else{if(this.getMediaLibraryRemainingAssetCount()<=0)return a.checked=!1,void this.updateMediaLibrarySelectionUi();s.add(o)}else{if(d)return a.checked=!0,void this.updateMediaLibrarySelectionUi();n?(s.delete(o),l.add(o)):s.delete(o)}this.mediaLibraryState.selectedIds=s,this.mediaLibraryState.deselectedCurrentIds=l,this.setMediaLibraryFeedback(""),this.updateMediaLibrarySelectionUi()}handleMediaLibrarySelectAllChange(e){const t=null==e?void 0:e.target;if(!t||t.disabled)return;if(!t.checked)return this.mediaLibraryState.selectedIds=this.shouldShowMediaLibraryCurrentSelections()?new Set(this.getCurrentTargetAssetIds()):new Set,this.mediaLibraryState.deselectedCurrentIds=new Set,this.setMediaLibraryFeedback(""),void this.updateMediaLibrarySelectionUi();const i=this.getMediaLibraryFilteredAssets(),r=this.getMediaLibraryRemainingAssetCount(),a=this.shouldShowMediaLibraryCurrentSelections()?new Set(this.getCurrentTargetAssetIds()):new Set,o=i.filter((e=>!a.has(e.id))).slice(0,r>0?r:i.length).map((e=>e.id));this.mediaLibraryState.selectedIds=function(e,t){const i=O(e);
1return Array.from(t||[]).forEach((e=>i.add(e))),i}(this.getMediaLibraryLockedCurrentIds(),o),r>0&&i.length>r?this.setMediaLibraryFeedback(`Selected the first ${r} assets available for this field.`,!1):this.setMediaLibraryFeedback(""),this.updateMediaLibrarySelectionUi()}handleMediaLibrarySelectAllClick(e){const t=null==e?void 0:e.target;t&&t.disabled}handleMediaLibraryStatusClick(e){var t,i,r,a,o,s,l,n,d;const c=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"[data-media-library-status-cancel]");if(c&&(null==(r=this.mediaLibraryUploadStatus)?void 0:r.contains(c))){e.preventDefault(),e.stopPropagation();const t=c.closest("[data-media-library-status-id]"),i=(null==(a=null==t?void 0:t.dataset)?void 0:a.mediaLibraryStatusId)||"";return null==(o=this.mediaLibraryActiveOperations.get(i))||o.abort(),void this.updateMediaLibraryStatus(i,{type:"error",label:"Video processing cancelled.",cancelable:!1})}const u=null==(l=null==(s=null==e?void 0:e.target)?void 0:s.closest)?void 0:l.call(s,"[data-media-library-status-dismiss]");if(!u||!(null==(n=this.mediaLibraryUploadStatus)?void 0:n.contains(u)))return;e.preventDefault(),e.stopPropagation();const h=u.closest("[data-media-library-status-id]");this.removeMediaLibraryStatus((null==(d=null==h?void 0:h.dataset)?void 0:d.mediaLibraryStatusId)||"")}handleMediaLibraryAddClick(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.mediaLibraryUploadInput&&(this.mediaLibraryUploadInput.value="",this.mediaLibraryUploadInput.click())}handleMediaLibraryDropzoneDragOver(e){e.preventDefault(),this.mediaLibraryDropzone&&(e.dataTransfer.dropEffect="copy",this.mediaLibraryDropzone.classList.add("is-drag-over"))}handleMediaLibraryDropzoneDragLeave(e){this.mediaLibraryDropzone&&(this.mediaLibraryDropzone.contains(e.relatedTarget)||this.mediaLibraryDropzone.classList.remove("is-drag-over"))}handleMediaLibraryDropzoneClick(e){this.mediaLibraryDropzone&&this.mediaLibraryUploadInput&&this.mediaLibraryDropzone.contains(null==e?void 0:e.target)&&this.mediaLibraryUploadInput.click()}async handleMediaLibraryDropzoneDrop(e){var t;e.preventDefault(),this.mediaLibraryDropzone&&this.mediaLibraryDropzone.classList.remove("is-drag-over");const i=Array.from((null==(t=null==e?void 0:e.dataTransfer)?void 0:t.files)||[]);i.length&&await this.uploadMediaLibraryFiles(i)}async handleMediaLibraryUploadChange(e){var t;const i=Array.from((null==(t=null==e?void 0:e.target)?void 0:t.files)||[]);i.length&&(await this.uploadMediaLibraryFiles(i),e.target.value="")}async uploadMediaLibraryFiles(e){var t,i,a,o,s,l,n,d,c,u,h,m;const p=[],v=this.mediaLibraryState.target;for(const y of Array.from(e||[])){const e=E(y)?"video":"image";null==(t=this.analytics)||t.once(`upload attempted ${e}`);const b=`upload-${Date.now()}-${Math.random().toString(36).slice(2)}`,f=this.getMediaLibraryTargetValidationMessage(y,v);if(f){null==(i=this.analytics)||i.once(`upload failed ${e} validation`),this.pushMediaLibraryStatus(y.name,"error",f);continue}let S=y,L=null;const k=new AbortController;if(this.mediaLibraryActiveOperations.set(b,k),this.setMediaLibraryStatus(b,y.name,"uploading","Processing"),this.updateMediaLibraryStatus(b,{cancelable:!0,stage:"processing",progress:null}),E(y))try{const e=await T(y,{signal:k.signal,onProgress:({stage:e,progress:t})=>{const i="optimizing"===e?"optimizing":"processing";this.updateMediaLibraryStatus(b,{label:"optimizing"===i?"Optimizing":"Processing",stage:i,progress:Number.isFinite(t)?Math.max(0,Math.min(1,t)):null})}});S=e.file,L=e.metadata,this.normalizedProjectVideoFiles.add(S),this.normalizedProjectVideoMetadata.set(S,L)}catch(g){null==(a=this.analytics)||a.once(`upload failed ${e} ${r(g,"media")}`),this.mediaLibraryActiveOperations.delete(b),this.updateMediaLibraryStatus(b,{type:"error",label:(null==g?void 0:g.message)||"Video processing failed.",cancelable:!1}),this.sendProjectVideoNormalizationTelemetry({status:"video_processing_cancelled"===(null==g?void 0:g.code)?"cancelled":"failed",failureReason:(null==g?void 0:g.code)||"video_processing_failed",...(null==g?void 0:g.metadata)||{}});continue}let w;this.updateMediaLibraryStatus(b,{label:"Uploading",stage:"uploading",progress:0,cancelable:!0});try{w=await this.uploadProjectMediaFile(S,"",(({loaded:e,total:t,percent:i,lengthComputable:r})=>{this.updateMediaLibraryStatus(b,{label:"Uploading",stage:"uploading",progress:r&&Number.isFinite(i)?Math.max(0,Math.min(1,i/100)):null})}),L,k.signal)}catch(g){null==(o=this.analytics)||o.once(`upload failed ${e} ${r(g,"media")}`),this.mediaLibraryActiveOperations.delete(b),this.updateMediaLibraryStatus(b,{type:"error",label:(null==g?void 0:g.message)||"Upload failed",cancelable:!1});continue}if(null==w?void 0:w.requiresDecision){this.updateMediaLibraryStatus(b,{type:"warning",label:"Needs action, see above."});const t=await this.promptMediaLibraryAction({message:`A file named "${(null==(s=w.conflict)?void 0:s.filename)||y.name}" already exists.`,subtext:"What would you like to do?",previewAsset:(null==(l=null==w?void 0:w.conflict)?void 0:l.asset)||null,actions:[{id:"cancel",label:"Cancel",variant:"cancel"}
1,{id:"overwrite",label:"Replace",variant:"danger-outline"},{id:"saveAsNew",label:"Save as New",variant:"accent-outline"},{id:"selectExisting",label:"Select Existing",variant:"primary"}]});if(!t||"cancel"===t){this.mediaLibraryActiveOperations.delete(b),this.updateMediaLibraryStatus(b,{type:"error",label:"Skipped",cancelable:!1});continue}if("selectExisting"===t){null==(n=this.analytics)||n.once(`asset selected ${e}`);const t=(null==(d=null==w?void 0:w.conflict)?void 0:d.asset)||null;if(!t){this.pushMediaLibraryStatus(y.name,"error","Existing asset unavailable");continue}return this.upsertMediaLibraryAsset(t,{select:!0,onlySelection:!0}),this.renderMediaLibraryRows(),this.updateMediaLibraryStatus(b,{name:t.filename||y.name,type:"success",label:"Selected Existing"}),this.mediaLibraryActiveOperations.delete(b),this.shouldEnterMediaLibraryPosterStepForHero(t)?(this.mediaLibraryState.posterOnlyMode=!1,await this.enterMediaLibraryPosterStep(this.getHeroPosterVideoSourceFromAsset(t)),p):this.applyMediaLibrarySelection()?(null==(c=this.mediaLibraryDialog)||c.close(),p):(this.setMediaLibraryFeedback("Unable to select the existing asset for this field.",!0),p)}this.updateMediaLibraryStatus(b,{type:"uploading",label:"Uploading",stage:"uploading",progress:0,cancelable:!0});try{w=await this.uploadProjectMediaFile(S,t,(({percent:e,lengthComputable:t})=>{this.updateMediaLibraryStatus(b,{label:"Uploading",stage:"uploading",progress:t&&Number.isFinite(e)?Math.max(0,Math.min(1,e/100)):null})}),L,k.signal)}catch(g){null==(u=this.analytics)||u.once(`upload failed ${e} ${r(g,"media")}`),this.mediaLibraryActiveOperations.delete(b),this.updateMediaLibraryStatus(b,{type:"error",label:(null==g?void 0:g.message)||"Upload failed",cancelable:!1});continue}}(null==w?void 0:w.success)&&w.asset?(w.draftToken&&this.projectMediaDraftTokenInput&&(this.projectMediaDraftTokenInput.value=w.draftToken),L&&(Object.defineProperty(w.asset,"normalizedFile",{value:S,configurable:!0}),Object.defineProperty(w.asset,"sourceFile",{value:y,configurable:!0})),this.upsertMediaLibraryAsset(w.asset,{select:!0}),this.mediaLibraryState.lastAppliedAssetIds.push(w.asset.id),p.push(w.asset),null==(m=this.analytics)||m.once(`upload succeeded ${e}`),this.updateMediaLibraryStatus(b,{name:w.asset.filename,type:"success",label:"Uploaded",cancelable:!1}),this.mediaLibraryActiveOperations.delete(b)):(null==(h=this.analytics)||h.once(`upload failed ${e} media`),this.mediaLibraryActiveOperations.delete(b),this.updateMediaLibraryStatus(b,{type:"error",label:this.getMediaLibraryErrorMessage(w),cancelable:!1}))}return this.getMediaLibrarySelectionLimit()<=1&&p.length&&(this.mediaLibraryState.selectedIds=U(this.getMediaLibraryLockedCurrentIds(),p[p.length-1].id)),this.renderMediaLibraryRows(),p}async uploadProjectMediaFile(e,t="",i=null,r=null,a=null){const o=new FormData,s=this.getProjectMediaContextPayload();return Object.entries(s).forEach((([e,t])=>{t&&o.append(e,t)})),o.append("file",e),r&&o.append("normalizationTelemetry",JSON.stringify(r)),t&&o.append("conflictStrategy",t),new Promise(((e,t)=>{const r=new XMLHttpRequest;r.open("POST","/api/project-media/upload",!0),r.withCredentials=!0;const s=()=>r.abort();null==a||a.addEventListener("abort",s,{once:!0});const l=this.getProjectMediaRequestHeaders();Object.entries(l).forEach((([e,t])=>{r.setRequestHeader(e,t)})),"function"==typeof i&&r.upload.addEventListener("progress",(e=>{const t=e.lengthComputable&&e.total>0?Math.round(e.loaded/e.total*100):null;i({loaded:e.loaded,total:e.total,lengthComputable:e.lengthComputable,percent:t})})),r.addEventListener("load",(()=>{null==a||a.removeEventListener("abort",s);try{if(r.status<200||r.status>=300)return void t(Object.assign(new Error("Upload failed"),{status:r.status}));e(JSON.parse(r.responseText||"{}"))}catch(i){t(Object.assign(new Error("Upload failed"),{status:0}))}})),r.addEventListener("error",(()=>{null==a||a.removeEventListener("abort",s),t(Object.assign(new Error("Upload failed"),{status:0}))})),r.addEventListener("abort",(()=>{null==a||a.removeEventListener("abort",s),t(new Error("Upload cancelled"))})),r.send(o)}))}async uploadPosterProjectMediaFile(e,t="overwrite"){let i=null,r=null;for(let o=0;o<2;o+=1){try{let r=await this.uploadProjectMediaFile(e);
1if((null==r?void 0:r.requiresDecision)&&(r=await this.uploadProjectMediaFile(e,t)),(null==r?void 0:r.success)||1===o)return r;i=r}catch(a){if(r=a,1===o)throw a}await new Promise((e=>window.setTimeout(e,150)))}if(r)throw r;return i}getMediaLibraryTargetValidationMessage(e,t){var i,r,a;if(!e||!t)return null;const o=E(e)?"video":e.type.startsWith("image/")?"image":null;if(!o||!(null==(i=t.acceptedKinds)?void 0:i.includes(o))){if(1===(null==(r=t.acceptedKinds)?void 0:r.length)&&"image"===t.acceptedKinds[0])return"Only image files can be used for this field.";if(1===(null==(a=t.acceptedKinds)?void 0:a.length)&&"video"===t.acceptedKinds[0])return"Only video files can be used for this field."}return"image"===o?e.size>ne?`Image file size: ${de} maximum. '${e.name}' (${this.formatFileSizeMb(e.size)} MB)`:null:"video"===o?D(e):"Unsupported file type."}async normalizePendingProjectVideoInputs(){var e,t;const i=Array.from((null==(e=this.form)?void 0:e.querySelectorAll('input[type="file"]'))||[]);for(const a of i){const e=Array.from(a.files||[]);if(e.some((e=>E(e)&&!this.normalizedProjectVideoFiles.has(e))))try{a.setCustomValidity("");const t=new DataTransfer;for(const i of e){if(!E(i)||this.normalizedProjectVideoFiles.has(i)){t.items.add(i);continue}const e=await T(i);this.normalizedProjectVideoFiles.add(e.file),this.normalizedProjectVideoMetadata.set(e.file,e.metadata),this.pendingProjectVideoTelemetry.push(e.metadata),t.items.add(e.file)}a.files=t.files}catch(r){throw a.setCustomValidity((null==r?void 0:r.message)||"Video processing failed."),null==(t=a.reportValidity)||t.call(a),a.addEventListener("change",(()=>a.setCustomValidity("")),{once:!0}),this.sendProjectVideoNormalizationTelemetry({status:"video_processing_cancelled"===(null==r?void 0:r.code)?"cancelled":"failed",failureReason:(null==r?void 0:r.code)||"video_processing_failed",...(null==r?void 0:r.metadata)||{}}),r}}}sendProjectVideoNormalizationTelemetry(e){e&&"object"==typeof e&&fetch("/api/project-media/normalization-telemetry",{method:"POST",credentials:"same-origin",headers:{...this.getProjectMediaRequestHeaders(),"Content-Type":"application/json"},body:JSON.stringify(e)}).catch((()=>{}))}promptMediaLibraryAction({message:e,subtext:t="",previewAsset:i=null,actions:r}){if(!this.mediaLibraryPrompt||!this.mediaLibraryPromptText||!this.mediaLibraryPromptActions)return Promise.resolve(null);if(this.closeMediaLibraryPrompt(!0),this.mediaLibraryPrompt.hidden=!1,this.mediaLibraryPromptText.textContent=e||"",this.mediaLibraryPromptSubtext&&(this.mediaLibraryPromptSubtext.textContent=t||"",this.mediaLibraryPromptSubtext.hidden=!t),this.mediaLibraryPromptPreview){const e="image"===(null==i?void 0:i.kind)&&(i.previewUrl||i.url)||"";e?(this.mediaLibraryPromptPreview.hidden=!1,this.mediaLibraryPromptPreview.innerHTML=`<img src="${this.escapeHtml(e)}" alt="${this.escapeHtml((null==i?void 0:i.filename)||"Existing asset")}">`):(this.mediaLibraryPromptPreview.hidden=!0,this.mediaLibraryPromptPreview.innerHTML="")}return this.mediaLibraryPromptActions.innerHTML="",new Promise((e=>{this.mediaLibraryState.promptResolver=e,(r||[]).forEach((e=>{const t=document.createElement("button");t.type="button",t.className="button",t.textContent=e.label,"cancel"===e.id&&(t.dataset.dialogAction="cancel"),e.variant&&(t.dataset.variant=e.variant),t.addEventListener("click",(()=>{const t=this.mediaLibraryState.promptResolver;this.mediaLibraryState.promptResolver=null,this.mediaLibraryPrompt.hidden=!0,this.mediaLibraryPromptActions.innerHTML="",null==t||t(e.id)}),{once:!0}),this.mediaLibraryPromptActions.appendChild(t)}))}))}closeMediaLibraryPrompt(e=!1){this.mediaLibraryPrompt&&(this.mediaLibraryPrompt.hidden=!0),this.mediaLibraryPromptPreview&&(this.mediaLibraryPromptPreview.hidden=!0,this.mediaLibraryPromptPreview.innerHTML=""),this.mediaLibraryPromptSubtext&&(this.mediaLibraryPromptSubtext.hidden=!0,this.mediaLibraryPromptSubtext.textContent=""),this.mediaLibraryPromptActions&&(this.mediaLibraryPromptActions.innerHTML=""),!e&&this.mediaLibraryState.promptResolver&&this.mediaLibraryState.promptResolver(null),this.mediaLibraryState.promptResolver=null}resetMediaLibraryPosterStep(){this.destroyMediaLibraryPosterVideo(),this.clearMediaLibraryPosterCustomImage(),this.mediaLibraryState.posterLoadToken+=1,this.mediaLibraryState.step="browse",this.mediaLibraryState.pendingHeroVideo=null,this.mediaLibraryState.posterSelection=null,this.mediaLibraryState.posterOnlyMode=!1,this.mediaLibraryRoot&&this.mediaLibraryRoot.classList.remove("is-poster-step"),this.mediaLibraryPosterStep&&(this.mediaLibraryPosterStep.hidden=!0,this.mediaLibraryPosterStep.setAttribute("aria-busy","false")),this.mediaLibraryPosterLoading&&(this.mediaLibraryPosterLoading.hidden=!0),this.mediaLibraryPosterLoadingText&&(this.mediaLibraryPosterLoadingText.textContent="Loading video..."),this.mediaLibraryPosterError&&(this.mediaLibraryPosterError.hidden=!0,this.mediaLibraryPosterError.textContent=""),this.mediaLibraryPosterBody&&(this.mediaLibraryPosterBody.hidden=!0),this.mediaLibraryPosterPreview&&(this.mediaLibraryPosterPreview.innerHTML=""),this.mediaLibraryState.posterProgrammaticSeek=!1,this.mediaLibraryState.posterSeekToken+=1,this.mediaLibraryBrowseFooter&&(this.mediaLibraryBrowseFooter.hidden=!1),this.mediaLibraryPosterFooter&&(this.mediaLibraryPosterFooter.hidden=!0),this.mediaLibraryDialogHeading&&this.mediaLibraryState.savedDialogHeading&&(this.mediaLibraryDialogHeading.textContent=this.mediaLibraryState.savedDialogHeading),this.mediaLibraryState.savedDialogHeading="",this.mediaLibraryPosterConfirmBtn&&(this.mediaLibraryPosterConfirmBtn.disabled=!0),this.mediaLibraryPosterBackBtn&&(this.mediaLibraryPosterBackBtn.disabled=!1)}setMediaLibraryPosterStepUi(e){this.mediaLibraryRoot&&this.mediaLibraryRoot.classList.toggle("is-poster-step",!!e),this.mediaLibraryPosterStep&&(this.mediaLibraryPosterStep.hidden=!e),this.mediaLibraryBrowseFooter&&(this.mediaLibraryBrowseFooter.hidden=!!e),this.mediaLibraryPosterFooter&&(this.mediaLibraryPosterFooter.hidden=!e),e&&this.mediaLibraryDialogHeading&&(this.mediaLibraryState.savedDialogHeading||(this.mediaLibraryState.savedDialogHeading=this.mediaLibraryDialogHeading.textContent||"Media Library"),this.mediaLibraryDialogHeading.textContent="Set Video Poster")}setMediaLibraryPosterBusy(e,t="Loading video..."){this.mediaLibraryPosterStep&&this.mediaLibraryPosterStep.setAttribute("aria-busy",e?"true":"false"),this.mediaLibraryPosterLoading&&(this.mediaLibraryPosterLoading.hidden=!e),this.mediaLibraryPosterLoadingText&&(this.mediaLibraryPosterLoadingText.textContent=t),this.mediaLibraryPosterBody&&(this.mediaLibraryPosterBody.hidden=!!e),this.mediaLibraryPosterBackBtn&&(this.mediaLibraryPosterBackBtn.disabled=!!e)}getHeroVideoPosterPreviewUrl(){var e,t,i,r,a;const o=(null==(t=null==(e=this.mediaHero)?void 0:e.dataset)?void 0:t.posterPreviewUrl)||"";if(o)return o;return(null==(i=this.form)?void 0:i.querySelector('input[name="fields[portfolioFeaturedAssetVideoPoster][]"]:checked'))&&(null==(a=null==(r=this.mediaHero)?void 0:r.dataset)?void 0:a.posterPreviewUrl)||""}setVideoPosterAssetId(e,t=""){var i;if(!this.form||!e)return;this.form.querySelectorAll('input[name="fields[portfolioFeaturedAssetVideoPoster][]"]').forEach((e=>e.remove()));(this.mediaHero||this.form).insertAdjacentHTML("afterbegin",this.getRelationInputMarkup("fields[portfolioFeaturedAssetVideoPoster][]",e,'data-media-keep="video-poster"')),this.mediaHero&&(this.mediaHero.dataset.posterAssetId=String(e),t&&(this.mediaHero.dataset.posterPreviewUrl=t)),this.refreshHeroVideoPosterPreview(),null==(i=this.syncProjectMediaPreviewState)||i.call(this)}clearVideoPosterAsset(){var e;null==(e=this.form)||e.querySelectorAll('input[name="fields[portfolioFeaturedAssetVideoPoster][]"]').forEach((e=>{e.checked=!1,e.remove()})),this.mediaHero&&(delete this.mediaHero.dataset.posterAssetId,delete this.mediaHero.dataset.posterPreviewUrl)}refreshHeroVideoPosterPreview(){if(!this.mediaHero||"video"!==this.mediaHero.dataset.previewKind)return;const e=this.mediaHero.querySelector("video"),t=this.getHeroVideoPosterPreviewUrl();e&&t&&e.getAttribute("poster")!==t&&(e.setAttribute("poster",t),(e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA||e.currentTime>0)&&(e.pause(),e.load()),e.setAttribute("data-poster-cover",""))}handleMediaHeroVideoPlaying(e){const t=null==e?void 0:e.target;t instanceof HTMLVideoElement&&t.removeAttribute("data-poster-cover")}resetFeaturedHeroVideoForPreview(){var e;if(!this.mediaHero)return;if("video"!==(this.mediaHero.dataset.featuredPreviewKind||this.mediaHero.dataset.previewKind||""))return;if((null==(e=this.hasFeaturedMediaAsset)?void 0:e.call(this))&&0!==this.projectMediaPreviewActiveIndex)return;const t=this.mediaHero.querySelector(".project-media-hero-content video");if(!t)return;const i=this.getHeroVideoPosterPreviewUrl();i?t.setAttribute("poster",i):t.removeAttribute("poster"),t.pause();try{t.currentTime=0}catch(r){}"function"==typeof t.load&&t.load()}isHeroSlotVideo(){return!!this.mediaHero&&(this.mediaHero.classList.contains("is-video-hero")||"video"===this.mediaHero.dataset.previewKind||"video"===this.mediaHero.dataset.featuredPreviewKind)}canEnterHeroPosterFromCurrentSelection(){const e=this.mediaLibraryState.target;if("hero"!==(null==e?void 0:e.type)||!this.isMediaLibraryReplacementMode(e)||!this.isHeroSlotVideo())return!1;if(this.getMediaLibraryNewSelectedIds(e).length>0)return!1;if(this.mediaLibraryState.deselectedCurrentIds.size>0)return!1;const t=this.getCurrentTargetAssetIds(e);if(1!==t.length)return!1;const i=this.mediaLibraryState.assets.find((e=>e.id===t[0]))||null;return"video"===(null==i?void 0:i.kind)}getHeroPosterVideoSourceFromAsset(e){return{streamUrl:e.streamUrl,url:e.url,filename:e.filename,assetId:e.id,asset:e}}enterHeroPosterStepFromCurrentSelection(){if(!this.canEnterHeroPosterFromCurrentSelection())return!1;const e=this.getCurrentTargetAssetIds(),t=this.mediaLibraryState.assets.find((t=>t.id===e[0]))||null;return!(!t||"video"!==t.kind)&&(this.mediaLibraryState.posterOnlyMode=!0,this.enterMediaLibraryPosterStep(this.getHeroPosterVideoSourceFromAsset(t)),!0)}getMediaLibraryPosterVideo(){var e,t,i;return null!=(i=null==(t=null==(e=this.mediaLibraryState.posterVideoPlayerEl)?void 0:e.querySelector)?void 0:t.call(e,"video"))?i:null}getMediaLibraryPosterCanvasForUpload(){var e,t;return w(this.getMediaLibraryPosterVideo(),null!=(t=null==(e=this.mediaLibraryState.posterSelection)?void 0:e.canvas)?t:null)}hasMediaLibraryPosterSelection(){return!(!this.mediaLibraryState.posterCustomImage&&!this.getMediaLibraryPosterCanvasForUpload())}syncMediaLibraryPosterConfirmUi(){if(!this.mediaLibraryPosterConfirmBtn)return;const e=!!this.mediaLibraryState.posterCustomImage;this.mediaLibraryPosterConfirmBtn.textContent=e?"Use Custom Poster":"Set Poster",this.mediaLibraryPosterConfirmBtn.disabled=!this.hasMediaLibraryPosterSelection()}setMediaLibraryPosterCustomError(e=""){this.mediaLibraryPosterCustomError&&(this.mediaLibraryPosterCustomError.innerHTML=q(e,{dismissAttribute:"data-media-library-poster-custom-error-dismiss"}),this.mediaLibraryPosterCustomError.hidden=!e)}handleMediaLibraryPosterCustomErrorClick(e){var t,i;(null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"[data-media-library-poster-custom-error-dismiss]"))&&(e.preventDefault(),this.setMediaLibraryPosterCustomError(""))}async getMediaLibraryPosterImageValidationMessage(e){if(!e)return"Choose an image file.";if(!ce.has(e.type))return"Poster must be a JPG, PNG, GIF, or WebP image.";if(e.size>P)return`Image file size: ${de} maximum. '${e.name}' (${this.formatFileSizeMb(e.size)} MB)`;const t=await this.readImageFileDimensions(e);return t?t.width>M||t.height>C?`Image dimensions: ${M} × ${C} maximum. '${e.name}' (${t.width} × ${t.height})`:null:`'${e.name}' could not be read as an image.`}readImageFileDimensions(e){return new Promise((t=>{const i=URL.createObjectURL(e),r=new Image;r.onload=()=>
1{URL.revokeObjectURL(i),t({width:r.naturalWidth,height:r.naturalHeight})},r.onerror=()=>{URL.revokeObjectURL(i),t(null)},r.src=i}))}async setMediaLibraryPosterCustomImage(e){var t,i,r;if("poster"!==this.mediaLibraryState.step)return;this.setMediaLibraryPosterCustomError("");const a=await this.getMediaLibraryPosterImageValidationMessage(e);if("poster"!==this.mediaLibraryState.step)return;if(a)return void this.setMediaLibraryPosterCustomError(a);this.clearMediaLibraryPosterCustomImage({syncUi:!1});const o=URL.createObjectURL(e);this.mediaLibraryState.posterCustomImage=e,this.mediaLibraryState.posterCustomImageObjectUrl=o,this.mediaLibraryPosterCustomThumb&&(this.mediaLibraryPosterCustomThumb.src=o,this.mediaLibraryPosterCustomThumb.hidden=!1),this.mediaLibraryPosterCustomName&&(this.mediaLibraryPosterCustomName.textContent=e.name),this.mediaLibraryPosterCustomPreview&&(this.mediaLibraryPosterCustomPreview.hidden=!1),this.mediaLibraryPosterDropzone&&(this.mediaLibraryPosterDropzone.hidden=!0),null==(t=this.mediaLibraryPosterBody)||t.classList.add("has-custom-poster"),null==(r=null==(i=this.getMediaLibraryPosterVideo())?void 0:i.pause)||r.call(i),this.syncMediaLibraryPosterConfirmUi()}clearMediaLibraryPosterCustomImage({syncUi:e=!0}={}){var t;this.mediaLibraryState.posterCustomImageObjectUrl&&URL.revokeObjectURL(this.mediaLibraryState.posterCustomImageObjectUrl),this.mediaLibraryState.posterCustomImage=null,this.mediaLibraryState.posterCustomImageObjectUrl="",this.mediaLibraryPosterCustomThumb&&(this.mediaLibraryPosterCustomThumb.removeAttribute("src"),this.mediaLibraryPosterCustomThumb.hidden=!0),this.mediaLibraryPosterCustomName&&(this.mediaLibraryPosterCustomName.textContent=""),this.mediaLibraryPosterCustomPreview&&(this.mediaLibraryPosterCustomPreview.hidden=!0),this.mediaLibraryPosterDropzone&&(this.mediaLibraryPosterDropzone.hidden=!1,this.mediaLibraryPosterDropzone.classList.remove("is-drag-over")),this.mediaLibraryPosterUploadInput&&(this.mediaLibraryPosterUploadInput.value=""),null==(t=this.mediaLibraryPosterBody)||t.classList.remove("has-custom-poster"),this.setMediaLibraryPosterCustomError(""),e&&this.syncMediaLibraryPosterConfirmUi()}handleMediaLibraryPosterDropzoneClick(e){var t;this.mediaLibraryPosterUploadInput&&(null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.mediaLibraryPosterUploadInput.value="",this.mediaLibraryPosterUploadInput.click())}handleMediaLibraryPosterDropzoneKeyDown(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.handleMediaLibraryPosterDropzoneClick(e))}handleMediaLibraryPosterDropzoneDragOver(e){e.preventDefault(),e.stopPropagation(),this.mediaLibraryPosterDropzone&&(e.dataTransfer.dropEffect="copy",this.mediaLibraryPosterDropzone.classList.add("is-drag-over"))}handleMediaLibraryPosterDropzoneDragLeave(e){this.mediaLibraryPosterDropzone&&(this.mediaLibraryPosterDropzone.contains(e.relatedTarget)||this.mediaLibraryPosterDropzone.classList.remove("is-drag-over"))}async handleMediaLibraryPosterDropzoneDrop(e){var t,i;e.preventDefault(),e.stopPropagation(),null==(t=this.mediaLibraryPosterDropzone)||t.classList.remove("is-drag-over");const r=Array.from((null==(i=null==e?void 0:e.dataTransfer)?void 0:i.files)||[])[0]||null;r&&await this.setMediaLibraryPosterCustomImage(r)}async handleMediaLibraryPosterUploadChange(e){var t;const i=Array.from((null==(t=null==e?void 0:e.target)?void 0:t.files)||[])[0]||null;i&&(await this.setMediaLibraryPosterCustomImage(i),(null==e?void 0:e.target)&&(e.target.value=""))}handleMediaLibraryPosterCustomRemoveClick(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.clearMediaLibraryPosterCustomImage()}destroyMediaLibraryPosterVideo(){var e,t,i;null==(e=this.mediaLibraryState.posterVideoFetchController)||e.abort(),this.mediaLibraryState.posterVideoFetchController=null;const r=this.mediaLibraryState.posterVideoPlayerEl,a=this.getMediaLibraryPosterVideo();if(a&&this.mediaLibraryState.posterVideoSeekHandler&&a.removeEventListener("seeked",this.mediaLibraryState.posterVideoSeekHandler),a&&this.mediaLibraryState.posterVideoPauseHandler&&a.removeEventListener("pause",this.mediaLibraryState.posterVideoPauseHandler),r){const e=p(this.mediaLibraryPosterPreview||document),a=null==(t=null==e?void 0:e.players)?void 0:t.get(r);null==a||a.destroy(),null==(i=null==e?void 0:e.players)||i.delete(r)}this.mediaLibraryState.posterVideoObjectUrl&&(URL.revokeObjectURL(this.mediaLibraryState.posterVideoObjectUrl),this.mediaLibraryState.posterVideoObjectUrl=""),this.mediaLibraryState.posterVideoPlayerEl=null,this.mediaLibraryState.posterVideoSeekHandler=null,this.mediaLibraryState.posterVideoPauseHandler=null,this.mediaLibraryPosterPreview&&(this.mediaLibraryPosterPreview.innerHTML="")}canDecodePosterVideoSource(e,t=8e3){return new Promise((i=>{const r=document.createElement("video");let a=!1;const o=e=>{if(!a){a=!0,window.clearTimeout(s),r.removeAttribute("src");try{r.load()}catch(t){}i(e)}},s=window.setTimeout((()=>o(!1)),t);
1r.preload="metadata",r.playsInline=!0,r.muted=!0,r.addEventListener("loadeddata",(()=>o(r.videoWidth>0&&r.videoHeight>0)),{once:!0}),r.addEventListener("error",(()=>o(!1)),{once:!0}),r.src=e}))}async fetchPosterVideoBlob(e,{signal:t,expectedBytes:i=0,onProgress:r}={}){const a=new URL(e,window.location.href).href,o=await fetch(a,{credentials:"same-origin",signal:t});if(!o.ok)throw new Error(`Unable to load video (${o.status})`);const s=Number(o.headers.get("content-length"))||i||0,l=o.headers.get("content-type")||"video/mp4";if(!o.body||"function"!=typeof o.body.getReader)return o.blob();const n=o.body.getReader(),d=[];let c=0;for(;;){const{done:e,value:t}=await n.read();if(e)break;d.push(t),c+=t.byteLength,null==r||r(s>0?Math.min(c/s,1):null)}return new Blob(d,{type:l})}async resolveMediaLibraryPosterVideoSrc(e){var t;if(e.sourceFile){const t=URL.createObjectURL(e.sourceFile);if(await this.canDecodePosterVideoSource(t))return{src:t,objectUrl:t};URL.revokeObjectURL(t)}if(e.file){const t=URL.createObjectURL(e.file);return{src:t,objectUrl:t}}const i=e.streamUrl||e.url||"";if(!i)return{src:"",objectUrl:""};const r=new AbortController;this.mediaLibraryState.posterVideoFetchController=r;try{const a=await this.fetchPosterVideoBlob(i,{signal:r.signal,expectedBytes:Number(null==(t=e.asset)?void 0:t.sizeBytes)||0,onProgress:t=>{if(this.mediaLibraryState.pendingHeroVideo!==e)return;const i=Number.isFinite(t)?`Loading video... ${Math.round(100*t)}%`:"Loading video...";this.setMediaLibraryPosterBusy(!0,i)}}),o=URL.createObjectURL(a);return{src:o,objectUrl:o}}catch(a){return"AbortError"===(null==a?void 0:a.name)?{src:"",objectUrl:""}:{src:i,objectUrl:""}}finally{this.mediaLibraryState.posterVideoFetchController===r&&(this.mediaLibraryState.posterVideoFetchController=null)}}async mountMediaLibraryPosterVideo(e){if(this.destroyMediaLibraryPosterVideo(),!this.mediaLibraryPosterPreview||!e)return;const{src:t,objectUrl:i}=await this.resolveMediaLibraryPosterVideoSrc(e);if(this.mediaLibraryState.pendingHeroVideo!==e)return void(i&&URL.revokeObjectURL(i));if(this.mediaLibraryState.posterVideoObjectUrl=i,!t)return;const r=document.getElementById("custom-video-player-chrome"),a=document.createElement("div");a.className="custom-video-player media-library-poster-video-player",a.setAttribute("data-custom-video-player",""),a.setAttribute("data-custom-video-mode","poster-picker");const o=document.createElement("video");o.src=t,o.preload="auto",o.playsInline=!0,o.muted=!0,o.pause(),a.appendChild(o),(null==r?void 0:r.content)&&a.appendChild(r.content.cloneNode(!0)),this.mediaLibraryPosterPreview.appendChild(a),this.mediaLibraryState.posterVideoPlayerEl=a,p(this.mediaLibraryPosterPreview),this.mediaLibraryState.posterVideoSeekHandler=()=>{this.handleMediaLibraryPosterVideoSeeked()},this.mediaLibraryState.posterVideoPauseHandler=()=>{this.handleMediaLibraryPosterVideoPause()},o.addEventListener("seeked",this.mediaLibraryState.posterVideoSeekHandler),o.addEventListener("pause",this.mediaLibraryState.posterVideoPauseHandler),await new Promise((e=>{o.readyState>=2?e():(o.addEventListener("loadeddata",(()=>e()),{once:!0}),o.addEventListener("error",(()=>e()),{once:!0}))}))}getMediaLibraryPosterVideoPlayer(){var e,t;const i=this.mediaLibraryState.posterVideoPlayerEl;if(!i)return null;const r=p(this.mediaLibraryPosterPreview||document);return null!=(t=null==(e=null==r?void 0:r.players)?void 0:e.get(i))?t:null}syncMediaLibraryPosterVideoProgress(e){const t=this.getMediaLibraryPosterVideoPlayer();if(t){if(t.setProgressSmooth(!1),Number.isFinite(e)){const i=t.getDuration();if(i>0)return void t.updateProgressUi(e/i)}t.syncProgressFromVideo()}}async seekMediaLibraryPosterVideo(e){const t=this.getMediaLibraryPosterVideo();if(!t||!Number.isFinite(e))return;const i=++this.mediaLibraryState.posterSeekToken;await new Promise((e=>{t.readyState>=1?e():(t.addEventListener("loadedmetadata",(()=>e()),{once:!0}),t.addEventListener("error",(()=>e()),{once:!0}))})),await new Promise((r=>{let a=!1;const o=()=>{a||(a=!0,r())},s=()=>{i===this.mediaLibraryState.posterSeekToken?(this.mediaLibraryState.posterProgrammaticSeek=!1,this.syncMediaLibraryPosterVideoProgress(t.currentTime),o()):o()},l=t.duration,n=Number.isFinite(l)&&l>0?Math.min(Math.max(e,0),Math.max(l-.05,0)):Math.max(e,0);if(Math.abs(t.currentTime-n)<.001)return this.syncMediaLibraryPosterVideoProgress(t.currentTime),void o();this.mediaLibraryState.posterProgrammaticSeek=!0,t.pause(),t.addEventListener("seeked",s,{once:!0});const d=this.getMediaLibraryPosterVideoPlayer();if(d)d.seekToTimestamp(n);else try{t.currentTime=n}catch(c){this.mediaLibraryState.posterProgrammaticSeek=!1,o()}window.setTimeout((()=>{a||(t.removeEventListener("seeked",s),i===this.mediaLibraryState.posterSeekToken&&(this.mediaLibraryState.posterProgrammaticSeek=!1),this.syncMediaLibraryPosterVideoProgress(t.currentTime),o())}),5e3)}))}handleMediaLibraryPosterVideoPause(){const e=this.getMediaLibraryPosterVideo();if(!(null==e?void 0:e.videoWidth)||this.mediaLibraryState.posterProgrammaticSeek)return;const t=A(e);
1this.selectMediaLibraryPosterFrame(t,e.currentTime,{skipVideoSync:!0})}handleMediaLibraryPosterVideoSeeked(){const e=this.getMediaLibraryPosterVideo();if(!e)return;if(this.syncMediaLibraryPosterVideoProgress(e.currentTime),this.mediaLibraryState.posterProgrammaticSeek)return;if(!e.videoWidth)return;const t=A(e);this.selectMediaLibraryPosterFrame(t,e.currentTime,{skipVideoSync:!0})}async selectMediaLibraryPosterFrame(e,t,{skipVideoSync:i=!1}={}){e&&(this.mediaLibraryState.posterSelection={canvas:e,timestamp:t},!i&&Number.isFinite(t)&&await this.seekMediaLibraryPosterVideo(t),this.syncMediaLibraryPosterConfirmUi())}async enterMediaLibraryPosterStep(e){var t,i,r,a,o;const s=(null==e?void 0:e.streamUrl)||(null==e?void 0:e.url)||(null==(t=null==e?void 0:e.asset)?void 0:t.streamUrl)||"";if(!e||!e.file&&!s)return!1;this.mediaLibraryState.step="poster",this.mediaLibraryState.pendingHeroVideo={file:e.file||null,sourceFile:e.sourceFile||null,url:e.url||(null==(i=e.asset)?void 0:i.url)||"",streamUrl:e.streamUrl||(null==(r=e.asset)?void 0:r.streamUrl)||"",filename:e.filename||(null==(a=e.file)?void 0:a.name)||"video",assetId:e.assetId||(null==(o=e.asset)?void 0:o.id)||null,asset:e.asset||null},this.setMediaLibraryPosterStepUi(!0),this.clearMediaLibraryPosterCustomImage({syncUi:!1}),this.setMediaLibraryPosterBusy(!0,"Loading video..."),this.mediaLibraryPosterError&&(this.mediaLibraryPosterError.hidden=!0,this.mediaLibraryPosterError.textContent=""),this.mediaLibraryPosterConfirmBtn&&(this.mediaLibraryPosterConfirmBtn.disabled=!0,this.mediaLibraryPosterConfirmBtn.textContent="Set Poster");const l=++this.mediaLibraryState.posterLoadToken;try{if(await this.mountMediaLibraryPosterVideo(this.mediaLibraryState.pendingHeroVideo),l!==this.mediaLibraryState.posterLoadToken)return!1;const e=this.getMediaLibraryPosterVideo();if(!(null==e?void 0:e.videoWidth)||!e.videoHeight)throw new Error("Unable to read video for poster selection.");const t=Number.isFinite(e.duration)?e.duration:0,i=Math.min(1,Math.max(t-.05,0));if(await this.seekMediaLibraryPosterVideo(i),l!==this.mediaLibraryState.posterLoadToken)return!1;const r=A(e);return await this.selectMediaLibraryPosterFrame(r,e.currentTime,{skipVideoSync:!0}),this.setMediaLibraryPosterBusy(!1),!0}catch(n){return l!==this.mediaLibraryState.posterLoadToken||(this.setMediaLibraryPosterBusy(!1),this.mediaLibraryPosterBody&&(this.mediaLibraryPosterBody.hidden=!0),this.mediaLibraryPosterError&&(this.mediaLibraryPosterError.hidden=!1,this.mediaLibraryPosterError.textContent=(null==n?void 0:n.message)||"Unable to load video for poster selection.")),!1}}exitMediaLibraryPosterStepToBrowse(){this.resetMediaLibraryPosterStep(),this.updateMediaLibrarySelectionUi()}async applyPendingHeroVideoFromPosterFlow(){var e;const t=this.mediaLibraryState.pendingHeroVideo;if(t)if(t.asset)this.applyAssetToHero(t.asset);else if(t.assetId){const e=this.mediaLibraryState.assets.find((e=>e.id===t.assetId))||{id:t.assetId,kind:"video",url:t.url,previewUrl:null,filename:t.filename};this.applyAssetToHero(e)}else if(t.file&&this.mediaHero){this.removeOgInjectedRelationInputs("portfolioFeaturedAsset"),this.mediaHero.querySelectorAll('input[name="fields[portfolioFeaturedAsset][]"]').forEach((e=>e.remove()));const i=this.mediaHero.querySelector('[data-media-file="hero"]');i&&(i.value="",this.setImageVideoGridInputFile(i,t.file)&&(i.name="fields[portfolioFeaturedAsset]")),this.applyMediaPreview(this.mediaHero,t.file,"hero"),null==(e=this.syncProjectLinkSuggestions)||e.call(this)}}async finishMediaLibraryPosterFlow(){var e,t,i,a,o,s,l;const n=this.mediaLibraryState.pendingHeroVideo,d=this.mediaLibraryState.posterCustomImage,c=d?null:this.getMediaLibraryPosterCanvasForUpload();if(n&&(d||c))try{let r;this.mediaLibraryPosterConfirmBtn&&(this.mediaLibraryPosterConfirmBtn.disabled=!0);let l="overwrite";if(d)r=d,l="saveAsNew";else{this.setMediaLibraryPosterBusy(!0,"Creating poster image...");const e=await j(c);r=I(e,n.filename)}null==(e=this.analytics)||e.once("upload attempted image"),this.setMediaLibraryPosterBusy(!0,"Uploading poster...");const u=await this.uploadPosterProjectMediaFile(r,l);if(!(null==u?void 0:u.success)||!(null==(t=null==u?void 0:u.asset)?void 0:t.id))throw new Error(this.getMediaLibraryErrorMessage(u,"Unable to upload the poster image."));null==(i=this.analytics)||i.once("upload succeeded image"),null==(a=this.analytics)||a.changed("media"),this.mediaLibraryState.posterOnlyMode||await this.applyPendingHeroVideoFromPosterFlow(),this.setSaveButtonDirtyState(!0),this.setVideoPosterAssetId(u.asset.id,u.asset.previewUrl||u.asset.url||""),this.resetMediaLibraryPosterStep(),null==(s=null==(o=this.mediaLibraryDialog)?void 0:o.close)||s.call(o)}catch(u){null==(l=this.analytics)||l.once(`upload failed image ${r(u,"media")}`),this.setMediaLibraryPosterBusy(!1),this.mediaLibraryPosterError&&(this.mediaLibraryPosterError.hidden=!1,this.mediaLibraryPosterError.textContent=(null==u?void 0:u.message)||"Unable to upload the poster image."),this.mediaLibraryPosterConfirmBtn&&(this.mediaLibraryPosterConfirmBtn.disabled=!1)}}handleMediaLibraryPosterBackClick(e){var t,i;null==(t=null==e?void 0:e.preventDefault)||t.call(e),null==(i=null==e?void 0:e.stopPropagation)||i.call(e),this.exitMediaLibraryPosterStepToBrowse()}handleMediaLibraryPosterConfirmClick(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e),this.hasMediaLibraryPosterSelection()&&this.finishMediaLibraryPosterFlow()}shouldEnterMediaLibraryPosterStepForHero(e){var t;return"hero"===(null==(t=this.mediaLibraryState.target)?void 0:t.type)&&"video"===(null==e?void 0:e.kind)}async handleMediaLibraryDeleteClick(e){var t;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const i=Array.from(this.mediaLibraryState.selectedIds);if(!i.length)return;if("delete"!==await this.promptMediaLibraryAction({message:1===i.length?"Delete the selected asset from this project library?":"Delete the selected assets from this project library?",actions:[{id:"cancel",label:"Cancel",variant:"cancel"},{id:"delete",label:"Delete",variant:"danger"}]}))return;const r=new FormData,a=this.getProjectMediaContextPayload();
1Object.entries(a).forEach((([e,t])=>{t&&r.append(e,t)})),i.forEach((e=>r.append("assetIds[]",String(e))));const o=await fetch("/api/project-media/delete",{method:"POST",headers:this.getProjectMediaRequestHeaders(),credentials:"same-origin",body:r}),s=await o.json();if(!(null==s?void 0:s.success))return void this.setMediaLibraryFeedback((null==s?void 0:s.message)||"Unable to delete the selected assets.",!0);const l=Array.isArray(s.deletedAssetIds)?s.deletedAssetIds:[];this.mediaLibraryState.assets=this.mediaLibraryState.assets.filter((e=>!l.includes(e.id))),this.mediaLibraryState.selectedIds=new Set,this.removeDeletedAssetsFromEditor(l),this.renderMediaLibraryRows(),this.pushMediaLibraryStatus(`${l.length} asset${1===l.length?"":"s"}`,"success","Deleted")}handleMediaLibrarySelectClick(e){var t,i;const r=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,"[data-media-library-select]");if(!r||r.closest(".okay-dialog")!==this.mediaLibraryDialog)return;e.preventDefault(),e.stopPropagation();const a=this.getSelectedMediaLibraryAssets();if(a.length||this.getMediaLibraryPendingSelectionCount()){if(a[0]&&this.shouldEnterMediaLibraryPosterStepForHero(a[0]))return this.mediaLibraryState.posterOnlyMode=!1,void this.enterMediaLibraryPosterStep({streamUrl:a[0].streamUrl,url:a[0].url,filename:a[0].filename,assetId:a[0].id,asset:a[0]});this.applyMediaLibrarySelection()?this.mediaLibraryDialog.close():this.setMediaLibraryFeedback("Select at least one asset to continue.",!0)}else{if(this.enterHeroPosterStepFromCurrentSelection())return;this.setMediaLibraryFeedback("Select at least one asset to continue.",!0)}}handleMediaLibraryDialogClose(){const e=!!this.mediaLibraryReturnFocusEl;this.resetMediaLibraryState(),e&&this.focusMediaLibraryReturnTarget()}getSelectedMediaLibraryAssets(){const e=new Set(this.getMediaLibraryNewSelectedIds());return this.getMediaLibraryFilteredAssets().filter((t=>e.has(t.id)))}applyMediaLibrarySelection(){var e,t,i,r,a,o;const s=this.mediaLibraryState.target,l=this.getSelectedMediaLibraryAssets(),n=this.shouldShowMediaLibraryCurrentSelections(s)?this.getCurrentTargetAssetIds(s).filter((e=>!this.mediaLibraryState.selectedIds.has(e))):[];if(!s||!l.length&&!n.length)return!1;if("hero"===s.type&&"video"===(null==(e=l[0])?void 0:e.kind))return!1;null==(t=this.analytics)||t.changed("media"),"social-share-image"===s.type&&(null==(i=this.analytics)||i.once("field changed social image"));return"social-share-image"===s.type&&(null==(a=null==(r=s.editor)?void 0:r.closest)?void 0:a.call(r,"dialog.okay-dialog[open]"))||this.setSaveButtonDirtyState(!0),"social-share-image"===s.type?(l[0]?this.applyAssetToSocialShare(s.editor,l[0]):n.length&&this.socialShareImageClear({preventDefault(){},currentTarget:s.editor}),!0):"hero"===s.type?("image"===(null==(o=l[0])?void 0:o.kind)&&this.clearVideoPosterAsset(),this.applyAssetToHero(l[0]),!0):"thumb"===s.type?(this.applyAssetsToThumbs(s.slot,l),!0):"image-block"===s.type?(this.applyAssetToImageBlock(s.editor,l[0]),!0):"video-block"===s.type?(this.applyAssetToVideoBlock(s.editor,l[0]),!0):"image-video-grid"===s.type&&(this.applyMediaLibraryChangesToImageVideoGrid(s.editor,l,n,s.startSlot),!0)}getAssetPreviewUrl(e){return(null==e?void 0:e.previewUrl)||(null==e?void 0:e.url)||""}getRelationInputMarkup(e,t,i=""){var r;return`<input type="checkbox" name="${this.escapeHtml(e)}" value="${this.escapeHtml(String(t))}" checked hidden style="display:none"${(null==(r=this.form)?void 0:r.id)?` form="${this.escapeHtml(this.form.id)}"`:""} ${i}>`}getBlockRelationInputName(e,t,i){var r,a;if(!e)return"";const o=(null==(r=e.querySelector(t))?void 0:r.getAttribute("name"))||"";if(o)return o;const s=(null==(a=e.querySelector(i))?void 0:a.getAttribute("name"))||"";return s?s.endsWith("[]")?s:`${s}[]`:""}applyMediaAssetPreview(e,t,i){const r="hero"===i?e.querySelector(".project-media-hero-content"):e.querySelector(".project-media-thumb-content");if(!r||!t)return;const a=this.escapeHtml(this.getAssetPreviewUrl(t));if("hero"===i)if("video"===t.kind){const e=this.escapeHtml(this.getHeroVideoPosterPreviewUrl());r.innerHTML=`\n\t\t\t\t\t<div class="project-media-hero-slide-content">\n\t\t\t\t\t\t<div class="video-container">\n\t\t\t\t\t\t\t<video src="${a}" preload="metadata" playsinline controls${e?` poster="${e}" data-poster-cover`:""}></video>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t`}else r.innerHTML=this.buildProjectMediaPreviewHeroHtml(t);else"video"===t.kind?r.innerHTML=`<video src="${a}
1#t=0.001" preload="metadata" playsinline muted></video>`:r.innerHTML=`<img src="${a}" alt="Preview">`;e.dataset.previewKind=t.kind,e.dataset.previewUrl=this.getAssetPreviewUrl(t),e.dataset.assetId=String(t.id),"hero"===i&&(e.dataset.featuredPreviewKind=t.kind,e.dataset.featuredPreviewUrl=this.getAssetPreviewUrl(t)),e.classList.add("has-asset");const o=e.querySelector(".project-media-actions");o&&("thumb"!==i||o.querySelector(".project-media-drag-handle")||o.insertBefore(this.createProjectMediaDragHandle(),o.firstChild),this.setProjectMediaSlotActionState(e,!0),o.querySelector('[data-media-action="delete"]')||o.appendChild(this.createDeleteActionButton()))}ensureThumbnailRelationEntry(e){if(!e)return null;let t=e.dataset.entryId||null;t||(t="new:thumb-"+ ++this.newThumbCounter,e.dataset.entryId=t);const i=e.querySelector("[data-media-file]");return i&&(i.name="",i.value=""),e.querySelectorAll('input[name*="portfolioThumbnails"]').forEach((e=>{var t;void 0===(null==(t=e.dataset)?void 0:t.mediaFile)&&e.remove()})),e.insertAdjacentHTML("afterbegin",`<input type="hidden" name="fields[portfolioThumbnails][sortOrder][]" value="${this.escapeHtml(t)}"><input type="hidden" name="fields[portfolioThumbnails][entries][${this.escapeHtml(t)}][type]" value="portfolioThumbnail">`),t}applyAssetToHero(e){var t,i;if(!this.mediaHero)return;const r=this.mediaHero.querySelector('[data-media-file="hero"]');r&&(r.value=""),this.removeOgInjectedRelationInputs("portfolioFeaturedAsset"),this.mediaHero.querySelectorAll('input[name="fields[portfolioFeaturedAsset][]"]').forEach((e=>e.remove())),"image"===(null==e?void 0:e.kind)&&this.clearVideoPosterAsset(),this.mediaHero.insertAdjacentHTML("afterbegin",this.getRelationInputMarkup("fields[portfolioFeaturedAsset][]",e.id,'data-media-keep="hero"')),this.applyMediaAssetPreview(this.mediaHero,e,"hero"),null==(t=this.syncProjectMediaPreviewState)||t.call(this),null==(i=this.syncProjectLinkSuggestions)||i.call(this)}applyAssetToSocialShare(e,t){var i,r,a;if(!e||!t)return;const o=e.querySelector("#portfolioSocialShareImage"),s=e.querySelector(".social-share-image-preview-image");if(null==(i=this.markProjectSettingsSocialShareDirty)||i.call(this,e),o&&(o.value=""),this.removeOgInjectedRelationInputs("portfolioSocialShareImage"),e.querySelectorAll('input[name="fields[portfolioSocialShareImage][]"]').forEach((e=>{var t;(null==(t=e.closest(".social-share-image-keep-input"))?void 0:t.remove())||e.remove()})),e.classList.remove("has-preview"),e.classList.add("has-asset"),e.dataset.assetId=String(t.id),s){const e=this.escapeHtml(this.getAssetPreviewUrl(t));s.innerHTML=`\n\t\t\t\t<div class="social-share-image-existing">\n\t\t\t\t\t<span class="social-share-image-keep-input">\n\t\t\t\t\t\t${this.getRelationInputMarkup("fields[portfolioSocialShareImage][]",t.id,'class="btn-keep"')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class="lazyPicture aspect-ratio social-share" style="--aspect: 56.25%;">\n\t\t\t\t\t\t<img src="${e}" alt="">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div id="portfolioSocialShareImageThumbnail" class="input-thumbnails"></div>\n\t\t\t`}this.setSocialShareImageActionState(e,!0),null==(r=this.syncSocialShareImagePreview)||r.call(this,{expandSection:!0}),null==(a=this.syncProjectLinkSuggestions)||a.call(this)}applyAssetsToThumbs(e,t){var i,r;if(!e||!(null==t?void 0:t.length))return;const a=Array.from((null==(i=this.mediaThumbsContainer)?void 0:i.querySelectorAll('[data-media-role="thumb"]'))||[]).sort(((e,t)=>parseInt(e.dataset.thumbIndex||"0",10)-parseInt(t.dataset.thumbIndex||"0",10))),o=Math.max(0,a.indexOf(e)),s=[...t],l=[];e&&l.push(e),a.slice(o+1).forEach((e=>{e.classList.contains("has-asset")||l.push(e)})),a.slice(0,o).forEach((e=>{e.classList.contains("has-asset")||l.push(e)})),l.forEach((e=>{const t=s.shift();if(!t)return;const i=this.ensureThumbnailRelationEntry(e);e.insertAdjacentHTML("afterbegin",this.getRelationInputMarkup(`fields[portfolioThumbnails][entries][${i}][fields][portfolioThumbnail][]`,t.id,`data-media-keep="thumb-${this.escapeHtml(e.dataset.thumbIndex||"0")}"`)),this.applyMediaAssetPreview(e,t,"thumb")})),this.compactThumbnails(),this.refreshMediaDragSort(),null==(r=this.syncProjectMediaPreviewState)||r.call(this)}applyAssetToImageBlock(e,t){if(!e||!t)return;const i=e.querySelector('input[type="file"].input-thumbnails-update'),r=e.querySelector(".input-thumbnails"),a=e.querySelector(".image-block-existing"),o=this.getBlockRelationInputName(e,"[data-image-block-keep]",'input[type="file"].input-thumbnails-update')||"fields[portfolioBlocksImageAsset][]";i&&(i.value=""),r&&(r.innerHTML=""),a&&a.remove(),e.querySelectorAll("[data-image-block-keep]").forEach((e=>{var t;return(null==(t=e.closest(".image-block-keep-input"))?void 0:t.remove())||e.remove()})),e.classList.remove("has-preview"),e.classList.add("has-asset"),e.dataset.assetId=String(t.id);const s=e.querySelector(".image-block-preview");if(s){const e=this.escapeHtml(this.getAssetPreviewUrl(t));s.insertAdjacentHTML("afterbegin",`\n\t\t\t\t<div class="image-block-existing" style="aspect-ratio: ${t.width||16} / ${t.height||9};">\n\t\t\t\t\t<span class="image-block-keep-input">\n\t\t\t\t\t\t${this.getRelationInputMarkup(o,t.id,'data-image-block-keep="1" class="btn-keep"')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<img src="${e}" alt="" class="image-block-existing-image">\n\t\t\t\t</div>\n\t\t\t`)}this.setImageBlockActionState(e,!0)}applyAssetToVideoBlock(e,t){if(!e||!t)return;const i=e.querySelector('input[type="file"].input-thumbnails-update'),r=e.querySelector(".input-thumbnails"),a=e.querySelector(".video-block-existing"),o=this.getBlockRelationInputName(e,"[data-vi
1deo-block-keep]",'input[type="file"].input-thumbnails-update')||"fields[portfolioBlocksVideoAsset][]";i&&(i.value=""),r&&(r.innerHTML=""),a&&a.remove(),e.querySelectorAll("[data-video-block-keep]").forEach((e=>{var t;return(null==(t=e.closest(".video-block-keep-input"))?void 0:t.remove())||e.remove()})),e.classList.remove("has-preview"),e.classList.add("has-asset"),e.dataset.assetId=String(t.id);const s=e.querySelector(".video-block-preview");if(s){const e=this.escapeHtml(this.getAssetPreviewUrl(t));s.insertAdjacentHTML("afterbegin",`\n\t\t\t\t<div class="video-block-existing">\n\t\t\t\t\t<span class="video-block-keep-input">\n\t\t\t\t\t\t${this.getRelationInputMarkup(o,t.id,'data-video-block-keep="1" class="btn-keep"')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<video src="${e}#t=0.001" preload="metadata" playsinline controls class="video-block-existing-video"></video>\n\t\t\t\t</div>\n\t\t\t`)}this.setVideoBlockActionState(e,!0)}applyAssetToImageVideoGridSlot(e,t){if(!e||!t)return;const i=e.querySelector("input[data-image-video-grid-file]");if(i&&(i.value=""),this.isNestedGridBlock(e)){const i=this.ensureGridItemEntry(e),r=e.closest("[data-image-video-grid-block-editor]"),a=this.getGridItemNames(r,i);e.querySelectorAll('input[type="checkbox"][data-image-video-grid-keep]').forEach((e=>e.remove())),e.insertAdjacentHTML("afterbegin",this.getRelationInputMarkup(a.keep,t.id,'data-image-video-grid-keep="1" class="image-video-grid-keep-input"'))}else e.querySelectorAll('input[type="checkbox"][data-image-video-grid-keep]').forEach((e=>e.remove())),e.insertAdjacentHTML("afterbegin",this.getRelationInputMarkup("fields[portfolioBlocksImageVideoGridAssets][]",t.id,'data-image-video-grid-keep="1" class="image-video-grid-keep-input"'));e.dataset.assetId=String(t.id);const r=e.querySelector(".image-video-grid-slot-content"),a=this.escapeHtml(this.getAssetPreviewUrl(t));r&&(r.innerHTML=`\n\t\t\t\t<div class="image-video-grid-asset-wrap">\n\t\t\t\t\t${"image"===t.kind?`<img src="${a}" alt="">`:`<video src="${a}
1#t=0.001" preload="metadata" playsinline muted></video>`}\n\t\t\t\t</div>\n\t\t\t`),e.classList.add("has-asset");const o=e.querySelector(".image-video-grid-slot-actions");o&&(this.setImageVideoGridSlotActionState(e,!0),o.querySelector('[data-action="image-video-grid-slot-delete"]')||o.appendChild(this.createDeleteActionButton({actionAttribute:"data-action",actionValue:"image-video-grid-slot-delete"})))}applyAssetsToImageVideoGrid(e,t,i=null){if(!e||!(null==t?void 0:t.length))return;const r=Array.from(e.querySelectorAll(".image-video-grid-slot")),a=[...t],o=[],s=i||r.find((e=>!e.classList.contains("has-asset")))||r[0],l=Math.max(0,r.indexOf(s));s&&a.length&&o.push({slot:s,asset:a.shift()}),r.slice(l+1).forEach((e=>{a.length&&!e.classList.contains("has-asset")&&o.push({slot:e,asset:a.shift()})})),r.slice(0,l).forEach((e=>{a.length&&!e.classList.contains("has-asset")&&o.push({slot:e,asset:a.shift()})})),o.forEach((({slot:e,asset:t})=>{this.applyAssetToImageVideoGridSlot(e,t)})),e.classList.remove("image-video-grid-is-empty","has-preview"),e.classList.add("has-asset"),this.compactImageVideoGridSlots(e.querySelector("[data-image-video-grid-slots]")),this.refreshImageVideoGridDragSort(e),this.setImageVideoGridBlockActionState(e,!0)}applyMediaLibraryChangesToImageVideoGrid(e,t=[],i=[],r=null){if(!e)return;if(i.length){const t=new Set(i.map((e=>String(e))));Array.from(e.querySelectorAll(".image-video-grid-slot.has-asset")).forEach((e=>{var i;const r=String((null==(i=e.querySelector('input[type="checkbox"][data-image-video-grid-keep]'))?void 0:i.value)||""),a=String(e.dataset.assetId||"");(t.has(a)||t.has(r))&&this.clearImageVideoGridSlotToEmpty(e)}))}if(t.length)return void this.applyAssetsToImageVideoGrid(e,t,r);this.compactImageVideoGridSlots(e.querySelector("[data-image-video-grid-slots]")),this.refreshImageVideoGridDragSort(e);const a=e.querySelectorAll(".image-video-grid-slot.has-asset").length>0;e.classList.toggle("has-asset",a),e.classList.remove("has-preview"),e.classList.toggle("image-video-grid-is-empty",!a),this.setImageVideoGridBlockActionState(e,a)}removeDeletedAssetsFromEditor(e){var t,i,r;const a=new Set((e||[]).map((e=>String(e))));if(!a.size)return;const o=document.querySelector("[data-social-share-image]"),s=null==(t=null==o?void 0:o.querySelector)?void 0:t.call(o,'input[name="fields[portfolioSocialShareImage][]"]:checked');s&&a.has(String(s.value||""))&&this.socialShareImageClear({preventDefault(){}}),this.mediaHero&&a.has(String(this.mediaHero.dataset.assetId||""))&&this.deleteMediaSlot(this.mediaHero),Array.from((null==(r=null==(i=this.mediaThumbsContainer)?void 0:i.querySelectorAll)?void 0:r.call(i,'[data-media-role="thumb"]'))||[]).forEach((e=>{a.has(String(e.dataset.assetId||""))&&this.deleteMediaSlot(e)})),document.querySelectorAll("[data-image-block-editor]").forEach((e=>{const t=e.querySelector("[data-image-block-keep]");t&&a.has(String(t.value||""))&&this.imageBlockClear({preventDefault(){},currentTarget:e.querySelector('[data-action="image-block-clear"]')})})),document.querySelectorAll("[data-video-block-editor]").forEach((e=>{const t=e.querySelector("[data-video-block-keep]");t&&a.has(String(t.value||""))&&this.videoBlockClear({preventDefault(){},currentTarget:e.querySelector('[data-action="video-block-clear"]')})})),document.querySelectorAll("[data-image-video-grid-block-editor]").forEach((e=>{const t=Array.from(e.querySelectorAll(".image-video-grid-slot")).filter((e=>a.has(String(e.dataset.assetId||""))));if(!t.length)return;t.forEach((e=>this.clearImageVideoGridSlotToEmpty(e))),this.compactImageVideoGridSlots(e.querySelector("[data-image-video-grid-slots]")),this.refreshImageVideoGridDragSort(e);const i=e.querySelectorAll(".image-video-grid-slot.has-asset").length>0;e.classList.toggle("has-asset",i),i||e.classList.add("image-video-grid-is-empty"),this.setImageVideoGridBlockActionState(e,i)}))}setImageBlockActionState(e,t){if(!e)return;const i=e.querySelector('[data-action="image-block-add"]');i&&(this.setActionRailState(e.querySelector(".image-block-actions"),t),this.setAddReplaceActionState(i,{isReplace:t,addAriaLabel:"Add image",replaceAriaLabel:"Replace image"}))}imageBlockAddClick(e){var t,i,r;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const a=null==(r=null==(i=null==e?void 0:e.currentTarget)?void 0:i.closest)?void 0:r.call(i,"[data-image-block-editor]");a&&this.openMediaLibrary(this.createMediaLibraryTarget("image-block",{editor:a,mode:a.classList.contains("has-asset")?"replace":"add"}))}imageBlockClear(e){var t,i,r;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const a=null==(r=null==(i=null==e?void 0:e.currentTarget)?void 0:i.closest)?void 0:r.call(i,"[data-image-block-editor]");
1if(!a)return;const o=a.querySelector('input[type="file"].input-thumbnails-update'),s=a.querySelector(".input-thumbnails"),l=a.querySelector("[data-image-block-keep]"),n=a.querySelector(".image-block-existing"),d=a.closest(".field-container"),c=null==d?void 0:d.querySelector(".error-messages");o&&(o.value=""),s&&(s.innerHTML=""),l&&(l.checked=!1),n&&n.remove(),c&&(c.innerHTML=""),a.classList.remove("has-asset","has-preview"),delete a.dataset.assetId,this.setImageBlockActionState(a,!1),this.setSaveButtonDirtyState(!0)}setVideoBlockActionState(e,t){if(!e)return;const i=e.querySelector('[data-action="video-block-add"]');i&&(this.setActionRailState(e.querySelector(".video-block-actions"),t),this.setAddReplaceActionState(i,{isReplace:t,addAriaLabel:"Add video",replaceAriaLabel:"Replace video"}))}videoBlockAddClick(e){var t,i,r;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const a=null==(r=null==(i=null==e?void 0:e.currentTarget)?void 0:i.closest)?void 0:r.call(i,"[data-video-block-editor]");a&&this.openMediaLibrary(this.createMediaLibraryTarget("video-block",{editor:a,mode:a.classList.contains("has-asset")?"replace":"add"}))}videoBlockClear(e){var t,i,r;null==(t=null==e?void 0:e.preventDefault)||t.call(e);const a=null==(r=null==(i=null==e?void 0:e.currentTarget)?void 0:i.closest)?void 0:r.call(i,"[data-video-block-editor]");if(!a)return;const o=a.querySelector('input[type="file"].input-thumbnails-update'),s=a.querySelector(".input-thumbnails"),l=a.querySelector("[data-video-block-keep]"),n=a.querySelector(".video-block-existing"),d=a.closest(".field-container"),c=null==d?void 0:d.querySelector(".error-messages");o&&(o.value=""),s&&(s.innerHTML=""),l&&(l.checked=!1),n&&n.remove(),c&&(c.innerHTML=""),a.classList.remove("has-asset","has-preview"),delete a.dataset.assetId,this.setVideoBlockActionState(a,!1),this.setSaveButtonDirtyState(!0)}setImageVideoGridBlockActionState(e,t){e&&e.classList.toggle("has-asset",!!t)}getImageVideoGridBlockType(e){var t,i,r,a;const o=(null==(i=null==(t=null==e?void 0:e.classList)?void 0:t.contains)?void 0:i.call(t,"editor-block"))?e:null==(r=null==e?void 0:e.closest)?void 0:r.call(e,".editor-block");return(null==(a=null==o?void 0:o.dataset)?void 0:a.type)||""}isNestedGridBlock(e){return"grid"===this.getImageVideoGridBlockType(e)}getExistingGridItemKey(e){var t;if(!e)return null;if(e.dataset.gridItemKey)return e.dataset.gridItemKey;const i=e.querySelector('input[name*="[portfolioBlocksGridItems][entries]["], textarea[name*="[portfolioBlocksGridItems][entries]["], select[name*="[portfolioBlocksGridItems][entries]["]'),r=((null==(t=null==i?void 0:i.getAttribute)?void 0:t.call(i,"name"))||"").match(/\[portfolioBlocksGridItems\]\[entries\]\[([^\]]+)\]/);return r?r[1]:null}getGridItemNames(e,t){var i;const r=null==(i=null==e?void 0:e.dataset)?void 0:i.gridBlockEntryKey;if(!r||!t)return null;const a=`fields[portfolioBlocks][entries][${r}][fields][portfolioBlocksGridItems]`;return{sortOrder:`${a}[sortOrder][]`,type:`${a}[entries][${t}][type]`,enabled:`${a}[entries][${t}][enabled]`,assetEmpty:`${a}[entries][${t}][fields][gridItemsAsset]`,asset:`${a}[entries][${t}][fields][gridItemsAsset]`,keep:`${a}[entries][${t}][fields][gridItemsAsset][]`,caption:`${a}[entries][${t}][fields][gridItemsCaption]`}}createGridItemKey(e){var t;let i=parseInt((null==(t=null==e?void 0:e.dataset)?void 0:t.gridNextItemIndex)||"1",10);return(Number.isNaN(i)||i<1)&&(i=1),e&&(e.dataset.gridNextItemIndex=String(i+1)),`new:${i}`}ensureGridItemEntry(e){var t,i;if(!this.isNestedGridBlock(e))return(null==(t=null==e?void 0:e.dataset)?void 0:t.gridItemKey)||null;const r=null==(i=null==e?void 0:e.closest)?void 0:i.call(e,"[data-image-video-grid-block-editor]");if(!r)return null;let a=this.getExistingGridItemKey(e);a||(a=this.createGridItemKey(r)),e.dataset.gridItemKey=a;const o=this.getGridItemNames(r,a);if(!o)return a;const s=e.querySelector("[data-grid-item-hidden-inputs]");s&&(s.innerHTML=[`<input type="hidden" name="${o.sortOrder}" value="${this.escapeHtml(a)}">`,`<input type="hidden" name="${o.type}" value="portfolioBlocksGridItem">`,`<input type="hidden" name="${o.enabled}" value="1">`,`<input type="hidden" name="${o.assetEmpty}" value="">`].join(""));const l=e.querySelector("input[data-image-video-grid-file]");l&&(l.name=o.asset);const n=e.querySelector("[data-grid-item-caption]"),d=e.querySelector("[data-grid-item-caption-wrap]");return n&&(n.name=o.caption,n.disabled=!1),d&&(d.hidden=!1),this.syncGridItemCaptionVisibility(e),a}syncGridItemCaptionVisibility(e){var t,i;const r=null==(t=null==e?void 0:e.querySelector)?void 0:t.call(e,"[data-grid-item-caption-wrap]"),a=null==(i=null==e?void 0:e.querySelector)?void 0:i.call(e,"[data-grid-item-caption]");if(!r||!a)return;const o=!!(a.value||"").trim();r.dataset.hasValue=o?"true":"false"}handleGridItemCaptionInput(e){var t;const i=null==e?void 0:e.target;(null==(t=null==i?void 0:i.matches)?void 0:t.call(i,"[data-grid-item-caption]"))&&this.syncGridItemCaptionVisibility(i.closest(".image-video-grid-slot"))}clearGridItemEntry(e){if(!this.isNestedGridBlock(e))return;const t=e.querySelector("[data-grid-item-hidden-inputs]"),i=e.querySelector("input[data-image-video-grid-file]"),r=e.querySelector("[data-grid-item-caption]"),a=e.querySelector("[data-grid-item-caption-wrap]");t&&(t.innerHTML=""),i&&(i.name=""),r&&(r.name="",r.value="",r.disabled=!0),a&&(a.hidden=!0,delete a.dataset.hasValue),delete e.dataset.gridItemKey}imageVideoGridSlotAction(e){var t,i,r,a,o,s,l,n,d,c,u;const h=null==(i=null==(t=null==e?void 0:e.target)?void 0:t.closest)?void 0:i.call(t,'[data-action="image-video-grid-slot-add"]'),m=null==(a=null==(r=null==e?void 0:e.target)?void 0:r.closest)?void 0:a.call(r,'[data-action="image-video-grid-slot-delete"]'),p=null==(s=null==(o=null==e?void 0:e.target)?void 0:o.closest)?void 0:s.call(o,".image-video-grid-slot:not(.has-asset)");if(h){null==(l=null==e?void 0:e.preventDefault)||l.call(e);const t=h.closest(".image-video-grid-slot"),i=null==t?void 0:t.closest("[data-image-video-grid-block-editor]");this.openMediaLibrary(this.createMediaLibraryTarget("image-video-grid",{editor:i,startSlot:t,mode:(null==t?void 0:t.classList.contains("has-asset"))?"replace":"add"}))}else{if(m){null==(n=null==e?void 0:e.preventDefault)||n.call(e);const t=m.closest(".image-video-grid-slot"),i=null==t?void 0:t.closest("[data-image-video-grid-block-editor]");
1if(!t||!i)return;this.clearImageVideoGridSlotToEmpty(t),this.compactImageVideoGridSlots(i.querySelector("[data-image-video-grid-slots]")),this.refreshImageVideoGridDragSort(i);const r=i.querySelectorAll(".image-video-grid-slot.has-asset").length>0;return i.classList.toggle("has-asset",r),i.classList.remove("has-preview"),r||i.classList.add("image-video-grid-is-empty"),void this.setImageVideoGridBlockActionState(i,r)}if(p){if(null==(c=null==(d=null==e?void 0:e.target)?void 0:d.closest)?void 0:c.call(d,".image-video-grid-slot-actions, button, input, label"))return;null==(u=null==e?void 0:e.preventDefault)||u.call(e);const t=p.closest("[data-image-video-grid-block-editor]");this.openMediaLibrary(this.createMediaLibraryTarget("image-video-grid",{editor:t,startSlot:p}))}}}isMobileImageVideoGridLayout(){var e,t,i;return null!=(i=null==(t=null==(e=window.matchMedia)?void 0:e.call(window,"(max-width: 1023px)"))?void 0:t.matches)?i:window.innerWidth<1024}getImageVideoGridDragAxis(){return this.isMobileImageVideoGridLayout()?"xy":"x"}getImageVideoGridDragColumns(){return this.isMobileImageVideoGridLayout()?2:1}isMobileProjectMediaLayout(){var e,t,i;return null!=(i=null==(t=null==(e=window.matchMedia)?void 0:e.call(window,"(max-width: 1023px)"))?void 0:t.matches)?i:window.innerWidth<1024}getProjectMediaDragAxis(){return"x"}getProjectMediaDragColumns(){return 1}getProjectMediaThumbGap(){const e=this.mediaThumbsContainer;if(!e)return 8;const t=window.getComputedStyle(e).getPropertyValue("--project-media-thumb-gap"),i=Number.parseFloat(t);return Number.isFinite(i)?i:8}setProjectMediaDragWrapperDimensions(e,t){var i,r;if(!e||!t.length)return;const a=this.getProjectMediaThumbGap(),o=(null==(i=t[0])?void 0:i.offsetWidth)||80,s=(null==(r=t[0])?void 0:r.offsetHeight)||o||80,l=o+a;e.style.width=t.length*l-a+"px",e.style.height=`${s}px`,delete e.dataset.dragColumns}handleWindowResize(){this.form&&(this._gridResizeFrame&&window.cancelAnimationFrame(this._gridResizeFrame),this._gridResizeFrame=window.requestAnimationFrame((()=>{var e;this._gridResizeFrame=null,document.querySelectorAll("[data-image-video-grid-slots]").forEach((e=>{this.compactImageVideoGridSlots(e);const t=e.closest("[data-image-video-grid-block-editor]");e.querySelector(".image-video-grid-filled-drag")?this.refreshImageVideoGridDragSort(t):this.initImageVideoGridSlots(e)})),(null==(e=this.mediaThumbsContainer)?void 0:e.querySelector('[data-media-role="thumb"][data-asset-id]'))&&this.refreshMediaDragSort()})))}initImageVideoGridSlots(e){if(!e)return;const t=Array.from(e.querySelectorAll(".image-video-grid-slot")),i=t.filter((e=>e.classList.contains("has-asset")));if(0===i.length)return;const r=e.closest("[data-image-video-grid-block-editor]"),a=this.isMobileImageVideoGridLayout(),o=this.getImageVideoGridDragAxis();let s=e.querySelector(".image-video-grid-filled-drag");if(s||(s=document.createElement("div"),s.className="image-video-grid-filled-drag dragSort-container",s.setAttribute("data-drag-axis",o),(a?t:i).forEach((e=>s.appendChild(e))),e.insertBefore(s,e.firstChild)),a){const e=t.slice().sort(((e,t)=>{var i,r;return parseInt(null!=(i=e.dataset.slotIndex)?i:0,10)-parseInt(null!=(r=t.dataset.slotIndex)?r:0,10)}));[...e.filter((e=>e.classList.contains("has-asset"))),...e.filter((e=>!e.classList.contains("has-asset")))].forEach((e=>s.appendChild(e)))}if(this.updateImageVideoGridDragAffordances(r),this.setImageVideoGridWrapperDimensions(e,s,i),i.length>=2){const e=8,t=parseFloat(s.dataset.slotSizePx||0)||120;s.classList.remove("is-dragging"),s.dragSort=new x({dragAxis:o,dragContainer:s,dragItems:i,columns:this.getImageVideoGridDragColumns(),itemSize:t+e,dragHandleSelector:".image-video-grid-slot-content, .project-media-drag-handle",cursor:"grab",activeCursor:"grabbing",onDragStart:()=>{s.classList.add("is-dragging")},onRelease:()=>{s.classList.remove("is-dragging")}})}}clearImageVideoGridSlotToEmpty(e){const t=e.querySelector("input[data-image-video-grid-file]");t&&(t.value=""),this.clearGridItemEntry(e),e.querySelectorAll('input[type="checkbox"][data-image-video-grid-keep]').forEach((e=>e.remove())),delete e.dataset.assetId,e.classList.remove("has-asset");const i=e.querySelector(".image-video-grid-slot-content");
1if(i){const t=void 0!==e.dataset.slotIndex?parseInt(e.dataset.slotIndex,10):0;i.innerHTML=`<span class="image-video-grid-slot-label">${t+1}</span>`}const r=e.querySelector(".image-video-grid-slot-actions");if(r){const t=r.querySelector('[data-action="image-video-grid-slot-delete"]'),i=r.querySelector(".project-media-drag-handle");t&&t.remove(),i&&i.remove(),this.setImageVideoGridSlotActionState(e,!1)}}createProjectMediaDragHandle(){const e=document.createElement("span");return e.className="project-media-action project-media-drag-handle",e.setAttribute("aria-label","Drag to reorder"),e.innerHTML=this.getProjectMediaActionMarkup("drag","Drag"),e}createImageVideoGridDragHandle(){return this.createProjectMediaDragHandle()}setImageVideoGridInputFile(e,t){if(!e||!t)return!1;try{const i=new DataTransfer;return i.items.add(t),e.files=i.files,!0}catch(i){return!1}}assignFilesToImageVideoGridSlots(e,t,i=null){var r,a;const o=null==(r=null==e?void 0:e.querySelector)?void 0:r.call(e,"[data-image-video-grid-slots]");if(!e||!o)return 0;const s=Array.from(o.querySelectorAll(".image-video-grid-slot")),l=Array.from(t||[]),n=[],d=l.length>1?i&&!i.classList.contains("has-asset")?i:null!=(a=s.find((e=>!e.classList.contains("has-asset"))))?a:null:i,c=d?Math.max(0,s.indexOf(d)):0;d&&l.length&&n.push({slot:d,file:l.shift()});const u=V(s,l,d?c+1:0);if(n.push(...u),l.splice(0,u.length),d&&l.length&&c>0){const e=V(s.slice(0,c),l);n.push(...e)}return n.forEach((({slot:e,file:t})=>{const i=e.querySelector("input[data-image-video-grid-file]");this.setImageVideoGridInputFile(i,t)&&this.handleImageVideoGridSlotFileChange(i,i.files||[t])})),n.length}updateImageVideoGridDragAffordances(e){const t=null==e?void 0:e.querySelector("[data-image-video-grid-slots]");if(!t)return;const i=Array.from(t.querySelectorAll(".image-video-grid-slot.has-asset")),r=i.length>=2;e.classList.toggle("image-video-grid-can-drag",r),i.forEach((e=>{e.classList.toggle("is-draggable",r),e.style.cursor=r?"grab":"";const t=e.querySelector(".image-video-grid-slot-actions");if(!t)return;const i=t.querySelector(".project-media-drag-handle");r?i||t.insertBefore(this.createImageVideoGridDragHandle(),t.firstChild):i&&i.remove()}))}compactImageVideoGridSlots(e){if(!e)return;const t=this.isMobileImageVideoGridLayout(),i=Array.from(e.querySelectorAll(".image-video-grid-slot")),r=i.filter((e=>{var t,i;return e.classList.contains("has-asset")||(null==(i=null==(t=e.querySelector("input[data-image-video-grid-file]"))?void 0:t.files)?void 0:i.length)}));let a=e.querySelector(".image-video-grid-filled-drag");if(0===r.length&&a)return Array.from(a.children).forEach((t=>{e.insertBefore(t,a),t.style.removeProperty("top"),t.style.removeProperty("left"),t.style.removeProperty("width"),t.style.removeProperty("height"),u.killTweensOf(t),t.style.removeProperty("transform")})),a.remove(),void i.forEach(((e,t)=>{const i=e.querySelector(".image-video-grid-slot-label");i&&(i.textContent=String(t+1))}));if(r.length>0&&!a&&(a=document.createElement("div"),a.className="image-video-grid-filled-drag dragSort-container",a.setAttribute("data-drag-axis",this.getImageVideoGridDragAxis()),e.insertBefore(a,e.firstChild)),!a)return;const o=i.filter((e=>!r.includes(e))).slice().sort(((e,t)=>{var i,r;return parseInt(null!=(i=e.dataset.slotIndex)?i:0,10)-parseInt(null!=(r=t.dataset.slotIndex)?r:0,10)}));if(t)r.forEach((e=>{e.parentElement!==a&&a.appendChild(e)})),o.forEach((e=>{e.parentElement!==a&&a.appendChild(e)}));else{r.forEach((e=>{e.parentElement!==a&&a.appendChild(e)}));let t=a.nextSibling;o.forEach((i=>{e.insertBefore(i,t),t=i.nextSibling}))}o.forEach(((e,t)=>{const i=e.querySelector(".image-video-grid-slot-label");i&&(i.textContent=String(r.length+t+1))})),o.forEach((e=>{u.killTweensOf(e),u.set(e,{clearProps:"transform"}),e.style.removeProperty("transform"),e.style.removeProperty("top"),e.style.removeProperty("left"),e.style.removeProperty("width"),e.style.removeProperty("height")}))}setImageVideoGridWrapperDimensions(e,t,i){if(!e||!t||!i.length)return;const r=Array.from(t.querySelectorAll(".image-video-grid-slot")),a=r.length,o=new Set(i),s=i.length>=2,l=this.getImageVideoGridDragAxis(),n=this.getImageVideoGridDragColumns();t.setAttribute("data-drag-axis",l);const d=e.getBoundingClientRect().width-16,c="xy"===l?Math.max(60,(d-8)/2):Math.max(60,(d-24)/4);if(t.dataset.slotSizePx=String(c),e.style.setProperty("--image-video-grid-slot-size",`${c}px`),"xy"===l){const e=Math.max(1,Math.ceil(a/n)),i=e*c+8*(e-1);t.style.flex="0 0 100%",t.style.width="100%",t.style.minHeight=`${i}px`}else{const e=i.length*c+8*(i.length-1);t.style.flex=`0 0 ${e}px`,t.style.width="",t.style.minHeight=""}r.forEach(((e,t)=>{const i="xy"===l?t%n:0,r="xy"===l?Math.floor(t/n):0;if(e.style.width=`${c}px`,e.style.height=`${c}px`,!("xy"!==l||o.has(e)&&s))return e.style.left=i*(c+8)+"px",void(e.style.top=r*(c+8)+"px");e.style.left="0px",e.style.top="0px"}))}refreshImageVideoGridDragSort(e){const t=null==e?void 0:e.querySelector("[data-image-video-grid-slots]"),i=null==t?void 0:t.querySelector(".image-video-grid-filled-drag");if(!i)return;i.dragSort&&(i.dragSort.destroy(),i.dragSort=null),u.killTweensOf(i),t.querySelectorAll(".image-video-grid-slot").forEach((e=>{u.killTweensOf(e),u.set(e,{clearProps:"transform"}),e.style.removeProperty("transform")}));const r=Array.from(i.querySelectorAll(".image-video-grid-slot"));if(this.updateImageVideoGridDragAffordances(e),i.classList.remove("is-dragging"),this.setImageVideoGridWrapperDimensions(t,i,r),r.length>=2){const e=8,t=this.getImageVideoGridDragAxis(),a=parseFloat(i.dataset.slotSizePx||0)||120;i.dragSort=new x({dragAxis:t,dragContainer:i,dragItems:r,columns:this.getImageVideoGridDragColumns(),itemSize:a+e,dragHandleSelector:".image-video-grid-slot-content, .project-media-drag-handle",curs
1or:"grab",activeCursor:"grabbing",onDragStart:()=>{i.classList.add("is-dragging")},onRelease:()=>{i.classList.remove("is-dragging")}})}}handleImageVideoGridSlotFileChange(e,t){const i=e.closest(".image-video-grid-slot"),r=e.closest("[data-image-video-grid-block-editor]"),a=null==r?void 0:r.querySelector("[data-image-video-grid-slots]");if(!(i&&r&&a&&(null==t?void 0:t.length)))return;const o=i.classList.contains("has-asset")||!!i.dataset.assetId||!!i.querySelector('input[type="checkbox"][data-image-video-grid-keep]');if(t.length>1){if(this.assignFilesToImageVideoGridSlots(r,t,i)>0)return}r.classList.contains("image-video-grid-is-empty")&&r.classList.remove("image-video-grid-is-empty");const s=t[0],l=s.type.startsWith("image/"),n=s.type.startsWith("video/");if(!l&&!n)return;this.isNestedGridBlock(i)&&this.ensureGridItemEntry(i),i.querySelectorAll('input[type="checkbox"][data-image-video-grid-keep]').forEach((e=>e.remove())),delete i.dataset.assetId;const d=i.querySelector(".image-video-grid-slot-content");if(!d)return;const c=document.createElement("div");if(c.className="image-video-grid-asset-wrap",l){const e=document.createElement("img");e.src=URL.createObjectURL(s),e.alt="",c.appendChild(e)}else{const e=document.createElement("video");e.src=URL.createObjectURL(s),e.setAttribute("muted","true"),e.setAttribute("playsinline","true"),c.appendChild(e)}d.innerHTML="",d.appendChild(c),i.classList.add("has-asset"),o&&!this.isNestedGridBlock(i)&&function(e){var t,i;F(e)&&(null==(i=null==(t=null==e?void 0:e.parentElement)?void 0:t.appendChild)||i.call(t,e))}(i);const u=i.querySelector(".image-video-grid-slot-actions");if(u){this.setImageVideoGridSlotActionState(i,!0);u.querySelector('[data-action="image-video-grid-slot-delete"]')||u.appendChild(this.createDeleteActionButton({actionAttribute:"data-action",actionValue:"image-video-grid-slot-delete"}))}const h=i.querySelector("[data-grid-item-caption]"),m=i.querySelector("[data-grid-item-caption-wrap]");h&&(h.disabled=!1),m&&(m.hidden=!1),this.syncGridItemCaptionVisibility(i),r.classList.add("has-asset","has-preview"),this.compactImageVideoGridSlots(a),this.refreshImageVideoGridDragSort(r),requestAnimationFrame((()=>this.refreshImageVideoGridDragSort(r))),this.setImageVideoGridBlockActionState(r,!0)}embedUpdate(e,t=null){var i;const r=null!=(i=null==e?void 0:e.target)?i:t;if(null==r)return;const a=r.closest(".editor-block-fields")||r.closest(".embed-fields")||r.parentElement,o=(null==a?void 0:a.querySelector("select.input-embed-update"))||(null==a?void 0:a.querySelector('select[name*="[portfolioBlocksEmbedService]"]')),s=(null==a?void 0:a.querySelector('input.input-embed-update[type="text"]'))||(null==a?void 0:a.querySelector('input[name*="[portfolioBlocksEmbedEmbedID]"]')),l=null==a?void 0:a.querySelector(".input-embed");if(!o||!s||!l)return;const n=o.value,d=s.value,c=o.querySelector("[data-codepen-username]"),u=null==c?void 0:c.dataset.codepenUsername;l.innerHTML="";const h=(null==a?void 0:a.querySelector(".embed-block-editor"))||(null==l?void 0:l.closest(".embed-block-editor"));if(n&&d.length){let e="";switch(n){case"vimeo":e=`<iframe src="https://player.vimeo.com/video/${d}" frameborder="0"></iframe>`;break;case"youtube":e=`<iframe src="https://www.youtube.com/embed/${d}" frameborder="0"></iframe>`;break;case"codepen":u&&(e=`\n\t\t\t\t\t\t\t<iframe height="300" style="width: 100%;" scrolling="no" title="CodePen embed" src="https://codepen.io/${u}/embed/preview/${d}?default-tab=result&theme-id=default" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true"></iframe>`);break;default:e="Invalid service"}l.innerHTML=e,null==h||h.classList.add("has-preview")}else null==h||h.classList.remove("has-preview")}handleMediaAction(e){const t=e.target.closest("[data-media-action]");if(!t)return;const i=t.dataset.mediaAction,r=t.closest("[data-media-role]");if(r)if("add"===i){const e=r.dataset.mediaRole;"hero"===e?this.openMediaLibrary(this.createMediaLibraryTarget("hero",{mode:r.classList.contains("has-asset")?"replace":"add"})):"thumb"===e&&this.openMediaLibrary(this.createMediaLibraryTarget("thumb",{slot:r,mode:r.classList.contains("has-asset")?"replace":"add"}))}else"delete"===i&&this.deleteMediaSlot(r)}handleMediaEmptySlotClick(e){var t,i;if(!this.mediaComponent)return;if("preview"===(null==(i=null==(t=this.editorContainer)?void 0:t.dataset)?void 0:i.editorMode))return;if(e.target.closest('[data-media-action], a, button, input, label, [role="button"]'))return;const r=e.target.closest("[data-media-role]");if(!r||!this.mediaComponent.contains(r))return;if(r.classList.contains("has-asset"))return;const a=r.dataset.mediaRole;"hero"!==a?"thumb"===a&&this.openMediaLibrary(this.createMediaLibraryTarget("thumb",{slot:r})):this.openMediaLibrary(this.createMediaLibraryTarget("hero"))}handleProjectMediaPreviewThumbClick(e){var t,i,r,a,o,s;if("preview"!==(null==(i=null==(t=this.editorContainer)?void 0:t.dataset)?void 0:i.editorMode))return;if(e.target.closest('[data-media-action], button, input, label, [role="button"]'))return;const l=e.target.closest('[data-media-role="thumb"].has-asset');if(!l||!(null==(r=this.mediaComponent)?void 0:r.contains(l)))return;const n=Number.parseInt(null!=(a=l.dataset.slideIndex)?a:"",10);if(Number.isFinite(n))return this.projectMediaPreviewActiveIndex=n,void(null==(o=this.syncProjectMediaPreviewState)||o.call(this));const d=this.getFilledMediaThumbs().indexOf(l);d<0||(this.projectMediaPreviewActiveIndex=this.hasFeaturedMediaAsset()?d+1:d,null==(s=this.syncProjectMediaPreviewState)||s.call(this))}deleteMediaSlot(e){var t,i,r;const a=e.dataset.mediaRole,o=e.querySelector("[data-media-keep]");if(o&&(o.checked=!1),"hero"===a){this.removeOgInjectedRelationInputs("portfolioFeaturedAsset"),this.clearVideoPosterAsset();const i=null==(t=this.mediaHero)?void 0:t.querySelector('[data-media-file="hero"]');i&&(i.value=""),delete e.dataset.featuredPreviewKind,delete e.dataset.featuredPreviewUrl}else if("thumb"===a){const t=e.querySelector("[data-media-file]");t&&(t.name="",t.value=""),e.querySelectorAll('input[name*="portfolioThumbnails"]').forEach((e=>{e.dataset.mediaFile||e.remove()})),delete e.dataset.entryId}const s="hero"===a?e.querySelector(".project-media-hero-content"):e.querySelector(".project-media-thumb-content");
1if(s)if("thumb"===a){const t=void 0!==e.dataset.thumbIndex?parseInt(e.dataset.thumbIndex,10):0;s.innerHTML=`<span class="project-media-thumb-label editor-only">${t+1}</span>`}else s.innerHTML="hero"===a?this.getEmptyHeroHtml():"";e.classList.remove("has-asset"),delete e.dataset.assetId;const l=e.querySelector('[data-media-action="delete"]');l&&l.remove(),this.setProjectMediaSlotActionState(e,!1);const n=e.querySelector(".project-media-drag-handle");n&&n.remove(),"thumb"===a&&(this.compactThumbnails(),this.refreshMediaDragSort()),null==(i=this.syncProjectMediaPreviewState)||i.call(this),null==(r=this.syncProjectLinkSuggestions)||r.call(this),this.setSaveButtonDirtyState(!0)}compactThumbnails(){var e;const t=this.mediaThumbsContainer;if(!t)return;const i=Array.from(t.querySelectorAll('[data-media-role="thumb"]')).filter((e=>void 0!==e.dataset.thumbIndex)).sort(((e,t)=>parseInt(e.dataset.thumbIndex,10)-parseInt(t.dataset.thumbIndex,10)));if(0===i.length)return;const r=Array.from(t.querySelectorAll('[data-media-role="thumb"]')).filter((e=>this.isThumbSlotFilled(e))).map((e=>this.captureThumbSlotState(e)));i.forEach(((e,t)=>{var i;const a=null!=(i=r[t])?i:null;a?this.applyThumbSlotState(e,a):this.clearThumbSlotToEmpty(e)})),null==(e=this.syncProjectMediaPreviewState)||e.call(this)}isThumbSlotFilled(e){var t;if(!e)return!1;if(e.classList.contains("has-asset"))return!0;const i=e.querySelector('[data-media-file^="thumb-"]'),r=e.querySelector("[data-media-keep]");return!!(null==(t=null==i?void 0:i.files)?void 0:t.length)||!!(null==r?void 0:r.checked)}captureThumbSlotState(e){var t;if(!e)return null;const i=e.querySelector('[data-media-file^="thumb-"]'),r=e.querySelector(".project-media-thumb-content"),a=e.querySelector(".project-media-actions"),o=Array.from(e.querySelectorAll('input[name*="portfolioThumbnails"]')).filter((e=>{var t;return void 0===(null==(t=e.dataset)?void 0:t.mediaFile)})).map((e=>e.outerHTML)).join("");return{fileName:(null==i?void 0:i.name)||"",file:(null==(t=null==i?void 0:i.files)?void 0:t[0])||null,hiddenInputsHtml:o,contentHtml:(null==r?void 0:r.innerHTML)||"",actionsHtml:(null==a?void 0:a.innerHTML)||"",hasAsset:e.classList.contains("has-asset"),entryId:e.dataset.entryId||"",assetId:e.dataset.assetId||"",previewKind:e.dataset.previewKind||"",previewUrl:e.dataset.previewUrl||""}}applyThumbSlotState(e,t){if(!e)return;if(this.clearThumbSlotToEmpty(e),!t)return;t.hiddenInputsHtml&&e.insertAdjacentHTML("afterbegin",t.hiddenInputsHtml);const i=e.querySelector('[data-media-file^="thumb-"]');if(i&&(i.name=t.fileName||"",t.file))try{const e=new DataTransfer;e.items.add(t.file),i.files=e.files}catch(o){}t.entryId&&(e.dataset.entryId=t.entryId),t.assetId&&(e.dataset.assetId=t.assetId),t.previewKind&&(e.dataset.previewKind=t.previewKind),t.previewUrl&&(e.dataset.previewUrl=t.previewUrl),t.hasAsset&&e.classList.add("has-asset");const r=e.querySelector(".project-media-thumb-content");r&&(r.innerHTML=t.contentHtml);const a=e.querySelector(".project-media-actions");a&&(a.innerHTML=t.actionsHtml)}clearThumbSlotToEmpty(e){const t=e.querySelector('[data-media-file^="thumb-"]');t&&(t.name="",t.value=""),e.querySelectorAll('input[name*="portfolioThumbnails"]').forEach((e=>{var t;void 0===(null==(t=e.dataset)?void 0:t.mediaFile)&&e.remove()})),delete e.dataset.entryId,delete e.dataset.assetId,delete e.dataset.previewKind,delete e.dataset.previewUrl,e.classList.remove("has-asset");const i=e.querySelector(".project-media-thumb-content");if(i){const t=void 0!==e.dataset.thumbIndex?parseInt(e.dataset.thumbIndex,10):0;i.innerHTML=`<span class="project-media-thumb-label editor-only">${t+1}</span>`}const r=e.querySelector('[data-media-action="delete"]');r&&r.remove();const a=e.querySelector(".project-media-drag-handle");a&&a.remove(),this.setProjectMediaSlotActionState(e,!1)}refreshMediaDragSort(){var e,t,i,r;if(!this.mediaThumbsContainer)return;const a="preview"===(null==(t=null==(e=this.editorContainer)?void 0:e.dataset)?void 0:t.editorMode),o=this.mediaThumbsContainer.querySelector(".project-media-thumbn
1ails-drag");if(this.mediaThumbsContainer.dragSort&&(this.mediaThumbsContainer.dragSort.destroy(),this.mediaThumbsContainer.dragSort=null),null==(i=this.mediaThumbsContainer.closest("[data-media-component]"))||i.classList.remove("is-dragging-thumb"),Array.from(this.mediaThumbsContainer.querySelectorAll('[data-media-role="thumb"].is-dragging')).forEach((e=>{e.classList.remove("is-dragging")})),o&&(Array.from(o.querySelectorAll('[data-media-role="thumb"]')).sort(((e,t)=>parseInt(e.dataset.thumbIndex||"0",10)-parseInt(t.dataset.thumbIndex||"0",10))).forEach((e=>{u.killTweensOf(e),u.set(e,{clearProps:"transform,left,top,width,height"}),e.style.removeProperty("transform"),e.style.removeProperty("left"),e.style.removeProperty("top"),e.style.removeProperty("width"),e.style.removeProperty("height"),this.mediaThumbsContainer.insertBefore(e,o)})),o.remove()),a)return;const s=Array.from(this.mediaThumbsContainer.querySelectorAll('[data-media-role="thumb"]')).filter((e=>e.dataset.assetId));if(s.length<2)return;const l=this.getProjectMediaThumbGap(),n=document.createElement("div"),d=this.getProjectMediaDragAxis(),c=this.getProjectMediaDragColumns(s.length);
1n.className="project-media-thumbnails-drag dragSort-container",n.setAttribute("data-drag-axis",d),s.forEach((e=>n.appendChild(e))),this.mediaThumbsContainer.insertBefore(n,this.mediaThumbsContainer.firstChild),this.setProjectMediaDragWrapperDimensions(n,s);const h=this.mediaThumbsContainer.closest("[data-media-component]"),m=((null==(r=s[0])?void 0:r.offsetWidth)||80)+l;this.mediaThumbsContainer.dragSort=new x({dragAxis:d,dragContainer:n,dragItems:s,columns:c,itemSize:m,onDragStart:e=>{var t;null==h||h.classList.add("is-dragging-thumb"),null==(t=null==e?void 0:e.classList)||t.add("is-dragging")},onRelease:e=>{var t;null==h||h.classList.remove("is-dragging-thumb"),null==(t=null==e?void 0:e.classList)||t.remove("is-dragging"),this.compactThumbnails(),this.refreshMediaDragSort()}})}refreshMediaDragSortAfterDelete(e){var t,i;const r=null==(t=this.mediaThumbsContainer)?void 0:t.querySelector(".project-media-thumbnails-drag");if(!r||!e.closest(".project-media-thumbnails-drag"))return;this.mediaThumbsContainer.dragSort&&(this.mediaThumbsContainer.dragSort.destroy(),this.mediaThumbsContainer.dragSort=null),u.killTweensOf(e),u.set(e,{clearProps:"transform"}),e.style.removeProperty("transform"),requestAnimationFrame((()=>{e.style.removeProperty("transform")}));const a=Array.from(r.querySelectorAll('[data-media-role="thumb"]')).filter((e=>e.dataset.assetId)),o=e.querySelector(".project-media-thumb-content");if(o){const e=a.length+1;o.innerHTML=`<span class="project-media-thumb-label editor-only">${e}</span>`}if(this.mediaThumbsContainer.insertBefore(e,r.nextSibling),a.length<2)return void(1===a.length&&(this.setProjectMediaDragWrapperDimensions(r,a),u.set(a[0],{clearProps:Array.from(a[0].style).filter((e=>"will-change"!==e)).join(",")})));const s=this.getProjectMediaThumbGap(),l=this.getProjectMediaDragAxis(),n=this.getProjectMediaDragColumns(a.length);r.setAttribute("data-drag-axis",l),this.setProjectMediaDragWrapperDimensions(r,a);const d=((null==(i=a[0])?void 0:i.offsetWidth)||80)+s;this.mediaThumbsContainer.dragSort=new x({dragAxis:l,dragContainer:r,dragItems:a,columns:n,itemSize:d})}handleMediaThumbDragover(e){var t,i;const r=null==(t=e.target)?void 0:t.closest(".project-media-thumb");(null==r?void 0:r.closest('[data-media-role="thumbnails"]'))&&r.querySelector('[data-media-file^="thumb-"]')&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",null==(i=this.mediaThumbsContainer)||i.querySelectorAll(".project-media-thumb.is-drag-over").forEach((e=>e.classList.remove("is-drag-over"))),r.classList.add("is-drag-over"))}handleMediaThumbDragleave(e){const t=this.mediaThumbsContainer;t&&(t.contains(e.relatedTarget)||t.querySelectorAll(".project-media-thumb.is-drag-over").forEach((e=>e.classList.remove("is-drag-over"))))}handleMediaThumbDrop(e){var t;const i=null==(t=e.target)?void 0:t.closest(".project-media-thumb");if(!(null==i?void 0:i.closest('[data-media-role="thumbnails"]')))return;e.preventDefault(),i.classList.remove("is-drag-over");const r=Array.from(e.dataTransfer.files||[]).filter((e=>e.type.startsWith("image/")));r.length&&this.openMediaLibrary(this.createMediaLibraryTarget("thumb",{slot:i}),{autoApplyAfterUpload:!0,initialFiles:r})}handleSocialShareImageDragover(e){var t,i;const r=(null==(i=null==(t=e.currentTarget)?void 0:t.closest)?void 0:i.call(t,"[data-social-share-image]"))||e.currentTarget;(null==r?void 0:r.querySelector("#portfolioSocialShareImage"))&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",r.classList.add("is-drag-over"))}handleSocialShareImageDragleave(e){var t,i;const r=(null==(i=null==(t=e.currentTarget)?void 0:t.closest)?void 0:i.call(t,"[data-social-share-image]"))||e.currentTarget;r&&(r.contains(e.relatedTarget)||r.classList.remove("is-drag-over"))}handleSocialShareImageDrop(e){var t,i,r;const a=(null==(i=null==(t=e.currentTarget)?void 0:t.closest)?void 0:i.call(t,"[data-social-share-image]"))||e.currentTarget;if(!a)return;e.preventDefault(),a.classList.remove("is-drag-over");const o=Array.from((null==(r=e.dataTransfer)?void 0:r.files)||[]).filter((e=>e.type.startsWith("image/")));o.length&&this.openMediaLibrary(this.createMediaLibraryTarget("social-share-image",{editor:a,mode:a.classList.contains("has-asset")||a.classList.contains("has-preview")?"replace":"add"}),{autoApplyAfterUpload:!0,initialFiles:o.slice(0,1)})}handleMediaHeroDragover(e){var t;(null==(t=this.mediaHero)?void 0:t.querySelector('[data-media-file="hero"]'))&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",this.mediaHero.classList.add("is-drag-over"))}handleMediaHeroDragleave(e){this.mediaHero&&(this.mediaHero.contains(e.relatedTarget)||this.mediaHero.classList.remove("is-drag-over"))}handleMediaHeroDrop(e){if(!this.mediaHero)return;e.preventDefault(),this.mediaHero.classList.remove("is-drag-over");const t=Array.from(e.dataTransfer.files||[]).filter((e=>e.type.startsWith("image/")||"video/webm"===e.type||"video/mp4"===e.type||"video/m4v"===e.type));t.length&&this.openMediaLibrary(this.createMediaLibraryTarget("hero"),{autoApplyAfterUpload:!0,initialFiles:t.slice(0,1)})}handleEditorBlockMediaDragover(e){var t,i,r;const a=null==(t=e.target)?void 0:t.closest(".image-block-editor, .video-block-editor, .image-video-grid-block-editor");a&&(null==(i=this.portfolioBlocks)?void 0:i.contains(a))&&(e.preventDefault(),e.dataTransfer.dropEffect="copy",null==(r=this.portfolioBlocks)||r.querySelectorAll(".image-block-editor.is-drag-over, .video-block-editor.is-drag-over, .image-video-grid-block-editor.is-drag-over").forEach((e=>e.classList.remove("is-drag-over"))),a.classList.add("is-drag-over"))}handleEditorBlockMediaDragleave(e){var t;const i=null==(t=e.target)?void 0:t.closest(".image-block-editor, .video-block-editor, .image-video-grid-block-editor");i&&!i.contains(e.relatedTarget)&&i.classList.remove("is-drag-over")}handleEditorBlockMediaDrop(e){var t,i,r,a;const o=null==(t=e.target)?void 0:t.closest(".image-block-editor, .video-block-editor, .image-video-grid-block-editor");if(!o||!(null==(i=this.portfolioBlocks)?void 0:i.contains(o)))return;e.preventDefault(),o.classList.remove("is-drag-over");const s=Array.from(e.dataTransfer.files||[]);if(!s.length)return;let l=[],n=null;if(o.classList.contains("image-block-editor")){const e=s.find((e=>e.type.startsWith("image/")));e&&(l=[e],n=this.createMediaLibraryTarget("image-block",{editor:o}))}else if(o.classList.contains("video-block-editor")){const e=s.find((e=>"video/webm"===e.type||"video/mp4"===e.type||"video/m4v"===e.type));e&&(l=[e],n=this.createMediaLibraryTarget("video-block",{editor:o}))}else o.classList.contains("image-video-grid-block-editor")&&(l=s.filter((e=>e.type.startsWith("image/")||"video/webm"===e.type||"video/mp4"===e.type||"video/m4v"===e.type)),n=this.createMediaLibraryTarget("image-video-grid",{editor:o,startSlot:(null==(a=null==(r=e.target)?void 0:r.closest)?void 0:a.call(r,".image-video-grid-slot"))||o.querySelector(".image-video-grid-slot")}));l.length&&this.openMediaLibrary(n,{autoApplyAfterUpload:!0,initialFiles:l})}handleMediaFileChange(e){var t,i,r;const a=e.target;if(!(null==(t=a.files)?void 0:t.length))return;const o="hero"===a.dataset.mediaFile,s=a.files[0];if(!s)return;this.clearProjectMediaErrors();const l=this.getProjectMediaFileValidationMessage(s,{isHero:o});if(l)return a.value="",void this.showProjectMediaError(l,{slot:o?this.mediaHero:a.closest(".project-media-thumb")});if(o)this.removeOgInjectedRelationInputs("portfolioFeaturedAsset"),this.mediaHero.querySelectorAll('input[name="fields[portfolioFeaturedAsset][]"]').forEach((e=>e.remove())),s.type.startsWith("video/")?(a.name="fields[portfolioFeaturedAsset]",this.openMediaLibrary(this.createMediaLibraryTarget("hero"),{step:"poster",videoSource:{file:s,filename:s.name,url:URL.createObjectURL(s)}})):(this.clearVideoPosterAsset(),this.applyMediaPreview(this.mediaHero,s,"hero"),null==(i=this.syncProjectLinkSuggestions)||i.call(this));else{const e=a.closest(".project-media-thumb");if(!e)return;const t=e.dataset.entryId;if(t){a.name=`fields[portfolioThumbnails][entries][${t}][fields][portfolioThumbnail]`;const i=e.querySelector("[data-media-keep]");i&&(i.checked=!1)}else if(!a.name){const t="new:thumb-"+ ++this.newThumbCounter;e.dataset.entryId=t,e.insertAdjacentHTML("afterbegin",`<input type="hidden" name="fields[portfolioThumbnails][sortOrder][]" value="${t}"><input type="hidden" name="fields[portfolioThumbnails][entries][${t}][type]" value="portfolioThumbnail">`),a.name=`fields[portfolioThumbnails][entries][${t}][fields][portfolioThumbnail]`}this.applyMediaPreview(e,s,"thumb"),this.compactThumbnails(),this.refreshMediaDragSort()}null==(r=this.syncProjectMediaPreviewState)||r.call(this)}clearProjectMediaErrors(){this.mediaComponent&&(this.mediaComponent.querySelectorAll(".project-media-hero.has-error, .project-media-thumb.has-error").forEach((e=>{e.classList.remove("has-error")})),this.mediaComponent.querySelectorAll(".project-media-errors .error-message").forEach((e=>e.remove())))}showProjectMediaError(e,{slot:t=null}={}){var i;if(!this.mediaComponent||!e)return;null==(i=null==t?void 0:t.classList)||i.add("has-error");const r=this.mediaComponent.querySelector(".project-media-errors");r&&(r.innerHTML=`<li class="error-message">${this.escapeHtml(e)}</li>`)}getProjectMediaFileValidationMessage(e,{isHero:t=!1}={}){return e?e.type.startsWith("image/")?e.size>ne?`Images must be ${de} or smaller. '${e.name}' is ${this.formatFileSizeMb(e.size)} MB.`:null:!t||"video/mp4"!==e.type&&"video/webm"!==e.type?t?"Featured asset must be a JPG, PNG, GIF, WebP, MP4, or WebM file.":"Slider images must be a JPG, PNG, GIF, or WebP file.":e.size>20971520?`Videos must be 20MB or smaller. '${e.name}' is ${this.formatFileSizeMb(e.size)}MB.`:null:null}formatFileSizeMb(e){return(e/1048576).toFixed(2)}hydrateServerRenderedMediaSelections(){var e,t;if(!this.form)return;const i=null==(e=this.mediaHero)?void 0:e.querySelector('input[name="fields[portfolioFeaturedAsset][]"]');if(this.mediaHero&&i){i.checked=!0,i.value&&(this.mediaHero.dataset.assetId=i.value);const e=this.getProjectMediaPreviewAssetData(this.mediaHero);(null==e?void 0:e.kind)&&(null==e?void 0:e.url)&&(this.mediaHero.dataset.previewKind=e.kind,this.mediaHero.dataset.previewUrl=e.url,this.mediaHero.dataset.featuredPreviewKind=e.kind,this.mediaHero.dataset.featuredPreviewUrl=e.url)}Array.from((null==(t=this.mediaThumbsContainer)?void 0:t.querySelectorAll('[data-media-role="thumb"]'))||[]).forEac
1h((e=>{var t;if(!(null==(t=e.dataset)?void 0:t.assetId))return;const i=e.querySelector("[data-media-keep]");i&&(i.checked=!0)})),document.querySelectorAll("[data-image-block-editor]").forEach((e=>{var t;if(!(null==(t=e.dataset)?void 0:t.assetId))return;const i=e.querySelector("[data-image-block-keep]");i&&(i.checked=!0)})),document.querySelectorAll("[data-video-block-editor]").forEach((e=>{var t;if(!(null==(t=e.dataset)?void 0:t.assetId))return;const i=e.querySelector("[data-video-block-keep]");i&&(i.checked=!0)})),document.querySelectorAll("[data-image-video-grid-block-editor] .image-video-grid-slot").forEach((e=>{var t;if(!(null==(t=e.dataset)?void 0:t.assetId))return;const i=e.querySelector("[data-image-video-grid-keep]");i&&(i.checked=!0)}));const r=document.querySelector("[data-social-share-image]");if(null==r?void 0:r.classList.contains("has-asset")){const e=r.querySelector('input[name="fields[portfolioSocialShareImage][]"]');e&&(e.checked=!0)}}getEmptyHeroLabelMarkup(){var e,t;return(null==(t=null==(e=this.viewRoot)?void 0:e.querySelector("[data-empty-hero-label]"))?void 0:t.innerHTML)||""}getEmptyHeroHtml(){return`<div class="project-media-label editor-only">${this.getEmptyHeroLabelMarkup()}</div>`}getProjectMediaPreviewAssetData(e){var t,i;if(!e)return null;const r=e.dataset.previewKind||"",a=e.dataset.previewUrl||"";if(r&&a)return{kind:r,url:a};const o=e.querySelector("video"),s=(null==o?void 0:o.currentSrc)||(null==(t=null==o?void 0:o.getAttribute)?void 0:t.call(o,"src"))||"";if(s)return{kind:"video",url:s};const l=e.querySelector("img"),n=(null==l?void 0:l.currentSrc)||(null==(i=null==l?void 0:l.getAttribute)?void 0:i.call(l,"src"))||"";return n?{kind:"image",url:n}:null}getProjectMediaPreviewSlides({hasFeatured:e=!1,filledThumbs:t=[]}={}){const i=[];if(e){const e=this.getCanonicalHeroPreviewAsset()||this.getProjectMediaPreviewAssetData(this.mediaHero);e&&i.push(e)}return t.forEach((e=>{const t=this.getProjectMediaPreviewAssetData(e);t&&i.push(t)})),i}getCanonicalHeroPreviewAsset(){if(!this.mediaHero)return null;const e=this.mediaHero.dataset.featuredPreviewKind||"",t=this.mediaHero.dataset.featuredPreviewUrl||"";return e&&t?{kind:e,url:t}:null}buildProjectMediaPreviewHeroHtml(e){if(!(null==e?void 0:e.url))return"";const t=this.escapeHtml(e.url);if("video"===e.kind){const e=this.escapeHtml(this.getHeroVideoPosterPreviewUrl());return`\n\t\t\t\t<div class="project-media-hero-slide-content">\n\t\t\t\t\t<div class="video-container">\n\t\t\t\t\t\t<video src="${t}" preload="metadata" playsinline controls${e?` poster="${e}"`:""}></video>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`}return`\n\t\t\t${X()?`<div class="project-media-hero-slide-bg" aria-hidden="true">\n\t\t\t\t<img src="${t}" alt="" style="width:100%;height:100%;object-fit:cover;object-position:center">\n\t\t\t</div>`:""}\n\t\t\t<div class="project-media-hero-slide-content">\n\t\t\t\t<img src="${t}" alt="Featured asset" style="width:100%;height:100%;object-fit:contain;object-position:center">\n\t\t\t</div>\n\t\t`}renderProjectMediaHeroPreview(e,t){var i;if(!e||!(null==t?void 0:t.url))return;const r=e.dataset.previewKind||"",a=e.dataset.previewUrl||"";if(r===t.kind&&a===t.url)return;const o=t.url;if(this.escapeHtml(o),"image"===t.kind){const i=!!e.querySelector("picture, source, .lazyPicture"),r=e.querySelector(".project-media-hero-slide-bg img"),a=e.querySelector(".project-media-hero-slide-content img");!i&&a&&(!X()||r)?(r&&(r.src=o),a.src=o):e.innerHTML=this.buildProjectMediaPreviewHeroHtml(t)}else if("video"===t.kind){const r=this.getHeroVideoPosterPreviewUrl(),a=e.querySelector(".project-media-hero-slide-content video")||e.querySelector("video");a&&!e.querySelector("source")?((a.getAttribute("src")||"")!==o&&(a.setAttribute("src",o),null==(i=a.load)||i.call(a)),r?a.setAttribute("poster",r):a.removeAttribute("poster")):e.innerHTML=this.buildProjectMediaPreviewHeroHtml(t)}e.dataset.previewKind=t.kind,e.dataset.previewUrl=t.url}hasFeaturedMediaAsset(){var e;if(!this.mediaHero||!this.form)return!1;const t=this.mediaHero.querySelector('[data-media-file="hero"]'),i=this.mediaHero.querySelector('[data-media-keep="hero"]'),r=this.form.querySelector('input[name="fields[portfolioFeaturedAsset][]"]:checked');return!!(null==(e=null==t?void 0:t.files)?void 0:e.length)||!!(null==i?void 0:i.checked)||!!r}getFilledMediaThumbs(){return this.mediaThumbsContainer?Array.from(this.mediaThumbsContainer.querySelectorAll('[data-media-role="thumb"]')).filter((e=>!e.hasAttribute("data-featured-preview-thumb"))).filter((e=>{var t;const i=e.querySelector('[data-media-file^="thumb-"]'),r=e.querySelector("[data-media-keep]");return e.classList.contains("has-asset")||!!(null==(t=null==i?void 0:i.files)?void 0:t.length)||!!(null==r?void 0:r.checked)})).sort(((e,t)=>{var i,r;return parseInt(null!=(i=e.dataset.thumbIndex)?i:"0",10)-parseInt(null!=(r=t.dataset.thumbIndex)?r:"0",10)})):[]}getFallbackHeroHtml(e){var t,i,r,a;if(!e)return"";const o=e.dataset.previewKind||"",s=e.dataset.previewUrl||"";if("image"===o&&s)return this.buildProjectMediaPreviewHeroHtml({kind:"image",url:s});if("video"===o&&s){const e=this.escapeHtml(s),t=this.escapeHtml(this.getHeroVideoPosterPreviewUrl());return`\n\t\t\t\t<div class="project-media-hero-slide-content">\n\t\t\t\t\t<div class="video-container">\n\t\t\t\t\t\t<video src="${e}" preload="metadata" playsinline controls${t?` poster="${t}"`:""}></video>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`}return null!=(a=null==(r=null==(i=null==(t=e.querySelector(".project-media-thumb-content"))?void 0:t.innerHTML)?void 0:i.trim)?void 0:r.call(i))?a:""}getFeaturedPreviewThumb(){var e,t,i;return null!=(i=null==(t=null==(e=this.mediaThumbsContainer)?void 0:e.querySelector)?void 0:t.call(e,"[data-featured-preview-thumb]"))?i:null}removeFeaturedPreviewThumb(){var e;null==(e=this.getFeaturedPreviewThumb())||e.remove()}buildProjectMediaPreviewThumbHtml(e,{useHeroPoster:t=!1}={}){if(!(null==e?void 0:e.url))return"";const i=this.escapeHtml(e.url);if("video"===e.kind){const e=t?this.escapeHtml(this.getHeroVideoPosterPreviewUrl()):"";if(e)return`<img src="${e}" alt="Featured asset preview">`;return`<video src="${i.includes("#")?i:`${i}#t=0.001`}" preload="metadata" playsinline muted></video>`}return`<img src="${i}" alt="Featured asset preview">`}syncFeaturedPreviewThumb({isPreview:e=!1,hasFeatured:t=!1}={}){var i,r;if(!this.mediaThumbsContainer)return null;if(!e||!t)return this.removeFeaturedPreviewThumb(),null;const a=this.getCanonicalHeroPreviewAsset()||this.getProjectMediaPreviewAssetData(this.mediaHero);if(!(null==a?void 0:a.url))return this.removeFeaturedPreviewThumb(),null;let o=this.getFeaturedPreviewThumb();if(!o){o=document.createElement("div"),o.className="project-media-thumb project-media-thumb-featured has-asset",o.setAttribute("data-media-role","thumb"),o.setAttribute("data-featured-preview-thumb","true"),o.setAttribute("data-sli
1de-index","0"),o.setAttribute("aria-label","Featured asset");const e=document.createElement("div");e.className="project-media-thumb-content",o.appendChild(e)}const s="video"===a.kind&&this.getHeroVideoPosterPreviewUrl()||"",l=o.dataset.previewKind!==a.kind||o.dataset.previewUrl!==a.url||(o.dataset.posterPreviewUrl||"")!==s;o.classList.add("has-asset"),o.dataset.assetId=(null==(r=null==(i=this.mediaHero)?void 0:i.dataset)?void 0:r.assetId)||"featured-preview",o.dataset.previewKind=a.kind,o.dataset.previewUrl=a.url,o.dataset.posterPreviewUrl=s,o.dataset.slideIndex="0";const n=o.querySelector(".project-media-thumb-content");return n&&l&&(n.innerHTML=this.buildProjectMediaPreviewThumbHtml(a,{useHeroPoster:!0})),this.mediaThumbsContainer.firstElementChild!==o&&this.mediaThumbsContainer.insertBefore(o,this.mediaThumbsContainer.firstChild),o}syncProjectMediaPreviewState(){var e,t,i,r;if(!this.mediaComponent||!this.mediaHero)return;const a="preview"===(null==(t=null==(e=this.editorContainer)?void 0:e.dataset)?void 0:t.editorMode),o=this.hasFeaturedMediaAsset(),s=this.getFilledMediaThumbs(),l=this.getProjectMediaPreviewSlides({hasFeatured:o,filledThumbs:s}),n=Math.max(0,l.length-1);this.projectMediaPreviewActiveIndex=Math.min(this.projectMediaPreviewActiveIndex,n);const d=this.syncFeaturedPreviewThumb({isPreview:a,hasFeatured:o}),c=s.length+(d?1:0),u=this.mediaHero.querySelector(".project-media-hero-content");if(Array.from((null==(i=this.mediaThumbsContainer)?void 0:i.querySelectorAll('[data-media-role="thumb"]'))||[]).forEach((e=>{e.classList.remove("is-active"),delete e.dataset.slideIndex})),d&&(d.dataset.slideIndex="0",d.classList.toggle("is-active",a&&0===this.projectMediaPreviewActiveIndex)),s.forEach(((e,t)=>{const i=o?t+1:t;e.dataset.slideIndex=String(i),e.classList.toggle("is-active",a&&i===this.projectMediaPreviewActiveIndex)})),this.mediaThumbsContainer){const e=a?Math.max(c,1):5;this.mediaThumbsContainer.style.setProperty("--project-media-thumb-count",String(e))}if(this.mediaComponent.classList.toggle("is-single-preview-slide",a&&l.length<=1),this.mediaHero.classList.toggle("has-preview-fallback",!(!a||o||!l.length)),u)if(a&&l.length){const e=null!=(r=l[this.projectMediaPreviewActiveIndex])?r:l[0];this.renderProjectMediaHeroPreview(u,e)}else if(o){this.mediaHero.classList.remove("has-preview-fallback");const e=this.getCanonicalHeroPreviewAsset()||this.getProjectMediaPreviewAssetData(this.mediaHero);this.renderProjectMediaHeroPreview(u,e)}else this.mediaHero.classList.remove("has-preview-fallback"),delete u.dataset.previewKind,delete u.dataset.previewUrl,u.innerHTML=this.emptyHeroHtml}applyMediaPreview(e,t,i){const r="hero"===i?e.querySelector(".project-media-hero-content"):e.querySelector(".project-media-thumb-content");if(!r)return;const a=URL.createObjectURL(t);if(t.type.startsWith("video/")){const e="hero"===i?this.escapeHtml(this.getHeroVideoPosterPreviewUrl()):"";r.innerHTML=`<video src="${a}
1#t=0.001" preload="metadata" playsinline muted${e?` poster="${e}"`:""}${"hero"===i?" controls":""}></video>`}else r.innerHTML=`<img src="${a}" alt="Preview">`;e.dataset.previewKind=t.type.startsWith("video/")?"video":"image",e.dataset.previewUrl=a,"hero"===i&&(e.dataset.featuredPreviewKind=e.dataset.previewKind,e.dataset.featuredPreviewUrl=a),e.classList.add("has-asset");const o=e.querySelector(".project-media-actions");o&&(this.setProjectMediaSlotActionState(e,!0),o.querySelector('[data-media-action="delete"]')||o.appendChild(this.createDeleteActionButton()))}initMediaDragSort(){this.refreshMediaDragSort()}initDragSort(e,t={}){const i=e.dataset.dragAxis?e.dataset.dragAxis:"x",r=Array.from(e.querySelectorAll(".dragSort-item")),a=e.classList.contains("image-video-grid-existing-assets")&&r[0]?r[0].offsetWidth+12:null;e.dragSort=new x({dragAxis:i,itemSize:a||void 0,dragContainer:e,dragItems:r,...t})}actionAdd(e){var t,i,r,a,o,s;const l=this,n=e.currentTarget,d=n.dataset.blockType;if(!d)return;const c=n.dataset.insertTarget||null,u=n.dataset.insertPosition||null,h=d.replace("block-",""),m=document.querySelector(`.block-references .${d}`);if(!m)return;this.blockInsertTargetId=c,this.blockInsertPosition=u,document.querySelectorAll(".editor-block.is-insert-target").forEach((e=>e.classList.remove("is-insert-target"))),c&&(null==(i=null==(t=document.getElementById(c))?void 0:t.classList)||i.add("is-insert-target"));const p=m.cloneNode(!0);null==(a=null==(r=p.querySelectorAll)?void 0:r.call(p,"[data-inline-toolbar]"))||a.forEach((e=>{e.classList.remove("is-active"),delete e.dataset.inlineToolbarReady,delete e._inlineToolbarState,delete e._inlineToolbarHandlers;const t=e.querySelector("[data-inline-toolbar-trigger]");null==t||t.setAttribute("aria-expanded","false")})),this.newCount++;const v=(this.portfolioBlocks?this.portfolioBlocks.querySelectorAll(":scope > .block-item"):[]).length+1;let g=null;const y=p.querySelector(".block-heading");y&&(y.innerText=`#${v} ${h}`);const b=p.querySelector(".editor-block-label");switch(b&&(b.textContent=`#${v} ${h}`),h){case"richText":!function(){var e,t,i;const r=p.querySelector(".rich-text-layout-container"),a=null!=(e=null==r?void 0:r.querySelector("label"))?e:null,o=null!=(t=null==r?void 0:r.querySelector("select"))?t:p.querySelector("select"),s=null!=(i=p.querySelector(".rich-text-block-editor textarea"))?i:p.querySelector("textarea");if(!o||!s)return;a&&a.setAttribute("for",`new-block-${l.newCount}-portfolioBlocksRichTextLayout`);o.id=`new-block-${l.newCount}-portfolioBlocksRichTextLayout`;let n=o.getAttribute("name");n=n.replace("#",l.newCount),o.setAttribute("name",n),s.id=`new-block-${l.newCount}`,s.classList.add("is-redactor");let d=s.getAttribute("name");d=d.replace("#",l.newCount),s.setAttribute("name",d),g=s}();break;case"image":!function(){const e=p.querySelector(".image-editor-container > label"),t=p.querySelector('input[type="file"]'),i=p.querySelector(".input-thumbnails"),r=p.querySelector('.image-caption-container .caption-field-input-wrap input[type="text"]'),a=p.querySelector('[data-action="image-block-add"]'),o=p.querySelector('[data-action="image-block-clear"]'),s=p.querySelector('input[type="hidden"][name*="[portfolioBlocksImageAsset]"]');if(!t||!i)return;e&&e.setAttribute("for",`new-block-${l.newCount}`);t.id=`new-block-${l.newCount}`,t.classList.add("input-thumbnails-update"),i.id=`new-block-thumbnails-${l.newCount}`;let n=t.getAttribute("name");if(n=n.replace("#",l.newCount),t.setAttribute("name",n),s){let e=s.getAttribute("name");e=e.replace("#",l.newCount),s.setAttribute("name",e)}if(r){const e=`new-block-${l.newCount}-caption`;r.id=e,r.setAttribute("name",`fields[portfolioBlocks][entries][new-block-${l.newCount}][fields][portfolioBlocksImageCaption]`)}t.addEventListener("change",l.inputThumbnailsUpdate),a&&a.addEventListener("click",l.imageBlockAddClick);o&&o.addEventListener("click",l.imageBlockClear)}();break;case"video":!function(){const e=p.querySelector(".video-editor-container > label"),t=p.querySelector('input[type="file"]'),i=p.querySelector(".input-thumbnails"),r=p.querySelector('.video-caption-container .caption-field-input-wrap input[type="text"]'),a=p.querySelector('[data-action="video-block-add"]'),o=p.querySelector('[data-action="video-block-clear"]'),s=p.querySelector('input[type="hidden"][name*="[portfolioBlocksVideoAsset]"]');if(!t||!i)return;e&&e.setAttribute("for",`new-block-${l.newCount}`);t.id=`new-block-${l.newCount}`,t.classList.add("input-thumbnails-update"),i.id=`new-block-thumbnails-${l.newCount}`;let n=t.getAttribute("name");if(n=n.replace("#",l.newCount),t.setAttribute("name",n),s){let e=s.getAttribute("name");e=e.replace("#",l.newCount),s.setAttribute("name",e)}if(r){const e=`new-block-${l.newCount}-caption`;r.id=e,r.setAttribute("name",`fields[portfolioBlocks][entries][new-block-${l.newCount}][fields][portfolioBlocksVideoCaption]`)}t.addEventListener("change",l.inputThumbnailsUpdate),a&&a.addEventListener("click",l.videoBlockAddClick);o&&o.addEventListener("click",l.videoBlockClear)}();break;case"grid":!function(){var e;const t=p.querySelector("[data-image-video-grid-block-editor]"),i=p.querySelector("[data-image-video-grid-slots]");(null==(e=null==t?void 0:t.dataset)?void 0:e.gridBlockEntryKey)&&(t.dataset.gridBlockEntryKey=t.dataset.gridBlockEntryKey.replace("#",l.newCount));t&&(t.dataset.gridNextItemIndex="1");i&&(i.querySelectorAll("input[data-image-video-grid-file]").forEach((e=>{e.setAttribute("name",""),e.addEventListener("change",l.inputThumbnailsUpdate)})),i.querySelectorAll("[data-grid-item-caption]").forEach((e=>{e.setAttribute("name",""),e.value="",e.disabled=!0})))}();break;case"imageVideoGrid":!function(){const e=p.querySelector('.image-video-grid-caption-container .caption-field-input-wrap input[type="text"]'),t=p.querySelector('input[type="hidden"][name*="[portfolioBlocksImageVideoGridAssets]"]'),i=p.querySelector("[data-image-video-grid-slots]");if(t){let e=t.getAttribute("name");e=e.replace("#",l.newCount),t.setAttribute("name",e)}if(e){const t=`new-block-${l.newCount}-caption`;e.id=t,e.setAttribute("name",`fields[portfolioBlocks][entries][new-block-${l.newCount}][fields][portfolioBlocksImageVideoGridCaption]`)}i&&i.querySelectorAll("input[data-image-video-grid-file]").forEach((e=>{let t=e.getAttribute("name");t=t.replace("#",l.newCount),e.setAttribute("name",t),e.addEventListener("change",l.inputThumbnailsUpdate)}))}();break;case"embed":!function(){const e=p.querySelector('label[for="new-portfolioBlocksEmbedService"]'),t=p.querySelector(".embed-service-container select, .embed-fields select");let i=null==t?void 0:t.getAttribute("name");const r=p.querySelector('label[for="new-portfolioBlocksEmbedEmbedID"]'),a=p.querySelector('.embed-id-container input, .embed-fields input[type="text"]');let o=null==a?void 0:a.getAttribute("name");const s=p.querySelector(".embed-fields .input-embed, .input-embed");e&&e.setAttribute("for",`new-block-${l.newCount}-portfolioBlocksEmbedService`);t&&(t.id=`new-block-${l.newCount}-portfolioBlocksEmbedService`,t.classList.add("input-embed-update"),null!=i&&t.setAttribute("name",i.replace("#",l.newCount)),t.addEventListener("change",l.embedUpdate));r&&r.setAttribute("for",`new-block-${l.newCount}-portfolioBlocksEmbedEmbedID`);a&&(a.id=`new-block-${l.newCount}-portfolioBlocksEmbedEmbedID`,a.classList.add("input-embed-update"),null!=o&&a.setAttribute("name",o.replace("#",l.newCount)),a.addEventListener("change",l.embedUpdate));s&&(s.id=`new-block-embed-${l.newCount}`)}()}p.insertAdjacentHTML("afterbegin",`\n\t\t\t<input type="hidden" name="fields[portfolioBlocks][sortOrder][]" value="new-block-${this.newCount}">\n\t\t\t<input type="hidden" name="fields[portfolioBlocks][entries][new-block-${this.newCount}
1][type]" value="${h}">\n\t\t\t<input type="hidden" name="fields[portfolioBlocks][entries][new-block-${this.newCount}][enabled]" value="1">\n\t\t`),p.id=`new-block-${this.newCount}-container`;const f=p.querySelector(".block-type-label");f&&(f.tabIndex=-1),function(e,t){e&&t&&(e.querySelectorAll("button[data-target], .editor-block-number-input[data-target]").forEach((e=>{e.dataset.target=t})),e.querySelectorAll("[data-inline-toolbar]").forEach((e=>{var i,r;let a=null;(null==(i=e.classList)?void 0:i.contains("is-top"))?a="before":(null==(r=e.classList)?void 0:r.contains("is-bottom"))&&(a="after"),e.querySelectorAll('button[data-action="add"]').forEach((e=>{a?(e.dataset.insertTarget=t,e.dataset.insertPosition=a):(delete e.dataset.insertTarget,delete e.dataset.insertPosition)}))})))}(p,p.id),p.classList.add("is-entering");this.blockInsertTargetId=null,this.blockInsertPosition=null,document.querySelectorAll(".editor-block.is-insert-target").forEach((e=>e.classList.remove("is-insert-target")));const S=p.querySelector('button[data-action="remove"]');S&&(S.dataset.target=`new-block-${this.newCount}-container`),(()=>{var e,t;const i={richText:"rich text",image:"image",video:"video",imageVideoGrid:"grid",grid:"grid",embed:"embed"}[h];i&&(null==(e=this.analytics)||e.once(`block added ${i}`)),null==(t=this.analytics)||t.changed("content"),function({clone:e,container:t,insertTargetId:i=null,insertPosition:r=null,getTargetById:a=(e=>document.getElementById(e))}){if(!e||!t)return"skipped";if(i&&r){const t=a(i);if(t){const i="before"===r?"beforebegin":"afterend";return t.insertAdjacentElement(i,e),i}}t.append(e)}({clone:p,container:this.portfolioBlocks,insertTargetId:c,insertPosition:u}),g&&this.ensureRedactorInitialized(g),requestAnimationFrame((()=>{requestAnimationFrame((()=>{p.classList.remove("is-entering"),this.initInlineToolbars(p),f&&"function"==typeof f.focus&&f.focus({preventScroll:!0})}
1))}))})(),this.renumberBlocks(),null==(o=this.updateReorderButtonState)||o.call(this),null==(s=this.updateEmptyStateVisibility)||s.call(this),this.setSaveButtonDirtyState(!0)}actionRemove(e){var t,i,r;const a=e.currentTarget,o=null==(t=null==a?void 0:a.dataset)?void 0:t.target,s=document.querySelector(`#${o}`);s&&s.remove(),this.renumberBlocks(),null==(i=this.updateReorderButtonState)||i.call(this),null==(r=this.updateEmptyStateVisibility)||r.call(this),this.setSaveButtonDirtyState(!0)}updateReorderButtonState(){const e=document.querySelectorAll(".portfolio-blocks .block-item").length;document.querySelectorAll('button[data-action="reorder"]').forEach((t=>{const i=e<2;t.disabled=i,t.setAttribute("aria-disabled",i?"true":"false"),this.syncInlineToolbarDisabledStates(t.closest("[data-inline-toolbar]"))}))}actionReorder(){var e,t,i,r;if(!this.modal||!this.modalContent)return;const a=this,o=(null==(t=null==(e=document.activeElement)?void 0:e.closest)?void 0:t.call(e,'button[data-action="reorder"]'))||null;this.reorderReturnFocusEl=(null==(i=null==o?void 0:o.closest)?void 0:i.call(o,"[data-inline-toolbar]"))||null;const s=document.querySelectorAll(".portfolio-blocks .editor-block, .portfolio-blocks .block-item");this._reorderInitialOrder=Array.from(s).map((e=>e.id)).filter(Boolean),this.syncCaseStudyBlockPreviews(),a.modalContent.innerHTML="";s.forEach(((e,t)=>{const i=e.getAttribute("id"),r=e.dataset.type,o=t+1,s=a.getReorderPreviewHtml(e,r),l=a.getReorderTypeLabel(r);a.modalContent.innerHTML+=`\n\t\t\t\t<div class="dragSort-item" data-block-ref="${i}" data-block-type="${r}">\n\t\t\t\t\t<div class="block-reorder-item block-reorder-${o} dragSort-item-content">\n\t\t\t\t\t\t<span class="block-type-label-number dragSort-order">#${o}</span>\n\t\t\t\t\t\t<div class="reorder-item-main">\n\t\t\t\t\t\t\t<div class="reorder-preview">${s}</div>\n\t\t\t\t\t\t\t<span class="reorder-item-label">\n\t\t\t\t\t\t\t\t<span class="block-type-label-badge">\n\t\t\t\t\t\t\t\t\t<span class="block-type-label-icon reorder-icon-placeholder" data-block-type="${r}"></span>\n\t\t\t\t\t\t\t\t\t<span class="block-type-label-text">${l}</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<span class="reorder-drag-handle" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 -960 960 960" fill="currentColor"><path d="M359.788-222.769q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm240 0q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm-240-216q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm240 0q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm-240-216q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Zm240 0q-17.096 0-29.057-12.174-11.962-12.174-11.962-29.269 0-17.096 12.174-29.057 12.174-11.962 29.269-11.962 17.096 0 29.057 12.174 11.962 12.174 11.962 29.269 0 17.096-12.174 29.057-12.174 11.962-29.269 11.962Z"/></svg></span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`})),a.modalContent.querySelectorAll(".reorder-icon-placeholder").forEach((e=>{const t=e.getAttribute("data-block-type"),i=document.querySelector(`.block-references .block-${t} .block-type-label-icon`);if(i){const t=i.cloneNode(!0);t.classList.remove("reorder-icon-placeholder"),e.replaceWith(t)}}));const l=s.length,n=a.modalContent,d=72*l+24,c="undefined"!=typeof window&&window.innerHeight?Math.min(400,.76*window.innerHeight):400;n.style.height=`${Math.min(c,Math.max(200,d))}px`,n.insertAdjacentHTML("beforeend",`<div class="reorder-list-spacer" style="height: ${d}px;" aria-hidden="true"></div>`),this.modalContent.setAttribute("data-drag-axis","y"),this.modal.showModal(),this.modalContent.scrollTop=0,null==(r=this.reorderScrollFadesCleanup)||r.call(this),this.reorderScrollFadesCleanup=m([this.modalContent],{topFade:!0}),this.modal.focus({preventScroll:!0}),window.setTimeout((()=>{var e,t;null==(t=null==(e=this.modal)?void 0:e.focus)||t.call(e,{preventScroll:!0})}),50),this.initDragSort(a.modalContent,{touchDragHandleSelector:".reorder-drag-handle",curs
1or:"grab",activeCursor:"grabbing"})}getReorderPreviewHtml(e,t){const i=e.querySelector(".editor-block-preview")||e,r=e.querySelector(".editor-block-fields");if("image"===t){const e=i.querySelector("img"),t=(null==r?void 0:r.querySelector(".image-block-preview .input-thumbnails .thumbnail img"))||(null==r?void 0:r.querySelector(".image-block-existing .lazyPicture img, .image-block-existing img")),a=e||t,o=null==a?void 0:a.getAttribute("src");return o?`<img class="reorder-preview-img" src="${o}" alt="">`:'<span class="reorder-preview-placeholder">No content yet</span>'}if("video"===t){const e=i.querySelector("video"),t=(null==r?void 0:r.querySelector(".video-block-preview .input-thumbnails .thumbnail video"))||(null==r?void 0:r.querySelector(".video-block-existing video")),a=e||t,o=null==a?void 0:a.getAttribute("src");return o?`<video class="reorder-preview-img" src="${o}" muted preload="metadata"></video>`:'<span class="reorder-preview-placeholder">No content yet</span>'}if("embed"===t){const e=i.querySelector("iframe");if(e){return`<span class="reorder-preview-url">${this.escapeHtml(e.getAttribute("src")||"")}</span>`}const t=null==r?void 0:r.querySelector('input[name*="[portfolioBlocksEmbedEmbedID]"]'),a=((null==t?void 0:t.value)||"").trim();return a?`<span class="reorder-preview-url">${this.escapeHtml(a)}</span>`:'<span class="reorder-preview-placeholder">No content yet</span>'}if("imageVideoGrid"===t||"grid"===t){const e=[];if(i.querySelectorAll("img, video").forEach((t=>{if(e.length>=4)return;const i=t.getAttribute("src");i&&e.push("img"===t.tagName.toLowerCase()?{tag:"img",src:i}:{tag:"video",src:i})})),0===e.length&&r&&r.querySelectorAll(".image-video-grid-block-preview .input-thumbnails .thumbnail img, .image-video-grid-block-preview .input-thumbnails .thumbnail video, .image-video-grid-slot.has-asset .image-video-grid-slot-content img, .image-video-grid-slot.has-asset .image-video-grid-slot-content video").forEach((t=>{if(e.length>=4)return;const i=t.getAttribute("src");i&&e.push({tag:t.tagName.toLowerCase(),src:i})})),e.length){const i=e.map((e=>"img"===e.tag?`<img class="reorder-preview-img" src="${e.src}" alt="">`:`<video class="reorder-preview-img" src="${e.src}" muted preload="metadata"></video>`)).join("");if("grid"===t){const e=Array.from((null==r?void 0:r.querySelectorAll("[data-grid-item-caption]"))||[]).map((e=>(e.value||"").trim())).filter(Boolean);if(e.length){const t=e.join(" / ").slice(0,80);return`${i}<span class="reorder-preview-text">${this.escapeHtml(t)}${80===t.length?"…":""}</span>`}}return i}return'<span class="reorder-preview-placeholder">No content yet</span>'}if("richText"===t){if(i.querySelector(".editor-placeholder"))return'<span class="reorder-preview-placeholder">No content yet</span>';let e=(i.textContent||"").trim().replace(/\s+/g," ");if(!e&&r){const t=r.querySelector(".redactor-in"),i=r.querySelector('textarea[name*="[portfolioBlocksRichTextCopy]"]');e=((null==t?void 0:t.innerText)||(null==i?void 0:i.value)||"").trim().replace(/\s+/g," ")}if(e){const t=e.slice(0,80)+(e.length>80?"…":"");return`<span class="reorder-preview-text">${this.escapeHtml(t)}</span>`}return'<span class="reorder-preview-placeholder">No content yet</span>'}return'<span class="reorder-preview-placeholder">No content yet</span>'}getReorderTypeLabel(e){return{richText:"Rich Text",image:"Image",video:"Video",grid:"Grid",imageVideoGrid:"Grid",embed:"Embed"}[e]||e}reorderDialogCancel(){this._reorderClosedByCancel=!0}reorderDialogClose(){var e,t,i,r;if(null==(e=this.reorderScrollFadesCleanup)||e.call(this),this.reorderScrollFadesCleanup=null,this._reorderClosedByCancel&&(null==(t=this._reorderInitialOrder)?void 0:t.length))this._reorderInitialOrder.forEach((e=>{const t=document.getElementById(e);t&&this.portfolioBlocks&&this.portfolioBlocks.appendChild(t)})),this.renumberBlocks();else{const e=this.modal?this.modal.querySelectorAll(".dragSort-item"):[],t=Array.from(e).map((e=>e.dataset.blockRef)).filter(Boolean);e.forEach((e=>{const t=e.dataset.blockRef,i=document.getElementById(t);i&&this.portfolioBlocks&&this.portfolioBlocks.appendChild(i)})),this.renumberBlocks(),JSON.stringify(t)!==JSON.stringify(this._reorderInitialOrder||[])&&this.setSaveButtonDirtyState(!0)}(null==(i=this.modalContent)?void 0:i.dragSort)&&this.modalContent.dragSort.destroy(),(null==(r=this.reorderReturnFocusEl)?void 0:r.isConnected)&&this.focusElementWithTemporaryTabindex(this.reorderReturnFocusEl),this.reorderReturnFocusEl=null,this._reorderClosedByCancel=!1}actionModalSave(e){var t;e.preventDefault(),e.stopPropagation(),null==(t=this.modal)||t.close()}handleSaveButtonDirtyInput(e){var t,i;const r=null==e?void 0:e.target;this.form&&r&&this.form.contains(r)&&(this.form.classList.contains("is-submitting")||(null==(t=r.closest)?void 0:t.call(r,"dialog.okay-dialog[open]"))||(null==(i=r.closest)?void 0:i.call(r,".btn-save-project"))||this.setSaveButtonDirtyState(!0))}syncSaveButtonIdleState(){const e=this.btnSaveProject;if(!e)return;const t=e.querySelector(".project-editor-toolbar-label, .text"),i=this.isSaveButtonDirty?"Save project changes":"Save project";e.classList.toggle("is-dirty",this.isSaveButtonDirty),t&&(t.textContent="Save"),e.setAttribute("aria-label",i)}setSaveButtonDirtyState(e){var t;const i=this.btnSaveProject;i&&(this.isSaveButtonDirty=!!e,null==(t=this.leaveGuard)||t.sync(),this._saveSuccessTimeout&&(clearTimeout(this._saveSuccessTimeout),this._saveSuccessTimeout=null),i.classList.remove("is-saved"),i.classList.contains("is-saving")||this.syncSaveButtonIdleState())}setSaveButtonSavingState(e){const t=this.btnSaveProject;if(!t)return;const i=t.querySelector(".project-editor-toolbar-label, .text");if(e)return this._saveSuccessTimeout&&(clearTimeout(this._saveSuccessTimeout),this._saveSuccessTimeout=null),i&&(i.textContent="Saving"),t.classList.remove("is-saved"),t.classList.add("is-saving"),t.disabled=!0,t.setAttribute("aria-disabled","true"),t.setAttribute("aria-busy","true"),void t.setAttribute("aria-label","Saving project");t.classList.remove("is-saving"),t.disabled=!1,t.removeAttribute("aria-disabled"),t.removeAttribute("aria-busy"),t.classList.contains("is-saved")||this.syncSaveButtonIdleState()}showSaveSuccessFeedback(){const e=this.btnSaveProject;if(!e)return;const t=e.querySelector(".project-editor-toolbar-label, .text");t&&(this.setSaveButtonDirtyState(!1),this._saveSuccessTimeout&&clearTimeout(this._saveSuccessTimeout),t.textContent="Saved",e.setAttribute("aria-label","Saved project"),e.classList.remove("is-dirty"),e.classList.add("is-saved"),this._saveSuccessTimeout=setTimeout((()=>{e.classList.remove("is-saved"),this.syncSaveButtonIdleState(),this._saveSuccessTimeout=null}),2e3))}
1scrollToElement(e,t=0){if(!e)return;const i=window.pageYOffset||document.documentElement.scrollTop,r=e.getBoundingClientRect().top+i+t,a=Math.max(0,r);window.scrollTo({top:a,behavior:"smooth"})}disableForm(e){if(!e)return!1;for(var t=e.elements,i=0;i<t.length;i++)t[i].disabled=!0}enableForm(e){if(!e)return!1;for(var t=e.elements,i=0;i<t.length;i++)t[i].disabled=!1}};let he;class me extends e{onEnter(){super.onEnter()}async onLeave(){if(super.onLeave(),he)try{await he.stopPage()}finally{he=null}}onEnterCompleted(){super.onEnterCompleted(),he=new ue(this.viewRoot)}onLeaveCompleted(){super.onLeaveCompleted()}}export{me as default};

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.