import"./index-4c8ce341.js";import{I as d}from"./internal-tracking-e8368fc2.js";import{S as f}from"./screen-transitions-928a9f1a.js";import{F as l}from"./form-handler-d276c37d.js";import{D as u}from"./drb-confirm-helpers-15e164fa.js";import{t as g}from"./google-tag-manager-utils-cbc0cd1f.js";import{f as b,s as a}from"./pricing-311df2f8.js";import{v as y}from"./validators-c56c4015.js";import{P as S}from"./project-brief-dialog-5ede6814.js";import{D as v}from"./drb-toast-helpers-b5930a70.js";import{H as E}from"./honey-badger-reporting-ca90d64a.js";import{e as w}from"./v2-x-circle-fef2f80a.js";import{a as h}from"./v2-alert-pink-5610c78e.js";import{s as F}from"./index-ecfc279f.js";/* empty css */import"./unsafe-html-c2c7ba68.js";import"./chunk.6CTB5ZDJ-ecd2c56f.js";import"./index-dedce5a4.js";import"./animation-7e2d11a2.js";import"./request-a636442b.js";import"./axios-8f19e258.js";import"./axios_helper-aabbd1f9.js";import"./google-sign-in-8044a0ab.js";import"./drb-dialog-helpers-eb8a8feb.js";import"./throttle-51b88214.js";import"./_commonjsHelpers-de833af9.js";import"./debounce-a3c77a8f.js";import"./isSymbol-09cd3a26.js";import"./toNumber-7a06b4ca.js";import"./isEqual-28605d96.js";import"./_baseIsEqual-dcb6efc6.js";import"./_MapCache-f49d0f97.js";import"./_baseUnary-56bc5bee.js";import"./js.cookie-edb2da2a.js";import"./expand-collapse-1ef905ba.js";import"./tiptap-extension-underline.esm-1c1a172c.js";import"./tiptap-extension-placeholder.esm-052ff1b1.js";import"./file-upload-33be919a.js";import"./index-ec1be37d.js";import"./string-5478061d.js";import"./pluralize-e121862b.js";import"./form-validation-58394433.js";import"./contact-info-detection-helpers-88c9e017.js";import"./params-692e8806.js";import"./preload-helper-b857222e.js";const j={init(i,e){!i||!e||(this.screenElement=i,this.projectBriefFlow=e,this.addFormValidation())},addFormValidation(){var r,n,s;const i=this.screenElement.querySelectorAll('input[type="radio"]'),e=this.screenElement.querySelector("[data-other-field-input]"),t=e==null?void 0:e.querySelector("input");t&&((s=(n=(r=this.projectBriefFlow)==null?void 0:r.formHandler)==null?void 0:n.pristineValidation)==null||s.addValidator(t,o=>Array.from(i).some(p=>p.checked)||o.trim().length>0,"Please select an option."))}},A={init(i,e){!i||!e||(this.screenElement=i,this.projectBriefFlow=e,this.maxCheckboxes=3,this.bindEventListeners(),this.addFormValidation())},bindEventListeners(){this.limitSelectedCheckboxes()},addFormValidation(){var t,r;const i=this.screenElement.querySelector("[data-other-field-input]"),e=i==null?void 0:i.querySelector("input");e&&((r=(t=this.projectBriefFlow.formHandler)==null?void 0:t.pristineValidation)==null||r.addValidator(e,n=>this.screenElement.querySelectorAll('input[type="checkbox"]:checked').length<=3||n.trim().length>0,"Please select between 1 and 3 options."))},limitSelectedCheckboxes(){this.screenElement.addEventListener("change",i=>{if(i.target.type!=="checkbox")return;const e=this.screenElement.querySelectorAll('input[type="checkbox"]:checked');this.screenElement.querySelectorAll('input[type="checkbox"]:not(:checked)').forEach(r=>{r.toggleAttribute("disabled",e.length===this.maxCheckboxes)})})}},B={init(i,e){!i||!e||(this.screenElement=i,this.projectBriefFlow=e,this.bindEventListeners())},bindEventListeners(){this.bindEnableScreenLogic()},shouldEnableScreen(){var r;const i=this.projectBriefFlow.formHandler.getPayloadData(),e=(r=i==null?void 0:i.project_brief)==null?void 0:r.project_type,t=JSON.parse(this.screenElement.getAttribute("data-enabled-project-types"));return e?t.includes(e):!1},bindEnableScreenLogic(){const i=this.projectBriefFlow.getScreen("project-type");i&&i.addEventListener("change",()=>{this.screenElement.toggleAttribute("data-screen-disabled",!this.shouldEnableScreen()),this.screenElement.querySelector('input[name="include_development"]').toggleAttribute("disabled",!this.shouldEnableScreen())})}},q={init(i,e){this.screenElement=i,this.projectBriefFlow=e,this.budgetField=this.screenElement.querySelector("#budget-field"),!(!i||!e||!this.budgetField)&&(this.bindEventListeners(),this.addFormValidation())},bindEventListeners(){this.bindBudgetFormatting()},bindBudgetFormatting(){this.budgetField.addEventListener("input",()=>{this.budgetField.value=b(this.budgetField.value,{maximumFractionDigits:0})})},addFormValidation(){const i=Number(this.budgetField.getAttribute("data-min-cost"))||0;this.projectBriefFlow.formHandler.pristineValidation.addValidator(this.budgetField,e=>{const t=a(e)||0;return t?t>=i:!0},`Budget must be at least $${i}`,1,!0)}},k={init(i,e){this.screenElement=i,this.projectBriefFlow=e,this.websiteField=this.screenElement.querySelector("#company-website-field"),!(!i||!e||!this.websiteField)&&this.addFormValidation()},addFormValidation(){this.projectBriefFlow.formHandler.pristineValidation.addValidator(this.websiteField,i=>i.length?y(i):!0,"Please enter a valid URL.",5,!0)}},x={init(i,e){!i||!e||(this.screenElement=i,this.projectBriefFlow=e,this.budgetField=this.screenElement.querySelector("#review-screen-budget-field"),this.addFormValidation(),this.bindEventListeners(),S.init({onSuccess:async t=>{var s,o;const{updated_budget:r}=await t.json();this.budgetField.setAttribute("value",r>0?r:""),this.toggleBudgetField(!this.isBudgetValid(this.budgetField.value)),(s=this.screenElement.querySelector("[data-review-screen-budget-prompt]"))==null||s.toggleAttribute("hidden",this.isBudgetValid(this.budgetField.value));const n=document.querySelector("#project-brief-dialog");n==null||n.close(),(o=this.projectBriefFlow.reviewFormHandler.pristineValidation)==null||o.validate()}}),this.setAIContentTimeout())},addFormValidation(){const i=Number(this.budgetField.getAttribute("data-min-cost"))||0;let e;const t=()=>e?`A minimum budget of $${i} is required to publish or send your brief.`:"Budget is required to publish or send your brief.";this.projectBriefFlow.reviewFormHandler.pristineValidation.addValidator(this.budgetField,r=>{const n=this.screenElement.querySelector("#project-board-toggle"),s=this.screenElement.querySelector("[data-send-to-recommendations-toggle]"),o=n==null?void 0:n.checked,c=s==null?void 0:s.checked;return!o&&!c?!0:(e=a(r)||0,this.isBudgetValid(e))},t,1,!0)},bindEventListeners(){this.bindBudgetFormatting(),this.bindBudgetFieldVisiblity()},bindBudgetFormatting(){this.budgetField.addEventListener("input",()=>{this.budgetField.value=b(this.budgetField.value,{maximumFractionDigits:0})})},isBudgetValid(i){const e=Number(this.budgetField.getAttribute("data-min-cost"))||0;return i>=e},toggleBudgetField(i){this.screenElement.toggleAttribute("data-show-budget-field",i)},bindBudgetFieldVisiblity(){const i=this.screenElement.querySelector("#project-board-toggle"),e=this.screenElement.querySelector("[data-send-to-recommendations-toggle]");[i,e].forEach(t=>{t==null||t.addEventListener("change",()=>{var n,s;const r=((s=(n=this.projectBriefFlow.reviewFormHandler.getPayloadData())==null?void 0:n.project_brief)==null?void 0:s.budget)||0;this.isBudgetValid(r)||this.toggleBudgetField((i==null?void 0:i.checked)||(e==null?void 0:e.checked))})})},setAIContentTimeout(){setTimeout(()=>{var t,r;const i=(t=this.screenElement.querySelector("#project-brief-title"))==null?void 0:t.hasAttribute("data-ai-generated"),e=(r=this.screenElement.querySelector("#project-brief-description"))==null?void 0:r.hasAttribute("data-ai-generated");i&&e||(v.open({iconHtml:w,title:"Error creating project brief",messageHtml:'
Please click here to try again.
'}),E.notify("InstantMatch AI content timeout"))},15e3)}},m={"project-type":j,"style-preferences":A,budget:q,development:B,company:k};class V{constructor(e){this.form=e,this.formHandler=null,this.screenContainer=this.form.querySelector("[data-new-project-brief-screens]"),this.hasStartedFlow=!1,this.init()}init(){this.bindEventListeners(),this.initForm(),this.initScreens(),d.trackProjectBriefFlowLanded()}bindEventListeners(){this.bindNextBtns(),this.bindPreviousBtn(),this.bindCancelBtn(),this.bindAutoAdvance(),this.bindTurbo()}initScreens(){this.screenContainer.querySelectorAll("[data-screen]").forEach(t=>{var s;const r=t.getAttribute("data-screen");if(!r||m[r]===void 0)return;const n=this.getScreen(r);(s=m[r])==null||s.init(n,this)})}initForm(){this.formHandler=new l(this.form,{defaultServerErrorMsg:"Something went wrong. Please try again later.",arrayFields:["styles"],transformData:e=>{var t,r;return e.project_type=(t=e==null?void 0:e.project_type_other)!=null&&t.length?e.project_type_other:e.project_type,e.styles||(e.styles=[]),e.styles=(r=e==null?void 0:e.styles_other)!=null&&r.length?[e.styles_other]:e.styles,e.budget=e.budget?a(e.budget):0,{project_brief:{...e}}},onError:(e,t)=>{u.open({title:t,iconHtml:h,centered:!0,cancelText:"",confirmText:"Close"})},onSuccess:async e=>{const t=await e.text();this.injectReviewScreen(t)}})}bindNextBtns(){this.form.querySelectorAll("[data-new-project-brief-next-btn]").forEach(t=>{t.addEventListener("click",()=>{this.advanceScreen()})})}bindCancelBtn(){const e=document.querySelector("[data-new-project-brief-cancel-btn]");e&&e.addEventListener("click",()=>{var t;((t=this.currentScreen)==null?void 0:t.getAttribute("data-screen"))==="intro"?this.goBack():u.open({title:"Are you sure you want to leave?",message:"Your project brief won't be saved.",confirmText:"Exit",iconHtml:h,cancelText:"Stay Here",centered:!0,onConfirm:()=>{this.goBack()}})})}goBack(){const e=!document.referrer.includes(window.location.hostname),t=new URL(document.referrer||window.location.href).pathname;e||["/session/new","/signups/new"].includes(t)?window.location.href="proxy.php?url=/":window.history.back()}bindPreviousBtn(){const e=document.querySelector("[data-new-project-brief-previous-btn]");e&&e.addEventListener("click",()=>{this.advanceScreen(!1)})}bindAutoAdvance(){this.screenContainer.querySelectorAll("[data-auto-advance]").forEach(t=>{t.addEventListener("click",r=>{var n;r.clientX===0&&r.clientY===0||((n=r.target)==null?void 0:n.type)!=="radio"||this.advanceScreen()}),t.addEventListener("keydown",r=>{r.key==="Enter"&&this.advanceScreen()})})}get currentScreen(){return this.screenContainer.querySelector("[data-screen]:not([hidden])")}getScreen(e){return this.screenContainer.querySelector(`[data-screen="${e}"]`)}advanceScreen(e=!0){if(e&&!this.isScreenValid(this.currentScreen))return;this.formHandler.pristineValidation.reset();const t=n=>{const s=e?n==null?void 0:n.nextElementSibling:n==null?void 0:n.previousElementSibling;return s!=null&&s.hasAttribute("data-screen-disabled")?t(s):s},r=t(this.currentScreen);r&&(this.form.setAttribute("data-current-screen",r.getAttribute("data-screen")),f.transitionToScreen({targetScreen:r,type:e?"slide-left":"slide-right"}),this.updateProgressBar(r),this.updateTitle(r),e&&this.trackProgress())}updateTitle(e){var o,c;const t=e==null?void 0:e.getAttribute("data-title"),r=(e==null?void 0:e.getAttribute("data-subtitle"))||"",n=(o=this.form)==null?void 0:o.querySelector("[data-new-project-brief-header-text]"),s=(c=this.form)==null?void 0:c.querySelector("[data-new-project-brief-subtitle-text]");!t||!n||(n.innerHTML=t,s.innerHTML=r)}updateProgressBar(e){const t=Array.from(this.screenContainer.querySelectorAll("[data-screen]")),r=document.querySelector("[data-progress-bar-fill]"),n=t.indexOf(e)+1;if(!r||!e)return;const s=(n-1)/t.length*100;r.style.setProperty("--fill-percentage",`${s}%`)}isScreenValid(e){const r=this.formHandler.pristineValidation.fields.reduce((n,{input:s})=>(e.contains(s)&&n.push(s),n),[]);return this.formHandler.pristineValidation.validate(r)}trackProgress({screenName:e}={}){var t,r;g("instantMatchStep",{step:e||this.form.getAttribute("data-current-screen"),user_id:((r=(t=Dribbble==null?void 0:Dribbble.JsConfig)==null?void 0:t.user)==null?void 0:r.id)||null,anonymous_id:this.form.getAttribute("data-anonymous-id")||null}),this.hasStartedFlow||(this.hasStartedFlow=!0,d.trackProjectBriefFlowStarted())}bindTurbo(){document.addEventListener("turbo:before-stream-render",e=>{const{target:t}=e.target;this.onReviewScreenTurboUpdate(t)})}injectReviewScreen(e){if(!e)return;const t=document.querySelector("[data-forms-container]");document.startViewTransition?document.startViewTransition(()=>{t.innerHTML="",t.insertAdjacentHTML("beforeend",e),this.initReviewScreen()}):(t.innerHTML="",t.insertAdjacentHTML("beforeend",e),this.initReviewScreen()),this.trackProgress({screenName:"review"})}initReviewScreen(){const e=document.querySelector("[data-forms-container]"),t=e==null?void 0:e.querySelector("[data-review-form]"),r=e==null?void 0:e.querySelector('[data-screen="review"]'),n=parseInt((r==null?void 0:r.getAttribute("data-project-brief-id"))||0,10);!t||!r||(this.reviewFormHandler=new l(t,{defaultServerErrorMsg:"Something went wrong. Please try again later.",transformData:s=>({project_brief:{...s,budget:s.budget?a(s.budget):0}}),onSuccess:async s=>{const{redirect:o}=await s.json();window.location.href=o||"/project-briefs"}}),n&&d.trackProjectBriefCreated({project_brief_id:n}),x.init(r,this))}onReviewScreenTurboUpdate(e){const t=document.getElementById("project-brief-review-screen"),r=t==null?void 0:t.querySelector("#project-brief-title"),n=t==null?void 0:t.querySelector("#project-brief-description");t&&(e==="project-brief-title"?r==null||r.setAttribute("data-ai-generated",""):e==="project-brief-description"&&(n==null||n.setAttribute("data-ai-generated","")),r!=null&&r.hasAttribute("data-ai-generated")&&(n!=null&&n.hasAttribute("data-ai-generated"))&&t.querySelector("[data-submit").removeAttribute("disabled"))}}F.drive=!1;document.addEventListener("DOMContentLoaded",()=>{const i=document.querySelector("[data-new-project-brief-form]");if(!i){console.warn("ProjectBriefFlow form not found.");return}new V(i)}); //# sourceMappingURL=new-project-brief-09719847.js.map