1"use strict";(self.webpackChunkDDSJobs=self.webpackChunkDDSJobs||[]).push([[9584],{38874:function(e,t,a){var n=a(96540),r=a(57536),o=a(77763),l=a(7328),i=a(86442),s=a(81745),c=a(45195);t.A=({job:e,isVisible:t,onClose:a,onSuccess:m,onError:d})=>{const[u,p]=(0,n.useState)({formData:{job_id:e.id,outcome:"",outcome_other:"",additional_comments:"",recommendation_score:void 0},validationErrors:{},isSubmitting:!1,showOtherInput:!1,touched:{outcome:!1,outcome_other:!1,additional_comments:!1,recommendation_score:!1}}),[b,h]=(0,n.useState)(!1),[g,f]=(0,n.useState)(null);(0,n.useEffect)(()=>{t&&y()},[t,e.id]);const y=(0,n.useCallback)(()=>{f(null),p({formData:{job_id:e.id,outcome:"",outcome_other:"",additional_comments:"",recommendation_score:void 0},validationErrors:{},isSubmitting:!1,showOtherInput:!1,touched:{outcome:!1,outcome_other:!1,additional_comments:!1,recommendation_score:!1}})},[e.id]),E=(0,n.useCallback)(e=>{f(null),p(t=>({...t,formData:{...t.formData,...e}}))},[]),_=(0,n.useCallback)(e=>{p(t=>({...t,touched:{...t.touched,[e]:!0}}))},[]),v=(0,n.useCallback)((e,t)=>{p(a=>({...a,validationErrors:{...a.validationErrors,[e]:t}}))},[]),k=(0,n.useCallback)(e=>{E({outcome:e,outcome_other:""}),p(t=>({...t,showOtherInput:"other"===e})),_("outcome"),u.validationErrors.outcome&&v("outcome",null)},[E,_,v,u.validationErrors.outcome]),x=(0,n.useCallback)(e=>{if(E({outcome_other:e}),_("outcome_other"),u.touched.outcome_other||e.length>0){const t=(0,s.jr)("outcome_other",e,{...u.formData,outcome_other:e});v("outcome_other",t)}},[E,_,v,u.formData,u.touched.outcome_other]),w=(0,n.useCallback)(e=>{E({recommendation_score:e}),_("recommendation_score")},[E,_]),N=(0,n.useCallback)(e=>{E({additional_comments:e}),_("additional_comments"),e.length>1e3?v("general","Additional comments must be under 1000 characters"):u.validationErrors.general?.includes("Additional comments")&&v("general",null)},[E,_,v,u.validationErrors.general]),j=(0,n.useCallback)(()=>{const e=document.querySelector('meta[name="csrf-token"]')?.getAttribute("content");if(!e)throw new Error("CSRF token not found");return e},[]),C=(0,n.useCallback)(async e=>{if(e.preventDefault(),u.isSubmitting)return;p(e=>({...e,isSubmitting:!0})),p(e=>({...e,touched:{outcome:!0,outcome_other:!0,additional_comments:!0,recommendation_score:!0},isSubmitting:!0}));const t=(0,s.Dk)(u.formData);if(t.isValid)try{const e=j();if((await r.A.post("/job_closing_surveys",{...u.formData,skip_future_surveys:b},{headers:{"Content-Type":"application/json","X-CSRF-Token":e,Accept:"application/json"}})).data.skip_preference_updated){const e=document.querySelector("[data-user-skip-survey]");e&&e.setAttribute("data-user-skip-survey","true")}m?.("Thank you for your feedback. Your job has been closed."),setTimeout(()=>{window.location.reload()},1500)}catch(a){console.error("Error submitting job closing survey:",a);const e=(0,c.DL)(a,"An error occurred while submitting the survey. Please try again.");f(e),d?.(e.message),p(e=>({...e,isSubmitting:!1}))}else p(e=>({...e,validationErrors:t.errors,isSubmitting:!1}))},[u.formData,u.isSubmitting,j,m,d,b]),S=(0,n.useCallback)(async()=>{if(!u.isSubmitting&&window.confirm("Are you sure you want to close this job without providing feedback?")){p(e=>({...e,isSubmitting:!0}));try{const t=j();await r.A.post("/job_closing_surveys/skip",{job_id:e.id},{headers:{"Content-Type":"application/json","X-CSRF-Token":t,Accept:"application/json"}}),m?.("Your job has been closed."),a()}catch(t){console.error("Error skipping job closing survey:",t);const e=(0,c.DL)(t,"An error occurred while closing the job. Please try again.");f(e),d?.(e.message),p(e=>({...e,isSubmitting:!1}))}}},[e.id,j,m,a,d]),T=n.createElement(n.Fragment,null,n.createElement(l.$,{type:"button",variant:"outline-secondary",onClick:S,disabled:u.isSubmitting,loading:u.isSubmitting},u.isSubmitting?"Closing...":"Skip Survey & Close"),n.createElement(l.$,{type:"submit",variant:"warning",disabled:u.isSubmitting,loading:u.isSubmitting,form:"job-closing-survey-form"},u.isSubmitting?"Submitting...":"Submit & Close Job"));return n.createElement(o.h9,{show:t,onHide:a,title:"Job Closing Survey",size:"lg",footer:T},n.createElement("form",{onSubmit:C,id:"job-closing-survey-form"},n.createElement("p",{className:"mb-3"},"We'd love to know how your hiring went for: ",n.createElement("strong",null,e.job_title)),u.validationErrors.general&&n.createElement("div",{className:"alert alert-danger mb-3"},u.validationErrors.general),n.createElement("div",{className:"mb-4"},n.createElement("h6",{className:"mb-3"},"What was the outcome?"),u.validationErrors.outcome&&u.touched.outcome&&n.createElement("div",{className:"alert alert-danger mb-2"},u.validationErrors.outcome),i.g0.map(e=>n.createElement("div",{key:e.value,className:"form-check mb-2"},n.createElement("input",{type:"radio",id:`outcome_${e.value}
1`,name:"outcome",value:e.value,checked:u.formData.outcome===e.value,onChange:()=>k(e.value),className:"form-check-input"}),n.createElement("label",{htmlFor:`outcome_${e.value}`,className:"form-check-label"},e.label))),u.showOtherInput&&n.createElement("div",{className:"mb-3 mt-3"},u.validationErrors.outcome_other&&u.touched.outcome_other&&n.createElement("div",{className:"alert alert-danger mb-2"},u.validationErrors.outcome_other),n.createElement("textarea",{id:"outcome_other",name:"outcome_other",value:u.formData.outcome_other||"",onChange:e=>x(e.target.value),onBlur:()=>_("outcome_other"),className:"form-control",placeholder:"Please specify...",rows:2}),n.createElement("small",{className:"text-muted"},u.formData.outcome_other?.length||0,"/500 characters"))),n.createElement("div",{className:"mb-4"},n.createElement("h6",{className:"mb-3"},"How likely are you to recommend DirectDental to other dental practices?"),n.createElement("p",{className:"text-muted small"},"0 = Not at all likely | 10 = Extremely likely"),n.createElement("div",{className:"nps-rating-bubbles d-flex flex-wrap justify-content-center align-items-center gap-2 mt-3 mb-3"},Array.from({length:11},(e,t)=>t).map(e=>{const t=(0,i.W3)(e),a=u.formData.recommendation_score===e;return n.createElement("div",{key:e,className:"nps-bubble-wrapper"},n.createElement("input",{type:"radio",id:`nps_score_${e}`,name:"recommendation_score",value:e,checked:a,onChange:()=>w(e),className:"nps-bubble-input"}),n.createElement("label",{htmlFor:`nps_score_${e}`,className:"nps-bubble-label "+("DETRACTOR"===t?"nps-detractor":"PASSIVE"===t?"nps-passive":"nps-promoter")},e))})),n.createElement("div",{className:"d-flex justify-content-between mb-4"},n.createElement("small",{className:"text-muted"},"Not at all likely"),n.createElement("small",{className:"text-muted"},"Extremely likely"))),n.createElement("div",{className:"mb-4"},n.createElement("h6",{className:"mb-2"},"Any additional comments?"),n.createElement("textarea",{id:"additional_comments",name:"additional_comments",value:u.formData.additional_comments||"",onChange:e=>N(e.target.value),onBlur:()=>_("additional_comments"),className:"form-control",placeholder:"Optional feedback about your experience...",rows:3}),n.createElement("small",{className:"text-muted"},u.formData.additional_comments?.length||0,"/1000 characters")),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"form-check"},n.createElement("input",{type:"checkbox",id:"skip_future_surveys",className:"form-check-input",checked:b,onChange:e=>h(e.target.checked)}),n.createElement("label",{htmlFor:"skip_future_surveys",className:"form-check-label"},"Do not ask me again (use quick close next time)"))),g&&n.createElement("div",{className:"alert alert-danger mb-0",role:"alert","data-testid":"close-job-error"},n.createElement("div",null,g.message),g.help&&n.createElement("div",{className:"mt-2"},g.help))))}},80862:function(e,t,a){a.d(t,{A:function(){return o}});var n=a(96540),r=a(92169);function o({skills:e,job:t}){return n.createElement(r.zM,{skills:e,type:"job",data:t,showPositionTypes:!0})}},57878:function(e,t,a){a.d(t,{kv:function(){return i}});var n=a(96540),r=a(98697),o=a.n(r),l=(a(84561),a(30095));const i=({jobs:e})=>n.createElement("div",{className:"container mt-4 mb-4 JobSpotlight px-0"},n.createElement("div",{className:"row"},n.createElement("div",{className:"d-xl-none"},n.createElement(o(),{className:"owl-theme",loop:!0,margin:0,nav:!0,items:1,autoplay:!0,autoplayTimeout:2e3,responsive:{0:{items:1},768:{items:2},992:{items:3}}},e.map(e=>n.createElement(s,{job:e,key:e.id})))),n.createElement("div",{className:"d-none d-xl-block"},n.createElement(o(),{className:"owl-theme",loop:!0,margin:0,nav:!0,items:4,autoplay:!0,autoplayTimeout:2e3},e.map(e=>n.createElement(s,{job:e,key:e.id}))))));function s({job:e}){e.image;const t=()=>{e.url&&window.open(e.url,"_blank")};return n.createElement("div",{className:"col-12 my-3 d-flex owl-job",style:{paddingLeft:10,paddingRight:10}},n.createElement("div",{className:"spotlight-card",onClick:t,role:"button",tabIndex:0,onKeyDown:e=>"Enter"===e.key&&t(),"aria-label":`View job: ${e.title} at ${e.practice_name}`},n.createElement("div",{className:"spotlight-card__title"},n.createElement("h4",null,e.title)),n.createElement("div",{className:"spotlight-card__info"},n.createElement(c,{className:"fa fa-briefcase",text:e.practice_name}),n.createElement(c,{className:"fa fa-map-marker",text:`${e.practice_city}, ${e.practice_state}`}),e.compensation&&n.createElement(c,{className:"fa fa-money",text:e.compensation})),n.createElement("div",{className:"spotlight-card__tags"},n.createElement(l.A,{job:e}))))}function c({className:e,text:t}){return n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 my-1"},n.createElement("i",{className:e,"aria-hidden":"true"})," ",t)}},30095:function(e,t,a){a.d(t,{A:function(){return o}});var n=a(96540),r=a(80862);function o({job:e}){return void 0===e.skills?null:n.createElement(r.A,{job:e,skills:e.skills})}},81403:function(e,t,a){var n=a(96540),r=a(90920),o=a(86442),l=a(46628),i=a(45195);t.A=({job:e,isOpen:t,onClose:a,onSuccess:s,onError:c})=>
1{const[m,d]=(0,n.useState)(!1),[u,p]=(0,n.useState)(null),[b,h]=(0,n.useState)(null);(0,n.useEffect)(()=>{t&&h(null)},[t,e?.id]);const g=n.createElement("button",{type:"button",className:"btn btn-secondary",onClick:a,disabled:m},"Cancel");return n.createElement(r.h9,{show:t,onHide:a,title:"Close Job",centered:!0,footer:g},n.createElement("p",{className:"text-muted mb-4"},"Select a hiring outcome for ",n.createElement("strong",null,'"',e?.job_title||"this job",'"'),":"),b&&n.createElement("div",{className:"alert alert-danger",role:"alert","data-testid":"close-job-error"},n.createElement("div",null,b.message),b.help&&n.createElement("div",{className:"mt-2"},b.help)),n.createElement("div",{className:"d-flex flex-column gap-2"},o.g0.map(t=>{const r=u===t.value;return n.createElement("button",{key:t.value,type:"button",onClick:()=>(async t=>{if(!m&&e){d(!0),p(t),h(null);try{const n=await l.u.post("/job_closing_surveys/quick_close",{job_id:e.id,outcome:t,outcome_other:"other"===t?"Closed via quick close menu":void 0});if(n.ok&&n.data?.success)s?.(n.data.message||"Job closed successfully"),a(),setTimeout(()=>{window.location.reload()},1500);else{const e=n.data?.error||n.error||"Failed to close job";h((0,i.A0)(e,n.status)),c?.(e)}}catch(n){console.error("Error in quick close:",n);const e=n instanceof Error?n.message:"An error occurred while closing the job. Please try again.";h((0,i.A0)(e)),c?.(e)}finally{d(!1),p(null)}}})(t.value),disabled:m,className:"btn text-start d-flex align-items-center",style:{padding:"0.875rem 1rem",backgroundColor:r?"#176fc9":"#f8f9fa",color:r?"white":"#212529",border:"1px solid #dee2e6",borderRadius:"0.5rem",cursor:m?"not-allowed":"pointer",opacity:m&&!r?.6:1,transition:"all 0.2s ease"},onMouseEnter:e=>{m||(e.currentTarget.style.backgroundColor="#176fc9",e.currentTarget.style.color="white",e.currentTarget.style.borderColor="#176fc9")},onMouseLeave:e=>{m||r||(e.currentTarget.style.backgroundColor="#f8f9fa",e.currentTarget.style.color="#212529",e.currentTarget.style.borderColor="#dee2e6")}},n.createElement("span",{style:{fontSize:"1.25rem",marginRight:"0.875rem",display:"inline-flex",alignItems:"center",justifyContent:"center",width:"1.75rem"}},(e=>{switch(e){case"hired_through_platform":return"\u2705";case"filled_another_source":return"\ud83d\udd04";case"no_longer_hiring":return"\u23f8\ufe0f";case"no_qualified_candidates":return"\ud83d\udd0d";case"still_hiring":return"\u23f3";case"other":return"\ud83d\udcdd";default:return"\u2022"}})(t.value)),n.createElement("span",{style:{flex:1,fontWeight:500}},r&&m?n.createElement(n.Fragment,null,n.createElement("span",{className:"spinner-border spinner-border-sm me-2",role:"status","aria-hidden":"true"}),"Closing job..."):t.label))})))}},49514:function(e,t,a){a.d(t,{E:function(){return r}});var n=a(96540);const r=()=>{const[e,t]=(0,n.useState)(!1),[a,r]=(0,n.useState)(null);return{isVisible:e,currentJob:a,showSurvey:(0,n.useCallback)(e=>{r(e),t(!0)},[]),hideSurvey:(0,n.useCallback)(()=>{t(!1),setTimeout(()=>{r(null)},300)},[]),handleSuccess:(0,n.useCallback)(e=>{const t=document.createElement("div");t.className="alert alert-success alert-dismissible fade show",t.innerHTML=`\n ${e}\n <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>\n `;const a=document.querySelector(".container-fluid, .container, main, #main-content");a&&a.firstChild?a.insertBefore(t,a.firstChild):document.body.insertBefore(t,document.body.firstChild),setTimeout(()=>{t?.remove()},5e3),setTimeout(()=>{window.location.reload()},1e3)},[]),handleError:(0,n.useCallback)(e=>{const t=document.createElement("div");t.className="alert alert-danger alert-dismissible fade show",t.innerHTML=`\n ${e}\n <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>\n `;const a=document.querySelector(".container-fluid, .container, main, #main-content");a&&a.firstChild?a.insertBefore(t,a.firstChild):document.body.insertBefore(t,document.body.firstChild),setTimeout(()=>{t?.remove()},8e3)},[])}}},66816:function(e,t,a){a.d(t,{C6:function(){return G},lV:function(){return oe},_O:function(){return o},km:function(){return ae},dZ:function(){return h},hN:function(){return Q},yg:function(){return l},z:function(){return ne},kv:function(){return C.kv},wp:function(){return T},XP:function(){return j}});var n=a(96540);a(27286);var r=a(30095);var o=({job:e,isZipJob:t=!1})=>{const a=e.spotlight||e.priority;return n.createElement("article",{className:"job-card",onClick:()=>{window.open(e.url,"_blank")},style:{cursor:"pointer",display:"flex",gap:"1.25rem",padding:"1.5rem",borderBottom:"1px solid #f0f2f5",transition:"all 0.2s ease",position:"relative",backgroundColor:"white"},onMouseOver:e=>{e.currentTarget.style.backgroundColor="#fafbfc",e.currentTarget.style.transform="translateX(4px)"},onMouseOut:e=>{e.currentTarget.style.backgroundColor="white",e.currentTarget.style.transform="translateX(0)"}},n.createElement("div",{className:"job-card__accent",style:{position:"absolute",left:0,top:0,bottom:0,width:"3px",background:a?"linear-gradient(180deg, #e74c3c, #c0392b)":"linear-gradient(180deg, #3498db, #2980b9)",opacity:0,transition:"opacity 0.2s ease"}}),n.createElement("div",{style:{flexShrink:0}},n.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),style:{display:"block"}},n.createElement("img",{src:e.image,alt:e.practice_name||"Company logo",style:{width:"56px",height:"56px",borderRadius:"12px",objectFit:"cover",border:"2px s
1olid #f0f2f5",transition:"all 0.2s ease",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.06)"},onMouseOver:e=>{e.currentTarget.style.borderColor="#3498db",e.currentTarget.style.transform="scale(1.05)"},onMouseOut:e=>{e.currentTarget.style.borderColor="#f0f2f5",e.currentTarget.style.transform="scale(1)"}}))),n.createElement("div",{style:{flex:1,minWidth:0}},n.createElement("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem",marginBottom:"0.5rem",flexWrap:"wrap"}},n.createElement("h3",{style:{margin:0,fontSize:"1.0625rem",fontWeight:600,color:"#1a365d",lineHeight:1.4,letterSpacing:"-0.01em"}},e.title),n.createElement("div",{style:{display:"flex",gap:"0.5rem",flexWrap:"wrap"}},a&&n.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.25rem",padding:"0.25rem 0.625rem",borderRadius:"100px",fontSize:"0.6875rem",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.03em",background:"linear-gradient(135deg, #fee2e2, #fecaca)",color:"#dc2626",border:"1px solid #fca5a5"}},n.createElement("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"currentColor"},n.createElement("path",{d:"M13 3v10h5l-6 8v-10H7l6-8z"})),"Urgent"),t&&n.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"0.25rem",padding:"0.25rem 0.625rem",borderRadius:"100px",fontSize:"0.6875rem",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.03em",background:"linear-gradient(135deg, #fef3c7, #fde68a)",color:"#b45309",border:"1px solid #fcd34d"}},n.createElement("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"currentColor"},n.createElement("path",{d:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"})),"Featured"))),n.createElement("div",{className:"col-12 d-flex flex-wrap"},n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 mb-1 d-md-none col-12"},n.createElement("i",{className:"fa fa-building"})," ",e.practice_name),n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 mb-1 d-none d-md-block"},n.createElement("i",{className:"fa fa-building"})," ",e.practice_name),n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 mb-1 d-md-none col-12"},n.createElement("i",{className:"fa fa-map-marker"})," ",e.practice_city,", ",e.practice_state),n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 mb-1 d-none d-md-block"},n.createElement("i",{className:"fa fa-map-marker"})," ",e.practice_city,", ",e.practice_state),e.compensation&&n.createElement(n.Fragment,null,n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 mb-1 d-md-none col-12"},n.createElement("i",{className:"fa fa-money"})," ",e.compensation),n.createElement("span",{className:"profile-attribute-bubble rounded px-2 py-1 me-1 mb-1 d-none d-md-block"},n.createElement("i",{className:"fa fa-money"})," ",e.compensation))),!t&&n.createElement("div",{style:{marginTop:"0.5rem"}},n.createElement(r.A,{job:e})),t&&n.createElement("a",{href:"https://www.ziprecruiter.com/jobs",target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",gap:"0.375rem",marginTop:"0.75rem",textDecoration:"none",color:"#94a3b8",fontSize:"0.75rem",transition:"color 0.2s ease"},onClick:e=>e.stopPropagation(),onMouseOver:e=>e.currentTarget.style.color="#64748b",onMouseOut:e=>e.currentTarget.style.color="#94a3b8"},n.createElement("span",null,"Job Search by"),n.createElement("img",{src:"https://www.ziprecruiter.com/img/logos/logo-sm-black-304px.png",alt:"ZipRecruiter",style:{height:"16px",opacity:.7}}))),n.createElement("div",{style:{display:"flex",alignItems:"center",color:"#cbd5e1",transition:"all 0.2s ease",opacity:0},className:"job-card__arrow"},n.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polyline",{points:"9 18 15 12 9 6"}))),n.createElement("style",null,"\n .job-card:hover .job-card__accent {\n opacity: 1 !important;\n }\n .job-card:hover .job-card__arrow {\n opacity: 1 !important;\n color: #3498db !important;\n transform: translateX(4px);\n }\n @media (max-width: 640px) {\n .job-card {\n flex-direction: column !important;\n gap: 1rem !important;\n padding: 1.25rem !important;\n }\n .job-card__arrow {\n display: none !important;\n }\n }\n "))};const l=({jobs:e,zipjobs:t,sort:a,showHeader:r=!0})=>{const l="newest"===a&&t&&t.length>0,i=n.useMemo(()=>
1{if("highest_salary"===a||"lowest_salary"===a){return[...e].sort((e,t)=>{const n=parseFloat(e.comp||0),r=parseFloat(t.comp||0);return"highest_salary"===a?r-n:n-r})}return e},[e,a]);return n.createElement(n.Fragment,null,r&&n.createElement("div",{style:{padding:"1.25rem 1.5rem",display:"flex",alignItems:"center",justifyContent:"space-between",background:"linear-gradient(135deg, #085ec8 0%, #0a6fd9 50%, #085ec8 100%)",position:"relative",overflow:"hidden"}},n.createElement("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,background:"radial-gradient(circle at 20% 50%, rgba(255,255,255,0.1) 0%, transparent 50%), radial-gradient(circle at 80% 50%, rgba(255,255,255,0.08) 0%, transparent 40%)",pointerEvents:"none"}}),n.createElement("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",position:"relative",zIndex:1}},n.createElement("div",{style:{width:"36px",height:"36px",borderRadius:"10px",background:"rgba(255, 255, 255, 0.2)",display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)"}},n.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("rect",{x:"2",y:"7",width:"20",height:"14",rx:"2",ry:"2"}),n.createElement("path",{d:"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"}))),n.createElement("h2",{style:{margin:0,fontSize:"1.125rem",fontWeight:700,color:"white",letterSpacing:"-0.01em"}},"Jobs"))),n.createElement("div",{style:{background:"white"}},l&&t.length>0&&n.createElement(n.Fragment,null,n.createElement("div",{style:{display:"flex",alignItems:"center",gap:"0.625rem",padding:"0.875rem 1.5rem",background:"linear-gradient(135deg, #fef9e7 0%, #fef3c7 100%)",borderBottom:"1px solid #fde68a"}},n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"#f59e0b",stroke:"#f59e0b",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})),n.createElement("span",{style:{fontSize:"0.8125rem",fontWeight:600,color:"#92400e",textTransform:"uppercase",letterSpacing:"0.03em"}},"Featured Opportunities")),t.map((e,t)=>n.createElement(o,{key:`zip-${e.id||t}`,job:e,isZipJob:!0})),n.createElement("div",{style:{height:"8px",background:"#f1f5f9",borderTop:"1px solid #e2e8f0",borderBottom:"1px solid #e2e8f0"}})),i.map((e,t)=>n.createElement(o,{key:e.id||t,job:e,isZipJob:!1})),n.createElement("div",{style:{height:"0.5rem"}})))};var i=a(69052),s=a.n(i),c=a(86333);const m={primary:"#3498db",primaryDark:"#2980b9",text:"#1a365d",textMuted:"#64748b",border:"#e2e8f0",borderFocus:"#3498db",bg:"#ffffff",bgHover:"#f8fafc",bgSubtle:"#f1f5f9",success:"#059669"},d={sm:"6px",md:"10px",lg:"14px"},u={sm:"0 1px 2px rgba(0, 0, 0, 0.05)",md:"0 4px 12px rgba(0, 0, 0, 0.08)"},p={width:"100%",padding:"0.75rem 1rem",borderRadius:d.md,border:`1px solid ${m.border}`,fontSize:"0.9375rem",color:m.text,backgroundColor:m.bg,transition:"all 0.2s ease",outline:"none"},b={display:"block",fontSize:"0.8125rem",fontWeight:600,color:m.text,marginBottom:"0.5rem",letterSpacing:"0.01em"},h=({form_elements:e,job_types:t,location:a,miles:r,onChangeSort:o,onChangeLocation:l,onChangeCheckbox:i,onChangeDate:h,onChange:g,onChangeJobTypes:f})=>{const y=e.position_type_eq_any.includes("temp");return n.createElement("div",{style:{background:m.bg,borderRadius:d.lg,border:`1px solid ${m.border}`,boxShadow:u.md}},n.createElement("div",{style:{padding:"1.25rem 1.5rem",borderBottom:`1px solid ${m.border}`,background:"linear-gradient(135deg, #f8fafc 0%, #ffffff 100%)"}},n.createElement("h3",{style:{margin:0,fontSize:"1rem",fontWeight:700,color:m.text,display:"flex",alignItems:"center",gap:"0.625rem"}},n.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:m.primary,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})),"Refine Search")),n.createElement("div",{style:{padding:"1.5rem"}},n.createElement("div",{style:{marginBottom:"1.5rem"}},n.createElement("label",{htmlFor:"sort",style:b},"Sort By"),n.createElement("select",{id:"sort",name:"sort",onChange:o,style:{...p,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewB
1ox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 0.75rem center",paddingRight:"2.5rem"},onFocus:e=>e.currentTarget.style.borderColor=m.borderFocus,onBlur:e=>e.currentTarget.style.borderColor=m.border},n.createElement("option",{value:"newest"},"Newest First"),n.createElement("option",{value:"highest_salary"},"Highest Salary"),n.createElement("option",{value:"lowest_salary"},"Lowest Salary"),n.createElement("option",{value:"newest_temp"},"Newest Temp Jobs"),n.createElement("option",{value:"highest_salary_temp"},"Highest Salary Temp"),n.createElement("option",{value:"lowest_salary_temp"},"Lowest Salary Temp"))),n.createElement("div",{style:{background:m.bgSubtle,borderRadius:d.md,padding:"1rem",marginBottom:"1.5rem"}},n.createElement("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.875rem",color:m.textMuted,fontSize:"0.75rem",fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"}},n.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("path",{d:"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"}),n.createElement("circle",{cx:"12",cy:"10",r:"3"})),"Location"),n.createElement("div",{style:{display:"flex",gap:"0.75rem"}},n.createElement("div",{style:{flex:1}},n.createElement("input",{type:"text",name:"location",value:a,onChange:l,placeholder:"Zip code",style:{...p,backgroundColor:m.bg},onFocus:e=>e.currentTarget.style.borderColor=m.borderFocus,onBlur:e=>e.currentTarget.style.borderColor=m.border})),n.createElement("div",{style:{width:"110px"}},n.createElement("select",{name:"miles",value:r,onChange:l,style:{...p,backgroundColor:m.bg,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 0.5rem center",paddingRight:"1.75rem"},onFocus:e=>e.currentTarget.style.borderColor=m.borderFocus,onBlur:e=>e.currentTarget.style.borderColor=m.border},n.createElement("option",{value:5},"5 mi"),n.createElement("option",{value:10},"10 mi"),n.createElement("option",{value:25},"25 mi"),n.createElement("option",{value:50},"50 mi"),n.createElement("option",{value:100},"100 mi"),n.createElement("option",{value:200},"200 mi"))))),n.createElement("div",{style:{marginBottom:"1.5rem"}},n.createElement("label",{style:b},"Position Type"),n.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(2, 1fr)",gap:"0.5rem"}},[{value:"fulltime",label:"Full Time",color:"#3498db"},{value:"parttime",label:"Part Time",color:"#9b59b6"},{value:"longtermtemp",label:"Long Term Temp",color:"#f39c12"},{value:"temp",label:"Temp",color:"#e74c3c"}].map(t=>{const a=e.position_type_eq_any.includes(t.value);return n.createElement("label",{key:t.value,style:{display:"flex",alignItems:"center",gap:"0.625rem",padding:"0.625rem 0.75rem",borderRadius:d.sm,border:`1px solid ${a?t.color:m.border}`,background:a?`${t.color}08`:m.bg,cursor:"pointer",transition:"all 0.2s ease",fontSize:"0.8125rem",fontWeight:a?600:500,color:a?t.color:m.textMuted},onMouseOver:e=>{a||(e.currentTarget.style.borderColor=t.color,e.currentTarget.style.background=`${t.color}05`)},onMouseOut:e=>{a||(e.currentTarget.style.borderColor=m.border,e.currentTarget.style.background=m.bg)}},n.createElement("input",{type:"checkbox",name:"position_type_eq_any",value:t.value,id:t.value,checked:a,onChange:i,style:{display:"none"}}),n.createElement("span",{style:{width:"16px",height:"16px",borderRadius:"4px",border:`2px solid ${a?t.color:m.border}`,background:a?t.color:"transparent",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,transition:"all 0.2s ease"}},a&&n.createElement("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polyline",{points:"20 6 9 17 4 12"}))),t.label)}))),y&&n.createElement("div",{style:{marginBottom:"1.5rem"}},n.createElement("label",{style:b},"Temp Date"),n.createElement(s(),{timeFormat:!1,value:e.temp_date_eq||"",onChange:e=>h({date:e,fieldName:"temp_date_eq"}),inputProps:{placeholder:"Select a date",style:p,onFocus:e=>e.currentTarget.style.borderColor=m.borderFocus,onBlur:e=>e.currentTarget.style.borderColor=m.border}})),n.createElement("div",null,n.createElement("label",{htmlFor:"job_type_group_eq_any",style:b},"Job Type"),n.createElement(c.Sr,{options:t.map(e=>({value:e.id.toString(),label:e.title})),value:e.job_type_ids||[],onChange:f,placeholder:"All job types",isMulti:!0,isClearable:!0,name:"job_type_group_eq_any"}))),n.createElement("div",{style:{padding:"1rem 1.5rem",borderTop:`1px solid ${m.border}`,background:m.bgSubtle,fontSize:"0.75rem",color:m.textMuted,display:"flex",alignItems:"center",gap:"0.5rem"}},n.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("circle",{cx:"12",cy:"12",r:"10"}),n.createElement("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),n.createElement("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})),"Results update automatically"))};var g=a(88345),f=a(95093),y=a.n(f);let E=!1;if("undefined"!==typeof window){const{isMobile:e}=a(15042);E=e}if("undefined"!==typeof window){const{dotStream:e}=a(6620);e.register()}const _={primary:"#3498db",primaryDark:"#2980b9",text:"#1a365d",textMuted:"#64748b",border:"#e2e8f0",bg:"#ffffff",bgSubtle:"#f8fafc",bgPage:"#f1f5f9"},v={md:"10px",lg:"14px"},k={sm:"0 1px 3px rgba(0, 0, 0, 0.06)",md:"0 4px 12px rgba(0, 0, 0, 0.08)"};"undefined"!==typeof window&&(window.moment=y());function x({date:e,fieldName:t="date"}){const a=y().isMoment(e)?e:y()(e);if(!a.isValid())return{position_type_eq_any:["temp"]};return{[t]:a.format("YYYY-MM-DD"),position_type_eq_any:["temp"]}}function w(){return n.createElement("div",{style:{padding:"5rem 2rem",textAlign:"center",background:"linear-gradient(135deg, #f8fafc 0%, #ffffff 100%)"}},n.createElement("div",{style:{width:"64px",height:"64px",margin:"0 auto 1.5rem",borderRadius:"16px",background:"linear-gradient(135deg, #3498db, #2980b9)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 16px rgba(52, 152, 219, 0.25)"}},n.createElement("l-dot-stream",{size:"32",speed:"2.5",color:"white"})),n.createElement("h4",{style:{color:"#1a365d",fontWeight:700,marginBottom:"0.5rem",fontSize:"1.25rem",letterSpacing:"-0.01em"}},"Finding Opportunities..."),n.createElement("p",{style:{color:"#64748b",margin:0,fontSize:"0.9375rem"}},"Searching for the perfect positions"))}function N(){return n.createElement("div",{style:{padding:"5rem 2rem",textAlign:"center",background:"linear-gradient(135deg, #f8fafc 0%, #ffffff 100%)"}},n.createElement("div",{style:{width:"80px",height:"80px",margin:"0 auto 1.5rem",borderRadius:"20px",background:"#f1f5f9",display:"flex",alignItems:"center",justifyContent:"center"}},n.createElement("svg",{width:"36",height:"36",viewBox:"0 0 24 24",fill:"none",stroke:"#94a3b8",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("circle",{cx:"11",cy:"11",r:"8"}),n.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),n.createElement("line",{x1:"8",y1:"11",x2:"14",y2:"11"}))),n.createElement("h4",{style:{color:"#1a365d",fontWeight:700,marginBottom:"0.75rem",fontSize:"1.25rem",letterSpacing:"-0.01em"}},"No Jobs Found"),n.createElement("p",{style:{color:"#64748b",maxWidth:"360px",margin:"0 auto 1.75rem",lineHeight:1.6,fontSize:"0.9375rem"}},"We couldn't find any jobs matching your criteria. Try adjusting your filters or location."),n.createElement("a",{href:"/jobs",style:{display:"inline-flex",alignItems:"center",gap:"0.5rem",padding:"0.75rem 1.5rem",borderRadius:"10px",fontWeight:600,fontSize:"0.9375rem",textDecoration:"none",background:"linear-gradient(135deg, #3498db, #2980b9)",color:"white",border:"none",cursor:"pointer",transition:"all 0.2s ease",boxShadow:"0 4px 12px rgba(52, 152, 219, 0.3)"},onMouseOver:e=>{e.currentTarget.style.transform="translateY(-2px)",e.currentTarget.style.boxShadow="0 6px 16px rgba(52, 152, 219, 0.4)"},onMouseOut:e=>{e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="0 4px 12px rgba(52, 152, 219, 0.3)"}},n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polyline",{points:"1 4 1 10 7 10"}),n.createElement("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})),"Reset Filters"))}var j=e=>{const{job_types:t,authenticity_token:a}=e,r=n.useMemo(()=>new Map(t.map(e=>[e.id.toString(),e.group])),[t]),[o,i]=n.useState([]),[s,c]=n.useState({...e.form_elements,position_type_eq_any:["fulltime","parttime","longtermtemp","temp"]}),[m,d]=n.useState("newest"),[u,p]=n.useState(e.location||""),[b,f]=n.useState(1),[y,j]=n.useState(100),[C,S]=n.useState(!1),[T,F]=n.useState(void 0),[A,L]=n.useState(void 0),[I,$]=n.useState(void 0),[D,B]=n.useState(void 0),[M,R]=n.useState(void 0),P=n.useCallback(()=>
1{if(window.DDSJobs&&window.DDSJobs.isBot())return console.warn("Bot detected, skipping job search API call"),void S(!0);const e={...s};if(s.job_type_ids&&s.job_type_ids.length>0){const t=s.job_type_ids.map(e=>r.get(e)).filter(Boolean),a=[...new Set(t)];e.job_type_group_eq_any=a,delete e.job_type_ids}const t=JSON.stringify({page:b,sort:m,location:u,miles:y,search:e}),a=document.querySelector('meta[name="csrf-token"]')?.getAttribute("content"),n={Accept:"application/json","Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"};a&&(n["X-CSRF-Token"]=a),fetch("/jobsearch.json",{method:"POST",headers:n,body:t}).then(e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.json()}).then(e=>{if(!e||"object"!==typeof e)throw new Error("Invalid response format from job search API");const{jobs:t,total_pages:a,records:n}=e,r=e["current_page="];Array.isArray(t)||console.warn("Jobs is not an array, using empty array:",t);const o=1===r?r:r-1,l=r===a?r:r+1;i(Array.isArray(t)?t:[]),F("number"===typeof r?r:1),L("number"===typeof a?a:1),$("number"===typeof n?n:0),B(o),R(l),S(!0)}).catch(e=>{console.error("Error fetching jobs:",e),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(e,{tags:{component:"job_search",page:b,location:u},extra:{formElements:s,sort:m,miles:y,request_body:t}}),i([]),S(!0),F(1),L(1),$(0),B(1),R(1)})},[b,m,u,y,s,r]);n.useEffect(()=>{P()},[P]);const z=e=>{const{name:t,value:a,checked:n}=e.target;let r=[...s.position_type_eq_any];n?r.includes(a)||r.push(a):r=r.filter(e=>e!==a);const o=["fulltime","parttime","longtermtemp"].some(e=>r.includes(e))?{temp_date_eq:""}:{};c({...s,...o,position_type_eq_any:r})},W=e=>{const{name:t,value:a}=e.target;if("miles"!==t){if("location"===t){const e=/^[0-9\b]+$/;a.length<=5&&(""===a||e.test(a))&&p(a)}}else j(parseInt(a))},q=e=>{c({...s,...x(e)})},O=e=>{const t=e.target.value,a=t.includes("temp")?{sort:t,form_elements:{...s,position_type_eq_any:["temp"]}}:{sort:t};d(a.sort),a.form_elements&&c(a.form_elements)},J=e=>{const{name:t,value:a}=e.target;c({...s,[t]:a}),f(1)},H=e=>{c({...s,job_type_ids:e}),f(1)};return n.createElement("div",{className:"container browsing-font px-3",style:{paddingTop:"2rem",paddingBottom:"2rem"}},n.createElement("div",{className:"row"},E&&n.createElement("div",{className:"col-12 mb-4 text-center"},n.createElement("button",{type:"button",style:{display:"inline-flex",alignItems:"center",gap:"0.625rem",padding:"0.875rem 1.75rem",borderRadius:v.md,fontWeight:600,fontSize:"0.9375rem",background:`linear-gradient(135deg, ${_.primary}, ${_.primaryDark})`,color:"white",border:"none",cursor:"pointer",transition:"all 0.2s ease",boxShadow:"0 4px 12px rgba(52, 152, 219, 0.3)"},"data-bs-toggle":"modal","data-bs-target":"#filtersModal",onMouseOver:e=>{e.currentTarget.style.transform="translateY(-2px)",e.currentTarget.style.boxShadow="0 6px 16px rgba(52, 152, 219, 0.4)"},onMouseOut:e=>{e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="0 4px 12px rgba(52, 152, 219, 0.3)"}},n.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})),"Search Filters"),n.createElement("div",{className:"modal fade",id:"filtersModal",tabIndex:-1,"aria-labelledby":"filtersModalLabel","aria-hidden":"true"},n.createElement("div",{className:"modal-dialog modal-dialog-scrollable"},n.createElement("div",{className:"modal-content",style:{borderRadius:v.lg,overflow:"hidden"}},n.createElement("div",{className:"modal-header",style:{background:`linear-gradient(135deg, ${_.primary}, ${_.primaryDark})`,color:"white",border:"none"}},n.createElement("h5",{className:"modal-title",id:"filtersModalLabel",style:{display:"flex",alignItems:"center",gap:"0.625rem",fontWeight:600}},n.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},n.createElement("polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"})),"Search Filters"),n.createElement("button",{type:"button",className:"btn-close btn-close-white","data-bs-dismiss":"modal","aria-label":"Close"})),n.createElement("div",{className:"modal-body",style:{padding:0}},n.createElement(h,{form_elements:s,job_types:t,location:u,miles:y,onChangeSort:O,onChangeLocation:W,onChangeCheckbox:z,onChangeDate:q,onChange:J,onChangeJobTypes:H})),n.createElement("div",{className:"modal-footer",style:{borderTop:`1px solid ${_.border}`,background:_.bgSubtle}},n.createElement("button",{type:"button",style:{padding:"0.625rem 1.5rem",borderRadius:v.md,fontWeight:600,fontSize:"0.9375rem",background:`linear-gradient(135deg, ${_.primary}, ${_.primaryDark})`,color:"white",border:"none",cursor:"pointer",transition:"all 0.2s ease"},"data-bs-dismiss":"modal"},"Apply Filters")))))),n.createElement("div",{className:"col-12 col-lg-8 mb-4",id:"job-list"},n.createElement("div",{style:{background:_.bg,border:`1px solid ${_.border}`,borderRadius:v.lg,boxShadow:k.md,overflow:"hidden"}},o.length>0&&n.createElement(l,{jobs:o,zipjobs:[],sort:m,records:I}),o.length<1&&!C&&n.createElement(w,null),o.length<1&&C&&n.createElement(N,null))),n.createElement("div",{className:"col-12 col-lg-4",id:"job-filters"},!E&&n.createElement(h,{form_elements:s,job_types:t,location:u,miles:y,onChangeSort:O,onChangeLocation:W,onChangeCheckbox:z,onChangeDate:q,onChange:J,onChangeJobTypes:H})),o.length>0&&A&&T&&D&&M&&n.createElement("div",{className:"col-12 mt-3"},n.createElement(g.d,{current_page:T,total_pages:A,records:I||0,prev_page:D,next_page:M,navigateTo:e=>{f(e),"undefined"!==typeof window&&window.scrollTo(0,100)}}))))},C=a(57878),S=a(51466);function T({stripe_plans:e,create_quote_path:t,form_authenticity_token:a,job_id:r,publish_job_path:o,job_path:l,priority:i,email_blast:s,spotlight:c}){const[m,d]=n.useState([e.find(e=>e.name.includes("Auto Match"))]),u=t=>{const{id:a,upgrade:n}=t;if(!(n&&t.name.includes("Auto Match")&&m.find(e=>e.name.includes("Auto Match")))){if(!n||m.length!==e.length-1)return t.name.includes("Bundle")&&!m.find(e=>e.name.includes("Bundle"))?n?void d([t]):void 0:void(m.find(e=>e.id===a)?(n&&m.find(e=>e.name.includes("Bundle"))&&d(m.filter(e=>!1===e.name.includes("Bundle"))),d(m.filter(e=>e.id!==a))):!n&&t.name.includes("Bundle")||d([...m,t]));d([e.find(e=>e.name.includes("Bundle"))])}};n.useEffect(()=>{e.filter(e=>e.upgrade&&!e.name.includes("Bundle")).every(e=>m.some(t=>t.id===e.id))&&d([...m.filter(e=>!e.upgrade),e.find(e=>e.name.includes("Bundle"))])},[m,e]);const p=m.reduce((e,t)=>
1e+parseFloat(t.price),0),b=m.length>0?`Your add-on price total is $${p}`:"",h=m.find(e=>e.name.includes("Bundle")),g=e.filter(e=>e.upgrade),f=e.filter(e=>!e.upgrade),y=n.useRef(null),[E,_]=n.useState(!1),v=()=>{const e=y.current;if(!e)return;const t=e.getBoundingClientRect().top,a=e.getBoundingClientRect().bottom,n=(e.getBoundingClientRect().height,window.innerHeight);_(t>=0&&a<=n)};return n.useEffect(()=>(window.addEventListener("scroll",v),()=>{window.removeEventListener("scroll",v)}),[]),n.createElement(n.Fragment,null,n.createElement("div",{className:"container pb-5 mb-5"},n.createElement("div",{className:"text-center mb-4"},n.createElement("div",{className:"alert alert-info d-inline-block mb-3",style:{borderRadius:"8px"}},n.createElement("i",{className:"fas fa-star me-2"}),n.createElement("strong",null,"New for Essential Members!")),n.createElement("h2",{className:"mb-2",style:{color:"#0f4b89",fontWeight:700}},n.createElement("i",{className:"fas fa-rocket me-2"}),"Upgrade Your Job Posting"),n.createElement("p",{className:"text-muted",style:{fontSize:"1.1rem"}},"Check out these optional add-ons to help your job reach more candidates!")),n.createElement("div",{className:"row justify-content-center"},n.createElement("div",{className:"col-12 col-lg-8"},n.createElement("div",{className:"content-card mb-4"},n.createElement("div",{className:"content-card__header"},n.createElement("h3",null,n.createElement("i",{className:"fas fa-bolt me-2"}),"Job Add-Ons")),n.createElement("div",{className:"content-card__body"},g.map((e,t)=>n.createElement(F,{key:e.id,stripe_plan:e,onClick:()=>u(e),selected_plans:m,bundle_selected:h})))),n.createElement("div",{className:"content-card mb-4"},n.createElement("div",{className:"content-card__header"},n.createElement("h3",null,n.createElement("i",{className:"fas fa-users me-2"}),"Recruiter Services"),n.createElement("span",{className:"badge-modern badge-modern--info"},"More Ways to Hire")),n.createElement("div",{className:"content-card__body"},f.map((e,t)=>n.createElement(F,{key:e.id,stripe_plan:e,onClick:()=>u(e),selected_plans:m,bundle_selected:h})))))),n.createElement("div",{ref:y})),p>0&&n.createElement("div",{className:"sticky-bottom bg-white p-4 text-center border-top "+(E?"":"shadow"),style:{position:"fixed",bottom:0,left:0,right:0,width:"100%",zIndex:1e3}},n.createElement("div",{className:"container"},n.createElement("div",{className:"mb-3"},n.createElement("span",{className:"h4 fw-bold",style:{color:"#0f4b89"}},n.createElement("i",{className:"fas fa-tag me-2"}),b)),n.createElement("form",{action:t,method:"post"},n.createElement("input",{type:"hidden",name:"authenticity_token",value:a}),n.createElement("input",{type:"hidden",name:"job_id",value:r}),n.createElement("input",{type:"hidden",name:"return_path",value:o}),n.createElement("input",{type:"hidden",name:"purchase_name",value:"Purchase - Job Upgrade"}),n.createElement("input",{type:"hidden",name:"purchase_amount",value:p}),m.filter(e=>""!==e.stripe_plan).map((e,t)=>n.createElement("input",{key:t,type:"hidden",name:"prices[]",value:e.stripe_plan})),n.createElement("button",{className:"btn btn-primary btn-rounded",style:{fontSize:"1.1rem",padding:"0.75rem 2rem"}},n.createElement("i",{className:"fas fa-shopping-cart me-2"}),"Checkout and Publish")))),0===p&&n.createElement("div",{className:"sticky-bottom bg-white p-4 text-center border-top "+(E?"":"shadow"),style:{position:"fixed",bottom:0,left:0,right:0,width:"100%",zIndex:1e3}},n.createElement("div",{className:"container"},n.createElement("button",{onClick:()=>o&&window.location.replace(o),className:"btn btn-primary btn-rounded",style:{fontSize:"1.1rem",padding:"0.75rem 2rem"}},n.createElement("i",{className:"fas fa-paper-plane me-2"}),"No Thanks, Publish Job Without Add-Ons"))))}function F({stripe_plan:e,onClick:t,selected_plans:a,bundle_selected:r}){const{upgrade_text:o}=e,l=o.match(/\[(.*?)\]/),i=o.replace(/\[(.*?)\]/,""),s=r&&!e.name.includes("Bundle")&&e.upgrade?"50%":"100%";e.price;return n.createElement("div",{className:"mb-3 p-3 rounded",style:{opacity:s,cursor:"pointer",border:a.includes(e)?"2px solid #085ec8":"2px s
1olid #e8ecef",background:a.includes(e)?"rgba(8, 94, 200, 0.05)":"white",transition:"all 0.2s ease"},onClick:()=>{r||t(),e.name.includes("Bundle")&&t(),e.upgrade||t()},onMouseEnter:t=>{a.includes(e)||(t.currentTarget.style.borderColor="rgba(8, 94, 200, 0.3)",t.currentTarget.style.background="rgba(8, 94, 200, 0.02)")},onMouseLeave:t=>{a.includes(e)||(t.currentTarget.style.borderColor="#e8ecef",t.currentTarget.style.background="white")}},n.createElement("div",{className:"d-flex align-items-start gap-3"},!r&&n.createElement("input",{className:"form-check-input mt-1",type:"checkbox",value:"",id:`upgrade-${e.id}`,checked:a.includes(e),style:{width:"24px",height:"24px",borderRadius:"6px",flexShrink:0},readOnly:!0}),r&&n.createElement("input",{className:"form-check-input mt-1",type:"checkbox",value:"",id:`upgrade-${e.id}`,checked:!!e.upgrade||a.includes(e),style:{width:"24px",height:"24px",borderRadius:"6px",flexShrink:0},readOnly:!0}),n.createElement("div",{className:"flex-grow-1"},n.createElement("div",{className:"d-flex justify-content-between align-items-start mb-1"},n.createElement("h5",{className:"mb-0",style:{color:"#0f4b89",fontWeight:600}},e.name),n.createElement("div",{className:"d-flex align-items-center gap-2"},n.createElement("span",{className:"badge-modern badge-modern--success",style:{fontSize:"1rem",fontWeight:700}},"0"!=e.price?`$${e.price}`:"Included"),n.createElement(S.Wx,{message:e.name}))),n.createElement("p",{className:"text-muted mb-0",style:{fontSize:"0.9rem"}},i),l&&l[1]&&n.createElement("p",{className:"text-danger mb-0 mt-1",style:{fontSize:"0.85rem",fontWeight:600}},n.createElement("i",{className:"fas fa-star me-1"}),l[1]))))}const A=(0,n.createContext)([{},()=>{}]);var L=A,I=a(59386),$=a.n(I),D=a(46005);const B=[{value:"0-2",label:"0-2 Years"},{value:"2-5",label:"2-5 Years"},{value:"5+",label:"5+ Years"}],M=["fulltime","parttime"];function R({practices:e,job_types:t,position_types:a,tabIndexFunc:r,validation:o,setValidation:l,temp:i=!1,cancelButton:c}){const[m,d]=n.useContext(L),[u,p]=n.useState(!1),[b,h]=n.useState(!1),g=e=>null===e||void 0===e||""===e,f=b&&g(m.job_type_id),E=b&&g(m.practice_id),_=b&&g(m.position_type),v="temp"===m.position_type,k=b&&v&&g(m.sms_phone),x=b&&v&&g(m.temp_date),w=b&&v&&g(m.temp_start),N=b&&v&&g(m.temp_end),j=(e,t)=>d(a=>({...a,[`${e}`]:t})),C=!1!==m.auto_invite_matches,S=M.includes(m.position_type),T=e=>{const t=y().isMoment(e)?e:y()(e,["h:mm A","HH:mm"]);if(!t.isValid())return;const a=y().utc().hour(t.hour()).minute(t.minute()).second(0).millisecond(0).toDate();d(e=>({...e,temp_start:a,temp_start_readable:null}))},F=e=>{const t=y().isMoment(e)?e:y()(e,["h:mm A","HH:mm"]);if(!t.isValid())return;const a=y().utc().hour(t.hour()).minute(t.minute()).second(0).millisecond(0).toDate();d(e=>({...e,temp_end:a,temp_end_readable:null}))};n.useEffect(()=>{"temp"!==m.position_type&&d(e=>({...e,temp_date:null,temp_start:null,temp_end:null})),"temp"===m.position_type&&(p(!1),d(e=>({...e,confidential:!1})),m.id||(T(y()().utc().hour(8).minute(0).second(0).millisecond(0)),F(y()().utc().hour(17).minute(0).second(0).millisecond(0)))),d(e=>M.includes(e.position_type)?void 0!==e.auto_invite_matches?e:{...e,auto_invite_matches:!0}:e)},[m.position_type]);const A={option:(e,{isFocused:t})=>({...e,backgroundColor:t?"#0275d8":"white",color:t?"white":"black",cursor:"pointer",padding:"10px",":hover":{backgroundColor:"#0275d8",color:"white"}}),control:e=>({...e,backgroundColor:"white",minHeight:"48px",borderColor:"#ccd8e5",borderRadius:"0.6rem",boxShadow:"none",":hover":{borderColor:"#0275d8"},":focus":{borderColor:"#0275d8",boxShadow:"0 0 0 0.2rem rgba(2, 117, 216, 0.25)"}}),singleValue:e=>({...e,color:"#333"}),menu:e=>({...e,boxShadow:"0 0.5rem 1rem rgba(0, 0, 0, 0.15)",borderRadius:"0.25rem"})},I=t.map(e=>({value:e.id,label:e.title})),R=I.find(e=>e.value.toString()===m.job_type_id?.toString()),P=a.map(e=>({value:e.shortname,label:e.name})),z=P.find(e=>e.value===m.position_type);return n.createElement("div",{className:"job-builder-step job-builder-step--details"},n.createElement("div",{className:"form-group py-2"+(f?" has-error":"")},n.createElement("h4",{className:"font-weight-bold"}
1,"Position"),n.createElement("p",{className:"job-builder-field-help"},"Choose the dental role candidates will see in search."),n.createElement(D.Ay,{styles:A,options:I,value:R,onChange:e=>j("job_type_id",e.value),placeholder:"Select a position",classNamePrefix:"react-select",isClearable:!1}),f&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Select a position.")),n.createElement("div",{className:"form-group py-2"+(E?" has-error":"")},n.createElement("h4",{className:"font-weight-bold"},"Location"),n.createElement("p",{className:"job-builder-field-help"},"Select the practice where this person will work."),n.createElement(D.Ay,{styles:{...A,option:(e,{isFocused:t})=>({...e,backgroundColor:t?"#0275d8":"white",color:t?"white":"black",cursor:"pointer",padding:"10px",display:"flex",alignItems:"center",gap:"10px",":hover":{backgroundColor:"#0275d8",color:"white"}}),singleValue:e=>({...e,color:"inherit",display:"flex",alignItems:"center",gap:"10px"})},options:e.map(e=>({value:e.id,label:n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"location-avatar me-2"},e.avatar_url?n.createElement("img",{src:e.avatar_url,alt:e.name,className:"rounded-circle",style:{width:"32px",height:"32px",objectFit:"cover"}}):n.createElement("div",{className:"rounded-circle bg-primary d-flex justify-content-center align-items-center",style:{width:"32px",height:"32px"}},n.createElement("span",{style:{color:"white",fontSize:"14px"}},e.name?.charAt(0).toUpperCase()))),n.createElement("div",{className:"location-details"},n.createElement("div",{className:"location-name fw-bold"},e.name),n.createElement("div",{className:"location-address",style:{color:"inherit",fontSize:"0.8rem"}},e.street_address,", ",e.city,", ",e.state,", ",e.zip))),searchableData:`${e.name} ${e.street_address} ${e.city} ${e.state} ${e.zip}`.toLowerCase(),data:e})),value:e.filter(e=>e.id.toString()===m.practice_id?.toString()).map(e=>({value:e.id,label:n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"location-avatar me-2"},e.avatar_url?n.createElement("img",{src:e.avatar_url,alt:e.name,className:"rounded-circle",style:{width:"32px",height:"32px",objectFit:"cover"}}):n.createElement("div",{className:"rounded-circle bg-primary d-flex justify-content-center align-items-center",style:{width:"32px",height:"32px"}},n.createElement("span",{style:{color:"white",fontSize:"14px"}},e.name?.charAt(0).toUpperCase()))),n.createElement("div",{className:"location-details"},n.createElement("div",{className:"location-name fw-bold"},e.name),n.createElement("div",{className:"location-address",style:{color:"inherit",fontSize:"0.8rem"}},e.street_address,", ",e.city,", ",e.state,", ",e.zip))),searchableData:`${e.name} ${e.street_address} ${e.city} ${e.state} ${e.zip}`.toLowerCase(),data:e}))[0],onChange:e=>j("practice_id",e?e.value:""),placeholder:"Search or select a location",classNamePrefix:"react-select",isClearable:!1,filterOption:(e,t)=>e.data.searchableData.toLowerCase().includes(t.toLowerCase()),noOptionsMessage:({inputValue:e})=>`No locations found for "${e}"`}),E&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Select a location."),n.createElement("div",{className:"mt-3"},n.createElement("a",{className:"job-builder-inline-action",href:"/practices"},n.createElement("i",{className:"fa fa-plus me-1"})," Add Another Location"))),"temp"!==m.position_type&&n.createElement("div",{className:"form-group py-2"},n.createElement("h4",{className:"font-weight-bold"},"Confidential Listing"),n.createElement("p",{className:"job-builder-field-help"},"Hide your practice\u2019s name, logo, and website on this listing, so candidates see \u201cConfidential Dental Practice\u201d instead."),n.createElement("div",{className:"form-check form-switch job-builder-switch"},n.createElement("input",{className:"form-check-input",type:"checkbox",role:"switch",checked:!!m.confidential,id:"job-confidential",onChange:()=>{p(!u),d({...m,confidential:!u})}}),n.createElement("label",{className:"form-check-label",htmlFor:"job-confidential"},"Keep practice details confidential"))),S&&n.createElement("div",{className:"form-group py-2"},n.createElement("h4",{className:"font-weight-bold"},"Automatic Invitations"),n.createElement("p",{className:"job-builder
1-field-help"},"Each day we invite the best-matching candidates who have not applied yet. Turn this off to invite people yourself."),n.createElement("div",{className:"form-check form-switch job-builder-switch"},n.createElement("input",{className:"form-check-input",type:"checkbox",role:"switch",checked:C,id:"job-auto-invite-matches",onChange:()=>d(e=>({...e,auto_invite_matches:!1===e.auto_invite_matches}))}),n.createElement("label",{className:"form-check-label",htmlFor:"job-auto-invite-matches"},"Automatically invite matching candidates"))),n.createElement("div",{className:"form-group py-2"+(_?" has-error":"")},n.createElement("h4",{className:"font-weight-bold"},"Hiring Type"),n.createElement("p",{className:"job-builder-field-help"},"Set whether this is a permanent, long-term, or single-day need."),n.createElement(D.Ay,{styles:A,options:P,value:z,onChange:e=>j("position_type",e?e.value:""),placeholder:"Select a position type...",classNamePrefix:"react-select",isClearable:!1}),_&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Select a hiring type.")),"temp"===m.position_type&&n.createElement("div",{className:"form-group py-2"+(k?" has-error":"")},n.createElement("h4",{className:"font-weight-bold"},"Mobile Number"),n.createElement("p",{className:"job-builder-field-help"},"You will receive text message updates for your temp job request."),n.createElement("input",{className:"form-control",id:"sms_phone",name:"sms_phone",type:"text",placeholder:"555-555-5555",onChange:e=>j("sms_phone",e.target.value),value:m.sms_phone??""}),k&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Enter a mobile number for text updates.")),"temp"!==m.position_type&&n.createElement("div",{className:"form-group py-2"},n.createElement("h4",{className:"font-weight-bold"},"Years of Experience"),n.createElement("p",{className:"job-builder-field-help"},"Minimum experience you\u2019d like candidates to have."),n.createElement(D.Ay,{styles:A,options:B,value:B.find(e=>e.value===m.years_experience)||null,onChange:e=>j("years_experience",e?e.value:"0-2"),placeholder:"Select experience level...",classNamePrefix:"react-select",isClearable:!1,isSearchable:!1,inputId:"years_experience"})),"temp"===m.position_type&&n.createElement("div",{className:"form-group py-2 "},n.createElement("h4",{className:"font-weight-bold"},"Temp Schedule"),n.createElement("h5",null,"Temp Date"),n.createElement($(),{className:"form-control",selected:m.temp_date,minDate:new Date,onChange:e=>(e=>d(t=>({...t,temp_date:e})))(e)}),x&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Pick the date of the shift."),n.createElement("div",{className:"row"}," ",n.createElement("div",{className:"col-6"}," ",n.createElement("h5",null,"Start Time"),n.createElement(s(),{value:m.temp_start_readable?y()(m.temp_start_readable,"h:mm A"):m.temp_start?y().utc(m.temp_start):null,inputProps:{name:"job[temp_start]"},onChange:e=>T(e),dateFormat:!1,timeFormat:!0,timeConstraints:{minutes:{step:15,min:0,max:59}}}),w&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Set a start time.")),n.createElement("div",{className:"col-6"}," ",n.createElement("h5",null,"End Time"),n.createElement(s(),{value:m.temp_end_readable?y()(m.temp_end_readable,"h:mm A"):m.temp_end?y().utc(m.temp_end):null,inputProps:{name:"job[temp_end]"},onChange:e=>F(e),dateFormat:!1,timeFormat:!0,timeConstraints:{minutes:{step:15,min:0,max:59}}}),N&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Set an end time.")))),"longtermtemp"===m.position_type&&n.createElement("div",{className:"form-group py-2 "},n.createElement("h4",{className:"font-weight-bold"},"Long Term Start"),n.createElement("h5",null,"Start Date"),n.createElement($(),{className:"form-control",selected:m.start_date,onChange:e=>(e=>d(t=>({...t,start_date:e})))(e)})),n.createElement("div",{className:"job-builder-actions"},n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary",onClick:()=>window.location.href="/jobs/manage"},"Cancel"),n.createElement("button",{type:"button",className:"job-builder
1-button job-builder-button--primary",onClick:()=>(()=>{const{position_type:e,job_type_id:t,practice_id:a,sms_phone:n,temp_date:o,temp_start:l,temp_end:i}=m;h(!0);const s=null!==n&&""!==n&&null!==o&&""!==o&&null!==l&&""!==l&&null!==i&&""!==i;null!==e&&""!==e&&null!==t&&""!==t&&null!==a&&""!==a&&("temp"!==m.position_type||s)&&r(1)})()},"Continue to skills",n.createElement("i",{className:"fa fa-arrow-right","aria-hidden":"true"}))))}function P({skills:e,skill_categories:t,tabIndexFunc:a}){const[r,o]=(0,n.useContext)(A),[l,i]=(0,n.useState)(r.skill_ids||[]);(0,n.useEffect)(()=>{const t=e.filter(e=>"Language Proficiency (other than English)"===e.category);!l.includes(55)&&l.some(e=>t.map(e=>e.id).includes(e))&&i(l.filter(e=>!t.map(e=>e.id).includes(e)))},[l,e]),(0,n.useEffect)(()=>{o({...r,skill_ids:l})},[l]);const s={option:(e,{data:t,isDisabled:a,isFocused:n,isSelected:r})=>({...e}),multiValueLabel:(e,{data:t})=>({backgroundColor:t.color,color:"white",borderRadius:"5px 0 0 5px",paddingLeft:8,paddingTop:5,paddingBottom:5,paddingRight:3}),multiValueRemove:(e,{data:t})=>({...e,backgroundColor:t.color,color:"white",borderRadius:"0 5px 5px 0",paddingRight:5,paddingLeft:4,marginLeft:-1})};return n.createElement("div",{className:"job-builder-step job-builder-step--skills"},n.createElement("div",{className:"job-builder-step__summary"},n.createElement("div",null,n.createElement("strong",null,"Choose only what matters"),n.createElement("p",null,"Candidates can quickly compare their experience with your requirements.")),n.createElement("span",null,l.length," selected")),n.createElement("div",{className:"job-builder-skill-groups"},t.map((t,a)=>{const r=e.filter(e=>e.category===t);if("Language Proficiency (other than English)"===t&&!l.includes(55))return null;const o=r.sort((e,t)=>e.name.localeCompare(t.name)).map(e=>({value:e.id,label:e.name,color:e.color||"#6c757d"}));return n.createElement("div",{key:a,className:"job-builder-skill-group"},n.createElement("h4",null,t),n.createElement(D.Ay,{styles:s,options:o,classNamePrefix:"react-select",isMulti:!0,value:o.filter(e=>l.includes(e.value)),onChange:e=>{if(!e){const e=r;return void i(t=>t.filter(t=>!e.map(e=>e.id).includes(t)))}const t=r.filter(t=>e.map(e=>e.value).includes(t.id)),a=r.filter(t=>!e.map(e=>e.value).includes(t.id));i(e=>[...e,...t.map(e=>e.id).filter(t=>!e.includes(t))]),i(e=>e.filter(e=>!a.map(e=>e.id).includes(e)))}}))})),n.createElement("div",{className:"job-builder-actions"},n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary",onClick:()=>{a(0)}},n.createElement("i",{className:"fa fa-arrow-left","aria-hidden":"true"}),"Back"),n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--primary",onClick:()=>{a(2)}},"Continue to compensation",n.createElement("i",{className:"fa fa-arrow-right","aria-hidden":"true"}))))}const z=e=>null!==e&&void 0!==e&&""!==e&&Number(e)>0;function W(e){return e.exact_pay?z(e.min_compensation)||z(e.compensation):z(e.min_compensation)&&z(e.compensation)&&Number(e.compensation)>=Number(e.min_compensation)}const q=[{value:"hourly",label:"Hour"},{value:"daily",label:"Day"},{value:"monthly",label:"Month"},{value:"annually",label:"Year"}];function O({tabIndexFunc:e,benefitsClass:t=""}){const[a,r]=n.useContext(L),[o,l]=n.useState(!1),i=e=>{const t={bonuses:"benefit_bonuses",medical:"benefit_medical",dental:"benefit_dental",vision:"benefit_vision",fourk:"benefit_401k",pto:"benefit_pto"}[e];t&&r({...a,[t]:!a[t]})},s=(e,t)=>{"starting"===t&&r({...a,min_compensation:e.target.value}),"ending"===t&&r({...a,compensation:e.target.value})},c=a.exact_pay?"exact":"range";n.useEffect(()=>{a.doe&&r({...a,doe:!1})},[a.doe]);const m=e=>null!==e&&void 0!==e&&""!==e&&Number(e)>0,d=m(a.min_compensation),u="range"!==c||m(a.compensation),p="range"===c&&m(a.min_compensation)&&m(a.compensation)&&Number(a.compensation)<Number(a.min_compensation),b=W(a);return n.createElement("div",{className:"job-builder-step job-builder-step--compensation"},n.createElement("div",{className:"job-builder-step__summary"},n.createElement("div",null,n.createElement("strong",null,"Set clear expectations"),n.createElement("p",null,"Listings with useful pay details tend to attract more confident applicants.")),n.createElement("i",{className:"fa fa-chart-line","aria-hidden":"true"})),n.createElement("div",{className:"form-group py-2"+(o&&!b?" has-error":"")},n.createElement("h4",{className:"font-weight-bold"}
1,"Pay"),n.createElement("p",{className:"job-builder-field-help"},"How do you want to share pay with candidates? Pick one:"),n.createElement("div",{className:"job-builder-paymode",role:"radiogroup","aria-label":"How pay is shared"},[{key:"range",label:"Pay range",note:"Show a minimum and maximum"},{key:"exact",label:"Exact amount",note:"One set rate"}].map(e=>n.createElement("button",{key:e.key,type:"button",role:"radio","aria-checked":c===e.key,className:"job-builder-paymode__card"+(c===e.key?" active":""),onClick:()=>{return"range"===(t=e.key)&&r({...a,exact_pay:!1,doe:!1}),void("exact"===t&&r({...a,exact_pay:!0,doe:!1,compensation:null}));var t}},n.createElement("span",{className:"job-builder-paymode__radio","aria-hidden":"true"}),n.createElement("span",{className:"job-builder-paymode__text"},n.createElement("strong",null,e.label),n.createElement("small",null,e.note))))),n.createElement("div",{className:"job-builder-pay-sentence"},n.createElement("span",{className:"job-builder-pay-amount"},n.createElement("span",{className:"job-builder-pay-amount__currency","aria-hidden":"true"},"$"),n.createElement("input",{className:"form-control"+(o&&!d?" is-invalid":""),type:"number",min:"0",placeholder:"0","aria-label":"exact"===c?"Amount in dollars":"Minimum in dollars",onChange:e=>s(e,"starting"),value:a.min_compensation??""})),"range"===c&&n.createElement(n.Fragment,null,n.createElement("span",{className:"job-builder-pay-sentence__word"},"to"),n.createElement("span",{className:"job-builder-pay-amount"},n.createElement("span",{className:"job-builder-pay-amount__currency","aria-hidden":"true"},"$"),n.createElement("input",{className:"form-control"+(!o||u&&!p?"":" is-invalid"),type:"number",min:"0",placeholder:"0","aria-label":"Maximum in dollars",onChange:e=>s(e,"ending"),value:a.compensation??""}))),n.createElement("span",{className:"job-builder-pay-sentence__per"},n.createElement("span",{className:"job-builder-pay-sentence__word"},"per"),n.createElement("div",{className:"job-builder-pay-sentence__unit"},n.createElement(D.Ay,{options:q,value:q.find(e=>e.value===a.compensation_type)||q[0],onChange:e=>r({...a,compensation_type:e?e.value:"hourly"}),classNamePrefix:"react-select",isClearable:!1,isSearchable:!1,inputId:"compensation_type"})))),o&&p&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Max should be at least the minimum."),o&&!p&&!b&&"range"===c&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Enter a pay range."),o&&!b&&"exact"===c&&n.createElement("p",{className:"job-builder-field-error",role:"alert"},"Enter an amount."),n.createElement("div",{className:"job-builder-pay-note"},n.createElement("strong",null,"Why pay is required"),n.createElement("p",null,"Postings without pay get fewer views and applicants, and job boards rank them lower."),n.createElement("p",null,"A growing list of states require employers to include a pay range in job ads, including California, Colorado, Washington, New York, Illinois, Hawaii, and Maryland."))),"temp"!==a.position_type&&n.createElement("div",{className:"form-group py-2"},n.createElement("h4",{className:"font-weight-bold"},"Benefits"),n.createElement("p",{className:"job-builder-field-help"},"Select every benefit included with this role."),n.createElement("div",{className:`job-builder-benefits ${t}`},n.createElement("div",{className:"form-check ps-0 ms-0"},n.createElement("input",{className:"form-check-input btn-check",type:"checkbox",id:"flexCheckBonuses",checked:a.benefit_bonuses,onChange:e=>i("bonuses")}),n.createElement("label",{className:"form-check-label btn text-light rounded px-2 py-1 me-1 mb-1",htmlFor:"flexCheckBonuses",style:a.benefit_bonuses?{backgroundColor:"green"}:{backgroundColor:"green",opacity:.65}},a.benefit_bonuses?n.createElement("i",{className:"fa fa-check text-white","aria-hidden":"true"}):""," ","Bonuses")),n.createElement("div",{className:"form-check ps-0 ms-0"},n.createElement("input",{className:"form-check-input btn-check",type:"checkbox",id:"flexCheckMedical",checked:a.benefit_medical,onChange:e=>i("medical")}),n.createElement("label",{className:"form-check-label btn text-light rounded px-2 py-1 me-1 mb-1",htmlFor:"flexCheckMedical",style:a.benefit_medical?{backgroundColor:"green"}:{backgroundColor:"green",opacity:.65}},a.benefit_medical?n.createElement("i",{className:"fa fa-check text-white","aria-hidden":"true"}):""," ","Medical")),n.createElement("div",{className:"form-check ps-0 ms-0"},n.createElement("input",{className:"form-check-input btn-check",type:"checkbox",id:"flexCheckDental",checked:a.benef
1it_dental,onChange:e=>i("dental")}),n.createElement("label",{className:"form-check-label btn text-light rounded px-2 py-1 me-1 mb-1",htmlFor:"flexCheckDental",style:a.benefit_dental?{backgroundColor:"green"}:{backgroundColor:"green",opacity:.65}},a.benefit_dental?n.createElement("i",{className:"fa fa-check text-white","aria-hidden":"true"}):""," ","Dental")),n.createElement("div",{className:"form-check ps-0 ms-0"},n.createElement("input",{className:"form-check-input btn-check",type:"checkbox",id:"flexCheckVision",checked:a.benefit_vision,onChange:e=>i("vision")}),n.createElement("label",{className:"form-check-label btn text-light rounded px-2 py-1 me-1 mb-1",htmlFor:"flexCheckVision",style:a.benefit_vision?{backgroundColor:"green"}:{backgroundColor:"green",opacity:.65}},a.benefit_vision?n.createElement("i",{className:"fa fa-check text-white","aria-hidden":"true"}):""," ","Vision")),n.createElement("div",{className:"form-check ps-0 ms-0"},n.createElement("input",{className:"form-check-input btn-check",type:"checkbox",id:"flexCheckFourk",checked:a.benefit_401k,onChange:e=>i("fourk")}),n.createElement("label",{className:"form-check-label btn text-light rounded px-2 py-1 me-1 mb-1",htmlFor:"flexCheckFourk",style:a.benefit_401k?{backgroundColor:"green"}:{backgroundColor:"green",opacity:.65}},a.benefit_401k?n.createElement("i",{className:"fa fa-check text-white","aria-hidden":"true"}):""," ","401K")),n.createElement("div",{className:"form-check ps-0 ms-0"},n.createElement("input",{className:"form-check-input btn-check",type:"checkbox",id:"flexCheckPto",checked:a.benefit_pto,onChange:e=>i("pto")}),n.createElement("label",{className:"form-check-label btn text-light rounded px-2 py-1 me-1 mb-1",htmlFor:"flexCheckPto",style:a.benefit_pto?{backgroundColor:"green"}:{backgroundColor:"green",opacity:.65}},a.benefit_pto?n.createElement("i",{className:"fa fa-check text-white","aria-hidden":"true"}):""," ","PTO")))),n.createElement("div",{className:"job-builder-actions"},n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary",onClick:()=>{e(1)}},n.createElement("i",{className:"fa fa-arrow-left","aria-hidden":"true"}),"Back"),n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--primary",onClick:()=>{l(!0),b&&e(3)}},"Continue to description",n.createElement("i",{className:"fa fa-arrow-right","aria-hidden":"true"}))))}var J=a(60023),H=a(77657);const V=e=>{if("undefined"!==typeof document){const t=document.createElement("div");t.innerHTML=e;return t.querySelectorAll("a").forEach(e=>{const t=document.createTextNode(e.textContent||"");e.parentNode&&e.parentNode.replaceChild(t,e)}),t.innerHTML}return e.replace(/<a\b[^>]*>(.*?)<\/a>/gi,"$1")};
1function U({job_types:e,tabIndexFunc:t,validation:a,form_submit:r}){const[o,l]=n.useContext(L),[i,s]=n.useState(o.description||""),[c,m]=n.useState(!1),[d,u]=n.useState(0),p=e.find(e=>e.id===Number(o.job_type_id))?.description_template||"";n.useEffect(()=>{J.xI.use({extensions:[{name:"underline",level:"inline",start(e){return e.match(/\+\+/)?.index},tokenizer(e){const t=/^\+\+([^+]+)\+\+/.exec(e);if(t){const e=J.xI.parseInline(t[1]);return{type:"underline",raw:t[0],text:e,tokens:[]}}},renderer(e){return`<u>${e.text}</u>`}}]})},[]);const b=e=>{const t=V(e);s(t),l({...o,description:t})},h=(e,t={})=>{i.length>33&&!a?e(t):(m(!0),console.error("Not all fields are filled out"))},[g,f]=n.useState(!1);return n.createElement("div",{className:"job-builder-step job-builder-step--description"},n.createElement("div",{className:"job-builder-step__summary"},n.createElement("div",null,n.createElement("strong",null,"Write for the candidate"),n.createElement("p",null,"Highlight the day-to-day work, your team, and what makes this opportunity worth exploring.")),n.createElement("i",{className:"fa fa-file-alt","aria-hidden":"true"})),n.createElement("div",{className:"form-group py-2"},n.createElement("h4",{className:"font-weight-bold"},"Job Headline (Optional)"),n.createElement("p",{className:"job-builder-field-help"},"Use a short hook, such as a schedule perk or team benefit."),n.createElement("input",{className:"form-control",type:"text",placeholder:"Example: Join a patient-first team with Fridays off",onChange:e=>(e=>{l({...o,job_title:e.target.value})})(e),value:o.job_title??""})),n.createElement("div",{className:"job-builder-template"},!g&&n.createElement("button",{type:"button",className:"job-builder-inline-action",onClick:()=>f(!0)},n.createElement("i",{className:"fa fa-magic","aria-hidden":"true"}),"Use a Template"),g&&!o.job_type_id&&n.createElement("p",{className:"text-danger ps-0 ms-0"},"Missing job type from general info."),o.job_type_id&&g&&n.createElement("div",{className:"job-builder-template__preview"},n.createElement("div",{dangerouslySetInnerHTML:(e=>{try{J.xI.setOptions({breaks:!0,gfm:!0});const t=(0,J.xI)(e);return t instanceof Promise?(setTimeout(()=>{t.then(e=>{l({...o})})},0),{__html:"Loading..."}):{__html:t}}catch(t){return console.error("Markdown parsing error:",t),{__html:e}}})(p)}),n.createElement("div",{className:"job-builder-template__actions"},n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary",onClick:()=>f(!1)},"Close"),n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--primary",onClick:()=>(async e=>{try{const t=(0,J.xI)(e,{breaks:!0}),a=t instanceof Promise?await t:t,n=V(a);b(n),u(e=>e+1),f(!1)}catch(t){console.error("Error processing template:",t)}})(p)},"Use this Template")))),n.createElement("div",{className:"form-group py-2"},n.createElement("h4",{className:"font-weight-bold"},"Job Description"),n.createElement("p",{className:"job-builder-field-help"},"Include responsibilities, schedule expectations, and what success looks like."),n.createElement(H.A,{key:d,editorState:i,onChangeDescription:b}),i.length<34&&n.createElement("p",{className:"job-builder-field-help job-builder-field-help--requirement"},"Add at least 34 characters before submitting.")),c&&(i.length<34||a)&&n.createElement("p",{className:"job-builder-validation",role:"alert"},i.length<34?"Add at least 34 characters to the job description before submitting.":"Some required details are still missing. Check the earlier steps for highlighted fields."),n.createElement("div",{className:o.published?"job-builder-actions":"job-builder-actions job-builder-actions--draft"},n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary",onClick:()=>{t(2)}},n.createElement("i",{className:"fa fa-arrow-left","aria-hidden":"true"}),"Back"),o.published?n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--primary job-builder-button--submit",onClick:()=>{m(!0),h(r)}},n.createElement("i",{className:"fa fa-check","aria-hidden":"true"}
1),"Save changes"):n.createElement("div",{className:"job-builder-actions__group"},n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary job-builder-button--submit",onClick:()=>{m(!0),h(r)}},n.createElement("i",{className:"far fa-save","aria-hidden":"true"}),"Save draft"),n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--primary job-builder-button--submit",onClick:()=>{m(!0),h(r,{publish:!0})}},n.createElement("i",{className:"far fa-newspaper","aria-hidden":"true"}),"Publish job"))))}var Y=a(39243),K=(a(55369),a(99418)),X=a(90485);const Z={flex:"1",textAlign:"center",margin:"5px"};var G=({job:e,practices:t,skills:a,job_skills:r,job_types:o,position_types:l,form_elements:i,skill_categories:s,authenticity_token:c,profile_id:m,temp:d=!1,onSuccess:u,onCancel:p})=>{const[b,h]=(0,n.useState)(()=>((e,t,a)=>{const n={...e};if(n.temp_date)try{const e=y()(n.temp_date);e.isValid()?n.temp_date=e.toDate():(console.warn("Invalid temp_date provided:",n.temp_date),n.temp_date=null)}catch(x){console.error("Error processing temp_date:",x),n.temp_date=null}if(n.start_date)try{const e=y()(n.start_date);e.isValid()?n.start_date=e.toDate():(console.warn("Invalid start_date provided:",n.start_date),n.start_date=null)}catch(x){console.error("Error processing start_date:",x),n.start_date=null}return n.compensation_type||(n.compensation_type="hourly"),{...n,skill_ids:t.map(e=>e.id),position_type:a?"temp":n.position_type||null,description:n.description||"",job_type_id:n.job_type_id||1}}
1)(e,r,d)),[g,f]=(0,n.useState)(t),[E,_]=(0,n.useState)(0),[v,k]=(0,n.useState)(!0),[x,w]=(0,n.useState)(null),[N,j]=(0,n.useState)(!1),[C,S]=(0,n.useState)(!1);(0,n.useEffect)(()=>{0},[t,b]),(0,n.useEffect)(()=>{const{position_type:e,job_type_id:t,practice_id:a,sms_phone:n,temp_date:r,temp_start:o,temp_end:l}=b;if(!(null!==e&&""!==e&&null!==t&&""!==t&&0!==t&&null!==a&&""!==a&&0!==a))return void k(!0);if("temp"!==b.position_type)return void k(!1);k(!(null!==n&&""!==n&&(null!==r&&""!==r&&void 0!==r)&&null!==o&&""!==o&&null!==l&&""!==l))},[b]);const T=W(b),F=v||!T,L={request_profile:void 0!==m,profile_id:m,job:b},I=(0,n.useCallback)(async()=>{if(!W(b))return void _(2);const e=L.job.id?`/jobs/${L.job.id}.json`:"/jobs.json",t=L.job.id?"PUT":"POST",a={"Content-Type":"application/json","X-CSRF-Token":c};j(!0),w(null);let n=!0;try{const r=await fetch(e,{method:t,headers:a,body:JSON.stringify(L)});if(r.ok){if(u){const e=await r.json(),t=e.job||e;return S(!0),n=!1,void u(t)}if(r.redirected||"PUT"===t){const e=r.url.replace(/\.json$/,""),t=["directdental.com","test.directdental.com","veracode.directdental.com","localhost"],a=new URL(e);t.includes(a.hostname)?(S(!0),n=!1,window.location.href=K.A.sanitize(a.href)):(console.error("Unapproved redirect URL:",a.hostname),w({kind:"generic"}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(new Error(`EmbedForm unapproved redirect: ${a.hostname}`),{tags:{form:"EmbedForm",kind:"unapproved_redirect"}}))}}else{console.error("API request failed:",r.status,r.statusText);const a=await r.json().catch(()=>({}));if(422===r.status){const e=(0,X.s6)(a.errors||a),t=Object.entries(e).filter(([,e])=>!!e).map(([e,t])=>`${e.replace(/_/g," ").replace(/^\w/,e=>e.toUpperCase())} ${t}`);w({kind:"validation",fieldErrors:e,messages:t})}else w({kind:"generic",status:r.status,statusText:r.statusText}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(new Error(`EmbedForm submit failed: ${r.status} ${r.statusText}`),{tags:{form:"EmbedForm",kind:"generic",status:String(r.status)},extra:{url:e,method:t,position_type:L.job.position_type,job_id:L.job.id}})}}catch(r){console.error("Network error:",r),w({kind:"generic"}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(r,{tags:{form:"EmbedForm",kind:"network"},extra:{url:e,method:t,position_type:L.job.position_type,job_id:L.job.id}})}finally{n&&j(!1)}},[L,c,u]),$=(0,n.useCallback)(e=>{_(e)},[]);if(N||C)return n.createElement("div",{className:"d-flex justify-content-center"},n.createElement("div",{className:"text-center mt-5"},n.createElement("div",{className:"spinner-border text-primary",role:"status"},n.createElement("span",{className:"visually-hidden"},"Loading...")),n.createElement("p",{className:"mt-2"},"Processing your request...")));if(x){const e="validation"===x.kind,t=e?"Please fix the following":"Error",a=e?null:x,r=a?.status?` (status: ${a.status})`:"";return n.createElement("div",{className:"d-flex justify-content-center"},n.createElement("div",{className:"alert alert-danger mt-5",role:"alert"},n.createElement("h4",{className:"alert-heading"},t),e&&x.messages.length>0?n.createElement("ul",{className:"mb-3"},x.messages.map((e,t)=>n.createElement("li",{key:t},e))):n.createElement("p",null,"There was an error processing your request. Please try again",r,"."),n.createElement("button",{className:"btn btn-outline-danger",onClick:()=>w(null)},"Try Again")))}return n.createElement("div",{className:"d-flex justify-content-center"},n.createElement(Y.tU,{className:"col-12 sign-in-font",selectedIndex:E,onSelect:$},n.createElement(Y.wb,{className:"text-center d-md-flex justify-content-between manageTabList border-0"},n.createElement(Y.oz,{style:Z},"General"),n.createElement(Y.oz,{style:Z,disabled:v},"Skills"),n.createElement(Y.oz,{style:Z,disabled:v},"Compensation"),n.createElement(Y.oz,{style:Z,disabled:F},"Description")),n.createElement(A.Provider,{value:[b,h]},n.createElement(Y.Kp,null,n.createElement(R,{practices:g,job_types:o,position_types:l,tabIndexFunc:_,validation:v,setValidation:k,temp:d,cancelButton:null})),n.createElement(Y.Kp,null,n.createElement(P,{skills:a,skill_categories:s,tabIndexFunc:_})),n.createElement(Y.Kp,null,n.createElement(O,{tabIndexFunc:_,benefitsClass:"flex-row justify-content-between"})),n.createElement(Y.Kp,null,n.createElement(U,{tabIndexFunc:_,validation:F,job_types:o,form_submit:I})))))};var Q=({job_types:e})=>{const t=e=>e.toLowerCase().replace(/\s/g,"-").replace("/","_"),[a,r]=n.useState({job_type:""}),o=e.map(e=>n.createElement("option",{key:t(e[1]),value:t(e[1])},e[0]));return n.createElement("form",{action:`/search/${encodeURIComponent(t(a.job_type))}`},n.createElement("select",{className:"ddselect",onChange:e=>{return t=e.target.value,r(e=>({...e,job_type:t}));var t},defaultValue:a.job_type,style:{borderRadius:100,height:50,marginBottom:10}},n.createElement("option",{defaultValue:""},"Select Position"),o),n.createElement("input",{type:"text",style:{backgroundColor:"#fff"},name:"location",placeholder:"zip code",className:"ico-02"}),n.createElement("button",{style:{float:"right",paddingRight:35}},n.createElement("i",{className:"fa fa-search"})))},ee=a(57234),te=a.n(ee);K.A.addHook("afterSanitizeAttributes",e=>{"A"===e.tagName&&"_blank"===e.getAttribute("target")&&e.setAttribute("rel","noopener noreferrer")});var ae=({description:e})=>
1{if(!e)return n.createElement("div",{className:"content-description"},n.createElement("p",null,"Loading job description..."));const t=e.includes("<")?"html":"markdown",a=te().createValueFromString(e,t),r=K.A.sanitize(a.toString("html").replace(/<h1(\s[^>]*)?>/gi,"<h2$1>").replace(/<\/h1\s*>/gi,"</h2>"),{ADD_ATTR:["target"]});return n.createElement("div",{className:"content-description"},n.createElement("p",{dangerouslySetInnerHTML:{__html:r}}))};var ne=({job:e,noTags:t})=>n.createElement("div",{className:"field"},n.createElement("li",null,n.createElement("a",{href:encodeURI(e.url),target:"_blank",rel:"noopener noreferrer"},n.createElement("img",{src:encodeURI(e.image),alt:"",className:"job-avatar"}),n.createElement("div",{className:"job-list-content"},n.createElement("h4",{className:"fullname"},e.title),n.createElement("div",{className:"job-icons"},n.createElement("span",null,n.createElement("i",{className:"fa fa-briefcase"})," ",e.practice_name),n.createElement("span",null,n.createElement("i",{className:"fa fa-map-marker"})," ",e.practice_city,","," ",e.practice_state),e.compensation&&n.createElement("span",null,n.createElement("i",{className:"fa fa-money"})," ",e.compensation)),!t&&n.createElement(r.A,{job:e})),t&&n.createElement("a",{href:"https://www.ziprecruiter.com/jobs",id:"jobs_widget_link"},n.createElement("span",null,"Job Search by")," ",n.createElement("span",{id:"zr_logo_container"},n.createElement("img",{id:"zr_logo",src:"https://www.ziprecruiter.com/img/logos/logo-sm-black-304px.png",alt:"ZipRecruiter"}))))),n.createElement("div",{className:"clearfix"}));const re=(e,t)=>{e.temp_date&&(e.temp_date=y()(e.temp_date).toDate()),e.start_date&&(e.start_date=y()(e.start_date).toDate()),void 0!=e.compensation_type&&null!=e.compensation_type&&""!=e.compensation_type||(e.compensation_type="hourly");const a=M.includes(e.position_type);return!a||void 0!=e.auto_invite_matches&&null!=e.auto_invite_matches?a||delete e.auto_invite_matches:e.auto_invite_matches=!0,{...e,skill_ids:t.map(e=>e.id)}};function oe({job:e,practices:t,skills:a,job_skills:r,job_types:o,position_types:l,form_elements:i,skill_categories:s,authenticity_token:c,cancelButton:m}){const d=e.id?"Edit Job":"New Job",[u,p]=n.useState(re(e,r)),[b,h]=n.useState(t),[g,f]=n.useState(0),[y,E]=n.useState(!0),[_,v]=n.useState(null),[k,x]=n.useState(!1),w=n.useRef(g),N=W(u),j=y||!N,C=[{label:"Job details",shortLabel:"Details",description:"Role, location, and hiring type",heading:"Start with the role",supportingText:"Tell candidates what you are hiring for and where they will work.",icon:"fa-briefcase"},{label:"Skills",shortLabel:"Skills",description:"Experience and qualifications",heading:"Define the right fit",supportingText:"Select the practical skills that matter most for this position.",icon:"fa-check-circle"},{label:"Compensation",shortLabel:"Pay",description:"Pay range and benefits",heading:"Make the offer clear",supportingText:"Trans
1parent pay and benefits help qualified candidates act faster.",icon:"fa-dollar-sign"},{label:"Description",shortLabel:"Describe",description:"Headline and job story",heading:"Bring the opportunity to life",supportingText:"Finish with a useful headline and a description candidates can trust.",icon:"fa-align-left"}],S=e=>e>0&&(e===C.length-1?j:y),T=C[g]||C[0];o.find(e=>e.id.toString()===u.job_type_id?.toString()),l.find(e=>e.shortname===u.position_type);n.useEffect(()=>{if(w.current===g)return;w.current=g;const e=document.getElementById("jobformcontainer");e&&e.scrollIntoView({behavior:"smooth",block:"start"})},[g]),n.useEffect(()=>{const{position_type:e,job_type_id:t,practice_id:a,sms_phone:n,temp_date:r,temp_start:o,temp_end:l}=u;null!==e&&""!==e&&null!==t&&""!==t&&null!==a&&""!==a?"temp"!==u.position_type?E(!1):E(null===n||""===n||null===r||""===r||null===o||""===o||null===l||""===l):E(!0)},[u]);const F={job:u},A=n.useRef(!1);return n.createElement("div",{className:"job-builder-shell","data-testid":"job-builder"},k&&n.createElement("div",{className:"job-builder-state","aria-live":"polite"},n.createElement("div",{className:"spinner-border text-primary",role:"status"},n.createElement("span",{className:"visually-hidden"},"Loading...")),n.createElement("h2",null,"Creating your listing"),n.createElement("p",null,"Saving the details and preparing your job page."),n.createElement("span",{className:"visually-hidden"},"Processing")),_&&n.createElement("div",{className:"job-builder-state job-builder-state--error",role:"alert"},n.createElement("span",{className:"job-builder-state__icon"},n.createElement("i",{className:"fa fa-exclamation-triangle","aria-hidden":"true"})),n.createElement("h2",null,"validation"===_.kind?"Please fix the following":"Error"),"validation"===_.kind&&_.messages.length>0?n.createElement("ul",null,_.messages.map((e,t)=>n.createElement("li",{key:t},e))):n.createElement("p",null,"There was an error processing your request. Please try again","generic"===_.kind&&_.status?` (status: ${_.status})`:"","."),n.createElement("button",{type:"button",className:"job-builder-button job-builder-button--secondary",onClick:()=>v(null)},"Try Again")),!k&&!_&&n.createElement(Y.tU,{className:"job-builder",selectedIndex:g,onSelect:e=>f(e)},n.createElement("aside",{className:"job-builder__rail"},n.createElement("div",{className:"job-builder__rail-heading"},n.createElement("span",null,"Job setup"),n.createElement("h2",null,d),n.createElement("p",null,"Four focused steps, one strong listing."),n.createElement("div",{className:"job-builder__progress","aria-label":`Step ${g+1} of ${C.length}`},n.createElement("span",{style:{width:(g+1)/C.length*100+"%"}}))),n.createElement(Y.wb,{className:"job-builder__steps","aria-label":"Job creation steps"},C.map((e,t)=>n.createElement(Y.oz,{key:e.label,className:"job-builder__step",selectedClassName:"job-builder__step--active",disabledClassName:"job-builder__step--disabled",disabled:S(t)},n.createElement("span",{className:"job-builder__step-marker","aria-hidden":"true"},t<g?n.createElement("i",{className:"fa fa-check"}):t+1),n.createElement("span",{className:"job-builder__step-copy"},n.createElement("strong",{className:"job-builder__step-label"},e.label),n.createElement("strong",{className:"job-builder__step-short-label"},e.shortLabel),n.createElement("small",null,e.description)))))),n.createElement("section",{className:"job-builder__stage"},n.createElement("header",{className:"job-builder__stage-heading"},n.createElement("span",{className:"job-builder__stage-icon"},n.createElement("i",{className:`fa ${T.icon}`,"aria-hidden":"true"})),n.createElement("div",null,n.createElement("p",null,"Step ",g+1," of ",C.length),n.createElement("h3",null,T.heading),n.createElement("span",null,T.supportingText))),n.createElement(L.Provider,{value:[u,p]},n.createElement(Y.Kp,{className:"job-builder__panel"},n.createElement(R,{practices:b,job_types:o,position_types:l,tabIndexFunc:f,validation:y,setValidation:E,cancelButton:m})),n.createElement(Y.Kp,{className:"job-builder__panel"},n.createElement(P,{skills:a,skill_categories:s,tabIndexFunc:f})),n.createElement(Y.Kp,{className:"job-builder__panel"},n.createElement(O,{tabIndexFunc:f})),n.createElement(Y.Kp,{className:"job-builder__panel"},n.createElement(U,{tabIndexFunc:f,validation:j,job_types:o,form_submit:function(e={}){if(!W(u))return void f(2);if(A.current)return;A.current=!0;const t=F.job.id?`/jobs/${F.job.id}.json`:"/jobs.json",a=F.job.id?"PUT":"POST",n={"Content-Type":"application/json","X-CSRF-Token":c};x(!0),v(null);try{fetch(t,{method:a,headers:n,body:JSON.stringify({...F,publish:!0===e.publish})}).then(async e=>{if(!e.ok)return console.error("API request failed:",e.status,e.statusText),await(async e=>{const n=await e.json().catch(()=>({}));if(422===e.status){const e=(0,X.s6)(n.errors||n),t=Object.entries(e).filter(([,e])=>!!e).map(([e,t])=>`${e.replace(/_/g," ").replace(/^\w/,e=>e.toUpperCase())} ${t}`);
1v({kind:"validation",fieldErrors:e,messages:t})}else v({kind:"generic",status:e.status,statusText:e.statusText}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(new Error(`Form submit failed: ${e.status} ${e.statusText}`),{tags:{form:"Form",kind:"generic",status:String(e.status)},extra:{url:t,method:a,position_type:F.job.position_type,job_id:F.job.id}})})(e),x(!1),A.current=!1,null;const n=e.headers.get("content-type");return n&&n.includes("application/json")?e.json():(console.error("Expected JSON response but got:",n),x(!1),A.current=!1,v({kind:"generic"}),null)}).then(e=>{if(!e)return;const t=e.id||e.job&&e.job.id||F.job.id;if(t){const a="string"===typeof e.redirect_url&&e.redirect_url.startsWith("/")?e.redirect_url:`/jobs/${t}`,n=["directdental.com","test.directdental.com","veracode.directdental.com","localhost"],r=new URL(a,window.location.origin);n.includes(r.hostname)?window.location.href=K.A.sanitize(r.href):(console.error("Redirect to untrusted domain blocked"),x(!1),A.current=!1,v({kind:"generic"}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(new Error(`Form untrusted redirect: ${r.hostname}`),{tags:{form:"Form",kind:"untrusted_redirect"}}))}else console.error("No job ID found in response:",e),x(!1),A.current=!1,v({kind:"generic"}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(new Error("Form submit: response missing job id"),{tags:{form:"Form",kind:"missing_job_id"}})}).catch(e=>{console.error("Form submission error:",e),x(!1),A.current=!1,v({kind:"generic"}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(e,{tags:{form:"Form",kind:"network"},extra:{url:t,method:a,position_type:F.job.position_type,job_id:F.job.id}})})}catch(r){x(!1),A.current=!1,v({kind:"generic"}),"undefined"!==typeof window.Sentry&&window.Sentry.captureException(r,{tags:{form:"Form",kind:"unhandled"}})}}}))))))}a(80862),a(38874)}}]); 2//# sourceMappingURL=common-bba93868-3edc6534119d1b0af0d8.js.map
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.