@realtek/core-theme 0.0.305 → 0.0.306

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,5 +9,5 @@ Upload the résumé first — we can read the details straight from it`})}),(0,o
9
9
  `).replace(/<[^>]+>/g,` `),t=t.replace(/&nbsp;/gi,` `).replace(/&amp;/gi,`&`).replace(/&lt;/gi,`<`).replace(/&gt;/gi,`>`).replace(/&#39;|&apos;/gi,`'`).replace(/&quot;/gi,`"`),t.replace(/[ \t\f\v]+/g,` `).replace(/\n{2,}/g,`
10
10
  `).trim()}function oT(e){return e.replace(/•/g,`
11
11
  `).split(/\n+/).map(e=>e.trim().replace(/^[-–—•]\s*/,``).trim()).filter(Boolean)}function sT(e){return oT(e.replace(/(?:^|\s)[-–—]\s+/g,`
12
- `))}function cT(e){let t=e.match(/^([A-Za-z][A-Za-z&/ ]{1,28}?)\s*:\s*(\S.+)$/);if(!t)return null;let n=t[1].trim(),r=t[2].trim();return n.split(/\s+/).length>3||r.length>60?null:{fieldKey:n.toLowerCase().replace(/\s+/g,`-`),fieldLabel:rT(n),value:r}}function lT(e){let t=e.toLowerCase().replace(/[\s:.\-–—]+$/,``).trim();return $w.has(t)?eT.test(t)?`education`:tT.test(t)?`keySkills`:`overview`:null}function uT(e){let t=[],n={overview:[],keySkills:[],education:[]},r=`overview`;return e.forEach(e=>{let i=lT(e);if(i){r=i;return}if(r===`overview`){let n=cT(e);if(n){t.push(n);return}}n[r].push(e)}),{meta:t,overview:iT(n.overview),keySkills:iT(n.keySkills),education:iT(n.education)}}function dT(e){let t=[...Qw].sort((e,t)=>t.length-e.length),n=RegExp(`\\b(${t.map(nT).join(`|`)})\\b\\s*:?`,`gi`),r=[...e.matchAll(n)];if(!r.length)return{meta:[],overview:iT(sT(e)),keySkills:[],education:[]};let i={overview:[],keySkills:[],education:[]},a=e.slice(0,r[0].index).trim();return a&&i.overview.push(...sT(a)),r.forEach((t,n)=>{let a=t[1].trim().toLowerCase(),o=t.index+t[0].length,s=n+1<r.length?r[n+1].index:e.length,c=sT(e.slice(o,s).trim());c.length&&i[eT.test(a)?`education`:tT.test(a)?`keySkills`:`overview`].push(...c)}),{meta:[],overview:iT(i.overview),keySkills:iT(i.keySkills),education:iT(i.education)}}function fT(e){let t=aT(e);if(!t)return{meta:[],overview:[],keySkills:[],education:[]};let n=oT(t);return n.length>=4?uT(n):dT(t)}function pT({items:e}){return(0,o.jsx)(`ul`,{className:`jdv-ats-bullets`,children:e.map((e,t)=>(0,o.jsx)(`li`,{className:`jdv-ats-bullet-item`,children:e},t))})}function mT({raw:e=``,meta:t=[]}){let[n,i]=(0,r.useState)(!1),a=(0,r.useMemo)(()=>fT(e),[e]),s=t.length?t:a.meta,c=[];if(a.overview.length&&c.push({key:`overview`,title:`Overview`,items:a.overview}),a.keySkills.length&&c.push({key:`keySkills`,title:`Key Skills`,items:a.keySkills,card:!0,icon:`🛠️`}),a.education.length&&c.push({key:`education`,title:`Education`,items:a.education,card:!0,icon:`🎓`}),!s.length&&!c.length)return(0,o.jsx)(Xw,{type:`secondary`,children:`No description available.`});let l=n?c:c.slice(0,Zw),u=c.length-Zw;return(0,o.jsxs)(`div`,{className:`jdv-ats-desc`,children:[s.length>0&&(0,o.jsx)(`div`,{className:`jdv-ats-meta-grid`,children:s.map(({fieldKey:e,fieldLabel:t,value:n})=>(0,o.jsxs)(`div`,{className:`jdv-ats-meta-row`,children:[(0,o.jsx)(`span`,{className:`jdv-ats-meta-key`,children:t}),(0,o.jsx)(`span`,{className:`jdv-ats-meta-val`,children:n})]},e??t))}),(0,o.jsx)(`div`,{className:`jdv-ats-sections`,children:l.map(e=>e.card?(0,o.jsxs)(`div`,{className:`education-block`,children:[(0,o.jsxs)(`div`,{className:`education-header`,children:[(0,o.jsx)(`span`,{children:e.icon}),(0,o.jsx)(`span`,{children:e.title})]}),(0,o.jsx)(`ul`,{className:`education-list`,children:e.items.map((e,t)=>(0,o.jsx)(`li`,{className:`education-list-item`,children:e},t))})]},e.key):(0,o.jsxs)(`div`,{className:`jdv-ats-section`,children:[(0,o.jsx)(`div`,{className:`jdv-ats-section-hd`,children:(0,o.jsx)(`span`,{children:e.title})}),(0,o.jsx)(pT,{items:e.items})]},e.key))}),u>0&&(0,o.jsx)(`span`,{className:`jdv-desc-toggle`,onClick:()=>i(e=>!e),children:n?`Show less`:`Show more (${u} more section${u>1?`s`:``})`})]})}var{Text:hT}=i.Typography;function gT(e){return e?e.trim().split(/\s+/).slice(0,2).map(e=>e[0].toUpperCase()).join(``):`?`}function _T(e){return e?e.name?e.name:e.fullName?e.fullName:e.firstName||e.lastName?[e.firstName,e.lastName].filter(Boolean).join(` `):e.candidateName??e.clientName??e.jobTitle??``:``}function vT(e){return e?e.email??e.emailId??e.emailAddress??``:``}function yT(e){return e?e.status?e.status:e.stage?e.stage:typeof e.isActive==`boolean`?e.isActive?`Active`:`Inactive`:``:``}function bT(e){return e==null||e===``?`-`:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):Array.isArray(e)?e.join(`, `):typeof e==`object`?e.label??e.name??Object.values(e).join(` `):String(e)}var xT=[`jobDescription`,`description`,`rawDescription`,`jobDescriptionText`];function ST(e){return String(e??``).toLowerCase()===`job`}function CT(e){let t=xT.includes(e.field),n=/description/i.test(e.label??``);return t||n}function wT({record:e}){let t=_T(e),n=vT(e),r=yT(e);return!t&&!n?null:(0,o.jsxs)(`div`,{className:`preview-profile-card`,children:[(0,o.jsxs)(`div`,{className:`preview-profile-card__info`,children:[(0,o.jsx)(i.Avatar,{className:`preview-profile-card__avatar`,children:gT(t)}),(0,o.jsxs)(`div`,{className:`preview-profile-card__text`,children:[t&&(0,o.jsx)(`span`,{className:`preview-profile-card__name`,children:t}),n&&(0,o.jsx)(`span`,{className:`preview-profile-card__email`,children:n})]})]}),r&&(0,o.jsx)(i.Tag,{className:`preview-profile-card__status`,children:r})]})}function TT({fields:t,moduleName:n,centralDocuments:i=[]}){let[a,s]=(0,r.useState)([]),[c,l]=(0,r.useState)(0),[u,d]=(0,r.useState)(!1);if(!t?.length)return null;function f(e){let t=String(e?.type??``).trim().toLowerCase(),n=`${e?.field??``} ${e?.label??``}`;return[`file`,`document`,`upload`].includes(t)||/resume|cv|document|attachment/i.test(n)}function p(e,t){s(e),l(t),d(!0)}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`div`,{className:`preview-field-grid`,children:t.map(t=>{let r=t.value,a=Array.isArray(r)&&r.length>0,s=ST(n)&&CT(t)&&typeof r==`string`&&r.trim(),c=f(t)?i.filter(e=>{let n=String(e?.fieldName??e?.field??e?.formField??e?.key??``).trim().toLowerCase(),r=String(t?.field??``).trim().toLowerCase();if(n&&r&&n===r)return!0;let i=`${t?.field??``} ${t?.label??``}`;return/resume|cv/i.test(i)?/resume|cv/i.test(`${n} ${e?.fileName??``} ${e?.name??``}`):!1}).map(e=>({name:e?.fileName||e?.name||e?.uploadedFileName||e?.originalName||t?.label||`Document`,url:e?.fileUrl||e?.downloadUrl||e?.signedUrl||e?.url||``,type:e?.mimeType||e?.contentType||e?.type})).filter(e=>e.url):[],l=f(t)?c.length?c:e.Nt(r).filter(e=>e.url):[];return l.length?(0,o.jsxs)(`div`,{className:`preview-field-card preview-field-card--documents`,children:[(0,o.jsx)(`span`,{className:`preview-field-card__label`,children:t.label}),(0,o.jsx)(`div`,{className:`preview-document-list`,children:l.map((e,t)=>(0,o.jsxs)(`button`,{type:`button`,className:`preview-document-link`,onClick:()=>p(l,t),title:`Preview ${e.name||`document`}`,children:[(0,o.jsx)(`span`,{className:`preview-document-link__icon`,"aria-hidden":`true`,children:`▣`}),(0,o.jsx)(`span`,{className:`preview-document-link__name`,children:e.name||`Document ${t+1}`}),(0,o.jsx)(`span`,{className:`preview-document-link__action`,children:`Preview`})]},`${e.url}-${t}`))})]},t.field??t.label):a?r.map((e,n)=>(0,o.jsxs)(`div`,{className:`preview-field-card`,children:[(0,o.jsxs)(`span`,{className:`preview-field-card__label`,children:[t.label,r.length>1?` (${n+1})`:``]}),(0,o.jsx)(`span`,{className:`preview-field-card__value`,children:bT(e)})]},`${t.field??t.label}-${n}`)):s?(0,o.jsxs)(`div`,{className:`preview-field-card preview-field-card--description`,children:[(0,o.jsx)(`span`,{className:`preview-field-card__label`,children:t.label}),(0,o.jsx)(`div`,{className:`preview-field-card__description`,children:(0,o.jsx)(mT,{raw:r})})]},t.field??t.label):(0,o.jsxs)(`div`,{className:`preview-field-card`,children:[(0,o.jsx)(`span`,{className:`preview-field-card__label`,children:t.label}),(0,o.jsx)(`span`,{className:`preview-field-card__value`,children:bT(r)})]},t.field??t.label)})}),(0,o.jsx)(e.vn,{documents:a,open:u,onClose:()=>d(!1),initialIndex:c})]})}function ET(){let t=(0,c.useNavigate)(),{moduleName:n=``,record:a=null}=(0,c.useLocation)().state??{},s=a?.id??a?._id,[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)(!!(n&&s)),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)([]),[_,v]=(0,r.useState)(0),y=(0,r.useRef)(null),b=(0,r.useRef)(null),x=(0,r.useRef)([]),S=(0,r.useRef)([]);(0,r.useEffect)(()=>{if(!n||!s)return;let t=!1;return Promise.all([e.fn({module:n,id:s}),e.ln(n,s).catch(()=>({data:[]}))]).then(([e,n])=>{t||(u(Array.isArray(e)?e:[]),g(Array.isArray(n)?n:n?.data??[]),f(!1))}).catch(e=>{t||(m(e.message||`Failed to load preview`),g([]),f(!1))}),()=>{t=!0}},[n,s]);function C(){t(-1)}function w(e,t){return e?.label??e?.name??`Section ${t+1}`}function T(e){let t=y.current,n=S.current[e];if(!t||!n)return;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=(t.querySelector(`.preview-stepper-wrap`)?.offsetHeight??0)+12,o=t.scrollTop+i.top-r.top-a;v(e),t.scrollTo({top:Math.max(0,o),behavior:`smooth`})}function E(){let e=y.current;if(!e||!S.current.length)return;let t=e.getBoundingClientRect().top+(e.querySelector(`.preview-stepper-wrap`)?.offsetHeight??0)+24,n=0;S.current.forEach((e,r)=>{e&&e.getBoundingClientRect().top<=t&&(n=r)}),v(e=>e===n?e:n)}(0,r.useEffect)(()=>{let e=b.current,t=x.current[_];if(!e||!t)return;let n=t.offsetLeft-(e.clientWidth-t.offsetWidth)/2,r=Math.max(0,e.scrollWidth-e.clientWidth);e.scrollTo({left:Math.min(Math.max(0,n),r),behavior:`smooth`})},[_,l.length]);function D(){return l.length?(0,o.jsx)(`div`,{ref:b,className:`preview-stepper-wrap`,"aria-label":`Preview sections`,children:(0,o.jsx)(`div`,{className:`preview-stepper`,children:l.map((e,t)=>(0,o.jsxs)(`div`,{className:`preview-stepper__segment`,children:[(0,o.jsxs)(`button`,{type:`button`,className:`preview-stepper__item`,ref:e=>{x.current[t]=e},onClick:()=>T(t),"aria-current":_===t?`step`:void 0,title:`Go to ${w(e,t)}`,children:[(0,o.jsx)(`span`,{className:[`preview-stepper__circle`,t<_?`preview-stepper__circle--done`:``,t===_?`preview-stepper__circle--active`:``].filter(Boolean).join(` `),children:t+1}),(0,o.jsx)(`span`,{className:[`preview-stepper__label`,t===_?`preview-stepper__label--active`:``].filter(Boolean).join(` `),children:w(e,t)})]}),t<l.length-1&&(0,o.jsx)(`span`,{className:[`preview-stepper__line`,t<_?`preview-stepper__line--done`:``].filter(Boolean).join(` `),"aria-hidden":`true`})]},e.name??e.id??t))})}):null}let O=(0,o.jsxs)(`div`,{className:`preview-modal-header`,children:[(0,o.jsx)(`span`,{className:`preview-modal-module`,children:n.toUpperCase()}),(0,o.jsx)(`span`,{className:`preview-modal-title`,children:n?` Details`:`Preview`})]}),k=(0,o.jsx)(`div`,{className:`wizard-footer preview-scroll-footer`,children:(0,o.jsx)(`div`,{className:`wizard-footer-nav`,children:(0,o.jsx)(i.Button,{onClick:C,children:`Close`})})});function A(){return!n||!s?(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status`,children:`Preview id is missing.`}):d?(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status`,children:(0,o.jsx)(i.Spin,{size:`small`})}):p?(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status job-preview-error`,children:p}):l.length?(0,o.jsx)(`div`,{className:`preview-section-list`,children:l.map((e,t)=>(0,o.jsxs)(`section`,{ref:e=>{S.current[t]=e},className:`preview-section-card`,"data-section-index":t,children:[(0,o.jsxs)(`div`,{className:`preview-section-card__header`,children:[(0,o.jsx)(`span`,{className:`preview-section-card__number`,children:t+1}),(0,o.jsx)(`span`,{className:`preview-section-card__title`,children:w(e,t)})]}),(0,o.jsx)(`div`,{className:`preview-section-card__body`,children:e.fields?.length>0?(0,o.jsx)(TT,{fields:e.fields,moduleName:n,centralDocuments:h}):(0,o.jsx)(hT,{type:`secondary`,children:`No fields in this group.`})})]},e.name??e.id??t))}):(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status`,children:`No form groups found.`})}return(0,o.jsx)(i.Modal,{centered:!0,className:`wizard-modal preview-modal preview-scroll-modal`,footer:k,open:!0,title:O,width:`min(900px, calc(100vw - 32px))`,onCancel:C,maskClosable:!1,children:(0,o.jsxs)(`div`,{ref:y,className:`wizard-body preview-scroll-body`,onScroll:E,children:[!d&&!p&&l.length>0&&D(),a&&(0,o.jsx)(wT,{record:a}),A()]})})}var{Text:DT}=i.Typography,{TextArea:OT}=i.Input,kT=[{key:`basic`,title:`Basic Info`,description:`General details`,fields:[{name:`firstName`,label:`First Name`,type:`input`,required:!0,placeholder:`Enter first name`,span:12},{name:`lastName`,label:`Last Name`,type:`input`,required:!0,placeholder:`Enter last name`,span:12},{name:`email`,label:`Email Address`,type:`input`,required:!0,placeholder:`Enter email address`,rules:[{type:`email`,message:`Please enter a valid email`}]},{name:`phone`,label:`Phone`,type:`input`,placeholder:`Enter phone number`}]},{key:`details`,title:`Details`,description:`Additional info`,fields:[{name:`role`,label:`Role`,type:`select`,required:!0,placeholder:`Select a role`,span:12,options:[{label:`Developer`,value:`developer`},{label:`Designer`,value:`designer`},{label:`Manager`,value:`manager`},{label:`Analyst`,value:`analyst`}]},{name:`department`,label:`Department`,type:`select`,placeholder:`Select department`,span:12,options:[{label:`Engineering`,value:`engineering`},{label:`Product`,value:`product`},{label:`Operations`,value:`operations`},{label:`Finance`,value:`finance`}]},{name:`notes`,label:`Notes`,type:`textarea`,placeholder:`Any additional notes...`}]},{key:`confirm`,title:`Confirm`,description:`Review & submit`,isReview:!0}];function AT(e){switch(e.type){case`select`:return(0,o.jsx)(i.Select,{placeholder:e.placeholder,options:e.options,style:{width:`100%`}});case`textarea`:return(0,o.jsx)(OT,{rows:3,placeholder:e.placeholder});case`number`:return(0,o.jsx)(i.InputNumber,{placeholder:e.placeholder,style:{width:`100%`}});default:return(0,o.jsx)(i.Input,{type:e.inputType||`text`,placeholder:e.placeholder})}}function jT({steps:e,form:t}){let n=t.getFieldsValue(),r=e.filter(e=>!e.isReview);return r.some(e=>(e.fields||[]).some(e=>n[e.name]!==void 0&&n[e.name]!==``))?(0,o.jsxs)(`div`,{className:`wizard-review-content`,children:[r.map(e=>(0,o.jsxs)(`div`,{className:`wizard-review-section`,children:[(0,o.jsx)(DT,{className:`wizard-review-section-title`,children:e.title}),(0,o.jsx)(`div`,{className:`wizard-review-grid`,children:(e.fields||[]).map(e=>{let t=n[e.name],r=t===void 0||t===``||t===null?`—`:String(t);return(0,o.jsxs)(`div`,{className:`wizard-review-row`,children:[(0,o.jsx)(`span`,{className:`wizard-review-label`,children:e.label}),(0,o.jsx)(`span`,{className:`wizard-review-separator`,children:`:`}),(0,o.jsx)(`span`,{className:`wizard-review-value`,children:r})]},e.name)})})]},e.key)),(0,o.jsxs)(`div`,{className:`wizard-review-confirm-note`,children:[(0,o.jsx)(a.CheckCircleOutlined,{className:`wizard-review-confirm-icon`}),(0,o.jsx)(DT,{type:`secondary`,children:`Please review the information above before submitting.`})]})]}):(0,o.jsx)(`div`,{className:`wizard-review-empty`,children:(0,o.jsx)(DT,{type:`secondary`,children:`No data entered yet.`})})}function MT(){let[e]=i.Form.useForm(),t=(0,c.useNavigate)(),{title:n=`Wizard`,moduleName:a=``,steps:s=kT,onSubmit:l}=(0,c.useLocation)().state??{},[u,d]=(0,r.useState)(0),f=s[u],p=u===s.length-1,m=u===0;function h(){t(-1)}function g(){let t=(f.fields||[]).map(e=>e.name);e.validateFields(t.length>0?t:void 0).then(()=>{d(e=>e+1)})}function _(){d(e=>e-1)}function v(){let n=e.getFieldsValue();typeof l==`function`&&l(n),t(-1)}let y=s.map((e,t)=>({title:e.title,description:e.description,status:t<u?`finish`:t===u?`process`:`wait`}));return(0,o.jsxs)(i.Modal,{open:!0,title:a?`${n} — ${a}`:n,footer:(0,o.jsxs)(`div`,{className:`wizard-footer`,children:[(0,o.jsx)(i.Button,{onClick:h,children:`Cancel`}),(0,o.jsxs)(`div`,{className:`wizard-footer-nav`,children:[!m&&(0,o.jsx)(i.Button,{onClick:_,children:`Back`}),p?(0,o.jsx)(i.Button,{type:`primary`,onClick:v,children:`Submit`}):(0,o.jsx)(i.Button,{type:`primary`,onClick:g,children:`Next`})]})]}),onCancel:h,width:`min(680px, calc(100vw - 32px))`,centered:!0,className:`wizard-modal`,children:[(0,o.jsx)(`div`,{className:`wizard-steps-container`,children:(0,o.jsx)(i.Steps,{current:u,items:y,size:`small`,className:`wizard-steps`})}),(0,o.jsx)(`div`,{className:`wizard-body`,children:(0,o.jsxs)(i.Form,{form:e,layout:`vertical`,children:[s.filter(e=>!e.isReview).map((e,t)=>(0,o.jsx)(`div`,{style:{display:t===u?`block`:`none`},children:(0,o.jsx)(i.Row,{gutter:16,children:(e.fields||[]).map(e=>(0,o.jsx)(i.Col,{span:e.span||24,children:(0,o.jsx)(i.Form.Item,{name:e.name,label:e.label,rules:[...e.required?[{required:!0,message:`${e.label} is required`}]:[],...e.rules||[]],children:AT(e)})},e.name))})},e.key)),f.isReview&&(0,o.jsx)(jT,{steps:s,form:e})]})})]})}function NT({titleText:e,titleIcon:t}){let n=t===`delete`;return(0,o.jsxs)(`span`,{className:`dynamic-popup__header`,children:[(0,o.jsx)(`span`,{className:`dynamic-popup__header-icon-box${n?` dynamic-popup__header-icon-box--danger`:``}`,children:n?(0,o.jsx)(a.DeleteOutlined,{}):(0,o.jsx)(a.AppstoreOutlined,{})}),(0,o.jsx)(`span`,{className:`dynamic-popup__header-label`,children:e})]})}function PT({note:t,description:n,showSelectedCount:r,count:i,itemLabel:a,bodyText:s,deleteError:c}){return(0,o.jsxs)(o.Fragment,{children:[t&&(0,o.jsx)(e.bn,{variant:`body`,color:`secondary`,className:`dynamic-popup__note`,children:t}),n&&(0,o.jsx)(e.bn,{variant:`body`,className:`dynamic-popup__description`,children:n}),r&&i>0&&(0,o.jsxs)(e.bn,{variant:`body`,className:`dynamic-popup__selected-count`,children:[`Changing status for `,(0,o.jsx)(`strong`,{children:i}),` selected `,a,`.`]}),s&&(0,o.jsx)(e.bn,{variant:`body`,children:s}),c&&(0,o.jsx)(e.bn,{variant:`caption`,color:`danger`,className:`dynamic-popup__error`,children:c})]})}function FT({footerNote:t}){return t?(0,o.jsx)(e.bn,{variant:`caption`,color:`secondary`,className:`dynamic-popup__footer-note`,children:t}):null}function IT(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>t?.[n]??``).trim()}function LT(e){return String(e).replace(/\(\s*\)/g,``).replace(/\s+/g,` `).replace(/(^|\s)([-–—·|])(?=\s*\2)/g,``).replace(/^[\s\-–—·|]+/,``).replace(/[\s\-–—·|]+$/,``).trim()}function RT(e){if(!e)return``;let t=new Date(e);if(Number.isNaN(t.getTime()))return``;let n=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=Math.round((n(new Date)-n(t))/864e5);return r<=0?`Today`:r===1?`Yesterday`:`${r} days ago`}function zT(e){let t=Array.isArray(e?.submissionHistory)?e.submissionHistory:[],n=[e?.lastSubmittedAt,e?.submittedAt,e?.updatedAt,...t.map(e=>e?.submittedAt||e?.updatedAt)].filter(Boolean);return n.length?n.reduce((e,t)=>new Date(t)>new Date(e)?t:e):null}function BT(e){let t=Array.isArray(e?.submissionHistory)?e.submissionHistory:[],n=[e?.lastSubmittedAt,e?.submittedAt,...t.map(e=>e?.submittedAt)].filter(Boolean);return n.length?n.reduce((e,t)=>new Date(t)>new Date(e)?t:e):null}function VT(e,t){if(typeof e==`string`)return{label:e,value:e};if(e?.label!==void 0&&e?.value!==void 0&&!t?.labelTemplate&&!t?.valueKey)return e;let{labelKey:n,valueKey:r,labelTemplate:i}=t??{},a=i?.includes(`{lastdate}`)?{...e,lastdate:RT(zT(e))}:e,o=(i?LT(IT(i,a)):null)||(n?e?.[n]:null)||e?.name||e?.fullName||e?.candidateName||e?.title||e?.displayName||e?.text||e?.applicantReferenceId||e?.applicantRefrenceId||String(Object.values(e||{})[0]??``),s=(r?e?.[r]:null)??e?.id??e?._id??e?.applicantReferenceId??e?.applicantRefrenceId??String(Object.values(e||{})[0]??``),c=e?.disabled===!0||e?.disable===!0,l=String(e?.optionNote??``).trim(),u={label:l?`${String(o)} — ${l}`:String(o),value:String(s),_raw:e};if(c&&(u.disabled=!0),l&&(u.title=l),e?.isSubmitted===!0||e?.alreadySubmitted===!0){u.alreadySubmitted=!0,u.existingSubmissionId=String(e?.existingSubmissionId??e?.jobSubmissionId??e?.submissionId??``);let t=e?.submittedAt||BT(e);t&&(u.submittedAt=t)}if(e?.isFromSubmission===!0&&e?.submissionId){u.isFromSubmission=!0,u.priorSubmissionId=String(e.submissionId);let t=e?.lastSubmittedAt||BT(e);t&&(u.priorSubmittedAt=t)}return u}function HT(e,t){return(t?.[e.optionsKey]??e.defaultOptions??[]).map(t=>VT(t,e))}function UT(e={}){return{selectedIds:[],selectedRecords:[],moduleName:``,removedIds:[],...e}}var WT=`DD MMM YYYY`,GT=`DD MMM YYYY, h:mm A`;function KT(e,t){if(e==null||e===``)return``;let n=(0,s.default)(e);return n.isValid()?t===`relative`&&RT(e)||n.format(WT):String(e)}function qT(e,t){return e?String(e).includes(`{`)?LT(IT(e,t)):String(t?.[e]??e).trim():``}function JT(e){if(e?.alreadySubmitted){let t=e?.submittedAt?(0,s.default)(e.submittedAt):null;return{tone:`blocked`,tooltip:t?.isValid()?`Already submitted to this job on ${t.format(GT)}`:`Already submitted to this job — a candidate can only be submitted once per job`}}if(e?.isFromSubmission){let t=e?.priorSubmittedAt?(0,s.default)(e.priorSubmittedAt):null;return{tone:`history`,tooltip:t?.isValid()?`Previously submitted on ${t.format(GT)} — this form will prefill from it`:`Submitted to another job before — this form will prefill from it`}}return null}function YT(e,t){return e?.alreadySubmitted||!e?.disabled?``:String(t?.message??e?.title??``).trim()}function XT({meta:e}){return(0,o.jsx)(`div`,{className:`dynamic-popup__option-dates`,children:e.map(e=>(0,o.jsxs)(r.Fragment,{children:[(0,o.jsx)(`span`,{className:`dynamic-popup__option-date-label`,children:e.label}),(0,o.jsx)(`span`,{className:`dynamic-popup__option-date-value`,children:e.text})]},e.label))})}function ZT({option:e,layout:t}){let n=e?._raw??e??{},r=qT(t.id,n),s=qT(t.title,n)||String(e?.label??``),c=qT(t.subtitle,n),l=qT(t.titleAccent?.key,n),u=qT(t.titleAccent?.toneKey,n),d=t.titleAccent?.prefix??``,f=(t.meta??[]).map(e=>({label:e.label,text:KT(n?.[e.key],e.type)})).filter(e=>e.text),p=YT(e,n),m=JT(e);return(0,o.jsxs)(`div`,{className:`dynamic-popup__option`,children:[(0,o.jsx)(`span`,{className:`dynamic-popup__option-tick${m?` dynamic-popup__option-tick--${m.tone}`:``}`,children:m&&(0,o.jsx)(i.Tooltip,{title:m.tooltip,placement:`topLeft`,children:(0,o.jsx)(a.CheckCircleFilled,{"aria-label":m.tooltip})})}),(0,o.jsxs)(`div`,{className:`dynamic-popup__option-main`,children:[(0,o.jsxs)(`div`,{className:`dynamic-popup__option-head`,children:[r&&(0,o.jsx)(`span`,{className:`dynamic-popup__option-id`,children:r}),(0,o.jsxs)(`span`,{className:`dynamic-popup__option-title`,children:[(0,o.jsx)(`span`,{className:`dynamic-popup__option-title-text`,children:s}),l&&(0,o.jsx)(`span`,{className:`dynamic-popup__option-title-accent${u?` dynamic-popup__option-title-accent--${u}`:``}`,children:`${d}${l}`})]}),p&&(0,o.jsx)(`span`,{className:`dynamic-popup__option-flag`,children:p})]}),c&&(0,o.jsx)(`div`,{className:`dynamic-popup__option-sub`,children:c})]}),e?.alreadySubmitted?(0,o.jsx)(`span`,{className:`dynamic-popup__option-onjob`,children:`On this job`}):f.length>0&&(0,o.jsx)(XT,{meta:f})]})}var{Text:QT}=i.Typography,{TextArea:$T}=i.Input,eE=[{label:`$`,value:`$`},{label:`EUR`,value:`EUR`},{label:`GBP`,value:`GBP`},{label:`INR`,value:`INR`}],tE=[{label:`Hourly`,value:`Hourly`},{label:`Daily`,value:`Daily`},{label:`Weekly`,value:`Weekly`},{label:`Monthly`,value:`Monthly`},{label:`Yearly`,value:`Yearly`}];function nE(e=[]){return e.map(e=>{if(!e||typeof e!=`object`)return e;let t=[e.value,e.user_id,e.userId,e.USER_ID,e.legacyUserId,e.id,e._id].find(e=>e!=null&&String(e).trim()!==``),n=t==null?``:String(t).trim();return{...e,value:n}}).filter(e=>typeof e!=`object`||!e||String(e.value??``).trim()!==``)}function rE({field:e,value:t,onChange:n}){return(0,o.jsx)(i.Input,{value:t,onChange:n,placeholder:e.placeholder,maxLength:e.maxLength,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function iE({field:e,value:t,onChange:n}){return(0,o.jsx)($T,{value:t,onChange:n,rows:e.rows??5,placeholder:e.placeholder})}function aE({field:e,options:t,value:n,onChange:r}){return(0,o.jsx)(i.Select,{showSearch:!0,value:n,onChange:r,options:nE(t),placeholder:e.placeholder,className:`dynamic-popup__field-select`,optionFilterProp:`label`,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function oE({field:e,options:t,value:n,onChange:r}){return(0,o.jsx)(i.Select,{mode:`multiple`,showSearch:!0,value:n,onChange:r,options:nE(t),placeholder:e.placeholder,className:`dynamic-popup__field-select`,optionFilterProp:`label`,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function sE({field:e,options:t,onSearch:n,value:r,onChange:s,popupContext:c}){let l=nE(t),u=e.optionLayout,d=new Map(l.map(e=>[String(e?.value??``),e]));async function f(t,n){let r=n??d.get(String(t??``));typeof e.onSelectGuard==`function`&&await e.onSelectGuard({value:t,option:r,field:e,popupContext:c,confirm:i.Modal.confirm})===!1||s?.(t)}return(0,o.jsx)(i.Select,{showSearch:!0,filterOption:!1,notFoundContent:e.notFoundContent??null,value:r,onChange:f,options:l,placeholder:e.placeholder,onSearch:n,className:`dynamic-popup__field-select${u?` dynamic-popup__field-select--rich`:``}`,popupClassName:u?`dynamic-popup__option-dropdown`:void 0,listHeight:u?340:void 0,optionLabelProp:`label`,optionRender:u?e=>(0,o.jsx)(ZT,{option:e?.data??e,layout:u}):void 0,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function cE({field:e,mentionOpts:t,onMentionSearch:n,value:r,onChange:a}){return(0,o.jsx)(i.Mentions,{value:r,onChange:a,rows:e.rows??5,placeholder:e.placeholder,prefix:`@`,options:t,onSearch:n,className:`dynamic-popup__mention-textarea`})}function lE({field:e={},value:t={},onChange:n}){let a=t.period??`Hourly`,s=t.isRange??!1;function c(e){n?.({...t,...e})}(0,r.useEffect)(()=>{let e={};t.currency??(e.currency=`$`),t.period??(e.period=`Hourly`),Object.keys(e).length&&n?.({...t,...e})},[]);let l=Number(s?t.maxAmount:t.amount),u=s&&t.minAmount!=null&&t.maxAmount!=null&&Number(t.maxAmount)<=Number(t.minAmount),d=e.rateCeiling!=null&&Number.isFinite(l)&&l>Number(e.rateCeiling);return(0,o.jsxs)(`div`,{children:[(0,o.jsxs)(i.Space.Compact,{style:{width:`100%`},children:[s?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.InputNumber,{controls:!1,placeholder:`From`,value:t.minAmount,onChange:e=>c({minAmount:e}),style:{flex:1}}),(0,o.jsx)(i.InputNumber,{controls:!1,placeholder:`To`,value:t.maxAmount,onChange:e=>c({maxAmount:e}),style:{flex:1}})]}):(0,o.jsx)(i.InputNumber,{controls:!1,placeholder:`0`,value:t.amount,onChange:e=>c({amount:e}),style:{flex:2}}),(0,o.jsx)(i.Select,{value:t.currency??`$`,options:eE,onChange:e=>c({currency:e}),style:{width:80}}),(0,o.jsx)(i.Select,{value:a,options:tE,onChange:e=>c({period:e}),style:{width:110}})]}),(u||d)&&(0,o.jsxs)(`div`,{style:{marginTop:4},children:[u&&(0,o.jsx)(QT,{type:`danger`,style:{fontSize:12,display:`block`},children:`To rate must be greater than From rate.`}),d&&(0,o.jsxs)(QT,{type:`danger`,style:{fontSize:12,display:`block`},children:[`Rate must not exceed the client rate (`,e.rateCeiling,`).`]})]}),(0,o.jsxs)(i.Space,{size:`small`,style:{marginTop:8},children:[(0,o.jsx)(i.Switch,{checked:s,onChange:e=>c({isRange:e})}),(0,o.jsx)(`span`,{children:`Range`})]})]})}function uE({field:e,value:t,onChange:n}){return(0,o.jsx)(i.DatePicker,{value:t,onChange:n,placeholder:e.placeholder??`Select date`,style:{width:`100%`},format:`YYYY-MM-DD`})}function dE({field:e,checked:t,onChange:n}){return(0,o.jsx)(i.Checkbox,{checked:t,onChange:n,children:e.checkboxLabel})}function fE({field:e,value:t,onChange:n}){return(0,o.jsx)(i.InputNumber,{value:t,onChange:n,min:e.min,max:e.max,placeholder:e.placeholder,style:{width:`100%`}})}function pE({options:e,value:t,onChange:n}){return(0,o.jsx)(i.Radio.Group,{value:t,onChange:n,options:e})}var mE={input:rE,text:rE,textarea:iE,select:aE,"multi-select":oE,"search-select":sE,"mention-textarea":cE,"candidate-rate":lE,"priority-checkbox":dE,"date-picker":uE,number:fE,radio:pE};function hE(e){return e===`priority-checkbox`?{valuePropName:`checked`}:{}}var gE=new Set([`input`,`text`,`textarea`,`mention-textarea`]);function _E({form:t,fields:n,initialValues:r,dynamicOptions:a,popupContext:s,extraData:c,removedIds:l,setRemovedIds:u,showAlreadyAssigned:d,onValuesChange:f,getSearchHandler:p,getMentionSearchHandler:m,mentionOptions:h}){let g=(c?.recruitersData??[]).filter(e=>{let t=String(e?.user_id??e?.id??e?.userId??``);return t&&!l.includes(t)}),_=d&&c;return!n.length&&!_?null:(0,o.jsxs)(o.Fragment,{children:[_&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(`div`,{className:`dynamic-popup__already-assigned`,children:[(0,o.jsx)(e.bn,{variant:`caption`,color:`secondary`,children:`Already Assigned People`}),(0,o.jsx)(`div`,{style:{marginTop:6,display:`flex`,flexWrap:`wrap`,gap:6},children:g.length===0?(0,o.jsx)(e.bn,{variant:`caption`,color:`secondary`,children:`No one is currently assigned to this job.`}):g.map(e=>{let t=String(e?.user_id??e?.id??e?.userId??``),n=e?.name??e?.user_name??e?.userName??e?.email??`Assigned user`;return(0,o.jsx)(i.Tag,{closable:!0,onClose:()=>{t&&u(e=>Array.from(new Set([...e,t])))},children:n},t||n)})})]}),(0,o.jsx)(i.Divider,{style:{margin:`12px 0`}})]}),n.length>0&&(0,o.jsx)(i.Form,{form:t,layout:`vertical`,initialValues:r,onValuesChange:(e,t)=>f(t),children:vE(n).map(t=>yE(t,t=>{let n=a[t.name]??HT(t,s),r=p(t),c=m(t),l=h[t.name]??[],u=hE(t.type),d=mE[t.type],f=[];return t.required&&f.push({required:!0,message:`${t.label||`This field`} is required`}),typeof t.validator==`function`&&f.push({validator:(e,n)=>{let r=t.validator(n,s);return r?Promise.reject(Error(r)):Promise.resolve()}}),gE.has(t.type)&&f.push(e.Qt({label:t.label,field:t.name,type:t.type})),(0,o.jsx)(i.Form.Item,{name:t.name,label:t.label,rules:f,...u,children:d?(0,o.jsx)(d,{field:t,options:n,onSearch:r,mentionOpts:l,onMentionSearch:c,popupContext:s}):null},t.name)}))})]})}function vE(e){let t=[];for(let n of e){let e=t[t.length-1];n.inlineRow&&e?.inlineRow===n.inlineRow?e.fields.push(n):t.push({inlineRow:n.inlineRow,fields:[n]})}return t.map(e=>e.fields)}function yE(e,t){return e.length===1?t(e[0]):(0,o.jsx)(`div`,{style:{display:`flex`,gap:8,alignItems:`flex-start`},children:e.map((e,n)=>(0,o.jsx)(`div`,{style:{flex:n===0?2:1,minWidth:0},children:t(e)},e.name))},`row-${e.map(e=>e.name).join(`-`)}`)}function bE(e){return[`select`,`multi-select`,`search-select`,`radio`].includes(e?.type)&&e?.dataSource===`master`&&e?.masterName}function xE(e){let t=e?.data??e;return Array.isArray(t)?t:Array.isArray(t?.data)?t.data:Array.isArray(t?.items)?t.items:Array.isArray(t?.rows)?t.rows:Array.isArray(t?.records)?t.records:[]}function SE(e){let t=String(e?.masterName??``).trim().toLowerCase();return t===`clientsubmissions`||t===`clientsubmissionstatus`}function CE(e){return SE(e)?{...e,labelKey:e.labelKey||`clientSubmissionStatusText`,valueKey:e.valueKey||`clientSubmissionStatusText`}:e}function wE(e,t){let n=VT(e,CE(t));return SE(t)?{...n,value:String(n.label??``)}:n}function TE({open:e,config:n,api:i,fields:a,popupContext:o,formValues:s}){let[c,l]=(0,r.useState)({}),[u,d]=(0,r.useState)(null);return(0,r.useEffect)(()=>{e||(l({}),d(null))},[e]),(0,r.useEffect)(()=>{if(!e||!n||!i.getOptions)return;let t=new AbortController;return a.forEach(e=>{!e.fetchOptionsKey||e.fetchOptionsParamKey||Promise.resolve(i.getOptions(e,void 0,o)).then(n=>{t.signal.aborted||l(t=>({...t,[e.name]:n}))}).catch(n=>{t.signal.aborted||console.error(`[DynamicPopup] Failed to load options for field "${e.name}":`,n)})}),()=>t.abort()},[e,i,n,a,o]),(0,r.useEffect)(()=>{if(!e||!n)return;let r=a.filter(bE);if(!r.length)return;let i=new AbortController;return r.forEach(e=>{t.a(t.b,`/masters/dropdown?${new URLSearchParams({masterName:e.masterName,offset:`0`,limit:String(e.limit??50)}).toString()}`).then(t=>{if(i.signal.aborted)return;let n=xE(t).map(t=>wE(t,e));l(t=>({...t,[e.name]:n}))}).catch(t=>{i.signal.aborted||console.error(`[DynamicPopup] Failed to load master options for field "${e.name}":`,t)})}),()=>i.abort()},[e,n,a]),(0,r.useEffect)(()=>{if(!e||!n||!i.getOptions)return;let t=a.filter(e=>e.fetchOptionsKey&&e.fetchOptionsParamKey);if(!t.length)return;let r=new AbortController;return t.forEach(e=>{let t=s[e.fetchOptionsParamKey]??o[e.fetchOptionsParamKey],n={[e.fetchOptionsParamKey]:t};Promise.resolve(i.getOptions(e,n,o)).then(t=>{r.signal.aborted||l(n=>({...n,[e.name]:t}))}).catch(t=>{r.signal.aborted||console.error(`[DynamicPopup] Failed to load param-dependent options for "${e.name}":`,t)})}),()=>r.abort()},[e,i,n,a,s,o]),(0,r.useEffect)(()=>{if(!e||!n||!i.loadExtraData)return;let t=new AbortController;return Promise.resolve(i.loadExtraData(o)).then(e=>{t.signal.aborted||d(e)}).catch(e=>{t.signal.aborted||(console.error(`[DynamicPopup] Failed to load extra data:`,e),d(null))}),()=>t.abort()},[e,i,n,o]),{dynamicOptions:c,setDynamicOptions:l,extraData:u}}var EE=500,DE=3;function OE({api:e,open:t,fields:n=[],popupContext:i,setDynamicOptions:a}){let[o,s]=(0,r.useState)({}),c=(0,r.useRef)({}),l=(0,r.useRef)({}),u=(0,r.useRef)({}),d=(0,r.useCallback)((t,n)=>{let r=e.searchOptions??e.searchFetcher;if(typeof r!=`function`)return;l.current[t.name]?.abort();let o=new AbortController;return l.current[t.name]=o,Promise.resolve(r(t,n,i)).then(e=>{if(o.signal.aborted)return;let n=Array.isArray(e)?e:e?.items??e?.list??[];a(e=>({...e,[t.name]:n.map(e=>VT(e,t))}))}).catch(e=>{o.signal.aborted||console.error(`[DynamicPopup] Search failed for field "${t.name}":`,e)}),o},[e,i,a]),f=n.filter(e=>(e.searchFetchKey||e.searchFetcher)&&e.preloadOptions!==!1),p=f.map(e=>e.name).join(`|`),m=(0,r.useRef)({runSearch:d,preloadFields:f});(0,r.useEffect)(()=>{m.current={runSearch:d,preloadFields:f}}),(0,r.useEffect)(()=>{if(!t||!p)return;let{runSearch:e,preloadFields:n}=m.current,r=n.map(t=>e(t,``)).filter(Boolean);return()=>r.forEach(e=>e.abort())},[t,p]);function h(t){if(!t.searchFetchKey&&!t.searchFetcher||typeof(e.searchOptions??e.searchFetcher)!=`function`)return;let n=t.searchMinLength??DE;return e=>{clearTimeout(c.current[t.name]);let r=e.length<n?``:e;c.current[t.name]=setTimeout(()=>{d(t,r)},EE)}}function g(t){let n=e.getMentionOptions??e.mentionFetcher;if(typeof n==`function`)return e=>{u.current[t.name]?.abort();let r=new AbortController;u.current[t.name]=r,Promise.resolve(n(t,e,i)).then(e=>{if(r.signal.aborted)return;let n=Array.isArray(e)?e:e?.items??e?.list??[];s(e=>({...e,[t.name]:n.map(e=>({value:e.user_name??e.userName??e.username??String(e),label:e.user_name??e.userName??e.username??String(e)}))}))}).catch(e=>{r.signal.aborted||console.error(`[DynamicPopup] Mention search failed for field "${t.name}":`,e)})}}return{mentionOptions:o,getSearchHandler:h,getMentionSearchHandler:g}}function kE({form:e,config:t,api:n,popupContext:a,resolvedIds:o,dynamicOptions:s,extraData:c,removedIds:l,fields:u,onClose:d,onSubmit:f}){let[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null);async function _(e){let t={resolvedIds:o,dynamicOptions:s,extraData:c,removedIds:l};if(typeof n.submit==`function`)return n.submit(e,a,t);if(typeof f==`function`)return f(e,a,t)}function v(){if(t){if(!u.length){if(t.mode===`delete`&&typeof n.deleteItems==`function`){m(!0),g(null),Promise.resolve(n.deleteItems(o,a)).then(()=>{i.message.success(t.successMessage||`Deleted successfully`),d({success:!0})}).catch(e=>{let t=e?.message||`Delete failed. Please try again.`;g(t),m(!1),i.message.error(t)});return}if(typeof n.onOk==`function`){m(!0),Promise.resolve(n.onOk(a)).then(()=>d({success:!0})).catch(e=>{let t=e?.message||`Failed. Please try again.`;i.message.error(t),m(!1)});return}if(typeof n.submit==`function`){m(!0),Promise.resolve(_({})).then(e=>{e?.navigated||(i.message.success(t.successMessage||`Saved successfully`),d({success:!0}))}).catch(e=>{i.message.error(e?.message||`Failed. Please try again.`)}).finally(()=>m(!1));return}d();return}e.validateFields().then(async e=>{m(!0);try{if((await _(e))?.navigated)return;i.message.success(t.successMessage||`Saved successfully`),d({success:!0})}catch(e){i.message.error(e?.message||`Failed. Please try again.`)}finally{m(!1)}}).catch(()=>{})}}function y(){m(!1),g(null)}return{handleOk:v,confirming:p,deleteError:h,resetSubmitState:y}}function AE({open:e=!0,config:t,context:n={},onClose:a,onSubmit:c,api:l={}}){let[u]=i.Form.useForm(),[d,f]=(0,r.useState)({}),[p,m]=(0,r.useState)([]),h=i.Form.useWatch([],u,{preserve:!0})??{},g=(0,r.useMemo)(()=>UT(n),[n]),{selectedIds:_=[],selectedRecords:v=[],moduleName:y=``}=g,b=(0,r.useMemo)(()=>_.map((e,t)=>{let n=v[t];return n?.id??n?._id??e}),[_,v]),x=(0,r.useMemo)(()=>t?typeof t.getFields==`function`?t.getFields(g):t.fields??[]:[],[t,g]),S=(0,r.useMemo)(()=>{let e={};return x.forEach(t=>{let n=g[t.initialValueKey];!t.initialValueKey||n===void 0||(e[t.name]=t.type===`date-picker`?(0,s.default)(n):n)}),e},[x,g]),{dynamicOptions:C,setDynamicOptions:w,extraData:T}=TE({open:e,config:t,api:l,fields:x,popupContext:g,formValues:d}),{mentionOptions:E,getSearchHandler:D,getMentionSearchHandler:O}=OE({api:l,open:e,fields:x,popupContext:g,setDynamicOptions:w});function k(e){typeof a==`function`&&a(e)}let{handleOk:A,confirming:j,deleteError:M,resetSubmitState:N}=kE({form:u,config:t,api:l,popupContext:g,resolvedIds:b,dynamicOptions:C,extraData:T,removedIds:p,fields:x,onClose:k,onSubmit:c});(0,r.useEffect)(()=>{e&&(u.resetFields(),f(S??{}),m(g.removedIds??[]),N())},[e,S]);let P=!!t?.autoSubmitWhenNoFields&&x.length===0;(0,r.useEffect)(()=>{!e||!P||A()},[e,P]);let F=_.length,I=String(y).replace(/s$/i,``),L=F===1?I:y,R=v[0]??{},z=t?.getTitleText?t.getTitleText(F,L,R,g):t?.title,B=F===1?R.jobTitle??R.title??R.name??R.fullName??R.candidateName??null:null,ee=t?.getBodyText?t.getBodyText(F,I,L,B,g):t?.bodyText??null,V=typeof t?.getNote==`function`?t.getNote(g):t?.note,H=x.filter(e=>e.required).every(e=>{let t=h[e.name];return!(t==null||t===``||Array.isArray(t)&&t.length===0||typeof t==`object`&&!Array.isArray(t)&&Object.keys(t).length===0)}),U=t?.disabledUntilFilled&&!H;if(!t||!e||P)return null;let te=t.component;return te?(0,o.jsx)(i.Modal,{open:e,title:t.title||t.getTitleText?(0,o.jsx)(NT,{titleText:z,titleIcon:t.titleIcon}):null,footer:null,width:t.width??760,centered:!0,maskClosable:!1,onCancel:()=>k(),className:`dynamic-popup${t.className?` ${t.className}`:``}`,children:(0,o.jsx)(te,{context:g,selectedIds:b,selectedRecords:v,moduleName:y,onClose:k})}):(0,o.jsxs)(i.Modal,{open:e,title:(0,o.jsx)(NT,{titleText:z,titleIcon:t.titleIcon}),okText:t.okText||`OK`,cancelText:t.cancelText??`Cancel`,onOk:A,onCancel:()=>k(),okButtonProps:{danger:t.okButtonDanger,disabled:U,loading:j},cancelButtonProps:{disabled:j},closable:!j,maskClosable:!1,width:t.width??480,centered:!0,className:`dynamic-popup${t.className?` ${t.className}`:``}`,children:[(0,o.jsx)(PT,{note:V,description:t.description,showSelectedCount:t.showSelectedCount,count:F,itemLabel:L,bodyText:ee,deleteError:M}),(0,o.jsx)(FT,{footerNote:t.footerNote}),(0,o.jsx)(_E,{form:u,fields:x,initialValues:S,dynamicOptions:C,popupContext:g,extraData:T,removedIds:p,setRemovedIds:m,showAlreadyAssigned:t.showAlreadyAssigned,onValuesChange:f,getSearchHandler:D,getMentionSearchHandler:O,mentionOptions:E})]})}var jE={mode:`delete`,getTitleText:(e,t)=>`Delete ${e>0?`${e} `:``}${t}`,titleIcon:`delete`,okText:`Delete`,okButtonDanger:!0,width:420,getBodyText:(e,t,n,r)=>r?`Are you sure you want to delete the ${r} ${t}?`:e>1?`Are you sure you want to delete ${e} selected ${n}?`:`Are you sure you want to delete this ${t}?`,footerNote:`This action cannot be undone.`,fields:[]},ME={deleteItems:async(e,t)=>{await ee(t.moduleName,e)}},NE=new Map;async function PE(t){return t?(NE.has(t)||NE.set(t,e.fn({module:t}).catch(e=>(NE.delete(t),console.warn(`[in-progress gate] could not read ${t} form groups:`,e),[]))),NE.get(t)):[]}function FE(t=[],n){return t.some(t=>{let r=e.C(t,n);return r&&r.severity!==`allow`})}async function IE({targetModule:t,sourceModule:n,recordId:r,region:i}={}){let a={severity:`allow`,message:``,group:null};if(!t||!n||!r)return a;let o=i??e.Pn().region;try{let i=await PE(t);if(!FE(i,o))return a;let s=await e.fn({module:n,id:r}),c={};for(let e of s){let t=e?.payloadKey||e?.name;t&&Array.isArray(e?.rows)&&(c[t]=e.rows)}return e.D(i,o,c)}catch(e){return console.warn(`[in-progress gate] check skipped:`,e),a}}var LE=`Already submitted`,RE=`submissions`,zE=`candidates`,BE=1440*60*1e3,VE=90,HE=`This candidate was created or last updated more than 90 days ago. Only candidates created or updated within the last 90 days can be selected. Please update this candidate first.`,UE=[`createdAt`,`createdDate`,`dateCreated`,`created_on`,`createdOn`],WE=[`updatedAt`,`updatedDate`,`lastUpdatedAt`,`lastUpdatedDate`,`modifiedAt`,`modifiedDate`];function GE(e,t){for(let n of t){let t=e?.[n];if(!t)continue;let r=new Date(t);if(!Number.isNaN(r.getTime()))return r}return null}function KE(e){return GE(e,UE)}function qE(e){return GE(e,WE)}function JE(e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))return null;let t=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();return Math.max(0,Math.floor((t(new Date)-t(e))/BE))}function YE(e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))return null;let t=new Date,n=(t.getFullYear()-e.getFullYear())*12+(t.getMonth()-e.getMonth());return t.getDate()<e.getDate()&&--n,Math.max(0,n)}function XE(e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))return null;let t=new Date,n=t.getFullYear()-e.getFullYear();return(t.getMonth()<e.getMonth()||t.getMonth()===e.getMonth()&&t.getDate()<e.getDate())&&--n,Math.max(0,n)}function ZE(e){return e===null?``:e<=14?`green`:e<=89?`yellow`:`red`}function QE(e,t=VE){if(!e)return!1;let n=Date.now()-t*BE,r=KE(e),i=qE(e),a=r&&r.getTime()>=n,o=i&&i.getTime()>=n;return!a&&!o}function $E(e){let t=qE(e);if(!t)return{createdAgo:``,createdAgoTone:``};let n=JE(t),r=YE(t),i=XE(t);return i>=1?{createdAgo:`${i} year${i===1?``:`s`} ago`,createdAgoTone:ZE(n)}:r>=1?{createdAgo:`${r} month${r===1?``:`s`} ago`,createdAgoTone:ZE(n)}:{createdAgo:RT(t),createdAgoTone:ZE(n)}}function eD(e){return{...e,...$E(e),isStaleCandidate:QE(e)}}function tD(e){return String(e?.applicantId??e?._id??e?.id??``)}var nD=null;async function rD(){return nD||=e.Or(zE).then(e=>e?.strategies?.duplicateCheck?.editRoute??``).catch(()=>``),nD}async function iD(e){let t=tD(e);if(!t)return``;let n=await rD();return n?n.replace(/:(_?id)\b/g,encodeURIComponent(t)):``}async function aD({option:e,popupContext:t,confirm:n}){let r=e?._raw??e??{},i=tD(r);if(i){let e=await IE({targetModule:RE,sourceModule:zE,recordId:i});if(e.severity===`block`)return new Promise(t=>{n({title:`This candidate cannot be submitted`,content:e.message,okText:`Pick someone else`,cancelText:`Close`,onOk:()=>t(!1),onCancel:()=>t(!1)})})}if(!QE(r))return!0;let a=t?.navigate;return!a||!i?!1:new Promise(e=>{n({title:`Candidate update required`,content:HE,okText:`OK`,cancelText:`Cancel`,onOk:async()=>{let t=await iD(r);t&&a(t),e(!1)},onCancel:()=>e(!1)})})}function oD(e,t,n){return{...e,label:`${e.label} - ${LE}`,disabled:!0,title:`${LE}${t?` (submission ${t})`:``}`,alreadySubmitted:!0,existingSubmissionId:t||``,...n?{submittedAt:n}:{}}}var sD={searchOptions:async(e,t,n)=>{if(e.searchFetchKey===`quickSubmitJobList`){let e=n.selectedRecords?.[0]??{},r=e.id??e._id??n.selectedIds?.[0],i,a=!0;try{i=await q({searchQuery:t,candidateId:r})}catch{a=!1;let e=await jn({searchQuery:t,candidateId:r});i=Array.isArray(e?.data)?e.data:[]}let o=i.map(e=>({label:[e.jobReferenceId??e.clientJobReferenceId,e.jobTitle].filter(Boolean).join(` - `)||String(e._id??``),value:e._id??``,_raw:e}));if(a)return o.map(e=>{if(e._raw?.isSubmitted||e._raw?.alreadySubmitted)return oD(e,e._raw?.jobSubmissionId||``,e._raw?.submittedAt||``);if(e._raw?.disable){let t=String(e._raw?.message??``).trim();return{...e,disabled:!0,label:t?`${e.label} - ${t}`:e.label,title:t}}return e});let s=await ve({applicantId:r,jobIds:o.map(e=>e.value)}).catch(()=>new Map);return o.map(e=>{let t=s.get(String(e.value));return t?oD(e,t.submissionId,t.submittedAt):e})}if(e.searchFetchKey===`quickSubmitCandidates`){let e=n.selectedRecords?.[0]??{},r=n.jobId??e.jobId??e.id??e._id??n.selectedIds?.[0],i,a=new Map;try{i=await _e({search:t,jobId:r})}catch{let e=await jo({isFromSubmission:n.isFromSubmission,jobId:r,submissionId:n.submissionId,search:t});i=Array.isArray(e)?e:[],a=await ve({jobId:r,applicantIds:i.map(tD)}).catch(()=>new Map)}return i.map(e=>eD(e)).map(e=>{let t=a.get(tD(e));if(!(t||e?.isSubmitted===!0||e?.alreadySubmitted===!0))return e;let n=t?.submissionId||e?.jobSubmissionId||``,r=t?.submittedAt||e?.submittedAt||``;return{...e,disabled:!0,optionNote:LE,isSubmitted:!0,alreadySubmitted:!0,existingSubmissionId:n,...r?{submittedAt:r}:{}}})}return[]},submit:async(e,t,n)=>{let{navigate:r,selectedRecords:i=[],selectedIds:a=[],moduleName:o}=t,s=i[0]??{},c,l;t.jobId?(c=t.jobId,l=s.id??s._id??a[0]??``):o===`candidate`?(c=e.jobId??``,l=s.id??s._id??a[0]??``):(c=s.jobId??s.id??s._id??a[0]??``,l=e.candidate??``);let u=n?.dynamicOptions?.candidate?.find(e=>tD(e?._raw)===String(l)),d=n?.dynamicOptions?.jobId?.find(e=>String(e?.value)===String(c)),f=u?._raw?.isSubmitted||u?._raw?.alreadySubmitted||d?.alreadySubmitted||d?._raw?.isSubmitted||d?._raw?.alreadySubmitted;if(!c||!l)throw Error(`Select both a job and a candidate to quick submit.`);if(QE(u?._raw))throw Error(HE);let p=await IE({targetModule:RE,sourceModule:zE,recordId:l});if(p.severity===`block`)throw Error(p.message);let m=f,h=u?._raw?.existingSubmissionId||u?._raw?.jobSubmissionId||d?.existingSubmissionId||d?._raw?.jobSubmissionId||``;try{let e=await K({jobId:c,applicantId:l});m||=!!e?.exists,h=e?.submissionId||h}catch(e){throw Error(`Could not verify existing submissions (${e?.message??`request failed`}). Please try again.`,{cause:e})}if(m)throw Error(`This candidate is already submitted for this job${h?` (submission ${h})`:``}.`);let g=new URLSearchParams;l&&g.set(`candidateId`,l);let _=u?.priorSubmissionId||u?._raw?.submissionId||d?.priorSubmissionId||d?._raw?.submissionId||``;_?(g.set(`submissionId`,String(_)),g.set(`isFromSubmission`,`true`)):g.set(`isFromSubmission`,`false`);let v=Oo(Ao({jobId:c,applicantId:l}).catch(()=>[]));return r(`/submission-create/${c}?${g.toString()}`,{state:{relevantSkillsToken:v}}),{navigated:!0}}},cD={title:`Submit`,okText:`Submit`,width:640,disabledUntilFilled:!0,autoSubmitWhenNoFields:!0,getNote:e=>e.moduleName===`candidate`?`Note: Select a job to submit this candidate.`:`Note: Select a candidate to submit for this job`,getFields:e=>e.jobId?[]:e.moduleName===`candidate`?[{name:`jobId`,label:`Job list`,type:`search-select`,required:!0,placeholder:`Search Job ID / job name - or pick a recent job`,searchFetchKey:`quickSubmitJobList`,optionLayout:{id:`{jobReferenceId}`,title:`{jobTitle}`,subtitle:`{clientJobReferenceId}`,meta:[{label:`Created`,key:`createdAt`,type:`date`},{label:`Updated`,key:`updatedAt`,type:`relative`}]}}]:[{name:`candidate`,label:`Candidate`,type:`search-select`,required:!0,placeholder:`Search candidate name / email - or pick a recent candidate`,optionsKey:`candidateOptions`,searchFetchKey:`quickSubmitCandidates`,labelTemplate:`{applicantRefrenceId} - {firstName} {lastName} - {createdAgo}`,valueKey:`applicantId`,optionLayout:{id:`{applicantRefrenceId}`,title:`{firstName} {lastName}`,titleAccent:{key:`createdAgo`,toneKey:`createdAgoTone`,prefix:` - `},subtitle:`{designation} - {email}`,meta:[{label:`Created`,key:`createdAt`,type:`date`},{label:`Updated`,key:`updatedAt`,type:`relative`}]},onSelectGuard:aD}]},lD={title:`Add Notes & Share`,okText:`Save & Share`,width:480,fields:[{name:`notes`,type:`mention-textarea`,required:!0,rows:5,placeholder:`Add your notes on the job. Use '@' to mention someone.`,mentionFetchKey:`mentionUsers`}]},uD=e=>e?.data??e;async function dD({relatedId:e,notes:n,title:r,notesFor:i}){return uD(await pn(t.b,`/notes`,{method:`POST`,body:JSON.stringify({relatedId:e,notes:n,title:r,notesFor:i})}))}var fD={getMentionOptions:async(e,t)=>H(t),submit:async(e,t)=>{let n=Array.isArray(t.selectedIds)?t.selectedIds[0]:t.selectedIds;if(!n)throw Error(`Please select a record before adding a note.`);await dD({relatedId:String(n),notes:e.notes,notesFor:t.moduleName})}},pD={name:`jobId`,label:`Job Title / ID`,type:`search-select`,required:!0,placeholder:`Minimum 3 characters`,searchFetchKey:`tagToJobJobList`,valueKey:`_id`,labelTemplate:`{jobReferenceId} - {jobTitle}`},mD={name:`hiringStage`,label:`Hiring stage`,type:`select`,required:!0,optionsKey:`hiringStageOptions`,defaultOptions:[{label:`Shortlisted`,value:`shortlisted`},{label:`Pipeline`,value:`pipeline`}],initialValueKey:`hiringStage`},hD={title:`Tag to Job`,okText:`Tag`,width:480,disabledUntilFilled:!0,autoSubmitWhenNoFields:!0,getFields:e=>e.jobId&&e.hiringStage?[]:e.jobId?[mD]:[pD,mD]},gD=e=>e?.data??e;function _D(e){return Array.isArray(e)&&e.every(e=>e&&typeof e==`object`&&`Key`in e)?e.reduce((e,{Key:t,Value:n})=>(e[t]=n,e),{}):e}function vD(e){return e?Array.isArray(e.data)?e.data.map(_D):e.stage&&Array.isArray(e.stage.data)?e.stage.data.map(_D):Array.isArray(e)?e.map(_D):[]:[]}async function yD(e=1,n=10){let r=await t.a(t.b,`/workflow/list/all?page=${e}&limit=${n}`),i=gD(r),a=Array.isArray(i)?i:i?.data??[];return{items:a,total:Number(r?.total??i?.total)||a.length,page:e,limit:n}}async function bD(e=100){let t=await yD(1,e),n=[...t.items],r=t.total,i=2;for(;n.length<r;){let t=await yD(i,e);if(!t.items.length)break;n.push(...t.items),i+=1}return{items:n,total:Math.max(r,n.length)}}async function xD(e,n){let r=gD(await t.a(t.b,`/workflow/${e}/stage/${n}`));return Array.isArray(r)?{data:r}:r}async function SD(e,n){if(!e||!n)return null;try{let r=gD(await t.a(t.b,`/module-data-list?${new URLSearchParams({module:e,limit:`1`,offset:`0`,scope:`allJobs`,filters:JSON.stringify([{field:`_id`,op:`in`,values:[String(n)],operator:`and`}])})}`));if(Array.isArray(r))return r[0]??null;if(r?.data&&Array.isArray(r.data))return r.data[0]??null;let i=r?.rows??r?.records??r?.items??r?.list;return Array.isArray(i)?i[0]??null:r??null}catch(t){return console.error(`[getModuleRecordById] failed: ${e}/${n}`,t),null}}async function CD(e){return gD(await t.a(t.S,`/source/workflow-instance`,{method:`POST`,body:JSON.stringify(e)}))}var wD={pipeline:`pipeline`,goodfited:`goodfited`,contacted:`contacted`,submitted:`submitted`,shortlisted:`shortlisted`,interviewinprogress:`interviewInprogress`,selected:`selected`};function TD(e,...t){for(let n of t){let t=String(n).split(`.`).reduce((e,t)=>e?.[t],e);if(t!=null&&t!==``)return t}}function ED(e){let t=String(e??``).trim();return t?wD[t.toLowerCase()]??t:``}function DD(e,t){let n=TD(e,`candidateId`,`candidate_id`,`applicantId`,`applicantID`,`applicantReferenceId`,`applicantRefrenceId`,`_id`,`id`)??t;if(!n)return null;let r=(TD(e,`candidateName`,`candidate_name`,`fullName`,`name`)??[TD(e,`firstName`,`first_name`),TD(e,`lastName`,`last_name`)].filter(Boolean).join(` `))||void 0,i={candidateId:String(n),candidateName:r,phone:TD(e,`phone`,`phoneNumber`,`phone_number`,`mobile`,`mobileNumber`,`mobile_number`),source:TD(e,`source`,`sourceType`,`candidateSource`,`profileSource`),submittedAt:TD(e,`submittedAt`,`lastSubmittedAt`,`updatedAt`),remarks:TD(e,`remarks`,`comment`,`comments`,`notes`),assignedRecruiter:TD(e,`assignedRecruiter`,`recruiterName`,`ownerName`,`assignedToName`),screeningStatus:TD(e,`screeningStatus`,`screening.status`,`screeningResult`),screeningScore:TD(e,`screeningScore`,`screening.score`,`score`),assignedDate:TD(e,`assignedDate`,`assignedAt`,`createdAt`)};return Object.fromEntries(Object.entries(i).filter(([,e])=>e!=null&&e!==``))}var OD={searchOptions:async(e,t)=>e.searchFetchKey===`tagToJobJobList`?V(t):[],submit:async(e,t)=>{let n=e.jobId??t.jobId,r=ED(e.hiringStage??t.hiringStage),i=Array.isArray(t.selectedIds)?t.selectedIds:[],a=Array.isArray(t.selectedRecords)?t.selectedRecords:[],o=Math.max(i.length,a.length,1);for(let e=0;e<o;e+=1){let t=i[e]?String(i[e]):``,o=DD(a[e]??{},t);await CD({jobId:n,module:`jobs`,currentStage:r,...o?{candidateDetails:o}:{}})}await W({jobId:n,candidateIds:t.selectedIds,hiringStage:r})}},kD={title:`Change Status`,okText:`Apply`,width:420,showSelectedCount:!0,fields:[{name:`status`,label:`New Status`,type:`select`,required:!0,placeholder:`Select a status`,dataSource:`master`,masterName:`clientSubmissions`,labelKey:`clientSubmissionStatusText`,valueKey:`clientSubmissionStatusText`,initialValueKey:`currentStatus`,defaultOptions:[{label:`Active`,value:`active`},{label:`Inactive`,value:`inactive`},{label:`Pending`,value:`pending`},{label:`Closed`,value:`closed`}]}]};function AD(e,t){return(t?.status??[]).find(t=>String(t?.value??``)===String(e??``))??null}var jD={submit:async(e,t,n)=>{let r=AD(e.status,n?.dynamicOptions)?._raw??{},i={clientSubmissionStatusText:String(e.status??``).trim(),clientSubmissionStatusId:Number(r.id??r.uniqueId??0)||0,clientSubmissionStatusType:String(r.type??``).trim()};await B(t.moduleName,t.selectedIds,i)}},MD={getTitleText:e=>`Remove ${e>1?`${e} Candidates`:`Candidate`} from Shortlist`,titleIcon:`delete`,okText:`Remove`,okButtonDanger:!0,width:420,getBodyText:e=>e>1?`Are you sure you want to remove ${e} selected candidates from the shortlist?`:`Are you sure you want to remove this candidate from the shortlist?`,footerNote:`The candidate will be moved back to the pipeline.`,fields:[]},ND={onOk:async e=>{await ye({jobId:e.jobId??e.selectedIds[0],candidateIds:e.selectedIds})}},PD={title:`Add to Groups`,description:`Select a group to add the selected candidate(s) to`,okText:`Add to Group`,width:480,disabledUntilFilled:!0,fields:[{name:`groupId`,label:`Group`,type:`select`,required:!0,placeholder:`Select a group`,fetchOptionsKey:`candidateGroups`}]},FD={getOptions:async e=>e.fetchOptionsKey===`candidateGroups`?re():[],submit:async(e,t,{dynamicOptions:n})=>{let r=(n.groupId??[]).find(t=>String(t.value)===String(e.groupId));await ie({candidateIds:t.selectedIds,groupId:e.groupId,groupName:r?.label??``})}},ID=[{title:`Name`,key:`name`,render:(e,t)=>t.name||`${t.first_name??``} ${t.last_name??``}`.trim()||t.user_name||`Assigned user`},{title:`Role`,dataIndex:`role_name`,key:`role`,render:e=>e||`-`},{title:`Reporting`,dataIndex:`reporting_name`,key:`reporting`,render:e=>e||`-`}];function LD({selectedIds:e,onClose:t}){let n=e?.[0],[s,c]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)({assignedUsers:[],totalSubmissions:0,message:``}),[p,m]=(0,r.useState)([]);(0,r.useEffect)(()=>{let e=!1;return c(!0),Promise.all([ae(n).catch(t=>(e||i.message.error(t?.message??`Failed to load self-assign details`),{assignedUsers:[],totalSubmissions:0,message:``})),ce(n).catch(()=>({recruitersData:[]}))]).then(([t,n])=>{e||(f(t),m(Array.isArray(n?.recruitersData)?n.recruitersData:[]))}).finally(()=>{e||c(!1)}),()=>{e=!0}},[n]);let h=async()=>{u(!0);try{await G({jobIds:[n]}),i.message.success(`Job assigned successfully`),t?.({success:!0})}catch(e){i.message.error(e?.message??`Failed to assign job`)}finally{u(!1)}};if(s)return(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})});let g=p.map(e=>({user_id:e.recruiterId??e.id??e.user_id,name:e.name??``,role_name:e.role_name??e.roleName??``,reporting_name:e.reporting_name??e.reportingName??``})),_=new Map(g.map(e=>[String(e.user_id??``),e])),v=(d.assignedUsers?.length??0)>0?d.assignedUsers.map(e=>{let t=e.user_id??e.userId??e.recruiterId??e.id,n=_.get(String(t??``))??{};return{...e,user_id:t,name:n.name||e.name||``,role_name:n.role_name||e.role_name||e.roleName||``,reporting_name:n.reporting_name||e.reporting_name||e.reportingName||``}}):g;return(0,o.jsxs)(`div`,{className:`self-assign-popup-body`,children:[v.length>0?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`div`,{style:{fontWeight:700,marginBottom:8},children:`Team Members Allocated`}),(0,o.jsx)(i.Table,{columns:ID,dataSource:v,pagination:!1,rowKey:e=>e.user_id??`${e.first_name}-${e.last_name}`,size:`small`,className:`mb-3 no-header-bg`,scroll:{y:200}}),(0,o.jsxs)(`div`,{className:`warning-card`,style:{display:`flex`,alignItems:`center`,gap:8,marginTop:12},children:[(0,o.jsx)(a.ExclamationCircleFilled,{style:{color:`#faad14`,fontSize:18}}),(0,o.jsx)(`div`,{style:{fontSize:13},children:`These users are already assigned to this job. Do you still want to assign yourself as well?`})]})]}):(0,o.jsx)(`div`,{style:{padding:`8px 0`},children:d.message||`No one is currently assigned to this job. Do you want to assign yourself?`}),(0,o.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:12,marginTop:24},children:[(0,o.jsx)(i.Button,{size:`small`,onClick:()=>t?.(),disabled:l,children:`No`}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,onClick:h,loading:l,children:`Yes`})]})]})}LD.propTypes={selectedIds:l.default.array,onClose:l.default.func};var RD={title:`Self Assign`,width:480,className:`self-assign-modal`,component:LD},zD={submit:async()=>{}};function BD(e={}){let t=Array.isArray(e.jobPayDetails)?e.jobPayDetails[e.jobPayDetails.length-1]:e.jobPayDetails??e.clientBudget??{},n=Number(t.clientBudgetEnd),r=Number(t.clientBudgetStart);return Number.isFinite(n)&&n>0?n:Number.isFinite(r)&&r>0?r:null}var VD={getTitleText:(e,t,n)=>{let r=n?.jobTitle||n?.title||``;return r?`Assign - ${r}`:`Assign`},okText:`Assign`,width:520,disabledUntilFilled:!0,showAlreadyAssigned:!0,getFields:e=>(BD(e?.selectedRecords?.[0]??{}),[{name:`assignToUserId`,label:`Assign to`,type:`multi-select`,required:!0,placeholder:`Select recruiter(s)`,fetchOptionsKey:`assignToUsers`}])},HD={getOptions:async e=>e.fetchOptionsKey===`assignToUsers`?se():[],loadExtraData:async e=>ce(e.selectedIds[0]),submit:async(e,t,{removedIds:n,extraData:r})=>{await de({jobIds:t.selectedIds,userId:e.assignToUserId,removedIds:n,existingRecruiters:r?.recruitersData})}},UD={title:`Add Sticky Notes`,getTitleText:(e,t,n,r)=>r.editingNoteId?`Edit Sticky Notes`:`Add Sticky Notes`,okText:`Save`,width:480,fields:[{name:`heading`,label:`Heading`,type:`input`,required:!0,placeholder:`Enter heading`,initialValueKey:`editingHeading`},{name:`targetDate`,label:`Target Date`,type:`date-picker`,required:!1,initialValueKey:`editingTargetDate`},{name:`comments`,label:`Comments`,type:`mention-textarea`,required:!0,rows:5,placeholder:`Enter your note here... Use '@' to mention someone.`,mentionFetchKey:`mentionUsers`,initialValueKey:`editingComments`}]},WD={getMentionOptions:async(e,t)=>H(t),submit:async(e,t)=>{let n=e.targetDate?e.targetDate.toISOString():``;t.editingNoteId?await te(t.editingNoteId,{title:e.heading,targetDate:n,notes:e.comments}):await U({relatedIds:t.selectedIds,module:t.moduleName,title:e.heading,targetDate:n,notes:e.comments}),window.dispatchEvent(new Event(`sticky-notes:refresh`))}},GD={title:`Move to Onboarding`,bodyText:`Are you sure you want to move this candidate to onboarding?`,okText:`Yes`,cancelText:`No`,width:420,successMessage:`Moved to onboarding successfully`,successNavigate:`/onboarding`,fields:[{name:`sendOnboardingEmail`,type:`priority-checkbox`,checkboxLabel:`Send Onboarding Email`}]},KD={submit:async(e,t)=>{await fe({submissionId:t.selectedRecords?.[0]?.submissionId,isMail:e.sendOnboardingEmail})}};function qD(e){return Array.isArray(e)?e[e.length-1]??{}:e&&typeof e==`object`?e:{}}var JD={USD:`$`,INR:`₹`,EUR:`€`,GBP:`£`};function YD(e,t,n){let r=qD(e?.[t])[n];if(r!=null&&r!==``)return r;let i=e?.[`${t}.${n}`];return i!=null&&i!==``?i:void 0}function XD(e){let t=e.selectedRecords?.[0]??{},n=YD(t,`candidateRate`,`candidateAcceptedRate`)??YD(t,`candidateBudget`,`candidateBudgetStart`);if(n===void 0||Number(n)===0)return null;let r=YD(t,`candidateRate`,`candidateAcceptedCurrency`)??YD(t,`candidateBudget`,`candidateBudgetCurrency`);return{amount:n,symbol:YD(t,`candidateRate`,`candidateAcceptedCurrencySymbol`)??YD(t,`candidateBudget`,`candidateBudgetCurrencySymbol`)??JD[String(r??``).toUpperCase()]??(r||`$`),unit:YD(t,`candidateRate`,`candidateAcceptedPayUnit`)??YD(t,`candidateBudget`,`candidateBudgetUnit`)??``}}var ZD={title:`Approve Rate`,okText:`Approve`,width:520,className:`medium-modal`,successMessage:`Rate approved`,getBodyText:(e,t,n,r,i)=>{let a=XD(i);return`Candidate Rate: ${a?`${a.symbol}${a.amount}${a.unit?`/${a.unit}`:``}`:`-`}`},fields:[{name:`candidateProposedRate`,label:`Proposed Rate`,type:`number`,required:!0,placeholder:`Amount`,min:0,inlineRow:`proposedRate`,validator:(e,t)=>{if(e==null||e===``)return;let n=XD(t);if(n&&Number(e)<=Number(n.amount))return`Proposed rate must be greater than Candidate Rate`}},{name:`candidateProposedRateCurrency`,label:`Currency`,type:`select`,required:!0,inlineRow:`proposedRate`,defaultOptions:[{label:`$ USD`,value:`$`},{label:`₹ INR`,value:`₹`},{label:`€ EUR`,value:`€`}]},{name:`candidateProposedRateUnit`,label:`Unit`,type:`select`,required:!0,inlineRow:`proposedRate`,defaultOptions:[{label:`Year`,value:`yr`},{label:`Month`,value:`mo`},{label:`Week`,value:`wk`},{label:`Hour`,value:`hr`},{label:`Daily`,value:`day`}]},{name:`submitVia`,label:`Submit Via`,type:`radio`,required:!0,defaultOptions:[{label:`Mail`,value:`Mail`},{label:`VMS`,value:`VMS`}]}]},QD={submit:async(e,t)=>{let n=t.selectedIds[0];if(await pe(n,{candidateProposedRate:e.candidateProposedRate,candidateProposedRateCurrency:e.candidateProposedRateCurrency,candidateProposedRateUnit:e.candidateProposedRateUnit,submitVia:e.submitVia}),e.submitVia===`VMS`)try{await me(n)}catch{i.message.warning(`Approved. VMS notification could not be sent — use Send Mail to notify the client.`)}else i.message.info(`Approved — use Send Mail to notify the client.`)}};async function $D(e,n={}){let r=t.l();if(!r){let e=Error(`Authentication required`);throw e.status=401,e}let i=await fetch(`${t.w}${e}`,{...n,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${r}`,...n.headers}});if(i.status===401&&t.m(),!i.ok){let e=Error(`API ${i.status}: ${i.statusText}`);throw e.status=i.status,e}return i.json()}async function eO(e){let t=await $D(`/mail-form?${new URLSearchParams({submissionId:e,submissionType:`client`}).toString()}`);return t.data??t}function tO(...e){return e.map(e=>e==null?``:String(e).trim()).find(Boolean)??``}var nO=(e,t)=>!!e&&e.toLowerCase()===tO(t).toLowerCase();function rO(e,t,n){let r=tO(t.submittedBy);return tO(nO(r,n)||nO(r,e.submitSource)||nO(r,e.supplierName)||nO(r,e.source)||nO(r,e.candidateSource)?``:r,e.signatureEmail)}function iO(e,t={}){let n=t.employerName??e.supplierName??e.submitSource;return{client:t.clientName??e.clientName,role:t.jobTitle??e.jobTitle??e.designation,reqId:t.reqId??e.jobClientRefrenceId??e.mspReqId??e.submissionId,name:t.candidateName||[e.firstName,e.lastName].filter(Boolean).join(` `)||e.candidateFullName,location:t.jobLocation??e.city??e.currentLocation??e.jobLocation,vendor:n,submittedBy:rO(e,t,n),submittedAt:t.createdAt??e.createdAt,email:t.email??e.email,employerLocation:t.employerLocation,employerName:t.employerName}}function aO(e){let t=e?.$oid??e?._id?.$oid??e?._id??e?.id?.$oid??e?.id??e;if(t==null||typeof t==`object`)return``;let n=String(t).trim();return/^[a-f\d]{24}$/i.test(n)?n:``}function oO(...e){for(let t of e){let e=[t?.jobId,t?.JobId,t?.job_id,t?.jobDetails?._id,t?.jobDetails?.id,t?.job?._id,t?.job?.id,t?.submission?.jobId,t?.submission?.JobId,t?.submission?.job_id,t?.submission?.jobDetails?._id,t?.submission?.jobDetails?.id,t?.submission?.job?._id,t?.submission?.job?.id,t?.recordMeta?.jobId,t?.recordMeta?.JobId,t?.recordMeta?.job_id,t?.submission?.recordMeta?.jobId,t?.submission?.recordMeta?.JobId,t?.submission?.recordMeta?.job_id].map(aO).find(Boolean);if(e)return e}return``}function sO(e){if(!e?.referralId)return{};let t=Number(e.referralRate??e.referalRate??0)||0,n=String(e.referralType??e.referalType??`RECURRING`).trim()||`RECURRING`,r=e.referralId??e.referalId;return{referralId:r,referalId:r,referralRate:t,referalRate:t,referralType:n,referalType:n,referralEnabled:!0,referalEnabled:!0,isReferralApplicable:!0,referralDetails:{referralId:r,referalId:r,referralRate:t,referalRate:t,referralType:n,referalType:n,referralEnabled:!0,referalEnabled:!0,isReferralApplicable:!0}}}function cO(e={}){return{to:(e.to??e.To??[]).map(e=>e.email??e.Email??e).filter(Boolean).join(`, `),cc:(e.cc??e.Cc??[]).map(e=>e.email??e.Email??e).filter(Boolean).join(`, `),bcc:(e.bcc??e.Bcc??[]).map(e=>e.email??e.Email??e).filter(Boolean).join(`, `),subject:e.subject??e.Subject??``,contents:e.content?.value??e.Content?.Value??e.contents??e.body??``}}function lO({context:e,selectedIds:t,selectedRecords:n,moduleName:a,onClose:s}){let c=n?.[0]??{},l=t?.[0]??bg(c),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!0),[m,h]=(0,r.useState)([]),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(`vms`),[b,x]=(0,r.useState)(null),[S,C]=(0,r.useState)(null),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(!1),[O,k]=(0,r.useState)(!1),[A,j]=(0,r.useState)(!1),[M,N]=(0,r.useState)({to:``,cc:``,bcc:``,subject:``,contents:``,showCc:!1,showBcc:!1});(0,r.useEffect)(()=>{let e=!1;return s_(l,c).then(t=>{e||d(t)}).catch(t=>{e||(i.message.error(t?.message??`Unable to load finance details`),d({record:{submission:c},lookups:{},display:{}}))}).finally(()=>{e||p(!1)}),()=>{e=!0}},[l]),(0,r.useEffect)(()=>{let e=!1;return g_().then(t=>{e||h(t)}).catch(()=>{}),()=>{e=!0}},[]);let P=async()=>{if(b){if(v===`mail`){_(!1),D(!0),k(!0);try{let e=cO(await eO(l));N({to:e.to,cc:e.cc,bcc:e.bcc,subject:e.subject,contents:e.contents,showCc:!!e.cc,showBcc:!!e.bcc})}catch(e){i.message.error(e?.message??`Unable to prepare approval mail`)}finally{k(!1)}return}T(!0);try{await pe(l,{candidateProposedRate:b.proposedRate,candidateProposedRateCurrency:b.currencyRaw??b.currency,candidateProposedRateUnit:b.rateUnit,submitVia:`VMS`,...sO(S)}),i.message.success(`Submission approved`),_(!1),x(null),C(null),s?.({success:!0})}catch(e){i.message.error(e?.message??`Unable to approve submission`)}finally{T(!1)}}},F=!O&&jw(M.to).length>0&&Mw(M.to)&&Mw(M.cc)&&Mw(M.bcc)&&M.subject.trim()&&M.contents.trim(),I=async()=>{if(!b||!F||A)return;j(!0);let e={candidateProposedRate:b.proposedRate,candidateProposedRateCurrency:b.currencyRaw??b.currency,candidateProposedRateUnit:b.rateUnit};try{await pe(l,{...e,submitVia:`VMS`,...sO(S)});let t=oO(u?.record,c);if(!t)i.message.warning(`Submission approved, but job details were not available to send mail`);else try{await sn({jobId:t,toMail:jw(M.to),ccMail:jw(M.cc),bccMail:jw(M.bcc),subject:M.subject,contents:M.contents}),i.message.success(`Approval mail sent and submission approved`)}catch(e){i.message.warning(e?.message?`Submission approved, but mail was not sent: ${e.message}`:`Submission approved, but mail was not sent`)}D(!1),x(null),C(null),s?.({success:!0})}catch(e){i.message.error(e?.message??`Unable to send approval mail`)}finally{j(!1)}},L=(0,r.useMemo)(()=>({submissionApprove:async({computed:e,referral:t})=>{x(e),C(t??null),y(`vms`),_(!0)},submissionReject:async()=>{e?.navigate?.(`/popup/reject`,{replace:!0,state:{background:e?.background??null,selectedIds:t,selectedRecords:n,moduleName:a}})}}),[e,t,n,a]);return f||!u?(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Xg,{type:Jh,record:u.record,lookups:u.lookups,identity:iO(c,u.display),referralOptions:m,currentUserId:typeof localStorage<`u`?localStorage.getItem(`userId`)??void 0:void 0,actions:L,onClose:()=>s?.(),variant:`popup`}),(0,o.jsx)(i.Modal,{title:`Choose approval method`,open:g,okText:`Approve`,confirmLoading:w,onOk:P,onCancel:()=>{w||(_(!1),x(null),C(null))},children:(0,o.jsxs)(i.Radio.Group,{value:v,onChange:e=>y(e.target.value),style:{display:`grid`,gap:12},children:[(0,o.jsx)(i.Radio,{value:`vms`,children:`Via VMS`}),(0,o.jsx)(i.Radio,{value:`mail`,children:`Via Mail`})]})}),(0,o.jsx)(i.Drawer,{open:E,placement:`right`,onClose:()=>{A||D(!1)},closable:!1,rootClassName:`mail-popup`,width:620,maskClosable:!1,footer:(0,o.jsxs)(`div`,{className:`mail-popup__footer`,children:[(0,o.jsx)(i.Button,{onClick:()=>D(!1),disabled:A,children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,loading:A,disabled:!F,onClick:I,children:`Send`})]}),children:O?(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})}):(0,o.jsx)(Lw,{value:M,onChange:N,moduleName:`submissions`,ready:!O,title:`Submit Via Mail`,contextRecords:[u.record?.submission??c]})})]})}lO.propTypes={context:l.default.object,selectedIds:l.default.array,selectedRecords:l.default.array,moduleName:l.default.string,onClose:l.default.func};var uO={title:`Manager Approve`,width:780,className:`fa-modal manager-approve-modal`,component:lO},dO={submit:async()=>{}};function fO(...e){return e.map(e=>e==null?``:String(e).trim()).find(Boolean)??``}var pO=(e,t)=>!!e&&e.toLowerCase()===fO(t).toLowerCase();function mO(e,t,n){let r=fO(t.submittedBy);return fO(pO(r,n)||pO(r,e.submitSource)||pO(r,e.supplierName)||pO(r,e.source)||pO(r,e.candidateSource)?``:r,e.signatureEmail)}function hO(e,t={}){let n=t.employerName??e.supplierName??e.submitSource;return{client:t.clientName??e.clientName,role:t.jobTitle??e.jobTitle??e.designation,reqId:t.reqId??e.jobClientRefrenceId??e.mspReqId??e.submissionId,name:t.candidateName||[e.firstName,e.lastName].filter(Boolean).join(` `)||e.candidateFullName,location:t.jobLocation??e.city??e.currentLocation??e.jobLocation,vendor:n,submittedBy:mO(e,t,n),submittedAt:t.createdAt??e.createdAt,email:t.email??e.email,employerLocation:t.employerLocation,employerName:t.employerName}}function gO(e){let t=Array.isArray(e)?e:[];for(let e=t.length-1;e>=0;--e)if(String(t[e]?.activityType??``).trim().toLowerCase()===`cfo rejected`)return t[e];return null}function _O(e){return String(e??``).toLowerCase().replace(/\b\w/g,e=>e.toUpperCase())}function vO({selectedIds:t,selectedRecords:n,onClose:a}){let s=n?.[0]??{},c=t?.[0]??bg(s),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(!0);(0,r.useEffect)(()=>{let t=!1;return m(!0),Promise.all([s_(c,s),e.rn(`submission`,c).catch(()=>[])]).then(([e,n])=>{if(t)return;let r=gO(n);f(bg(e?.meta?.workforceEngagementId??s?.onboarding?.workforceEngagementId??s?.workforceEngagementId));let i=e?.meta?.rejectReasonComments||r?.activityComments||``;u({...e,record:{...e.record,submission:{...e.record.submission,cfoRejectionReason:i?_O(i):``,cfoRejectedAt:e?.meta?.rejectedAt??r?.activityTime??null}}})}).catch(e=>{t||(i.message.error(e?.message??`Unable to load finance details`),u({record:{submission:s},lookups:{},display:{}}))}).finally(()=>{t||m(!1)}),()=>{t=!0}},[c]);let h=(0,r.useMemo)(()=>({submissionReapproveSend:async({computed:e})=>{await he(d,{submissionId:c,billRate:e.proposedRate,payRate:e.employerRate,currency:e.currencyRaw??e.currency,rateUnit:e.rateUnit,vmsPercent:e.clientVmsPercent}),await pe(c,{candidateProposedRate:e.proposedRate,candidateProposedRateCurrency:e.currencyRaw??e.currency,candidateProposedRateUnit:e.rateUnit,submitVia:`Mail`,context:`resend`}),i.message.success(`Re-approved and sent for CFO approval`),a?.({success:!0})}}),[c,d,a]);return p||!l?(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})}):(0,o.jsx)(Xg,{type:Qh,record:l.record,lookups:l.lookups,identity:hO(s,l.display),currentUserId:typeof localStorage<`u`?localStorage.getItem(`userId`)??void 0:void 0,actions:h,onClose:()=>a?.(),variant:`popup`})}vO.propTypes={selectedIds:l.default.array,selectedRecords:l.default.array,onClose:l.default.func};var yO={title:`Re-Approve`,width:780,className:`fa-modal manager-approve-modal`,component:vO},bO={submit:async()=>{}},xO=[{id:1,name:`Re-Submission`},{id:2,name:`Candidate doesn't fit into the profile`},{id:3,name:`Incomplete candidate details - (Re-Submission)`}],SO={title:`Reject`,okText:`Reject`,okButtonDanger:!0,width:480,successMessage:`Submission rejected successfully`,fields:[{name:`rejectReason`,label:`Rejection Reasons`,type:`select`,required:!0,placeholder:`Select rejection reasons`,defaultOptions:xO.map(e=>({label:e.name,value:e.id}))},{name:`rejectReasonComments`,label:`Comments`,type:`textarea`,required:!0,rows:4}]},CO={submit:async(e,t)=>{let n=xO.find(t=>String(t.id)===String(e.rejectReason));await ge({submissionId:t.selectedIds[0],rejectReasonId:e.rejectReason,rejectReason:n?.name??``,rejectReasonComments:e.rejectReasonComments})}},wO={delete:jE,"quick-submit":cD,"add-notes":lD,"tag-to-job":hD,"change-status":kD,"remove-from-shortlist":MD,"add-to-groups":PD,"self-assign":RD,"others-assign":VD,"sticky-notes":UD,"move-to-onboarding":GD,"approve-rate":ZD,"manager-approve":uO,"manager-reapprove":yO,reject:SO},TO={delete:ME,"quick-submit":sD,"add-notes":fD,"tag-to-job":OD,"change-status":jD,"remove-from-shortlist":ND,"add-to-groups":FD,"self-assign":zD,"others-assign":HD,"sticky-notes":WD,"move-to-onboarding":KD,"approve-rate":QD,"manager-approve":dO,"manager-reapprove":bO,reject:CO};function EO(e){let t=e?.data??e;return Array.isArray(t)?t:t?.data??t?.rows??t?.records??t?.items??t?.list??[]}function DO(e,...t){for(let n of t){let t=String(n).split(`.`).reduce((e,t)=>e?.[t],e);if(t!=null&&t!==``)return t}return``}function OO(e){let t=String(DO(e,`isDeleted`,`deleted`)).toLowerCase(),n=String(DO(e,`assignmentStatus`,`status`)).toLowerCase();return t!==`true`&&t!==`1`&&![`removed`,`inactive`,`deleted`].includes(n)}function kO(e){let t=DO(e,`candidateName`,`candidate_name`,`fullName`,`name`);return t?String(t):[DO(e,`firstName`,`first_name`),DO(e,`lastName`,`last_name`)].filter(Boolean).join(` `)||`Unnamed candidate`}function AO(e){return String(DO(e,`candidateId`,`candidate_id`,`candidate._id`,`candidate.id`))}function jO(e){return String(DO(e,`workforceEngagementId`,`engagementId`,`_id`,`id`))}function MO(e){return String(DO(e,`batchName`,`name`,`title`,`batch_name`))}function NO({open:n=!0,context:a={},onClose:s}){let[c,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]),[f,p]=(0,r.useState)(``),[m,h]=(0,r.useState)(!0),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(``),[b,x]=(0,r.useState)(new Map),S=String(a.selectedIds?.[0]??a.selectedRecords?.[0]?._id??a.selectedRecords?.[0]?.id??a.batchId??``);(0,r.useEffect)(()=>{if(!n)return;let t=!1;return Promise.resolve().then(()=>(t||h(!0),Promise.all([e.mn(`onboarding`,200,0),e.mn(`batchCandidates`,1e3,0).catch(()=>[])]))).then(([e,n])=>{t||(l(EO(e)),x(new Map(EO(n).filter(OO).map(e=>[String(DO(e,`candidateId`,`candidate_id`)),e]).filter(([e])=>e))))}).catch(e=>{t||y(e.message||`Unable to load onboarding candidates`)}).finally(()=>{t||h(!1)}),()=>{t=!0}},[n]);let C=(0,r.useMemo)(()=>{let e=f.trim().toLowerCase();return e?c.filter(t=>[kO(t),DO(t,`email`,`candidateEmail`,`candidate_email`),DO(t,`status`,`onboardingStatus`,`onboarding_status`)].some(t=>String(t).toLowerCase().includes(e))):c},[c,f]);async function w(){if(!S){y(`Select a batch before adding candidates`);return}let n=c.filter(e=>u.includes(jO(e)));if(!n.length)return;let r=n.map(e=>({record:e,assignment:b.get(AO(e))})).filter(e=>e.assignment);if(r.length){y(`${r.map(({record:e})=>kO(e)).join(`, `)} ${r.length===1?`is`:`are`} already added to a batch. Each candidate can be added to only one batch.`);return}_(!0),y(``);try{let{userId:r}=t.o(),o=MO(a.selectedRecords?.[0])||MO(a);await Promise.all(n.map(t=>e.Gn(`batchCandidates`,{schemaVersion:1,batchId:S,batchName:o,candidateId:AO(t),workforceEngagementId:jO(t),source:`ONBOARDING`,assignmentStatus:`ASSIGNED`,assignedAt:new Date().toISOString(),assignedBy:r??0,isDeleted:!1}))),i.message.success(`${n.length} candidate${n.length===1?``:`s`} added to the batch`),s?.({refresh:!0})}catch(e){y(e.message||`Unable to add candidates to the batch`)}finally{_(!1)}}return(0,o.jsxs)(i.Modal,{open:n,title:`Add Candidate to Batch`,okText:`Add`,onOk:w,onCancel:()=>s?.(),okButtonProps:{disabled:u.length===0||!S,loading:g},cancelButtonProps:{disabled:g},closable:!g,maskClosable:!1,width:760,centered:!0,children:[v&&(0,o.jsx)(i.Alert,{type:`error`,showIcon:!0,message:v,style:{marginBottom:12}}),(0,o.jsx)(i.Input.Search,{allowClear:!0,placeholder:`Search onboarding candidates`,value:f,onChange:e=>p(e.target.value),style:{marginBottom:12}}),(0,o.jsx)(i.Table,{rowKey:e=>jO(e),columns:[{title:`Candidate`,key:`candidate`,render:(e,t)=>kO(t)},{title:`Email`,key:`email`,render:(e,t)=>DO(t,`email`,`candidateEmail`,`candidate_email`)||`—`},{title:`Onboarding status`,key:`status`,render:(e,t)=>DO(t,`status`,`onboardingStatus`,`onboarding_status`)||`—`}],dataSource:C,loading:m,size:`small`,pagination:{pageSize:10,showSizeChanger:!1},rowSelection:{selectedRowKeys:u,onChange:d,getCheckboxProps:e=>{let t=b.get(AO(e));return{disabled:!AO(e)||!jO(e)||!!t,title:t?`Candidate is already added to a batch`:void 0}}},locale:{emptyText:m?`Loading candidates…`:`No onboarding candidates found`}})]})}var PO={text:`input`,string:`input`,textarea:`textarea`,date:`date-picker`,datepicker:`date-picker`,multiselect:`multi-select`,lookup:`search-select`};function FO(e){if(!e)return null;let t=[...e.groups??[]].sort((e,t)=>Number(e.order??0)-Number(t.order??0)).flatMap(e=>[...e.fields??[]].filter(e=>e.show!==0&&e.show!==!1).sort((e,t)=>Number(e.order??0)-Number(t.order??0)).map(e=>({...e,name:e.name??e.field,label:e.label??e.field,type:PO[String(e.type??`text`).toLowerCase()]??e.type??`input`,required:e.required??e.req===1,options:(e.options??[]).map(e=>({label:e.label??e.name??e.value,value:e.value??e.id??e.label}))}))),n=IO(e.successNavigate);return{title:e.label,fields:t,...n?{successNavigate:n}:{}}}function IO(e){let t=String(e??``).trim();return!t||!t.startsWith(`/`)||t.startsWith(`//`)||/^[a-z][a-z0-9+.-]*:/i.test(t)?null:t}function LO(e,t=[]){if(!e||!Array.isArray(t)||!t.length)return e;let n=new Map(t.filter(e=>e?.name).map(e=>[String(e.name),e]));return n.size?{...e,fields:(e.fields??[]).map(r=>{let i=n.get(String(r.name))??n.get(String(r.label))??(n.size===1&&(e.fields??[]).length===1?t[0]:null);if(!i)return r;let{name:a,...o}=i;return{...r,...o}})}:e}function RO({apiMap:n={},extraConfigs:i={}}){let a=(0,r.useMemo)(()=>({...TO,...n}),[n]),s=(0,r.useMemo)(()=>{let e={...wO};return Object.entries(i).forEach(([t,n])=>{e[t]={...e[t]??{},...n}}),e},[i]),{popupKey:l}=(0,c.useParams)(),u=(0,c.useNavigate)(),{state:d={}}=(0,c.useLocation)(),[f,p]=(0,r.useState)({key:``,config:null});(0,r.useEffect)(()=>{let t=!1;if(!l||!d.moduleName)return;let n=`${d.moduleName}:${l}`;return e.gr(d.moduleName,`popup`,l).then(e=>{t||p({key:n,config:FO(e[0])})}).catch(()=>{t||p({key:n,config:null})}),()=>{t=!0}},[l,d.moduleName]);let m=(0,r.useMemo)(()=>{let e=s[l],t=`${d.moduleName}:${l}`,n=f.key===t?f.config:null;return LO(n?{...e,...n}:e,d.popupAction?.popupFieldOverrides)},[f,s,l,d.moduleName,d.popupAction?.popupFieldOverrides]),h=(0,r.useMemo)(()=>({selectedIds:d.selectedIds??[],selectedRecords:d.selectedRecords??[],moduleName:d.moduleName??``,navigate:u,background:d.background??null,...d.popupContext??{}}),[u,d.selectedIds,d.selectedRecords,d.moduleName,d.popupContext,d.background]),g=(0,r.useMemo)(()=>{let e=d.popupAction;return e?.apiPath?{submit:(n,r)=>{let i=String(e.apiMethod||`POST`).toUpperCase();return t.a(t.b,e.apiPath.startsWith(`/`)?e.apiPath:`/${e.apiPath}`,{method:i,body:[`GET`,`DELETE`].includes(i)?void 0:JSON.stringify({...n,selectedIds:r.selectedIds,selectedRecords:r.selectedRecords,moduleName:r.moduleName})})}}:{}},[d.popupAction]),_=e=>{let t=d.background;if(e?.success&&m?.successNavigate){u(m.successNavigate,{replace:!0,state:{refreshTimestamp:Date.now()}});return}if(e?.success&&t?.pathname){u(`${t.pathname}${t.search??``}`,{replace:!0,state:{...t.state??{},refreshTimestamp:Date.now()}});return}u(-1)};return l===`add-batch-candidate`?(0,o.jsx)(NO,{open:!0,context:h,onClose:_}):(0,o.jsx)(AE,{open:!0,config:m,context:h,onClose:_,api:{...a[l]??{},...g}})}var zO={title:`Vendor Share`,maxVendorSelect:1e3,defaultTab:`myVendor`,defaultPageSize:10,vendorTabs:[{key:`myVendor`,label:`My Vendors`},{key:`allVendor`,label:`All Vendors`}],vendorColumns:[{title:`Vendor Name`,dataIndex:`vendorName`,key:`vendorName`},{title:`Email`,dataIndex:`vendorEmail`,key:`vendorEmail`},{title:`Location`,dataIndex:`vendorLocation`,key:`vendorLocation`},{title:`Updated On`,dataIndex:`updatedOn`,key:`updatedOn`}]},BO={getVendorList:({jobId:e,limit:t,offset:n,type:r})=>rn({jobId:e,limit:t,offset:n,sortBy:`new`,type:r}),getMailDetails:e=>an(e),submit:({jobId:e,toMail:t,ccMail:n,bccMail:r,subject:i,contents:a})=>sn({jobId:e,toMail:t,ccMail:n,bccMail:r,subject:i,contents:a})},VO=zO.vendorColumns.map(e=>({...e,render:e=>e||`-`}));function HO(){let e=(0,c.useNavigate)(),t=(0,c.useLocation)(),{selectedIds:n=[],selectedRecords:s=[],recipients:l=[],subject:u=``,onSend:d,moduleName:f=``,popupAction:p={}}=t.state??{},m=n[0]??s[0]?._id??s[0]?.id,[h,g]=(0,r.useState)({to:l.join(`, `),cc:``,bcc:``,subject:u,contents:``,showCc:!1,showBcc:!1}),[_,v]=(0,r.useState)(!m),[y,b]=(0,r.useState)(zO.defaultTab),[x,S]=(0,r.useState)(``),[C,w]=(0,r.useState)([]),[T,E]=(0,r.useState)(0),[D,O]=(0,r.useState)(0),[k,A]=(0,r.useState)(0),[j,M]=(0,r.useState)(1),[N,P]=(0,r.useState)(zO.defaultPageSize),[F,I]=(0,r.useState)(!1),[L,R]=(0,r.useState)([]);(0,r.useEffect)(()=>{if(!m)return;let e=!1;I(!0);let t=x?100:N,n=x?0:(j-1)*N;return BO.getVendorList({jobId:m,limit:t,offset:n,type:y}).then(t=>{if(e)return;let n=t?.data?.vendorList??t?.data??[],r=t?.data?.myVendorCount??0,i=t?.data?.allVendorCount??0;w(Array.isArray(n)?n:[]),E(r),O(i),A(y===`myVendor`?r:i)}).catch(()=>{e||(w([]),A(0))}).finally(()=>{e||I(!1)}),()=>{e=!0}},[m,y,j,N,x]),(0,r.useEffect)(()=>{m&&BO.getMailDetails(m).then(e=>g(t=>({...t,subject:e.subject||t.subject,contents:e.contents||t.contents,to:e.toMail?.length?Array.isArray(e.toMail)?e.toMail.join(`, `):String(e.toMail):t.to,cc:e.ccMail?.length?Array.isArray(e.ccMail)?e.ccMail.join(`, `):String(e.ccMail):t.cc}))).catch(()=>{}).finally(()=>v(!0))},[m]);let z=(0,r.useMemo)(()=>L.map(e=>C.find(t=>t.vendorId===e)?.vendorEmail??``).filter(Boolean),[L,C]),B=(0,r.useMemo)(()=>({...h,bcc:[...new Set([...jw(h.bcc),...z])].join(`, `),showBcc:h.showBcc||z.length>0}),[h,z]);function ee(e){let t=new Set(z);g({...e,bcc:jw(e.bcc).filter(e=>!t.has(e)).join(`, `)})}let V=(jw(B.to).length||jw(B.bcc).length)&&Mw(B.to)&&Mw(B.cc)&&Mw(B.bcc)&&B.subject.trim(),H=e=>e===`myVendor`?T:D;function U(){e(-1)}function te(){V&&BO.submit({jobId:m,toMail:jw(B.to),ccMail:jw(B.cc),bccMail:jw(B.bcc),subject:B.subject,contents:B.contents}).then(t=>{t?.status===!0?(i.message.success(t?.data||`Mail sent successfully.`),typeof d==`function`&&d({...B,message:B.contents,selectedIds:n}),e(-1)):i.message.error(t?.message||t?.data||`Failed to send mail. Please try again.`)}).catch(e=>{i.message.error(e?.message||`Failed to send mail. Please try again.`)})}let ne=(0,r.useMemo)(()=>{if(!x)return C;let e=x.toLowerCase();return C.filter(t=>(t.vendorName??``).toLowerCase().includes(e)||(t.vendorEmail??``).toLowerCase().includes(e)||(t.vendorLocation??``).toLowerCase().includes(e))},[C,x]);return(0,o.jsx)(i.Drawer,{open:!0,placement:`right`,onClose:U,closable:!1,rootClassName:`vendor-share`,width:`95%`,footer:(0,o.jsxs)(`div`,{className:`vendor-share__footer`,children:[(0,o.jsx)(i.Button,{onClick:U,children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,disabled:!V,onClick:te,children:`Send`})]}),children:(0,o.jsxs)(`div`,{className:`vendor-share__body`,children:[(0,o.jsxs)(`div`,{className:`vendor-share__left`,children:[(0,o.jsxs)(`div`,{className:`vendor-share__vendor-header`,children:[(0,o.jsxs)(`div`,{className:`vendor-share__vendor-header-row`,children:[(0,o.jsx)(i.Button,{type:`text`,icon:(0,o.jsx)(a.CloseOutlined,{}),onClick:U,size:`small`,style:{marginRight:8}}),(0,o.jsx)(`span`,{className:`dynamic-popup__header-icon-box`,children:(0,o.jsx)(a.TeamOutlined,{})}),(0,o.jsx)(`span`,{className:`dynamic-popup__header-label`,children:`Vendor List`}),(0,o.jsxs)(`div`,{className:`vendor-share__vendor-search`,children:[(0,o.jsx)(a.SearchOutlined,{className:`vendor-share__search-icon`}),(0,o.jsx)(i.Input,{variant:`borderless`,placeholder:`Search vendor`,value:x,onChange:e=>{S(e.target.value),M(1)},className:`vendor-share__search-input`})]})]}),(0,o.jsx)(`div`,{className:`vendor-share__vendor-tabs`,children:zO.vendorTabs.map(e=>(0,o.jsxs)(`span`,{className:`vendor-share__vendor-tab${y===e.key?` vendor-share__vendor-tab--active`:``}`,onClick:()=>{b(e.key),M(1),R([])},children:[e.label,` (`,H(e.key),`)`]},e.key))})]}),(0,o.jsx)(`div`,{className:`vendor-share__vendor-table-wrapper`,children:(0,o.jsx)(i.Table,{rowKey:e=>e.vendorId,columns:VO,dataSource:ne,loading:F,pagination:!1,size:`small`,rowSelection:{selectedRowKeys:L,onChange:e=>{e.length>zO.maxVendorSelect||R(e)}},scroll:{y:`calc(100vh - 340px)`}})}),(0,o.jsx)(`div`,{className:`vendor-share__vendor-footer`,children:(0,o.jsx)(Ae,{current:j,pageSize:N,total:k,onChange:e=>M(e),onPageSizeChange:e=>P(e)})})]}),(0,o.jsx)(`div`,{className:`vendor-share__right`,children:(0,o.jsx)(Lw,{value:B,onChange:ee,moduleName:f,defaultTemplateId:p.defaultTemplateId??t.state?.defaultTemplateId??``,ready:_,contextRecords:s,title:`Share`,hint:`Select vendors or add email addresses`,bccHint:`Vendor emails are added automatically`,afterBcc:L.length>0?(0,o.jsxs)(`div`,{className:`vendor-share__selected-count`,children:[L.length,` / `,zO.maxVendorSelect,` Vendors selected`]}):null})})]})})}var UO={EMAIL:/^[a-zA-Z0-9._%+-]+@[a-zA-Z][a-zA-Z-]*\.[a-zA-Z]{2,}$/,PHONE:/^[0-9]{10}$/,PASSWORD:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,ALPHABETS:/^[A-Za-z ]+$/,ALPHANUMERIC:/^(?!\s)[A-Za-z0-9 ]+$/,NUMBER:/^[0-9]+$/,URL:/^(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+(com|org|net|in|co|io|gov|edu)(\/[^\s]*)?$/i,CANDIDATE_ID:/^[A-Za-z0-9-]+$/,REMARKS:/^[A-Za-z0-9\s.,'"\-()!?/@#$%&]*$/,DESIGNATION:/^[a-zA-Z0-9\s,.\-&()]{2,100}$/,DOB:/^(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])\/\d{4}$/,COMPANY_NAME:/^[A-Za-z0-9\s&.,'()-]+$/,FIRST_NAME:/^[A-Z][a-zA-Z]*$/,FULL_NAME:/^[A-Z][a-zA-Z]*(?: [A-Z][a-zA-Z]*)*$/,NO_SPACES:/^\S+$/,STARTS_WITH_CAPITAL:/^[A-Z].*$/},WO={SINGLE_FILE_COUNT:1,MULTI_FILE_COUNT:5,MAX_FILE_SIZE:2,ALLOWED_FILE_TYPES:[`image/jpeg`,`image/png`,`application/pdf`]},GO={REQUIRED:e=>`Mandatory Field`,INVALID_EMAIL:`Please enter a valid email address.`,INVALID_PHONE:`Phone number must contain exactly 10 digits.`,INVALID_PASSWORD:`Password must contain uppercase, lowercase, number, special character and minimum 8 characters.`,INVALID_ALPHABETS:`Only alphabets and spaces are allowed.`,INVALID_ALPHANUMERIC:`Only letters, numbers and spaces are allowed.`,INVALID_NUMBER:`Only numbers are allowed.`,INVALID_URL:`Please enter a valid URL.`,INVALID_CANDIDATE_ID:e=>`${e} can contain only letters, numbers and hyphens.`,INVALID_REMARKS:`Remarks contain invalid characters.`,INVALID_DESIGNATION:`Designation contains invalid characters.`,INVALID_DOB:`DOB must be in MM/DD/YYYY format.`,INVALID_LINKEDIN:`Please enter a valid LinkedIn URL.`,INVALID_COMPANY_NAME:`Company name contains invalid characters.`,INVALID_FIRST_NAME:`First letter must be capital and spaces are not allowed.`,INVALID_FULL_NAME:`Each word must start with a capital letter.`,NO_SPACES_ALLOWED:`Spaces are not allowed.`,MUST_START_WITH_CAPITAL:`First letter must be capital.`,INVALID_FILE_TYPE:`Only JPG, PNG and PDF files are allowed.`,INVALID_FILE_SIZE:`File upload must be ${WO.MAX_FILE_SIZE} MB below.`,INVALID_FILE_TYPE:`Only JPG, PNG and PDF files are allowed.`,SINGLE_FILE_ONLY:`Only one file can be uploaded.`},KO={FIRST_NAME_MIN:3,FIRST_NAME_MAX:30},qO={REMARKS_MIN:10,REMARKS_MAX:250},JO={removeSpaces:(e=``)=>e.replace(/\s/g,``),capitalizeFirstLetter:(e=``)=>e.charAt(0).toUpperCase()+e.slice(1),capitalizeWords:(e=``)=>e.replace(/\b\w/g,e=>e.toUpperCase()),removeExtraSpaces:(e=``)=>e.replace(/\s+/g,` `).trim(),firstNameFormatter:(e=``)=>e.replace(/\s+/g,` `).trimStart().replace(/\b\w/g,e=>e.toUpperCase()),fullNameFormatter:(e=``)=>e.replace(/\s+/g,` `).trimStart().replace(/\b\w/g,e=>e.toUpperCase()),phoneFormatter:(e=``)=>e.replace(/\D/g,``).slice(0,10),dobFormatter:(e=``)=>{let t=e.replace(/\D/g,``);return t.length<=2?t:t.length<=4?`${t.slice(0,2)}/${t.slice(2)}`:`${t.slice(0,2)}/${t.slice(2,4)}/${t.slice(4,8)}`}},YO={required:(e=`Field`)=>({required:!0,message:GO.REQUIRED(e)}),email:()=>({pattern:UO.EMAIL,message:GO.INVALID_EMAIL}),phone:()=>({pattern:UO.PHONE,message:GO.INVALID_PHONE}),password:()=>({pattern:UO.PASSWORD,message:GO.INVALID_PASSWORD}),alphabets:()=>({pattern:UO.ALPHABETS,message:GO.INVALID_ALPHABETS}),alphanumeric:()=>({pattern:UO.ALPHANUMERIC,message:GO.INVALID_ALPHANUMERIC}),number:()=>({pattern:UO.NUMBER,message:GO.INVALID_NUMBER}),url:()=>({pattern:UO.URL,message:GO.INVALID_URL}),candidateId:(e=`ID`)=>({pattern:UO.CANDIDATE_ID,message:GO.INVALID_CANDIDATE_ID(e)}),remarks:()=>({pattern:UO.REMARKS,message:GO.INVALID_REMARKS,REMARKS_MIN:`Remarks must be at least ${qO.REMARKS_MIN} characters.`,REMARKS_MAX:`Remarks must not exceed ${qO.REMARKS_MAX} characters.`}),designation:()=>({pattern:UO.DESIGNATION,message:GO.INVALID_DESIGNATION}),dob:(e=!0)=>({validator:(t,n)=>{if(!n)return e?Promise.reject(Error(`Date of Birth is required.`)):Promise.resolve();if(!UO.DOB.test(n))return Promise.reject(Error(GO.INVALID_DOB));let r=(0,s.default)(n,`MM/DD/YYYY`,!0);if(!r.isValid())return Promise.reject(Error(GO.INVALID_DOB));let i=(0,s.default)().endOf(`day`);return r.isAfter(i)?Promise.reject(Error(`Date of Birth cannot be a future date.`)):i.diff(r,`year`)<21?Promise.reject(Error(`Age must be at least 21 years.`)):Promise.resolve()}}),linkedin:()=>({pattern:UO.LINKEDIN,message:GO.INVALID_LINKEDIN}),companyName:()=>({pattern:UO.COMPANY_NAME,message:GO.INVALID_COMPANY_NAME}),firstName:()=>({pattern:UO.FIRST_NAME,message:GO.INVALID_FIRST_NAME,FIRST_NAME_MIN:`First Name must be at least ${KO.FIRST_NAME_MIN} characters.`,FIRST_NAME_MAX:`First Name must not exceed ${KO.FIRST_NAME_MAX} characters.`}),firstNameMinLength:()=>({min:KO.FIRST_NAME_MIN,message:GO.FIRST_NAME_MIN}),firstNameMaxLength:()=>({max:KO.FIRST_NAME_MAX,message:GO.FIRST_NAME_MAX}),remarksMinLength:()=>({min:qO.REMARKS_MIN,message:GO.REMARKS_MIN}),remarksMaxLength:()=>({max:qO.REMARKS_MAX,message:GO.REMARKS_MAX}),fullName:()=>({pattern:UO.FULL_NAME,message:GO.INVALID_FULL_NAME}),noSpaces:()=>({pattern:UO.NO_SPACES,message:GO.NO_SPACES_ALLOWED}),startsWithCapital:()=>({pattern:UO.STARTS_WITH_CAPITAL,message:GO.MUST_START_WITH_CAPITAL}),fileUpload:()=>({validator:(e,t)=>{if(!t||t.length===0)return Promise.resolve();for(let e of t){let t=e.originFileObj||e;if(!(t.size/1024/1024<=WO.MAX_FILE_SIZE))return i.message.error(GO.INVALID_FILE_SIZE),Promise.reject(Error(GO.INVALID_FILE_SIZE));if(!WO.ALLOWED_FILE_TYPES.includes(t.type))return Promise.reject(Error(GO.INVALID_FILE_TYPE))}return Promise.resolve()}}),singleFileUpload:()=>({validator:(e,t)=>{if(!t||t.length===0)return Promise.resolve();if(t.length>WO.SINGLE_FILE_COUNT)return Promise.reject(Error(GO.SINGLE_FILE_ONLY));let n=t[0];return n.size/1024/1024<WO.MAX_FILE_SIZE?WO.ALLOWED_FILE_TYPES.includes(n.type)?Promise.resolve():Promise.reject(Error(GO.INVALID_FILE_TYPE)):Promise.reject(Error(GO.INVALID_FILE_SIZE))}}),multiFileUpload:()=>({validator:(e,t)=>{if(!t||t.length===0)return Promise.resolve();if(t.length>WO.MULTI_FILE_COUNT)return Promise.reject(Error(GO.INVALID_FILE_COUNT));for(let e of t){if(!(e.size/1024/1024<WO.MAX_FILE_SIZE))return Promise.reject(Error(GO.INVALID_FILE_SIZE));if(!WO.ALLOWED_FILE_TYPES.includes(e.type))return Promise.reject(Error(GO.INVALID_FILE_TYPE))}return Promise.resolve()}})},XO={beforeUpload:e=>[`image/jpeg`,`image/png`,`application/pdf`].includes(e.type)?e.size/1024/1024<=2?!1:(i.message.error(`File upload must be 2 MB below.`),i.Upload.LIST_IGNORE):(i.message.error(`Only JPG, PNG and PDF files are allowed.`),i.Upload.LIST_IGNORE)},ZO=()=>{let[e]=i.Form.useForm();return(0,o.jsx)(`div`,{style:{padding:24},children:(0,o.jsxs)(i.Form,{form:e,layout:`vertical`,onFinish:e=>{console.log(`Form Values:`,e)},autoComplete:`off`,children:[(0,o.jsxs)(i.Row,{gutter:16,children:[(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Email`,name:`email`,rules:[YO.required(`Email`),YO.email()],children:(0,o.jsx)(i.Input,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Phone Number`,name:`phone`,rules:[YO.required(`Phone Number`),YO.phone()],validateTrigger:[`onBlur`,`onChange`],children:(0,o.jsx)(i.Input,{maxLength:10,onChange:t=>{e.setFieldsValue({phone:JO.phoneFormatter(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Password`,name:`password`,rules:[YO.required(`Password`),YO.password()],children:(0,o.jsx)(i.Input.Password,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Full Name`,name:`fullName`,rules:[YO.required(`Full Name`),YO.alphabets(),YO.firstNameMinLength(),YO.firstNameMaxLength()],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({fullName:JO.firstNameFormatter(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Username`,name:`username`,rules:[YO.required(`Username`),YO.alphanumeric()],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({username:JO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Website URL`,name:`website`,rules:[YO.required(`Website URL`),YO.url()],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({website:JO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`MSP Req ID`,name:`mspreqID`,rules:[YO.required(`MSP Req ID`),YO.candidateId(`MSP Req ID`)],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({mspreqID:JO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Candidate ID`,name:`candidateId`,rules:[YO.required(`Candidate ID`),YO.candidateId(`Candidate ID`)],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({candidateId:JO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:24,children:(0,o.jsx)(i.Form.Item,{label:`Remarks`,name:`remarks`,rules:[YO.required(`Remarks`),YO.remarks(),YO.remarksMinLength(),YO.remarksMaxLength()],children:(0,o.jsx)(i.Input.TextArea,{rows:4})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Designation`,name:`designation`,rules:[YO.required(`Designation`),YO.designation()],children:(0,o.jsx)(i.Input,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Date of Birth`,name:`dob`,rules:[YO.dob()],children:(0,o.jsx)(i.Input,{placeholder:`MM/DD/YYYY`,maxLength:10,onChange:t=>{e.setFieldsValue({dob:JO.dobFormatter(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Company Name`,name:`companyName`,rules:[YO.required(`Company Name`),YO.companyName()],children:(0,o.jsx)(i.Input,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{name:`contractType`,label:`Contract Type`,children:(0,o.jsxs)(i.Select,{showSearch:!0,allowClear:!0,filterOption:(e,t)=>(t?.label??``).toLowerCase().includes(e.toLowerCase()),children:[(0,o.jsx)(i.Select.Option,{value:`C2C`,label:`C2C`,children:`C2C`}),(0,o.jsx)(i.Select.Option,{value:`W2-Contract`,label:`W2-Contract`,children:`W2-Contract`}),(0,o.jsx)(i.Select.Option,{value:`W2-Fulltime`,label:`W2-Fulltime`,children:`W2-Fulltime`}),(0,o.jsx)(i.Select.Option,{value:`1099`,label:`1099`,children:`1099`})]})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{name:`candidateProposedRateCurrency`,label:`Currency`,children:(0,o.jsxs)(i.Select,{showSearch:!0,allowClear:!0,children:[(0,o.jsx)(i.Select.Option,{value:`$`,children:`$`}),(0,o.jsx)(i.Select.Option,{value:`₹`,children:`₹`}),(0,o.jsx)(i.Select.Option,{value:`€`,children:`€`}),(0,o.jsx)(i.Select.Option,{value:`zł`,children:`zł`}),(0,o.jsx)(i.Select.Option,{value:`£`,children:`£`}),(0,o.jsx)(i.Select.Option,{value:`kr`,children:`kr`}),(0,o.jsx)(i.Select.Option,{value:`Fr`,children:`Fr`}),(0,o.jsx)(i.Select.Option,{value:`kr`,children:`kr`})]})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Resume new`,name:`resume`,children:(0,o.jsx)(i.Upload,{beforeUpload:XO.beforeUpload,maxCount:1,children:(0,o.jsx)(i.Button,{children:`Upload Resume`})})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Documents`,name:`documents`,valuePropName:`fileList`,getValueFromEvent:e=>e?.fileList,rules:[YO.multiFileUpload()],children:(0,o.jsx)(i.Upload,{multiple:!0,beforeUpload:XO.beforeUpload,children:(0,o.jsx)(i.Button,{children:`Upload Documents`})})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Upload File`,name:`file`,valuePropName:`fileList`,getValueFromEvent:e=>e?.fileList,rules:[YO.fileUpload()],children:(0,o.jsx)(i.Upload,{beforeUpload:XO.beforeUpload,maxCount:1,children:(0,o.jsx)(i.Button,{children:`Upload`})})})})]}),(0,o.jsx)(i.Row,{children:(0,o.jsx)(i.Form.List,{name:`users`,children:(e,{add:t,remove:n})=>(0,o.jsxs)(o.Fragment,{children:[e.map(({key:e,name:t,...r})=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{required:!0,...r,rules:[{required:!0,message:`First name is requried`}],name:[t,`first`],children:(0,o.jsx)(i.Input,{placeholder:`First Name`})})}),(0,o.jsx)(i.Col,{span:11,children:(0,o.jsx)(i.Form.Item,{...r,required:!0,name:[t,`last`],children:(0,o.jsx)(i.Input,{placeholder:`Last Name`})})}),(0,o.jsx)(i.Col,{span:1,children:(0,o.jsx)(a.MinusCircleOutlined,{onClick:()=>n(t)})})]})),(0,o.jsx)(i.Form.Item,{children:(0,o.jsx)(i.Button,{type:`dashed`,onClick:()=>t(),block:!0,icon:(0,o.jsx)(a.PlusOutlined,{}),children:`Add field`})})]})})}),(0,o.jsxs)(i.Form.Item,{children:[(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,children:`Submit`}),(0,o.jsx)(i.Button,{style:{marginLeft:10},onClick:()=>e.resetFields(),children:`Reset`})]})]})})};function QO(e){return(0,o.jsx)(bv,{children:(0,o.jsx)(Ew,{...e})})}var{Text:$O}=i.Typography,ek=[{label:`Total Jobs`,value:1697,icon:`fileText`},{label:`Active Jobs`,value:1685,icon:`checkCircle`},{label:`My Jobs`,value:600,icon:`user`}],tk={fileText:(0,o.jsx)(a.FileTextOutlined,{}),checkCircle:(0,o.jsx)(a.CheckCircleOutlined,{}),user:(0,o.jsx)(a.UserOutlined,{}),filter:(0,o.jsx)(a.FilterOutlined,{})};function nk({stats:e=ek}){return(0,o.jsx)(i.Card,{children:(0,o.jsx)(i.Row,{gutter:[12,12],children:e.map(e=>(0,o.jsx)(i.Col,{xs:24,sm:24,md:8,lg:8,xl:8,children:(0,o.jsxs)(i.Card,{className:`stats-inner-card`,children:[(0,o.jsxs)(i.Space,{align:`center`,children:[tk[e.icon]??tk.fileText,(0,o.jsx)($O,{children:e.label})]}),(0,o.jsx)(i.Statistic,{value:e.value})]})},e.label))})})}var{Text:rk}=i.Typography;function ik(e){return e?.USER_NAME??e?.user_name??e?.username??e?.name??e?.full_name??e?.fullName??e?.email??`User ${e?.USER_ID??e?.user_id??`?`}`}function ak(e){return{...e,key:e.USER_ID??e.user_id??e.userId??e.id??e._id,_name:ik(e),_email:e.email??e.EMAIL??e.user_email??``,_role:e.role_name??e.roleName??e.ROLE_NAME??``,_rawRef:e}}function ok(){let[t,n]=(0,r.useState)([]),[s,c]=(0,r.useState)(0),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(1),[p,m]=(0,r.useState)(10),[h,g]=(0,r.useState)(``),_=(0,r.useCallback)(async({offset:t,limit:r,searchQuery:a}={})=>{u(!0);try{let i=await e.lr({offset:t,limit:r,searchQuery:a??``}),o=(i.users??[]).map(ak);n(o),c(i.total??o.length)}catch{i.message.error(`Failed to load users`)}finally{u(!1)}},[]);return(0,r.useEffect)(()=>{queueMicrotask(()=>{_({offset:(d-1)*p,limit:p,searchQuery:h})})},[_,d,p,h]),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.TeamOutlined,{}),title:`Users`,style:{marginBottom:0},bodyStyle:{padding:0},children:(0,o.jsx)(im,{listName:`Users`,dataSource:t,fields:[{label:`Name`,value:`_name`,width:220,render:(e,t)=>(0,o.jsxs)(`div`,{children:[(0,o.jsx)(rk,{strong:!0,style:{fontSize:13},children:e}),t._email&&(0,o.jsx)(`div`,{style:{fontSize:11,color:`var(--color-text-muted)`},children:t._email})]})},{label:`Role`,value:`_role`,width:180}],loading:l,total:s,current:d,pageSize:p,onPageChange:e=>f(e),onPageSizeChange:e=>{m(e),f(1)},onSearch:e=>{g(e),f(1)}})})}var{Text:sk}=i.Typography,ck=[{key:`job`,label:`Jobs`},{key:`candidate`,label:`Candidates`},{key:`submissions`,label:`Submissions`}],lk=[{key:`listView`,label:`List View`},{key:`filter`,label:`Filter`},{key:`form`,label:`Form`}];function uk({field:e,index:t,onToggle:n,onReorder:s}){let c=(0,r.useRef)(null),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(!1);function p(e){c.current=t,e.dataTransfer.effectAllowed=`move`,f(!0)}function m(){f(!1),u(!1)}function h(e){e.preventDefault(),u(!0)}function g(){u(!1)}function _(e){e.preventDefault(),u(!1),c.current!==null&&c.current!==t&&s(c.current,t),c.current=null}return(0,o.jsxs)(`div`,{draggable:!0,onDragStart:p,onDragEnd:m,onDragOver:h,onDragLeave:g,onDrop:_,className:`uss-field-row with-edit${l?` drag-over`:``}${d?` dragging`:``}`,children:[(0,o.jsx)(`span`,{className:`uss-drag-handle`,children:(0,o.jsx)(a.HolderOutlined,{})}),(0,o.jsxs)(`span`,{className:`uss-field-name`,children:[e.fieldName,(0,o.jsx)(`span`,{className:`uss-field-key`,children:e.fieldKey})]}),(0,o.jsx)(`span`,{className:`uss-toggle-cell`,children:(0,o.jsx)(i.Switch,{size:`small`,checked:e.isVisible,onChange:e=>n(t,`isVisible`,e)})}),(0,o.jsx)(`span`,{className:`uss-toggle-cell`,children:(0,o.jsx)(i.Switch,{size:`small`,checked:!!e.isEditable,onChange:e=>n(t,`isEditable`,e)})}),(0,o.jsx)(`span`,{className:`uss-toggle-cell`,children:(0,o.jsx)(i.Switch,{size:`small`,checked:!!e.ismandatory,onChange:e=>n(t,`ismandatory`,e)})})]})}function dk({team:t,configType:n}){let[a,s]=(0,r.useState)({}),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)({}),[f,p]=(0,r.useState)(`job`);(0,r.useEffect)(()=>{t&&(l(!0),e.zr(t,n).then(s).catch(()=>i.message.error(`Failed to load field config`)).finally(()=>l(!1)))},[t,n]);let m=a[f]??[];function h(e,t){s(n=>({...n,[e]:typeof t==`function`?t(n[e]??[]):t}))}function g(e,t,n){h(f,r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}function _(e,t){h(f,n=>{let r=[...n],[i]=r.splice(e,1);return r.splice(t,0,i),r.map((e,t)=>({...e,order:t}))})}async function v(){let r=f;d(e=>({...e,[r]:!0}));try{await e.ui(t,r,m,n),i.message.success(`Saved`)}catch{i.message.error(`Save failed`)}finally{d(e=>({...e,[r]:!1}))}}return(0,o.jsxs)(i.Spin,{spinning:c,children:[(0,o.jsx)(i.Tabs,{size:`small`,activeKey:f,onChange:p,items:ck.map(e=>({key:e.key,label:e.label}))}),(0,o.jsxs)(`div`,{className:`uss-field-header with-edit`,children:[(0,o.jsx)(`span`,{}),(0,o.jsx)(`span`,{children:`Field`}),(0,o.jsx)(`span`,{style:{textAlign:`center`},children:`Visible`}),(0,o.jsx)(`span`,{style:{textAlign:`center`},children:`Editable`}),(0,o.jsx)(`span`,{style:{textAlign:`center`},children:`Mandatory`})]}),(0,o.jsxs)(`div`,{className:`uss-field-list`,children:[m.length===0&&!c&&(0,o.jsx)(`div`,{className:`uss-empty`,children:`No fields found.`}),m.map((e,t)=>(0,o.jsx)(uk,{field:e,index:t,onToggle:g,onReorder:_},e.fieldKey??t))]}),(0,o.jsx)(`div`,{className:`uss-modal-footer`,children:(0,o.jsxs)(i.Button,{type:`primary`,size:`small`,loading:u[f],onClick:v,children:[`Save `,ck.find(e=>e.key===f)?.label]})})]})}function fk(){let[t,n]=(0,r.useState)(null),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(`listView`),[p,m]=(0,r.useState)([]),[h,g]=(0,r.useState)(0),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(``),[x,S]=(0,r.useState)(!1),C=(0,r.useCallback)(async()=>{v(!0);try{let t=await e.cr();m(t.teams),g(t.total)}catch{i.message.error(`Failed to load teams`)}finally{v(!1)}},[]);(0,r.useEffect)(()=>{C()},[C]);function w(e){n(e),f(`listView`),c(!0)}function T(e){n(e),b(e.teamName??``),u(!0)}async function E(){if(!y.trim()){i.message.warning(`Team name is required`);return}S(!0);try{await e.li(t,{teamName:y.trim(),managerId:t.managerId,memberIds:t.memberIds}),i.message.success(`Team updated`),u(!1),C()}catch{i.message.error(`Failed to update team`)}finally{S(!1)}}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Z,{icon:(0,o.jsx)(a.TeamOutlined,{}),title:`Teams`,style:{marginBottom:0},bodyStyle:{padding:0},children:(0,o.jsx)(im,{listName:`Teams`,dataSource:p,fields:[{label:`Team Name`,value:`teamName`,width:200},{label:`Manager`,value:`manager`,width:200},{label:`Members`,value:`memberCount`,width:90,sorter:!1},{label:`Actions`,value:`_actions`,width:160,sorter:!1,render:(e,t)=>(0,o.jsxs)(`div`,{style:{display:`flex`,gap:4},children:[(0,o.jsx)(i.Button,{size:`small`,type:`link`,onClick:()=>T(t),children:`Edit`}),(0,o.jsx)(i.Button,{size:`small`,type:`link`,onClick:()=>w(t),children:`Configure`})]})}],loading:_,total:h})}),(0,o.jsx)(i.Modal,{open:l,onCancel:()=>u(!1),title:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.TeamOutlined,{style:{color:`var(--color-brand)`,marginRight:6}}),`Edit Team`]}),width:420,footer:null,destroyOnClose:!0,children:(0,o.jsxs)(`div`,{className:`uss-edit-team-body`,style:{paddingTop:12},children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{className:`uss-edit-team-label`,children:`Team Name`}),(0,o.jsx)(i.Input,{value:y,onChange:e=>b(e.target.value),onPressEnter:E,placeholder:`Enter team name`})]}),(0,o.jsxs)(`div`,{className:`uss-modal-footer`,children:[(0,o.jsx)(i.Button,{onClick:()=>u(!1),children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,loading:x,onClick:E,children:`Save`})]})]})}),(0,o.jsxs)(i.Modal,{className:`uss-modal`,open:s,onCancel:()=>c(!1),title:(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,o.jsx)(a.TeamOutlined,{style:{color:`var(--color-brand)`}}),(0,o.jsxs)(`span`,{children:[`Configure: `,t?.teamName]})]}),width:720,footer:null,destroyOnClose:!0,children:[(0,o.jsx)(`div`,{style:{marginBottom:12},children:(0,o.jsx)(`div`,{className:`uss-config-toggle`,children:lk.map(e=>(0,o.jsx)(`button`,{className:`uss-config-btn${d===e.key?` active`:``}`,onClick:()=>f(e.key),children:e.label},e.key))})}),t&&(0,o.jsx)(dk,{team:t,configType:d},`${t?.teamId}-${d}`)]})]})}var pk=[`view`,`add`,`edit`,`delete`],mk={view:`View`,add:`Add`,edit:`Edit`,delete:`Delete`,sourcing:`Sourcing`,assign:`Assign`,share:`Share`,change_status:`Status`,my_jobs:`My Jobs`,all_jobs:`All Jobs`,po_msa:`PO MSA`,reApprove:`ReApprove`,sendApprove:`Send Approve`};function hk(e){return mk[e]??e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function gk(e){let t=pk.filter(t=>e.includes(t)),n=e.filter(e=>!pk.includes(e)).sort();return[...t,...n]}function _k(e){let t=new Set;return Object.values(e).forEach(({permissions:e})=>Object.keys(e??{}).forEach(e=>t.add(e))),gk([...t])}function vk(e){let t=0,n=0;return Object.entries(e).forEach(([e,{permissions:r}])=>{Object.entries(r??{}).forEach(([r,{value:i}])=>{Ay(e,r)&&(n++,i===`1`&&t++)})}),{enabled:t,total:n}}function yk(e={}){if(!e||typeof e!=`object`)return e;let t=Object.keys(e).find(e=>String(e).trim().toLowerCase()===`onboarding`);if(!t)return e;let n=e[t]??{},r={...n.permissions??{}};for(let e of[`sendApprove`,`reApprove`])Object.keys(r).some(t=>t.toLowerCase()===e.toLowerCase())||(r[e]={id:0,value:`0`});return{...e,[t]:{...n,permissions:r}}}function bk({value:e,onSave:t,className:n}){let[i,s]=(0,r.useState)(!1),[c,l]=(0,r.useState)(e);(0,r.useEffect)(()=>{l(e)},[e]);function u(){s(!1);let n=c.trim();n&&n!==e?t(n):l(e)}return i?(0,o.jsx)(`input`,{autoFocus:!0,className:`perm-inline-input${n?` ${n}`:``}`,value:c,style:{width:Math.max(48,c.length*8)},onChange:e=>l(e.target.value),onBlur:u,onKeyDown:t=>{t.key===`Enter`&&u(),t.key===`Escape`&&(s(!1),l(e)),t.stopPropagation()},onClick:e=>e.stopPropagation()}):(0,o.jsxs)(`span`,{className:`perm-editable-name${n?` ${n}`:``}`,onDoubleClick:e=>{e.stopPropagation(),s(!0)},children:[e,(0,o.jsx)(a.EditOutlined,{className:`perm-name-edit-icon`})]})}function xk({entry:e,label:t,onToggle:n,onLabelSave:s}){let[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(t),f=e?.value===`1`,p=!!e;(0,r.useEffect)(()=>{d(t)},[t]);function m(){l(!1);let e=u.trim();e&&e!==t?s(e):d(t)}return(0,o.jsx)(i.Tooltip,{title:p?f?`Click to disable`:`Click to enable`:`Not applicable for this module`,children:(0,o.jsxs)(`div`,{className:`perm-action-pill${f?` on`:``}${p?``:` na`}`,onClick:()=>{!c&&p&&n()},children:[(0,o.jsx)(`span`,{className:`perm-action-pill-dot${f?` on`:``}`}),c?(0,o.jsx)(`input`,{autoFocus:!0,className:`perm-pill-input`,value:u,style:{width:Math.max(36,u.length*7)},onChange:e=>d(e.target.value),onBlur:m,onKeyDown:e=>{e.key===`Enter`&&m(),e.key===`Escape`&&(l(!1),d(t)),e.stopPropagation()},onClick:e=>e.stopPropagation()}):(0,o.jsx)(`span`,{className:`perm-action-pill-label`,onDoubleClick:e=>{e.stopPropagation(),l(!0)},children:t}),f&&!c&&(0,o.jsx)(a.CheckOutlined,{className:`perm-action-pill-check`})]})})}function Sk({menuName:e,menuData:t,permKeys:n,onChange:r,displayName:i,actionLabels:a,onModuleLabelSave:s,onActionLabelSave:c}){let l=t?.permissions??{},u=n.filter(t=>Ay(e,t)),d=u.filter(e=>l[e]?.value===`1`).length,f=u.filter(e=>l[e]).length,p=f>0&&d===f;return(0,o.jsxs)(`div`,{className:`perm-module-card${p?` all-on`:d>0&&!p?` some-on`:``}`,children:[(0,o.jsxs)(`div`,{className:`perm-module-card-header`,children:[(0,o.jsx)(bk,{value:i,onSave:t=>s(e,t),className:`perm-module-card-name`}),f>0&&(0,o.jsxs)(`span`,{className:`perm-module-card-badge${d>0?` active`:``}`,children:[d,`/`,f]})]}),(0,o.jsx)(`div`,{className:`perm-module-card-body`,children:u.map(t=>(0,o.jsx)(xk,{entry:l[t],label:a[t]??hk(t),onToggle:()=>r(e,t),onLabelSave:e=>c(t,e)},t))})]})}function Ck({role:t,moduleLabels:n={},actionLabels:s={},onModuleLabelSave:c=()=>{},onActionLabelSave:l=()=>{}}){let[u,d]=(0,r.useState)({}),[f,p]=(0,r.useState)({}),[m,h]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(!1),b=e.Pr(t);(0,r.useEffect)(()=>{b&&(h(!0),y(!1),e.Lr(b).then(e=>{let t=yk(e);d(t),p(t)}).catch(()=>i.message.error(`Failed to load permissions`)).finally(()=>h(!1)))},[b]);function x(e,t){y(!0),p(n=>{let r=n[e]??{menuId:u[e]?.menuId??0,permissions:{}},i=r.permissions?.[t]??{id:0,value:`0`};return{...n,[e]:{...r,permissions:{...r.permissions,[t]:{...i,value:i.value===`1`?`0`:`1`}}}}})}async function S(){_(!0);try{await e.si(b,f),d(f),y(!1),i.message.success(`Permissions saved`)}catch(e){i.message.error(e?.message||`Save failed`)}finally{_(!1)}}let C=(0,r.useMemo)(()=>Object.keys(f).sort(),[f]),w=(0,r.useMemo)(()=>_k(f),[f]),{enabled:T,total:E}=(0,r.useMemo)(()=>vk(f),[f]);return(0,o.jsxs)(i.Spin,{spinning:m,children:[(0,o.jsxs)(`div`,{className:`perm-panel-header`,children:[(0,o.jsxs)(`div`,{className:`perm-panel-title`,children:[(0,o.jsx)(a.LockOutlined,{style:{color:`var(--color-brand)`,marginRight:6}}),(0,o.jsx)(`span`,{children:t?.roleName}),!m&&E>0&&(0,o.jsxs)(i.Tag,{color:`blue`,style:{marginLeft:8,fontSize:11},children:[T,`/`,E,` enabled`]})]}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,icon:(0,o.jsx)(a.UnlockOutlined,{}),loading:g,disabled:!v,onClick:S,children:`Save Changes`})]}),(0,o.jsxs)(`div`,{className:`perm-hint`,children:[(0,o.jsx)(a.InfoCircleOutlined,{className:`perm-hint-icon`}),(0,o.jsxs)(`span`,{children:[`Click a pill to toggle. `,(0,o.jsx)(`strong`,{children:`Double-click`}),` a module name or action label to rename it — labels are saved locally.`]})]}),C.length===0&&!m?(0,o.jsx)(`div`,{className:`perm-empty`,children:`No permission entries found for this role.`}):(0,o.jsx)(`div`,{className:`perm-cards-grid`,children:C.map(e=>(0,o.jsx)(Sk,{menuName:e,menuData:f[e],permKeys:w,onChange:x,displayName:n[e]??e,actionLabels:s,onModuleLabelSave:c,onActionLabelSave:l},e))})]})}var{Text:wk}=i.Typography,Tk=[{key:`listView`,label:`List View`},{key:`filter`,label:`Filter`},{key:`form`,label:`Form`},{key:`permissions`,label:`Permissions`}];function Ek(e){return String(e||``).replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim()}function Dk(e){return String(e||``).trim().toLowerCase()}function Ok(e){return e?.key||e?.collectionName||e?.value||``}function kk(e=[],t=[]){let n=[],r=new Set,i=new Set,a=new Set;return e.forEach(e=>{let t=Ok(e);if(!t)return;let o=Dk(e.key||t),s=Dk(e.collectionName);e.seeded&&(i.add(o),s&&i.add(s)),s&&a.add(s),r.add(t),n.push({label:e.label||Ek(t),value:t,disabled:!!e.seeded})}),t.forEach(e=>{let t=String(e||``).trim();if(!t||r.has(t))return;let o=Dk(t);a.has(o)||i.has(o)||(r.add(t),n.push({label:Ek(t),value:t,disabled:!1}))}),n}function Ak(){let[t,n]=(0,r.useState)(null),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(`listView`),[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(0),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)([]),[x,S]=(0,r.useState)(!1),[C,w]=(0,r.useState)(!1),T=(0,r.useMemo)(()=>_.filter(e=>!e.disabled),[_]),E=!x&&T.length===0,D=(0,r.useCallback)(async()=>{g(!0);try{let t=await e.sr();f(t.roles),m(t.total)}catch{i.message.error(`Failed to load roles`)}finally{g(!1)}},[]),O=(0,r.useCallback)(async()=>{S(!0);try{let[t,n]=await Promise.all([e.yr(),e.dr()]),r=kk(t.modules,n),i=new Set(r.filter(e=>!e.disabled).map(e=>e.value));v(r),b(e=>e.filter(e=>i.has(e)))}catch{i.message.error(`Failed to load seed status`)}finally{S(!1)}},[]);(0,r.useEffect)(()=>{D()},[D]),(0,r.useEffect)(()=>{O()},[O]);async function k(){if(y.length===0){i.message.warning(E?`All modules already seeded.`:`Select at least one module to seed.`);return}w(!0);try{await e.Qr(y),i.message.success(`Role field config seeded`),b([]),await O()}catch(e){i.message.error(e?.message||`Seed failed`)}finally{w(!1)}}function A(e,t=`listView`){n(e),u(t),c(!0)}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.AppstoreOutlined,{}),title:`Field Config Seed`,style:{marginBottom:12},children:[(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,flexWrap:`wrap`},children:[(0,o.jsx)(`div`,{style:{minWidth:320,flex:1},children:(0,o.jsx)(i.Select,{mode:`multiple`,allowClear:!0,showSearch:!0,value:y,options:_,placeholder:E?`All modules already seeded`:`Select modules or collections to seed`,disabled:x||C||E,loading:x,onChange:b,style:{width:`100%`}})}),(0,o.jsx)(i.Button,{type:`primary`,loading:C,disabled:x||y.length===0,onClick:k,children:`Seed Field Config`})]}),(0,o.jsx)(wk,{type:`secondary`,style:{display:`block`,marginTop:8,fontSize:12},children:E?`Seed is disabled because all configured modules already have role field config data.`:`Already seeded modules are disabled. New modules or collections can still be seeded.`})]}),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.SafetyOutlined,{}),title:`Roles`,style:{marginBottom:0},bodyStyle:{padding:0},children:(0,o.jsx)(im,{listName:`Roles`,dataSource:d,fields:[{label:`Role Name`,value:`roleName`,width:200},{label:`Description`,value:`description`,width:240},{label:`Users`,value:`userCount`,width:70,sorter:!1},{label:`Actions`,value:`_configure`,width:200,sorter:!1,render:(e,t)=>(0,o.jsxs)(i.Space,{size:2,children:[(0,o.jsx)(i.Button,{size:`small`,type:`link`,onClick:()=>A(t),children:`Configure`}),(0,o.jsx)(i.Button,{size:`small`,type:`link`,icon:(0,o.jsx)(a.LockOutlined,{}),onClick:()=>A(t,`permissions`),children:`Permissions`})]})}],loading:h,total:p})}),(0,o.jsxs)(i.Modal,{className:`uss-modal`,open:s,onCancel:()=>c(!1),title:(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,o.jsx)(a.SafetyOutlined,{style:{color:`var(--color-brand)`}}),(0,o.jsxs)(`span`,{children:[`Configure: `,t?.roleName]})]}),width:720,footer:null,destroyOnClose:!0,children:[(0,o.jsx)(`div`,{style:{marginBottom:12},children:(0,o.jsx)(`div`,{className:`uss-config-toggle`,children:Tk.map(e=>(0,o.jsx)(`button`,{className:`uss-config-btn${l===e.key?` active`:``}`,onClick:()=>u(e.key),children:e.label},e.key))})}),t&&(l===`permissions`?(0,o.jsx)(Ck,{role:t},t?.roleId):(0,o.jsx)(qy,{role:t,configType:l},`${t?.roleId}-${l}`))]})]})}var jk=`perm-module-labels`,Mk=`perm-action-labels`;function Nk(e){try{return JSON.parse(localStorage.getItem(e)??`{}`)}catch{return{}}}function Pk(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function Fk({label:e,onSave:t,onDelete:n,loading:s}){let[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(e);function f(){l(!1);let n=u.trim();n&&n!==e?t(n):d(e)}return(0,o.jsxs)(`div`,{className:`perm-manage-row`,children:[c?(0,o.jsx)(`input`,{autoFocus:!0,className:`perm-inline-input`,value:u,style:{flex:1,minWidth:0},onChange:e=>d(e.target.value),onBlur:f,onKeyDown:t=>{t.key===`Enter`&&f(),t.key===`Escape`&&(l(!1),d(e))}}):(0,o.jsx)(`span`,{className:`perm-manage-row-label`,children:e}),(0,o.jsxs)(`div`,{className:`perm-manage-row-actions`,children:[(0,o.jsx)(i.Button,{type:`text`,size:`small`,icon:(0,o.jsx)(a.EditOutlined,{}),onClick:()=>{d(e),l(!0)},loading:s}),(0,o.jsx)(i.Popconfirm,{title:`Delete this item?`,onConfirm:n,okText:`Delete`,cancelText:`Cancel`,okType:`danger`,children:(0,o.jsx)(i.Button,{type:`text`,size:`small`,icon:(0,o.jsx)(a.DeleteOutlined,{}),danger:!0})})]})]})}function Ik({open:t,onClose:n}){let[s,c]=(0,r.useState)(`modules`),[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(``),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(``),[C,w]=(0,r.useState)(``),[T,E]=(0,r.useState)(!1);(0,r.useEffect)(()=>{t&&(D(),O())},[t]);async function D(){f(!0);try{u(await e.Er())}catch{i.message.error(`Failed to load modules`)}finally{f(!1)}}async function O(){b(!0);try{v(await e.Tr())}catch{i.message.error(`Failed to load actions`)}finally{b(!1)}}async function k(){let t=p.trim();if(!t){i.message.warning(`Enter a module name`);return}g(!0);try{let n=await e.Un({menuName:t});u(e=>[...e,n]),m(``),i.message.success(`Module added`)}catch{i.message.error(`Failed to add module`)}finally{g(!1)}}async function A(t,n){try{await e.ri(t,{menuName:n}),u(e=>e.map(e=>e.MENUID===t?{...e,MENUNAME:n}:e))}catch{i.message.error(`Failed to update module`)}}async function j(t){try{await e.Qn(t),u(e=>e.filter(e=>e.MENUID!==t)),i.message.success(`Module deleted`)}catch{i.message.error(`Failed to delete module`)}}async function M(){let t=x.trim(),n=C.trim().toLowerCase().replace(/\s+/g,`_`);if(!t||!n){i.message.warning(`Enter both name and key`);return}E(!0);try{let r=await e.Hn({permissionName:t,permissionKey:n});v(e=>[...e,r]),S(``),w(``),i.message.success(`Action added`)}catch(e){i.message.error(e?.message?.includes(`409`)||e?.status===409?`Permission key already exists`:`Failed to add action`)}finally{E(!1)}}async function N(t,n){try{await e.ni(t,{permissionName:n}),v(e=>e.map(e=>e.permissionId===t?{...e,permissionName:n}:e))}catch{i.message.error(`Failed to update action`)}}async function P(t){try{await e.Zn(t),v(e=>e.filter(e=>e.permissionId!==t)),i.message.success(`Action deleted`)}catch{i.message.error(`Failed to delete action`)}}let F=[{key:`modules`,label:`Modules`,children:(0,o.jsxs)(i.Spin,{spinning:d,children:[(0,o.jsxs)(`div`,{className:`perm-manage-add-row`,children:[(0,o.jsx)(i.Input,{placeholder:`Module name`,value:p,onChange:e=>m(e.target.value),onPressEnter:k,style:{flex:1},size:`small`}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,icon:(0,o.jsx)(a.PlusOutlined,{}),loading:h,onClick:k,children:`Add`})]}),(0,o.jsxs)(`div`,{className:`perm-manage-list`,children:[l.length===0&&!d&&(0,o.jsx)(`div`,{className:`perm-empty`,style:{paddingTop:24},children:`No modules found`}),l.map(e=>(0,o.jsx)(Fk,{label:e.MENUNAME,onSave:t=>A(e.MENUID,t),onDelete:()=>j(e.MENUID)},e.MENUID))]})]})},{key:`actions`,label:`Actions`,children:(0,o.jsxs)(i.Spin,{spinning:y,children:[(0,o.jsxs)(`div`,{className:`perm-manage-add-row`,children:[(0,o.jsx)(i.Input,{placeholder:`Action name (e.g. Approve)`,value:x,onChange:e=>S(e.target.value),style:{flex:1},size:`small`}),(0,o.jsx)(i.Input,{placeholder:`Key (e.g. approve)`,value:C,onChange:e=>w(e.target.value),onPressEnter:M,style:{width:140},size:`small`}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,icon:(0,o.jsx)(a.PlusOutlined,{}),loading:T,onClick:M,children:`Add`})]}),(0,o.jsxs)(`div`,{className:`perm-manage-list`,children:[_.length===0&&!y&&(0,o.jsx)(`div`,{className:`perm-empty`,style:{paddingTop:24},children:`No actions found`}),_.map(e=>(0,o.jsx)(Fk,{label:`${e.permissionName} (${e.permissionKey})`,onSave:t=>N(e.permissionId,t),onDelete:()=>P(e.permissionId)},e.permissionId))]})]})}];return(0,o.jsx)(i.Modal,{open:t,onCancel:n,title:(0,o.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,o.jsx)(a.SettingOutlined,{style:{color:`var(--color-brand)`}}),`Manage Modules & Actions`]}),width:520,footer:null,destroyOnClose:!0,children:(0,o.jsx)(i.Tabs,{activeKey:s,onChange:c,size:`small`,items:F})})}function Lk(){let[t,n]=(0,r.useState)([]),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(()=>Nk(jk)),[_,v]=(0,r.useState)(()=>Nk(Mk)),y=(0,r.useCallback)((e,t)=>{g(n=>{let r={...n,[e]:t};return Pk(jk,r),r})},[]),b=(0,r.useCallback)((e,t)=>{v(n=>{let r={...n,[e]:t};return Pk(Mk,r),r})},[]);function x(){g({}),v({}),Pk(jk,{}),Pk(Mk,{}),i.message.success(`Labels reset to defaults`)}let S=(0,r.useCallback)(async()=>{c(!0);try{let{roles:t}=await e.sr();n(t),t.length>0&&u(t[0])}catch{i.message.error(`Failed to load roles`)}finally{c(!1)}},[]);(0,r.useEffect)(()=>{S()},[S]);let C=(0,r.useMemo)(()=>{let e=d.trim().toLowerCase();return e?t.filter(t=>t.roleName.toLowerCase().includes(e)):t},[t,d]),w=Object.keys(h).length>0||Object.keys(_).length>0;return(0,o.jsxs)(`div`,{className:`perm-page`,children:[(0,o.jsxs)(Z,{className:`perm-left-card`,icon:(0,o.jsx)(a.SafetyOutlined,{}),title:`Roles`,bodyStyle:{padding:0},children:[(0,o.jsx)(`div`,{className:`perm-role-search`,children:(0,o.jsx)(i.Input,{prefix:(0,o.jsx)(a.SearchOutlined,{}),placeholder:`Search roles…`,allowClear:!0,size:`small`,value:d,onChange:e=>f(e.target.value)})}),(0,o.jsx)(i.Spin,{spinning:s,children:(0,o.jsxs)(`div`,{className:`perm-role-list`,children:[C.length===0&&!s&&(0,o.jsx)(`div`,{className:`perm-role-empty`,children:`No roles found`}),C.map(e=>{let t=l?.roleId===e.roleId,n=e.description&&e.description!==`N/A`?e.description:e.roleType===0?`Default role`:`Custom role`;return(0,o.jsxs)(`div`,{className:`perm-role-item${t?` active`:``}`,onClick:()=>u(e),children:[(0,o.jsx)(`div`,{className:`perm-role-item-name`,children:e.roleName}),(0,o.jsx)(`div`,{className:`perm-role-item-desc`,children:n})]},e.roleId)})]})})]}),(0,o.jsx)(Z,{className:`perm-right-card`,icon:(0,o.jsx)(a.LockOutlined,{}),title:`Module Permissions`,extra:(0,o.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[w&&(0,o.jsx)(`button`,{className:`perm-reset-btn`,onClick:x,children:`Reset labels`}),(0,o.jsx)(i.Button,{size:`small`,icon:(0,o.jsx)(a.SettingOutlined,{}),onClick:()=>m(!0),children:`Manage`})]}),bodyStyle:{padding:`12px 16px`},children:l?(0,o.jsx)(Ck,{role:l,moduleLabels:h,actionLabels:_,onModuleLabelSave:y,onActionLabelSave:b},l.roleId):(0,o.jsx)(`div`,{className:`perm-empty`,children:`Select a role from the left to manage its permissions.`})}),(0,o.jsx)(Ik,{open:p,onClose:()=>m(!1)})]})}var{Title:Rk,Text:zk}=i.Typography,Bk=[{label:`In Progress`,value:107,sub:`Under review`,color:`blue`},{label:`Hired`,value:2,sub:`Onboarded`,color:`green`},{label:`Project Completed`,value:2,sub:`Project cycle closed`,color:`purple`},{label:`Archive`,value:2,sub:`No longer active`,color:`peach`}];function Vk({items:e=Bk}){return(0,o.jsx)(i.Card,{className:`onboarding-card`,title:(0,o.jsx)(Rk,{level:5,children:`Onboarding`}),extra:(0,o.jsx)(i.Button,{type:`link`,children:`View all`}),children:(0,o.jsx)(i.Row,{gutter:[12,12],children:e.map(e=>(0,o.jsx)(i.Col,{xs:12,sm:6,md:6,lg:12,xl:12,children:(0,o.jsxs)(`div`,{className:`onboarding-item ${e.color}`,children:[(0,o.jsx)(zk,{className:`onboarding-item-label`,children:e.label}),(0,o.jsx)(i.Statistic,{value:e.value,className:`onboarding-stat`}),(0,o.jsx)(`div`,{className:`onboarding-item-footer`,children:(0,o.jsx)(zk,{className:`onboarding-item-sub`,children:e.sub})})]})},e.label))})})}var{Text:Hk,Title:Uk}=i.Typography,Wk=[{group:`Dashboard`,items:[{id:`dashboard`,label:`Admin Dashboard`,icon:(0,o.jsx)(a.DashboardOutlined,{})}]},{group:`Settings`,items:[{id:`org`,label:`Organization`,icon:(0,o.jsx)(a.BankOutlined,{}),heading:`Organization Settings`,desc:`Manage your company profile and location details`,cards:[{label:`Company Information`,icon:(0,o.jsx)(a.BankOutlined,{}),desc:`Manage company profile, address and business details.`},{label:`Location`,icon:(0,o.jsx)(a.BuildOutlined,{}),desc:`Manage office locations, branches and regions.`}]},{id:`users`,label:`Users`,icon:(0,o.jsx)(a.UserOutlined,{}),heading:`Users`,desc:`Manage platform users and configure their field views.`,component:`users`},{id:`teams`,label:`Teams`,icon:(0,o.jsx)(a.TeamOutlined,{}),heading:`Teams`,desc:`Organize users into teams and configure field visibility per team.`,component:`teams`},{id:`roles`,label:`Roles`,icon:(0,o.jsx)(a.SafetyOutlined,{}),heading:`Roles`,desc:`Control permissions and configure field visibility per role.`,component:`roles`},{id:`permissions`,label:`Permissions`,icon:(0,o.jsx)(a.LockOutlined,{}),heading:`Permissions`,desc:`Manage module-wise action permissions (view, add, edit, delete, and more) per role.`,component:`permissions`},{id:`templates`,label:`Templates`,icon:(0,o.jsx)(a.FileTextOutlined,{}),heading:`Templates`,desc:`Email and signature templates for communications`,component:`templates`},{id:`ai-services`,label:`AI Services`,icon:(0,o.jsx)(a.ThunderboltOutlined,{}),heading:`AI Services`,desc:`Register the AI/automation backends (base URL + auth) that admin-configured AI Actions call.`,component:`ai-services`},{id:`bgc-integration`,label:`Integrations`,icon:(0,o.jsx)(a.SafetyOutlined,{}),heading:`Integrations`,desc:`Manage manual and API integrations used across application workflows.`,component:`bgc-integration`}]},{group:`Clients`,items:[{id:`clients`,label:`Clients`,icon:(0,o.jsx)(a.BankOutlined,{}),heading:`Clients`,desc:`Manage client accounts and settings`,cards:[{label:`Clients`,icon:(0,o.jsx)(a.BankOutlined,{}),desc:`Manage client companies and account details.`}]}]},{group:`Forms`,items:[{id:`form-groups`,label:`Form Groups`,icon:(0,o.jsx)(a.AppstoreAddOutlined,{}),heading:`Form Groups`,desc:`Define field groups for module add/edit forms with validations and dropdown sources.`,component:`form-groups`},{id:`detail-groups`,label:`Detail Groups`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),heading:`Detail Groups`,desc:`Customize the detail view per module: labels, prefix/suffix, colour, capitalization, reference lookups and merged fields.`,component:`detail-groups`},{id:`row-actions`,label:`Actions`,icon:(0,o.jsx)(a.ToolOutlined,{}),heading:`Actions`,desc:`Configure which action buttons appear per row in each module's list view, scoped per role.`,component:`row-actions`}]},{group:`Master`,items:[{id:`jobs`,label:`Jobs`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),heading:`Jobs Master`,desc:`Configure job sources and status types`,cards:[{label:`Sources`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),desc:`Manage job source master values.`},{label:`Job Status`,icon:(0,o.jsx)(a.CheckCircleOutlined,{}),desc:`Configure job workflow status.`}]},{id:`candidates`,label:`Candidates`,icon:(0,o.jsx)(a.UserOutlined,{}),heading:`Candidates Master`,desc:`Skills, sources and work authorization settings`,cards:[{label:`Sources`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),desc:`Manage candidate source values.`},{label:`Skills`,icon:(0,o.jsx)(a.SettingOutlined,{}),desc:`Manage skill master data.`},{label:`Work Authorization`,icon:(0,o.jsx)(a.SafetyOutlined,{}),desc:`Manage visa and authorization types.`}]},{id:`submissions`,label:`Submissions`,icon:(0,o.jsx)(a.FileTextOutlined,{}),heading:`Submissions Master`,desc:`Rejection reasons and submission status configuration`,cards:[{label:`Rejection Reasons`,icon:(0,o.jsx)(a.FileTextOutlined,{}),desc:`Manage common rejection reasons.`},{label:`Client Submission Status`,icon:(0,o.jsx)(a.CheckCircleOutlined,{}),desc:`Manage client submission statuses.`}]},{id:`clientmaster`,label:`Client Master`,icon:(0,o.jsx)(a.BankOutlined,{}),heading:`Client Master`,desc:`Payment terms, client types and contact types`,cards:[{label:`Payment Terms`,icon:(0,o.jsx)(a.FileTextOutlined,{}),desc:`Manage billing and payment terms.`},{label:`Client Type`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),desc:`Classify client business types.`},{label:`Client Contact Type`,icon:(0,o.jsx)(a.TeamOutlined,{}),desc:`Manage client contact categories.`}]}]}],Gk=[{label:`Sourced`,count:312,color:`#378ADD`,pct:35},{label:`Screened`,count:223,color:`#7F77DD`,pct:25},{label:`Interview`,count:161,color:`#1D9E75`,pct:18},{label:`Offered`,count:107,color:`#EF9F27`,pct:12},{label:`Rejected`,count:89,color:`#E24B4A`,pct:10}],Kk=[{name:`Tcs`,jobs:14,candidates:86},{name:`Empasis`,jobs:9,candidates:64},{name:`NovaSystems`,jobs:7,candidates:51},{name:`Brightwave`,jobs:5,candidates:38}],qk=[{text:`New candidate Ravi Kumar added to Java Developer role`,time:`2 min ago`,color:`#378ADD`},{text:`Submission approved by Acme Corp for Sr. React Dev`,time:`18 min ago`,color:`#1D9E75`},{text:`User Priya S. added to Recruiters team`,time:`1 hr ago`,color:`#7F77DD`},{text:`Job Data Analyst — TechFlow moved to archived`,time:`3 hr ago`,color:`#EF9F27`},{text:`Candidate rejected — work authorization mismatch`,time:`5 hr ago`,color:`#E24B4A`}];function Jk(){return(0,o.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:16},children:[(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.DashboardOutlined,{}),title:`Admin Dashboard`,children:[(0,o.jsx)(`div`,{className:`admin-accent-bar`}),(0,o.jsx)(Uk,{level:5,children:`Admin Dashboard`}),(0,o.jsx)(Hk,{type:`secondary`,children:`Overview of jobs, candidates, onboarding and recent activity`})]}),(0,o.jsx)(`div`,{className:`admin-dashboard-stats`,children:(0,o.jsx)(nk,{stats:[{label:`Total Jobs`,value:1697,icon:`fileText`},{label:`Active Jobs`,value:1685,icon:`checkCircle`},{label:`My Jobs`,value:600,icon:`user`},{label:`Total Candidates`,value:4320,icon:`team`},{label:`Submissions`,value:892,icon:`fileText`}]})}),(0,o.jsxs)(`div`,{className:`admin-dashboard-mid-row`,children:[(0,o.jsx)(Vk,{}),(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.AppstoreOutlined,{}),title:`Candidate Pipeline`,children:[(0,o.jsx)(Hk,{type:`secondary`,style:{fontSize:12},children:`By stage (892 total)`}),(0,o.jsx)(`div`,{className:`admin-pipeline-bar`,children:Gk.map(e=>(0,o.jsx)(`div`,{className:`admin-pipeline-seg`,style:{width:`${e.pct}%`,background:e.color}},e.label))}),(0,o.jsx)(`div`,{className:`admin-pipeline-legend`,children:Gk.map(e=>(0,o.jsxs)(`div`,{className:`admin-pipeline-legend-item`,children:[(0,o.jsx)(`span`,{className:`admin-pipeline-dot`,style:{background:e.color}}),e.label,` `,e.count]},e.label))}),(0,o.jsx)(`div`,{className:`admin-divider`}),(0,o.jsx)(Hk,{strong:!0,style:{fontSize:12},children:`Submission status`}),(0,o.jsxs)(`div`,{className:`admin-sub-status-list`,style:{marginTop:6},children:[(0,o.jsxs)(`div`,{className:`admin-sub-status-item`,children:[(0,o.jsx)(Hk,{style:{fontSize:13},children:`Pending client review`}),(0,o.jsx)(`span`,{className:`admin-badge warn`,children:`312`})]}),(0,o.jsxs)(`div`,{className:`admin-sub-status-item`,children:[(0,o.jsx)(Hk,{style:{fontSize:13},children:`Client approved`}),(0,o.jsx)(`span`,{className:`admin-badge success`,children:`248`})]}),(0,o.jsxs)(`div`,{className:`admin-sub-status-item`,children:[(0,o.jsx)(Hk,{style:{fontSize:13},children:`Rejected`}),(0,o.jsx)(`span`,{className:`admin-badge danger`,children:`89`})]})]})]})]}),(0,o.jsxs)(`div`,{className:`admin-dashboard-bottom-row`,children:[(0,o.jsx)(Z,{icon:(0,o.jsx)(a.BankOutlined,{}),title:`Top Clients`,extra:(0,o.jsx)(i.Button,{type:`link`,size:`small`,children:`View all`}),children:Kk.map(e=>(0,o.jsxs)(`div`,{className:`admin-client-row`,children:[(0,o.jsxs)(`div`,{className:`admin-client-left`,children:[(0,o.jsx)(`div`,{className:`admin-client-icon`,children:(0,o.jsx)(a.BankOutlined,{})}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{className:`admin-client-name`,children:e.name}),(0,o.jsxs)(`div`,{className:`admin-client-sub`,children:[e.jobs,` open jobs`]})]})]}),(0,o.jsxs)(`div`,{className:`admin-client-right`,children:[(0,o.jsx)(`div`,{className:`admin-client-val`,children:e.candidates}),(0,o.jsx)(`div`,{className:`admin-client-sub`,children:`candidates`})]})]},e.name))}),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.BellOutlined,{}),title:`Recent Activity`,children:qk.map((e,t)=>(0,o.jsxs)(`div`,{className:`admin-activity-row`,children:[(0,o.jsx)(`div`,{className:`admin-activity-dot`,style:{background:e.color}}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{className:`admin-activity-text`,children:e.text}),(0,o.jsx)(`div`,{className:`admin-activity-time`,children:e.time})]})]},t))})]}),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.SettingOutlined,{}),title:`Admin Configuration Overview`,extra:(0,o.jsx)(i.Button,{type:`link`,size:`small`,children:`Manage`}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsxs)(i.Col,{span:8,children:[(0,o.jsx)(Hk,{type:`secondary`,style:{fontSize:12,fontWeight:500},children:`Settings`}),[[`Organization`,2],[`User Settings`,4],[`Templates`,2]].map(([e,t])=>(0,o.jsxs)(`div`,{className:`admin-cfg-overview-row`,children:[(0,o.jsx)(Hk,{style:{fontSize:12},children:e}),(0,o.jsxs)(`span`,{className:`admin-badge info`,children:[t,` items`]})]},e))]}),(0,o.jsxs)(i.Col,{span:8,children:[(0,o.jsx)(Hk,{type:`secondary`,style:{fontSize:12,fontWeight:500},children:`Master`}),[[`Jobs`,2],[`Candidates`,3],[`Submissions`,2]].map(([e,t])=>(0,o.jsxs)(`div`,{className:`admin-cfg-overview-row`,children:[(0,o.jsx)(Hk,{style:{fontSize:12},children:e}),(0,o.jsxs)(`span`,{className:`admin-badge info`,children:[t,` items`]})]},e))]}),(0,o.jsxs)(i.Col,{span:8,children:[(0,o.jsx)(Hk,{type:`secondary`,style:{fontSize:12,fontWeight:500},children:`System`}),[[`Total Groups`,4],[`Total Modules`,9],[`Config Items`,19]].map(([e,t])=>(0,o.jsxs)(`div`,{className:`admin-cfg-overview-row`,children:[(0,o.jsx)(Hk,{style:{fontSize:12},children:e}),(0,o.jsx)(Hk,{strong:!0,style:{fontSize:12},children:t})]},e))]})]})})]})}function Yk({activeSection:e,activeGroup:t,filteredCards:n,searchText:r,setSearchText:s,allItems:c,handleNav:l}){return(0,o.jsxs)(i.Row,{gutter:[16,16],children:[(0,o.jsx)(i.Col,{span:24,children:(0,o.jsxs)(Z,{icon:e?.icon,title:e?.heading,extra:(0,o.jsx)(i.Input,{className:`admin-search`,prefix:(0,o.jsx)(a.SearchOutlined,{}),placeholder:`Search settings…`,allowClear:!0,value:r,onChange:e=>s(e.target.value)}),children:[(0,o.jsx)(`div`,{className:`admin-accent-bar`}),(0,o.jsx)(Uk,{level:5,children:e?.heading}),(0,o.jsx)(Hk,{type:`secondary`,children:e?.desc})]})}),(0,o.jsx)(i.Col,{xs:24,xl:16,style:{alignSelf:`flex-start`},children:(0,o.jsx)(Z,{icon:(0,o.jsx)(a.AppstoreOutlined,{}),title:`Configuration Items`,extra:(0,o.jsxs)(Hk,{type:`secondary`,children:[n.length,` item`,n.length===1?``:`s`]}),children:(0,o.jsx)(i.Row,{gutter:[14,14],children:n.length>0?n.map(e=>(0,o.jsx)(i.Col,{xs:24,sm:12,xl:8,children:(0,o.jsxs)(`div`,{className:`admin-config-item`,children:[(0,o.jsx)(`div`,{className:`admin-config-top-bar`}),(0,o.jsxs)(`div`,{className:`admin-config-body`,children:[(0,o.jsx)(`div`,{className:`admin-config-icon`,children:e.icon}),(0,o.jsxs)(`div`,{className:`admin-config-text`,children:[(0,o.jsx)(`span`,{className:`admin-config-label`,children:e.label}),(0,o.jsx)(`span`,{className:`admin-config-desc`,children:e.desc})]})]}),(0,o.jsx)(`div`,{className:`admin-config-divider`}),(0,o.jsx)(i.Button,{type:`link`,size:`small`,className:`admin-config-manage`,icon:(0,o.jsx)(a.RightOutlined,{}),iconPosition:`end`,children:`Manage`})]})},e.label)):(0,o.jsx)(i.Col,{span:24,children:(0,o.jsx)(`div`,{className:`admin-config-empty`,children:(0,o.jsx)(i.Empty,{description:`No settings found`,image:i.Empty.PRESENTED_IMAGE_SIMPLE})})})})})}),(0,o.jsx)(i.Col,{xs:24,xl:8,style:{alignSelf:`flex-start`},children:(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.FileTextOutlined,{}),title:`Section Overview`,children:[(0,o.jsx)(`div`,{className:`admin-overview-list`,children:Wk.filter(e=>e.group!==`Dashboard`).map(e=>{let n=e.group===t?.group;return(0,o.jsxs)(`div`,{className:`admin-overview-item${n?` active`:``}`,onClick:()=>{let t=e.items[0];t&&l(t.id)},children:[(0,o.jsxs)(`div`,{className:`admin-overview-left`,children:[(0,o.jsx)(`div`,{className:`admin-overview-icon`,children:e.items[0]?.icon}),(0,o.jsxs)(`div`,{className:`admin-overview-text`,children:[(0,o.jsx)(`span`,{className:`admin-overview-name`,children:e.group}),(0,o.jsxs)(`span`,{className:`admin-overview-sub`,children:[e.items.length,` module`,e.items.length===1?``:`s`]})]})]}),(0,o.jsx)(`span`,{className:`admin-overview-count${n?` active`:``}`,children:e.items.length})]},e.group)})}),(0,o.jsxs)(`div`,{className:`admin-overview-footer`,children:[(0,o.jsx)(`span`,{className:`admin-overview-footer-label`,children:`Total configuration items`}),(0,o.jsx)(`span`,{className:`admin-overview-footer-value`,children:c.filter(e=>e.cards).reduce((e,t)=>e+t.cards.length,0)})]})]})})]})}function Xk(){let[e,t]=(0,r.useState)(`dashboard`),[n,s]=(0,r.useState)(``),c=(0,r.useMemo)(()=>Wk.flatMap(e=>e.items),[]),l=(0,r.useMemo)(()=>c.find(t=>t.id===e),[c,e]),u=(0,r.useMemo)(()=>Wk.find(t=>t.items.some(t=>t.id===e)),[e]),d=(0,r.useMemo)(()=>{if(!l?.cards)return[];let e=n.trim().toLowerCase();return e?l.cards.filter(t=>t.label.toLowerCase().includes(e)||t.desc.toLowerCase().includes(e)):l.cards},[l,n]),f=(0,r.useMemo)(()=>Wk.map(e=>({key:e.group,type:`group`,label:e.group,children:e.items.map(e=>({key:e.id,icon:e.icon,label:e.label}))})),[]),p=e=>{t(e),s(``)};return e===`dashboard`||l?.heading,(0,o.jsxs)(`main`,{className:`admin-page`,children:[(0,o.jsx)(`div`,{className:`admin-breadcrumb`,children:(0,o.jsx)(i.Breadcrumb,{items:[{title:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.HomeOutlined,{}),` Home`]})},{title:`Admin`}]})}),(0,o.jsxs)(i.Row,{gutter:[16,16],className:`admin-wrapper`,children:[(0,o.jsx)(i.Col,{xs:24,lg:6,xl:5,children:(0,o.jsxs)(Z,{title:`Admin Console`,icon:(0,o.jsx)(a.SettingOutlined,{}),children:[(0,o.jsxs)(`div`,{className:`admin-sidebar-banner`,children:[(0,o.jsx)(`span`,{className:`admin-sidebar-banner-title`,children:`Admin Panel`}),(0,o.jsx)(`span`,{className:`admin-sidebar-banner-sub`,children:`Configuration Center`}),(0,o.jsxs)(i.Row,{gutter:[8,0],children:[(0,o.jsx)(i.Col,{span:12,children:(0,o.jsxs)(`div`,{className:`admin-sidebar-pill`,children:[(0,o.jsx)(`span`,{className:`admin-sidebar-pill-label`,children:`Groups`}),(0,o.jsx)(`span`,{className:`admin-sidebar-pill-value`,children:Wk.length})]})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsxs)(`div`,{className:`admin-sidebar-pill`,children:[(0,o.jsx)(`span`,{className:`admin-sidebar-pill-label`,children:`Modules`}),(0,o.jsx)(`span`,{className:`admin-sidebar-pill-value`,children:c.length})]})})]})]}),(0,o.jsx)(i.Menu,{mode:`inline`,selectedKeys:[e],items:f,onClick:({key:e})=>p(e),className:`admin-sidebar-menu`})]})}),(0,o.jsx)(i.Col,{xs:24,lg:18,xl:19,children:e===`dashboard`?(0,o.jsx)(Jk,{}):l?.component===`form-groups`?(0,o.jsx)(Fx,{}):l?.component===`detail-groups`?(0,o.jsx)(cS,{}):l?.component===`row-actions`?(0,o.jsx)(ZS,{}):l?.component===`users`?(0,o.jsx)(ok,{}):l?.component===`teams`?(0,o.jsx)(fk,{}):l?.component===`roles`?(0,o.jsx)(Ak,{}):l?.component===`permissions`?(0,o.jsx)(Lk,{}):l?.component===`templates`?(0,o.jsx)(sC,{}):l?.component===`ai-services`?(0,o.jsx)(dC,{}):l?.component===`bgc-integration`?(0,o.jsx)(_C,{}):(0,o.jsx)(Yk,{activeSection:l,activeGroup:u,filteredCards:d,searchText:n,setSearchText:s,allItems:c,handleNav:p})})]})]})}var{Title:Zk}=i.Typography;function Qk(){let e=(0,c.useNavigate)(),{state:t}=(0,c.useLocation)(),n=t?.moduleName||`stickyNotes`,r=t?.title||`Sticky Notes`,s={...t?.request,params:{...t?.request?.params,limit:200,offset:0}};return(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Button,{type:`text`,icon:(0,o.jsx)(a.ArrowLeftOutlined,{}),onClick:()=>e(-1),style:{marginBottom:12},children:`Back`}),(0,o.jsx)(Dt,{moduleName:n,title:r,columns:4,request:s,viewAll:!1})]})}var{Text:$k,Title:eA}=i.Typography,tA=10*1024*1024,nA=`/templates/test_cases_flow_template.base64.txt`,rA=`test_cases_flow_template.xlsx`,iA=`module | subModule | step_order | description | actions | key | value | expected | scenario`,aA={idle:0,module_set:1,encoding:1,validating:2,preview:3,inserting:3,done:4,error:1},oA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Bulk upload`,href:`/bulk-upload`}];function sA(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(`,`)[1]),r.onerror=n,r.readAsDataURL(e)})}function cA(e){return e.filter(e=>e.row_status===`valid`).map(e=>{let t={...e};return delete t.row_status,delete t.errors,t})}function lA(e){return e.flatMap(e=>(e.errors??[]).map(t=>({id:e.id,...t})))}function uA({errors:e}){return(0,o.jsx)(`div`,{className:`bulk-tooltip-errors`,children:(e??[]).map((e,t)=>(0,o.jsx)(`div`,{children:e.message},`${e.field}-${t}`))})}function dA({errors:e,expanded:t,onToggle:n,onSummaryClick:r}){return e.length===0?null:(0,o.jsxs)(`div`,{className:`bulk-error-banner`,children:[(0,o.jsxs)(`div`,{className:`bulk-error-summary`,children:[(0,o.jsxs)(`button`,{type:`button`,className:`bulk-error-summary-main`,onClick:r,"aria-label":`Scroll to first invalid row`,children:[(0,o.jsx)(a.ExclamationCircleOutlined,{className:`bulk-error-icon`}),(0,o.jsxs)(`span`,{children:[e.length,` validation error(s) found`]})]}),(0,o.jsx)(i.Button,{type:`link`,onClick:n,"aria-expanded":t,children:t?`Hide Errors`:`View Errors`})]}),t&&(0,o.jsx)(`div`,{className:`bulk-error-list`,role:`region`,"aria-label":`Validation error details`,children:e.map((e,t)=>(0,o.jsxs)(`div`,{className:`bulk-error-line`,children:[(0,o.jsxs)(`span`,{className:`bulk-row-chip`,children:[`Row `,e.id]}),(0,o.jsx)(`span`,{children:e.message})]},`${e.id}-${e.field}-${t}`))})]})}function fA({rows:e,view:t,onViewChange:n,onConfirm:r,onReset:s,saving:c,firstInvalidRowId:l,firstInvalidRowRef:u}){let d=e.filter(e=>e.row_status===`invalid`),f=t===`errors`?d:e,p=d.length>0||c;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(i.Row,{justify:`space-between`,align:`middle`,gutter:[16,16],className:`bulk-table-toolbar`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space.Compact,{children:[(0,o.jsx)(i.Button,{type:t===`all`?`primary`:`default`,onClick:()=>n(`all`),children:`All rows`}),(0,o.jsx)(i.Button,{type:t===`errors`?`primary`:`default`,onClick:()=>n(`errors`),children:`Errors only`})]})}),(0,o.jsx)(i.Col,{children:(0,o.jsxs)($k,{type:`secondary`,children:[e.length,` row(s)`]})})]}),(0,o.jsx)(`div`,{className:`bulk-table-wrap`,children:(0,o.jsxs)(`table`,{className:`bulk-preview-table`,children:[(0,o.jsx)(`thead`,{children:(0,o.jsxs)(`tr`,{children:[(0,o.jsx)(`th`,{className:`bulk-col-row`,children:`Row`}),(0,o.jsx)(`th`,{className:`bulk-col-flow`,children:`Submodule`}),(0,o.jsx)(`th`,{className:`bulk-col-description`,children:`Description`}),(0,o.jsx)(`th`,{className:`bulk-col-keyword`,children:`Action`}),(0,o.jsx)(`th`,{className:`bulk-col-target`,children:`Key`}),(0,o.jsx)(`th`,{className:`bulk-col-status`,children:`Status`}),(0,o.jsx)(`th`,{className:`bulk-col-error`,children:`Error`})]})}),(0,o.jsx)(`tbody`,{children:f.map(e=>{let t=e.errors??[],n=e.row_status===`invalid`;return(0,o.jsxs)(`tr`,{ref:n&&e.id===l?u:null,className:n?`bulk-row-invalid`:``,children:[(0,o.jsx)(`td`,{children:e.id}),(0,o.jsx)(`td`,{title:e.submodule,children:e.submodule}),(0,o.jsx)(`td`,{title:e.description,children:e.description?e.description:(0,o.jsx)(`span`,{className:`bulk-empty-text`,children:`-empty-`})}),(0,o.jsx)(`td`,{children:(0,o.jsx)(`code`,{className:`bulk-code-chip`,children:e.actions})}),(0,o.jsx)(`td`,{title:e.key,children:e.key}),(0,o.jsx)(`td`,{children:n?(0,o.jsx)(i.Tag,{color:`red`,children:`Error`}):(0,o.jsx)(i.Tag,{color:`green`,children:`Valid`})}),(0,o.jsx)(`td`,{children:n?(0,o.jsx)(i.Tooltip,{title:(0,o.jsx)(uA,{errors:t}),placement:`left`,children:(0,o.jsxs)(`button`,{type:`button`,className:`bulk-error-info`,"aria-label":`View ${t.length} error(s) for row ${e.id}`,children:[(0,o.jsx)(a.InfoCircleOutlined,{}),(0,o.jsx)(i.Badge,{count:t.length,size:`small`})]})}):(0,o.jsx)(`span`,{className:`bulk-error-none`,children:`-`})})]},`${e.id}-${e.step_order}`)})})]})}),(0,o.jsxs)(i.Space,{className:`bulk-actions`,children:[(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.ReloadOutlined,{}),onClick:s,children:`Reset`}),(0,o.jsx)(i.Button,{type:`primary`,icon:(0,o.jsx)(a.SaveOutlined,{}),loading:c,disabled:p,onClick:r,children:d.length>0?`Fix ${d.length} error(s) to proceed`:`Save to database`})]})]})}function pA(){let n=(0,c.useNavigate)(),s=(0,r.useMemo)(()=>t.c(),[]),l=(0,r.useRef)(null),u=(0,r.useRef)(null),[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(``),[h,g]=(0,r.useState)(`idle`),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)([]),[C,w]=(0,r.useState)(`all`),[T,E]=(0,r.useState)(null),[D,O]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),j=d.map(e=>({value:e.modulename,label:e.modulename})),M=lA(x),N=h===`encoding`||h===`validating`,P=!!p&&!N,F=aA[h]??0,I=x.find(e=>e.row_status===`invalid`)?.id,L=(0,r.useCallback)(()=>{m(``),g(`idle`),v(!1),b(null),S([]),w(`all`),E(null),O(null),l.current&&(l.current.value=``)},[]);(0,r.useEffect)(()=>{async function e(){try{f((await Lv({project:s?.name??``,activeOnly:!0}))?.items??[])}catch(e){console.error(e),i.message.error(`Unable to load modules.`)}}e()},[s?.name]);let R=e=>{m(e??``),S([]),O(null),E(null),b(null),A(!1),g(e?`module_set`:`idle`)},z=async e=>{if(!e||!P)return;let t=e.name.split(`.`).pop()?.toLowerCase();if(![`xlsx`,`csv`].includes(t)){g(`module_set`),E({message:`Invalid file type. Please upload an Excel .xlsx or CSV .csv file.`});return}if(e.size>tA){g(`module_set`),E({message:`File must be 10 MB or smaller.`});return}E(null),S([]),O(null),b({name:e.name,size:e.size}),g(`encoding`);try{let n=await sA(e);g(`validating`),S((await Mv({filename:e.name,project:s?.name??``,module:p,file_base64:n,file_type:t}))?.rows??[]),w(`all`),g(`preview`)}catch(e){console.error(e),E(e.payload??{code:`NETWORK_ERROR`,message:e.message||`Could not reach the server.`}),g(`error`)}},B=async()=>{try{let e=await fetch(nA);if(!e.ok)throw Error(`Template file not found (${e.status})`);let t=(await e.text()).trim(),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);let a=new Blob([r],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),o=URL.createObjectURL(a),s=document.createElement(`a`);s.href=o,s.download=rA,document.body.appendChild(s),s.click(),s.remove(),URL.revokeObjectURL(o),i.message.success(`Sample template downloaded.`)}catch(e){console.error(e),i.message.error(`Unable to download sample template.`)}},ee=async()=>{g(`inserting`),E(null);try{O(await Nv({project:s?.name??``,module:p,uploaded_by:localStorage.getItem(`user_Email`)??``,rows:cA(x)})),g(`done`),i.message.success(`Bulk upload saved. Redirecting to view test cases...`),window.setTimeout(()=>n(`/viewTestCase`),900)}catch(e){console.error(e),E(e.payload??{code:`NETWORK_ERROR`,message:e.message||`Could not reach the server.`}),g(`preview`)}},V=(0,r.useCallback)(()=>{u.current?.scrollIntoView({behavior:`smooth`,block:`center`})},[]),H=[`bulk-dropzone`,_?`bulk-dropzone-dragging`:``,y?`bulk-dropzone-has-file`:``,T&&h!==`preview`?`bulk-dropzone-error`:``,p?``:`bulk-dropzone-disabled`].filter(Boolean).join(` `);return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:oA})}),s?.name&&(0,o.jsx)(i.Col,{children:(0,o.jsx)($k,{strong:!0,children:s.name})})]}),(0,o.jsxs)(`div`,{className:`zt-page zt-page-wide bulk-page`,children:[(0,o.jsxs)(`div`,{className:`bulk-header`,children:[(0,o.jsx)(eA,{level:3,children:`Bulk upload test cases`}),(0,o.jsxs)(i.Space,{direction:`vertical`,size:4,children:[(0,o.jsx)($k,{type:`secondary`,children:iA}),(0,o.jsx)($k,{type:`secondary`,children:`Use the sample template for the required columns. Uploaded rows are saved as Active by default.`})]})]}),(0,o.jsx)(`div`,{className:`bulk-stepbar`,children:[`Select`,`Upload`,`Validate`,`Save`].map((e,t)=>(0,o.jsxs)(`span`,{className:t<F?`bulk-step-active`:``,children:[t+1,` `,e]},e))}),(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:`1. Module selector`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,className:`bulk-module-select`,placeholder:`Choose a module`,options:j,value:p||void 0,onChange:R})}),p&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:`2. File upload`,extra:(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.DownloadOutlined,{}),onClick:B,children:`Download Sample Template`}),children:[(0,o.jsx)(i.Alert,{type:`info`,showIcon:!0,message:`First time uploading?`,description:`Download the sample template, keep the column names unchanged, fill your test steps, and upload either .xlsx or .csv.`,className:`bulk-inline-alert`}),(0,o.jsxs)(`button`,{type:`button`,className:H,disabled:!P,onClick:()=>l.current?.click(),onDragOver:e=>{e.preventDefault(),P&&v(!0)},onDragLeave:()=>v(!1),onDrop:e=>{e.preventDefault(),v(!1),z(e.dataTransfer.files?.[0])},children:[(0,o.jsx)(a.CloudUploadOutlined,{className:`bulk-upload-icon`}),y?(0,o.jsxs)(`span`,{className:`bulk-file-chip`,children:[y.name,` - `,Math.ceil(y.size/1024),` KB`]}):(0,o.jsx)(`span`,{children:`Drag & drop here, or click to browse`})]}),(0,o.jsx)(`input`,{ref:l,hidden:!0,type:`file`,accept:`.xlsx,.csv`,onChange:e=>z(e.target.files?.[0])}),N&&(0,o.jsx)(i.Progress,{percent:h===`encoding`?45:82,showInfo:!1,size:`small`}),T&&h!==`preview`&&(0,o.jsx)(i.Alert,{type:`error`,showIcon:!0,message:T.message,className:`bulk-inline-alert`})]}),x.length>0&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:`3. Validation result`,children:[(0,o.jsx)(dA,{errors:M,expanded:k,onToggle:()=>A(e=>!e),onSummaryClick:V}),T&&h===`preview`&&(0,o.jsx)(i.Alert,{type:`error`,showIcon:!0,message:T.message,className:`bulk-inline-alert`}),(0,o.jsx)(fA,{rows:x,view:C,onViewChange:w,onConfirm:ee,onReset:L,saving:h===`inserting`,firstInvalidRowId:I,firstInvalidRowRef:u})]}),D&&h===`done`&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:`4. Upload complete`,children:[(0,o.jsxs)(i.Row,{gutter:[16,16],className:`bulk-metrics`,children:[(0,o.jsx)(i.Col,{xs:24,md:8,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)($k,{children:`Total`}),(0,o.jsx)(`strong`,{children:x.length})]})}),(0,o.jsx)(i.Col,{xs:24,md:8,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)($k,{children:`Inserted`}),(0,o.jsx)(`strong`,{children:D.inserted??0})]})}),(0,o.jsx)(i.Col,{xs:24,md:8,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)($k,{children:`Failed`}),(0,o.jsx)(`strong`,{children:D.failed??0})]})})]}),(0,o.jsx)(i.Alert,{type:`success`,showIcon:!0,icon:(0,o.jsx)(a.CheckCircleOutlined,{}),message:`${D.inserted??0} test cases saved to database - module: ${p}`,className:`bulk-inline-alert`}),(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.ReloadOutlined,{}),onClick:L,children:`Upload another file`})]})]})]})}var mA=[{value:`navigate`,label:`Navigate`},{value:`fill`,label:`Fill`},{value:`click`,label:`Click`},{value:`select`,label:`Select`},{value:`press_key`,label:`Press Key`},{value:`type_and_select`,label:`Type and Select`},{value:`type_and_select_modal`,label:`Type and Select (Modal)`},{value:`upload_file`,label:`Upload File`},{value:`check_checkbox`,label:`Check Checkbox`},{value:`check_filter_checkbox`,label:`Check Filter Checkbox`},{value:`select_page_size`,label:`Select Page Size`},{value:`check_n_checkboxes`,label:`Check N Checkboxes`},{value:`store_text`,label:`Store Text`},{value:`reset_session`,label:`Reset Session`},{value:`switch_to_new_tab`,label:`Switch To New Tab`},{value:`close_tab`,label:`Close Tab`},{value:`assert_visible`,label:`Assert Visible`},{value:`assert_hidden`,label:`Assert Hidden`},{value:`assert_text`,label:`Assert Text`},{value:`assert_url`,label:`Assert URL`},{value:`assert_body_contains`,label:`Assert Body Contains`},{value:`assert_button_disabled`,label:`Assert Button Disabled`},{value:`assert_field_error`,label:`Assert Field Error`},{value:`assert_field_accepted`,label:`Assert Field Accepted`},{value:`assert_children_disabled`,label:`Assert Children Disabled`},{value:`assert_children_visible`,label:`Assert Children Visible`},{value:`assert_element_count`,label:`Assert Element Count`},{value:`assert_toast`,label:`Assert Toast`},{value:`assert_toast_success`,label:`Assert Toast Success`},{value:`assert_toast_error`,label:`Assert Toast Error`},{value:`wait_for_visible`,label:`Wait For Visible`},{value:`wait_for_hidden`,label:`Wait For Hidden`},{value:`wait_for_text`,label:`Wait For Text`}],{Text:hA}=i.Typography,gA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/test-cases`}],_A={tags:`regression`,active:1},vA={module:{dbName:`Modules`,formField:`module`,label:`Module`}};function yA(e=[]){return e.map(e=>({value:e,label:e}))}function bA(e=``){return String(e??``).trim()}function xA(e=``){return bA(e).toLowerCase()}function SA(e=[]){let t=new Map;return e.forEach(e=>{let n=bA(e?.flow),r=n.toLowerCase();n&&!t.has(r)&&t.set(r,n)}),Array.from(t.values()).map(e=>({value:e,label:e}))}function CA(e=[],t,n){let r=bA(t).toLowerCase(),i=bA(n).toLowerCase();return e.reduce((e,t)=>{let n=bA(t?.module).toLowerCase(),a=bA(t?.flow).toLowerCase();if(n!==r||a!==i)return e;let o=Number(t?.step_order)||0;return Math.max(e,o)},0)+1}function wA({icon:e,title:t}){return(0,o.jsxs)(i.Space,{size:10,align:`center`,children:[(0,o.jsx)(`div`,{className:`v1-section-icon-box`,children:e}),(0,o.jsx)(hA,{strong:!0,className:`v1-section-label`,children:t})]})}function TA(){let[t]=i.Form.useForm(),[n]=i.Form.useForm(),[s,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]),[f,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)({open:!1,typeKey:`module`}),[b,x]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!1),[w,T]=(0,r.useState)(!1),E=(0,c.useNavigate)(),D=vA[v.typeKey],O=(0,r.useMemo)(()=>yA(s),[s]),k=i.Form.useWatch(`module`,t),A=i.Form.useWatch(`flow`,t),j=!!bA(k),M=!!bA(A),N=!j,P=!j||!M,F=(e,t=[])=>{e===`module`&&l(t)},I=async()=>{h(!0);try{l((await Dv(vA.module.dbName))?.items??[])}catch(e){console.error(`Unable to load testing options:`,e),i.message.error(`Unable to load testing options.`)}finally{h(!1)}},L=(0,r.useCallback)(async e=>{let n=bA(e);if(d([]),p([]),t.setFieldsValue({step_order:void 0}),n){_(!0);try{let e=await jv({limit:1e4,offset:0,module:n}),t=Array.isArray(e?.items)?e.items:[];d(t),p(SA(t))}catch(e){console.error(`Unable to load flows:`,e),i.message.error(`Unable to load flows.`)}finally{_(!1)}}},[t]),R=(0,r.useCallback)(async(e,n,r)=>{let a=bA(e),o=bA(n);if(!a||!o){t.setFieldsValue({step_order:void 0});return}C(!0);try{t.setFieldsValue({step_order:CA(r,a,o)})}catch(e){console.error(`Unable to load step order:`,e),i.message.error(`Unable to load step order.`)}finally{C(!1)}},[t]);(0,r.useEffect)(()=>{Promise.resolve().then(I)},[]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>L(k))},[L,k]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>R(k,A,u))},[u,R,A,k]);let z=async e=>{let n={module:bA(e.module),flow:bA(e.flow),step_order:Number(e.step_order),description:bA(e.description),keyword:xA(e.keyword),target:bA(e.target),value:bA(e.value),expected:bA(e.expected),tags:e.tags?bA(e.tags):_A.tags,active:Number(e.active)};T(!0);try{await Av(n),i.message.success(`Test case details saved successfully.`),t.resetFields(),d([]),p([])}catch(e){console.error(`Unable to save test case:`,e),i.message.error(`Unable to save test case.`)}finally{T(!1)}},B=(e,n)=>{t.setFieldsValue({[e]:bA(n)})},ee=e=>{t.setFieldsValue({module:bA(e),flow:void 0,step_order:void 0,keyword:void 0,description:void 0,target:void 0,tags:_A.tags,value:void 0,expected:void 0})},V=e=>{t.setFieldsValue({flow:bA(e),step_order:void 0})},H=e=>{let t=vA[e];y({open:!0,typeKey:e}),n.setFieldsValue({name:``,type:t.label})},U=()=>{y(e=>({...e,open:!1})),n.resetFields()},te=async()=>{try{let e=bA((await n.validateFields()).name),r=await Ov({name:e,type:D.dbName});F(v.typeKey,r?.items??[]),t.setFieldsValue({[D.formField]:e}),i.message.success(`${D.label} added successfully.`),U()}catch(e){if(e?.errorFields)return;console.error(`Unable to save testing option:`,e),i.message.error(`Unable to add ${D.label.toLowerCase()}.`)}finally{x(!1)}};return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:gA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>E(`/zinnext-home`),children:`View Table`})})]}),(0,o.jsx)(`div`,{className:`v1-page`,children:(0,o.jsxs)(`div`,{className:`v1-page-inner`,children:[(0,o.jsx)(`div`,{className:`v1-page-header`,children:(0,o.jsxs)(i.Space,{align:`center`,size:10,children:[(0,o.jsx)(a.ProfileOutlined,{className:`v1-outer-icon`}),(0,o.jsx)(`div`,{children:(0,o.jsx)(hA,{strong:!0,style:{fontSize:16},children:`Add Test Case`})})]})}),(0,o.jsx)(Z,{children:(0,o.jsxs)(i.Form,{form:t,className:`v1-form`,layout:`vertical`,colon:!1,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),initialValues:_A,onFinish:z,autoComplete:`off`,children:[(0,o.jsx)(i.Card,{className:`v1-card`,title:(0,o.jsx)(wA,{icon:(0,o.jsx)(a.FileTextOutlined,{}),title:`Test Case Details`}),extra:(0,o.jsx)(hA,{type:`secondary`,className:`v1-card-subtitle`,children:`Module, flow, step order and execution data`}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsxs)(i.Space.Compact,{style:{width:`100%`},children:[(0,o.jsx)(i.Form.Item,{label:`Module`,name:`module`,style:{flex:1},children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,loading:m,optionFilterProp:`label`,placeholder:`Select module`,options:O,onChange:ee})}),(0,o.jsx)(i.Button,{"aria-label":`Add module`,icon:(0,o.jsx)(a.PlusOutlined,{}),style:{marginTop:30},onClick:()=>H(`module`)})]})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Flow`,name:`flow`,children:(0,o.jsx)(i.AutoComplete,{maxLength:100,allowClear:!0,disabled:N,options:f,placeholder:g?`Loading flows`:`Enter flow`,onChange:V,filterOption:(e,t)=>t?.value?.toLowerCase().includes(e.toLowerCase())})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Step Order`,name:`step_order`,validateTrigger:[`onBlur`,`onChange`],children:(0,o.jsx)(i.Input,{maxLength:10,disabled:!0,placeholder:S?`Loading step order`:`Step order`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Action`,name:`keyword`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,disabled:P,optionFilterProp:`label`,placeholder:`Select action`,options:mA,onChange:e=>t.setFieldsValue({keyword:xA(e)})})})}),(0,o.jsx)(i.Col,{xs:24,children:(0,o.jsx)(i.Form.Item,{label:`Description`,name:`description`,children:(0,o.jsx)(i.Input.TextArea,{rows:3,maxLength:255,disabled:P,placeholder:`Enter description`,showCount:!0,onBlur:e=>B(`description`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Key`,name:`target`,children:(0,o.jsx)(i.Input,{maxLength:255,disabled:P,placeholder:`Enter target`,onBlur:e=>B(`target`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Tags`,name:`tags`,children:(0,o.jsx)(i.Input,{maxLength:200,disabled:P,placeholder:`Enter tags`,prefix:(0,o.jsx)(a.TagsOutlined,{className:`v1-input-icon`}),onBlur:e=>B(`tags`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Value`,name:`value`,children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:P,placeholder:`Enter value`,onBlur:e=>B(`value`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Expected`,name:`expected`,children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:P,placeholder:`Enter expected result`,onBlur:e=>B(`expected`,e.target.value)})})})]})}),(0,o.jsx)(`div`,{className:`v1-form-actions`,children:(0,o.jsx)(i.Form.Item,{children:(0,o.jsxs)(i.Space,{children:[(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,loading:w,disabled:P,children:`Submit`}),(0,o.jsx)(i.Button,{onClick:()=>{t.resetFields(),d([]),p([])},children:`Reset`})]})})})]})}),(0,o.jsx)(i.Modal,{title:`Add ${D.label}`,open:v.open,confirmLoading:b,okText:`Add`,onCancel:U,onOk:()=>{x(!0),te()},destroyOnHidden:!0,children:(0,o.jsxs)(i.Form,{form:n,layout:`vertical`,colon:!1,className:`v1-form`,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),children:[(0,o.jsx)(i.Form.Item,{label:`Name`,name:`name`,children:(0,o.jsx)(i.Input,{maxLength:100,placeholder:`Enter ${D.label.toLowerCase()} name`,onBlur:e=>{n.setFieldsValue({name:bA(e.target.value)})}})}),(0,o.jsx)(i.Form.Item,{label:`Type`,name:`type`,children:(0,o.jsx)(i.Input,{disabled:!0})})]})})]})})]})}var{Text:EA}=i.Typography,DA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`}];function OA(e=``){return String(e??``).trim()}function kA(e=[],t){return e.map(e=>({value:e.id,label:e[t]}))}var AA=[{label:`Step`,value:`step_order`,width:70},{label:`Action`,value:`actions`,width:140},{label:`Key`,value:`key`,width:160,ellipsis:!0},{label:`Value`,value:`value`,ellipsis:!0},{label:`Description`,value:`description`,ellipsis:!0},{label:`Scenario`,value:`scenario`,width:110,render:e=>e===1?(0,o.jsx)(i.Tag,{color:`green`,children:`Positive`}):(0,o.jsx)(i.Tag,{color:`red`,children:`Negative`})}],jA={key:!1,value:!1,expected:!1};function MA(e,t){return t?e[t]??jA:jA}function NA(e,t){e.setFields(t.map(e=>({name:e,errors:[]})))}function PA(){let[n]=i.Form.useForm(),s=(0,c.useNavigate)(),[l]=(0,c.useSearchParams)(),u=l.get(`edit`),d=!!u,f=(0,r.useMemo)(()=>t.c(),[]),[p,m]=(0,r.useState)([]),[h,g]=(0,r.useState)([]),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(mA),[x,S]=(0,r.useState)({}),[C,w]=(0,r.useState)(!1),[T,E]=(0,r.useState)(!1),[D,O]=(0,r.useState)(!1),[k,A]=(0,r.useState)(!1),[j,M]=(0,r.useState)(!1),N=i.Form.useWatch(`module`,n),P=i.Form.useWatch(`submodule`,n),F=i.Form.useWatch(`actions`,n),I=!!N,L=!!P,R=(0,r.useMemo)(()=>MA(x,F),[x,F]),z=(0,r.useMemo)(()=>kA(p,`modulename`),[p]),B=(0,r.useMemo)(()=>kA(h,`submodulename`),[h]),ee=(0,r.useMemo)(()=>p.find(e=>e.id===N)?.modulename??``,[p,N]),V=(0,r.useMemo)(()=>h.find(e=>e.id===P)?.submodulename??``,[P,h]),H=(0,r.useCallback)(async()=>{try{let e=await kv();Array.isArray(e?.options)&&e.options.length>0&&b(e.options),e?.rules&&typeof e.rules==`object`&&S(e.rules)}catch(e){console.error(`Unable to load action field rules:`,e),i.message.error(`Unable to load action validation rules.`)}},[]),U=(0,r.useCallback)(async e=>{if(!e){m([]);return}w(!0);try{m((await Lv({project:e,activeOnly:!0}))?.items??[])}catch(e){console.error(`Unable to load modules:`,e),i.message.error(`Unable to load modules.`)}finally{w(!1)}},[]),te=(0,r.useCallback)(async(e,t)=>{if(!e||!t){g([]);return}E(!0);try{g((await Bv({project:e,module:t,activeOnly:!0}))?.items??[])}catch(e){console.error(`Unable to load submodules:`,e),i.message.error(`Unable to load submodules.`)}finally{E(!1)}},[]),ne=(0,r.useCallback)(async(e,t,r,a=``)=>{if(!e||!t||!r){v([]),n.setFieldsValue({step_order:void 0});return}O(!0);try{let[i,o]=await Promise.all([Uv({product_parent_ID:e,module_parent_ID:t,submodule_parent_ID:r,actions:a,limit:1e3}),Kv({product_parent_ID:e,module_parent_ID:t,submodule_parent_ID:r})]);v(i?.items??[]),n.setFieldsValue({step_order:o?.step_order??1})}catch(e){console.error(`Unable to load flows:`,e),i.message.error(`Unable to load flows.`)}finally{O(!1)}},[n]),W=(0,r.useCallback)(async(e=``)=>{if(!(!f?.id||!N||!P)){O(!0);try{v((await Uv({product_parent_ID:f.id,module_parent_ID:N,submodule_parent_ID:P,actions:e,limit:1e3}))?.items??[])}catch(e){console.error(`Unable to load action flows:`,e),i.message.error(`Unable to load action steps.`)}finally{O(!1)}}},[f?.id,N,P]),re=(0,r.useCallback)(async()=>{if(!(!u||!f?.name)){M(!0);try{let e=await Gv(u);await te(f.name,e.module),v((await Uv({product_parent_ID:e.product_parent_ID,module_parent_ID:e.module_parent_ID,submodule_parent_ID:e.submodule_parent_ID,limit:1e3}))?.items??[]),n.setFieldsValue({module:e.module_parent_ID,submodule:e.submodule_parent_ID,step_order:e.step_order,actions:e.actions,key:e.key,value:e.value,expected:e.expected,description:e.description,scenario:e.scenario===1,active:Number(e.active)!==0})}catch(e){console.error(`Unable to load test flow:`,e),i.message.error(`Unable to load test flow for edit.`),s(`/viewTestCase`)}finally{M(!1)}}},[u,n,te,s,f?.name]);return(0,r.useEffect)(()=>{if(!f){s(`/select-project`,{replace:!0});return}Promise.resolve().then(async()=>{await H(),await U(f.name),u&&await re()})},[f,s,H,U,u,re]),f?(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:DA})}),(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.ProjectOutlined,{}),(0,o.jsx)(EA,{strong:!0,children:f.name})]})})]}),(0,o.jsx)(`div`,{className:`zt-page`,children:(0,o.jsxs)(i.Form,{form:n,layout:`vertical`,colon:!1,className:`v1-form`,initialValues:{scenario:!0,active:!0},onFinish:async e=>{let t={product_parent_ID:Number(f?.id),module_parent_ID:Number(e.module),submodule_parent_ID:Number(e.submodule),description:OA(e.description),actions:OA(e.actions),key:OA(e.key),value:OA(e.value),expected:OA(e.expected),scenario:+!!e.scenario,active:+!!e.active};A(!0);try{if(d){await qv(u,{...t,step_order:Number(e.step_order)}),i.message.success(`Test case updated successfully.`),s(`/viewTestCase`);return}await Wv(t),i.message.success(`Step saved (#${e.step_order}).`),n.setFieldsValue({actions:void 0,key:void 0,value:void 0,expected:void 0,description:void 0}),await ne(t.product_parent_ID,t.module_parent_ID,t.submodule_parent_ID)}catch(e){console.error(`Unable to save test case:`,e),i.message.error(d?`Unable to update test case.`:`Unable to save step.`)}finally{A(!1)}},autoComplete:`off`,disabled:j,children:[(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:8,className:`zt-section-title`,children:[(0,o.jsx)(`span`,{className:`zt-step-tag`,children:`1`}),(0,o.jsx)(`span`,{children:`Module & Submodule`})]}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],align:`bottom`,children:[(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Module`,name:`module`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,loading:C,placeholder:`Select module`,options:z,onChange:e=>{let t=p.find(t=>t.id===e)?.modulename??``;n.setFieldsValue({module:e,submodule:void 0,step_order:void 0,actions:void 0,key:void 0,value:void 0,expected:void 0}),NA(n,[`actions`,`key`,`value`,`expected`]),g([]),v([]),te(f?.name,t)}})})}),(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Submodule`,name:`submodule`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,disabled:!I,loading:T,placeholder:I?`Select submodule`:`Select module first`,options:B,onChange:e=>{n.setFieldsValue({submodule:e,actions:void 0,key:void 0,value:void 0,expected:void 0}),NA(n,[`actions`,`key`,`value`,`expected`]),ne(f?.id,N,e)}})})}),(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Scenario`,name:`scenario`,valuePropName:`checked`,children:(0,o.jsx)(i.Switch,{disabled:!L,checkedChildren:`Positive`,unCheckedChildren:`Negative`})})}),(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Active`,name:`active`,valuePropName:`checked`,children:(0,o.jsx)(i.Switch,{checkedChildren:`Active`,unCheckedChildren:`Inactive`})})})]})}),L&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:8,className:`zt-section-title`,children:[(0,o.jsx)(`span`,{className:`zt-step-tag`,children:`2`}),(0,o.jsx)(a.FileTextOutlined,{}),(0,o.jsx)(`span`,{children:`Step Details`})]}),extra:(0,o.jsxs)(EA,{type:`secondary`,children:[ee,` / `,V]}),children:[(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Step Order`,name:`step_order`,children:(0,o.jsx)(i.Input,{disabled:!0,placeholder:D?`Loading…`:`Auto`})})}),(0,o.jsx)(i.Col,{xs:24,md:18,children:(0,o.jsx)(i.Form.Item,{label:`Action`,name:`actions`,rules:[{required:!0,message:`Mandatory Field`}],children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,placeholder:`Select action`,options:y,onChange:e=>{let t=MA(x,e);n.setFieldsValue({actions:e,key:t.key?n.getFieldValue(`key`):void 0,value:t.value?n.getFieldValue(`value`):void 0,expected:t.expected?n.getFieldValue(`expected`):void 0}),NA(n,[`key`,`value`,`expected`]),W(e||``)}})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Key`,name:`key`,rules:[{required:R.key,message:`Key is required for this action`}],children:(0,o.jsx)(i.Input,{maxLength:255,disabled:F&&!R.key,placeholder:F?R.key?`Required — Enter selector / locator`:`Not needed for this action`:`Select an action first`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Value`,name:`value`,rules:[{required:R.value,message:`Value is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:1,autoSize:{minRows:1,maxRows:4},disabled:F&&!R.value,placeholder:F?R.value?`Required — Enter value`:`Not needed for this action`:`Select an action first`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Expected`,name:`expected`,rules:[{required:R.expected,message:`Expected result is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:2,disabled:F&&!R.expected,placeholder:F?R.expected?`Required — Enter expected result`:`Not needed for this action`:`Select an action first`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Description`,name:`description`,children:(0,o.jsx)(i.Input.TextArea,{rows:2,maxLength:255,showCount:!0,placeholder:`Enter description`})})})]}),(0,o.jsxs)(i.Space,{className:`zt-actions`,children:[(0,o.jsx)(i.Button,{onClick:()=>{if(d){s(`/viewTestCase`);return}n.resetFields(),g([]),v([]),E(!1),O(!1)},children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,loading:k||j,children:d?`Update Test Case`:`Save & Continue`})]})]},`${N}-${P}`),L&&(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.TableOutlined,{}),(0,o.jsx)(`span`,{children:`Added Steps`})]}),extra:(0,o.jsx)(i.Tag,{children:F?`${_.length} ${F} step(s)`:`${_.length} step(s)`}),children:(0,o.jsx)(im,{listName:`Added Steps`,loading:D,fields:AA,dataSource:_,current:1,pageSize:Math.max(_.length,1),total:_.length,rowSelection:!1,className:`zt-list-plain zt-list-static`})})]})})]}):null}var{Text:FA}=i.Typography,IA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Manage Modules`,href:`/manageModules`}];function LA(){let n=(0,c.useNavigate)(),s=(0,r.useMemo)(()=>t.c(),[]),[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)({}),[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(``),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(1),[C,w]=(0,r.useState)(10),T=(0,r.useCallback)(async e=>{if(!e){u([]);return}m(!0);try{let[t,n]=await Promise.all([Lv({project:e}),Bv({project:e})]);u(t?.items??[]);let r={};(n?.items??[]).forEach(e=>{let t=e.modulename;r[t]=(r[t]??0)+1}),f(r)}catch(e){console.error(e),i.message.error(`Unable to load modules.`)}finally{m(!1)}},[]);(0,r.useEffect)(()=>{if(!s){n(`/select-project`,{replace:!0});return}Promise.resolve().then(()=>T(s.name))},[s,n,T]);let E=async(e,t)=>{try{await zv(e.id,+!!t),u(n=>n.map(n=>n.id===e.id?{...n,active:+!!t}:n)),i.message.success(`Module ${t?`activated`:`deactivated`}.`)}catch(e){console.error(e),i.message.error(`Unable to update module status.`)}},D=async()=>{let e=_.trim();if(!e){i.message.warning(`Enter a module name.`);return}b(!0);try{await Rv({project:s.name,modulename:e}),i.message.success(`Module added.`),g(!1),v(``),S(1),T(s.name)}catch(e){console.error(e),i.message.error(`Unable to add module (maybe it already exists).`)}finally{b(!1)}},O=e=>{n(`/test-cases/zinnext/submodules?module=${encodeURIComponent(e.modulename)}`)};return s?(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:IA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>n(`/addTestCase`),children:`Back to Form`})})]}),(0,o.jsxs)(`div`,{className:`zt-page`,children:[(0,o.jsx)(i.Card,{className:`v1-card zt-bar`,children:(0,o.jsxs)(i.Row,{gutter:[16,16],align:`middle`,justify:`space-between`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.ProjectOutlined,{}),(0,o.jsx)(`span`,{children:`Project:`}),(0,o.jsx)(FA,{strong:!0,children:s.name})]})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`primary`,icon:(0,o.jsx)(a.PlusOutlined,{}),onClick:()=>g(!0),children:`Add Module`})})]})}),(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.AppstoreOutlined,{}),(0,o.jsx)(`span`,{children:`Modules`})]}),children:(0,o.jsx)(im,{listName:`Modules`,loading:p,fields:[{label:`Module`,value:`modulename`},{label:`Submodules`,value:`submoduleCount`,width:140,render:(e,t)=>(0,o.jsxs)(i.Button,{type:`link`,className:`zt-count-link`,onClick:()=>O(t),children:[d[t.modulename]??0,` submodule(s)`]})},{label:`Active`,value:`active`,width:120,render:(e,t)=>(0,o.jsx)(i.Switch,{checked:e===1,checkedChildren:`On`,unCheckedChildren:`Off`,onChange:e=>E(t,e)})}],dataSource:l,current:x,pageSize:C,total:l.length,onPageChange:S,onPageSizeChange:e=>{S(1),w(e)},rowSelection:!1,className:`zt-list-plain`})})]}),(0,o.jsx)(i.Modal,{title:`Add Module`,open:h,confirmLoading:y,okText:`Add`,onOk:D,onCancel:()=>{g(!1),v(``)},destroyOnHidden:!0,children:(0,o.jsxs)(i.Space,{direction:`vertical`,className:`zt-modal-stack`,children:[(0,o.jsxs)(FA,{type:`secondary`,children:[`Project: `,(0,o.jsx)(`b`,{children:s.name})]}),(0,o.jsx)(i.Input,{placeholder:`Enter module name`,maxLength:100,value:_,onChange:e=>v(e.target.value),onPressEnter:D})]})})]}):null}var{Text:RA}=i.Typography,zA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Manage Modules`,href:`/manageModules`},{label:`Manage Submodules`,href:`/test-cases/zinnext/submodules`}];function BA(){let n=(0,c.useNavigate)(),[s]=(0,c.useSearchParams)(),l=(0,r.useMemo)(()=>t.c(),[]),u=s.get(`module`)??``,[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(``),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(1),[C,w]=(0,r.useState)(10),T=(0,r.useCallback)(async(e,t)=>{if(!e||!t){f([]);return}m(!0);try{f((await Bv({project:e,module:t}))?.items??[])}catch(e){console.error(e),i.message.error(`Unable to load submodules.`)}finally{m(!1)}},[]);(0,r.useEffect)(()=>{if(!l){n(`/select-project`,{replace:!0});return}if(!u){n(`/manageModules`,{replace:!0});return}Promise.resolve().then(()=>T(l.name,u))},[l,u,n,T]);let E=async(e,t)=>{try{await Hv(e.id,+!!t),f(n=>n.map(n=>n.id===e.id?{...n,active:+!!t}:n)),i.message.success(`Submodule ${t?`activated`:`deactivated`}.`)}catch(e){console.error(e),i.message.error(`Unable to update submodule status.`)}},D=async()=>{let e=_.trim();if(!e){i.message.warning(`Enter a submodule name.`);return}b(!0);try{await Vv({project:l.name,modulename:u,submodulename:e}),i.message.success(`Submodule added.`),g(!1),v(``),S(1),T(l.name,u)}catch(e){console.error(e),i.message.error(`Unable to add submodule (maybe it already exists).`)}finally{b(!1)}};return!l||!u?null:(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:zA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>n(`/manageModules`),children:`Back to Modules`})})]}),(0,o.jsxs)(`div`,{className:`zt-page`,children:[(0,o.jsx)(i.Card,{className:`v1-card zt-bar`,children:(0,o.jsxs)(i.Row,{gutter:[16,16],align:`middle`,justify:`space-between`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space,{size:16,wrap:!0,className:`zt-section-title`,children:[(0,o.jsxs)(i.Space,{size:6,children:[(0,o.jsx)(a.ProjectOutlined,{}),(0,o.jsx)(`span`,{children:`Project:`}),(0,o.jsx)(RA,{strong:!0,children:l.name})]}),(0,o.jsxs)(i.Space,{size:6,children:[(0,o.jsx)(a.AppstoreOutlined,{}),(0,o.jsx)(`span`,{children:`Module:`}),(0,o.jsx)(RA,{strong:!0,children:u})]})]})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`primary`,icon:(0,o.jsx)(a.PlusOutlined,{}),onClick:()=>g(!0),children:`Add Submodule`})})]})}),(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.AppstoreOutlined,{}),(0,o.jsx)(`span`,{children:`Submodules`})]}),children:(0,o.jsx)(im,{listName:`Submodules`,loading:p,fields:[{label:`Submodule`,value:`submodulename`},{label:`Active`,value:`active`,width:120,render:(e,t)=>(0,o.jsx)(i.Switch,{checked:e===1,checkedChildren:`On`,unCheckedChildren:`Off`,onChange:e=>E(t,e)})}],dataSource:d,current:x,pageSize:C,total:d.length,onPageChange:S,onPageSizeChange:e=>{S(1),w(e)},rowSelection:!1,className:`zt-list-plain`})})]}),(0,o.jsx)(i.Modal,{title:`Add Submodule`,open:h,confirmLoading:y,okText:`Add`,onOk:D,onCancel:()=>{g(!1),v(``)},destroyOnHidden:!0,children:(0,o.jsxs)(i.Space,{direction:`vertical`,className:`zt-modal-stack`,children:[(0,o.jsxs)(RA,{type:`secondary`,children:[`Project: `,(0,o.jsx)(`b`,{children:l.name}),` \xA0|\xA0 Module: `,(0,o.jsx)(`b`,{children:u})]}),(0,o.jsx)(i.Input,{placeholder:`Enter submodule name`,maxLength:100,value:_,onChange:e=>v(e.target.value),onPressEnter:D})]})})]})}var{Text:VA}=i.Typography,HA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Table`,href:`/viewTestCase`}];function UA(){let n=(0,c.useNavigate)(),[s,l]=(0,r.useState)([]),[u,d]=(0,r.useState)(0),[f,p]=(0,r.useState)(!1),m=(0,r.useMemo)(()=>t.c(),[]),[h,g]=(0,r.useState)(``),[_,v]=(0,r.useState)(1),[y,b]=(0,r.useState)(20),[x,S]=(0,r.useState)(null),C=(0,r.useCallback)(async(e={})=>{p(!0);try{let t=await Uv({product_parent_ID:e.project??m?.id??``,search:e.search??h??``,limit:e.pageSize??y,offset:((e.page??_)-1)*(e.pageSize??y)});l(t?.items??[]),d(t?.total??0)}catch(e){console.error(e),i.message.error(`Unable to load test flows.`)}finally{p(!1)}},[m?.id,h,_,y]),w=e=>{i.Modal.confirm({title:`Delete Test Case`,icon:(0,o.jsx)(a.ExclamationCircleOutlined,{}),content:`Are you sure you want to delete this test case?`,okText:`Delete`,okButtonProps:{danger:!0,loading:x===e.id},cancelText:`Cancel`,async onOk(){S(e.id);try{await Jv(e.id),i.message.success(`Test case deleted successfully.`);let t=s.length===1&&_>1?_-1:_;v(t),await C({page:t})}catch(e){throw console.error(`Unable to delete test flow:`,e),i.message.error(`Unable to delete test case.`),e}finally{S(null)}}})};return(0,r.useEffect)(()=>{Promise.resolve().then(()=>{if(!m?.id){n(`/select-project`,{replace:!0});return}C({page:1})})},[]),(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:HA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>n(`/addTestCase`),children:`Back to Form`})})]}),(0,o.jsx)(`div`,{className:`zt-page zt-page-wide`,children:(0,o.jsxs)(i.Card,{className:`v1-card`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.TableOutlined,{}),(0,o.jsx)(`span`,{children:`Test Flows`})]}),extra:(0,o.jsxs)(VA,{type:`secondary`,children:[u,` row(s)`]}),children:[(0,o.jsxs)(i.Space,{wrap:!0,className:`zt-toolbar`,children:[(0,o.jsx)(i.Input.Search,{allowClear:!0,className:`zt-search-filter`,placeholder:`Search module / key / description`,value:h,onChange:e=>g(e.target.value),onSearch:()=>{v(1),C({page:1})}}),(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.ReloadOutlined,{}),onClick:()=>C(),children:`Refresh`})]}),(0,o.jsx)(im,{listName:`Test Flows`,loading:f,fields:[{label:`Actions`,value:`rowActions`,width:112,fixed:`left`,sorter:!1,render:(e,t)=>(0,o.jsxs)(i.Space,{size:4,className:`zt-row-actions`,children:[(0,o.jsx)(i.Tooltip,{title:`Edit`,children:(0,o.jsx)(i.Button,{type:`text`,size:`small`,icon:(0,o.jsx)(a.EditOutlined,{}),onClick:()=>n(`/addTestCase?edit=${t.id}`)})}),(0,o.jsx)(i.Tooltip,{title:`Delete`,children:(0,o.jsx)(i.Button,{danger:!0,type:`text`,size:`small`,icon:(0,o.jsx)(a.DeleteOutlined,{}),loading:x===t.id,onClick:()=>w(t)})})]})},{label:`ID`,value:`id`,width:70,fixed:`left`},{label:`Project`,value:`project`,width:130},{label:`Module`,value:`module`,width:130},{label:`Submodule`,value:`submodule`,width:140},{label:`Step`,value:`step_order`,width:70},{label:`Action`,value:`actions`,width:140},{label:`Key`,value:`key`,width:160,ellipsis:!0},{label:`Value`,value:`value`,width:200,ellipsis:!0},{label:`Expected`,value:`expected`,width:180,ellipsis:!0},{label:`Description`,value:`description`,width:180,ellipsis:!0},{label:`Scenario`,value:`scenario`,width:110,render:e=>e===1?(0,o.jsx)(i.Tag,{color:`green`,children:`Positive`}):(0,o.jsx)(i.Tag,{color:`red`,children:`Negative`})},{label:`Active`,value:`active`,width:90,render:e=>e===1?(0,o.jsx)(i.Tag,{color:`blue`,children:`Active`}):(0,o.jsx)(i.Tag,{children:`Inactive`})}],dataSource:s,current:_,pageSize:y,total:u,onPageChange:e=>{v(e),C({page:e})},onPageSizeChange:e=>{v(1),b(e),C({page:1,pageSize:e})},rowSelection:!1,className:`zt-list-plain`})]})})]})}var WA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/test-cases`}];function GA(){return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsx)(e.t,{items:WA}),(0,o.jsx)(To,{moduleName:`test-flows`,rowKey:`id`})]})}var{Text:KA}=i.Typography,qA=[{label:`Home`,href:`/`},{label:`LMS Cases`,href:`/lms-cases`}],JA={tags:`regression`,active:1},YA={module:{dbName:`Modules`,formField:`module`,label:`Module`}},XA={key:!1,value:!1,expected:!1};function ZA(e,t){return t?e[t]??XA:XA}function QA(e,t){e.setFields(t.map(e=>({name:e,errors:[]})))}function $A(e=[]){return e.map(e=>({value:e,label:e}))}function ej(e=``){return String(e??``).trim()}function tj(e=[]){let t=new Map;return e.forEach(e=>{let n=ej(e?.flow),r=n.toLowerCase();n&&!t.has(r)&&t.set(r,n)}),Array.from(t.values()).map(e=>({value:e,label:e}))}function nj(e=[],t,n){let r=ej(t).toLowerCase(),i=ej(n).toLowerCase();return e.reduce((e,t)=>{let n=ej(t?.module).toLowerCase(),a=ej(t?.flow).toLowerCase();if(n!==r||a!==i)return e;let o=Number(t?.step_order)||0;return Math.max(e,o)},0)+1}function rj({icon:e,title:t}){return(0,o.jsxs)(i.Space,{size:10,align:`center`,children:[(0,o.jsx)(`div`,{className:`v1-section-icon-box`,children:e}),(0,o.jsx)(KA,{strong:!0,className:`v1-section-label`,children:t})]})}function ij(){let[t]=i.Form.useForm(),[n]=i.Form.useForm(),[s,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]),[f,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(mA),[g,_]=(0,r.useState)({}),[v,y]=(0,r.useState)(!1),[b,x]=(0,r.useState)(!1),[S,C]=(0,r.useState)({open:!1,typeKey:`module`}),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(!1),[O,k]=(0,r.useState)(!1),A=(0,c.useNavigate)(),j=YA[S.typeKey],M=(0,r.useMemo)(()=>$A(s),[s]),N=i.Form.useWatch(`module`,t),P=i.Form.useWatch(`flow`,t),F=i.Form.useWatch(`keyword`,t),I=!!ej(N),L=!!ej(P),R=!I,z=!I||!L,B=(0,r.useMemo)(()=>ZA(g,F),[g,F]),ee=(e,t=[])=>{e===`module`&&l(t)},V=async()=>{y(!0);try{l((await Dv(YA.module.dbName))?.items??[])}catch(e){console.error(`Unable to load testing options:`,e),i.message.error(`Unable to load testing options.`)}finally{y(!1)}},H=async()=>{try{let e=await kv();Array.isArray(e?.options)&&e.options.length>0&&h(e.options),e?.rules&&typeof e.rules==`object`&&_(e.rules)}catch(e){console.error(`Unable to load action field rules:`,e),i.message.error(`Unable to load action validation rules.`)}},U=(0,r.useCallback)(async e=>{let n=ej(e);if(d([]),p([]),t.setFieldsValue({step_order:void 0}),n){x(!0);try{let e=await Fv({limit:1e4,offset:0,module:n}),t=Array.isArray(e?.items)?e.items:[];d(t),p(tj(t))}catch(e){console.error(`Unable to load flows:`,e),i.message.error(`Unable to load flows.`)}finally{x(!1)}}},[t]),te=(0,r.useCallback)(async(e,n,r)=>{let a=ej(e),o=ej(n);if(!a||!o){t.setFieldsValue({step_order:void 0});return}D(!0);try{t.setFieldsValue({step_order:nj(r,a,o)})}catch(e){console.error(`Unable to load step order:`,e),i.message.error(`Unable to load step order.`)}finally{D(!1)}},[t]);(0,r.useEffect)(()=>{Promise.resolve().then(async()=>{await Promise.all([V(),H()])})},[]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>U(N))},[U,N]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>te(N,P,u))},[u,te,P,N]);let ne=async e=>{let n={module:ej(e.module),flow:ej(e.flow),step_order:Number(e.step_order),description:ej(e.description),keyword:ej(e.keyword),target:ej(e.target),value:ej(e.value),expected:ej(e.expected),tags:e.tags?ej(e.tags):JA.tags,active:Number(e.active)};k(!0);try{await Pv(n),i.message.success(`LMS case details saved successfully.`),t.resetFields(),d([]),p([])}catch(e){console.error(`Unable to save LMS case:`,e),i.message.error(`Unable to save LMS case.`)}finally{k(!1)}},W=(e,n)=>{t.setFieldsValue({[e]:ej(n)})},re=e=>{t.setFieldsValue({module:ej(e),flow:void 0,step_order:void 0,keyword:void 0,description:void 0,target:void 0,tags:JA.tags,value:void 0,expected:void 0}),QA(t,[`keyword`,`target`,`value`,`expected`])},ie=e=>{t.setFieldsValue({flow:ej(e),step_order:void 0,keyword:void 0,target:void 0,value:void 0,expected:void 0}),QA(t,[`keyword`,`target`,`value`,`expected`])},G=e=>{let n=ZA(g,e);t.setFieldsValue({keyword:ej(e),target:n.key?t.getFieldValue(`target`):void 0,value:n.value?t.getFieldValue(`value`):void 0,expected:n.expected?t.getFieldValue(`expected`):void 0}),QA(t,[`target`,`value`,`expected`])},ae=e=>{let t=YA[e];C({open:!0,typeKey:e}),n.setFieldsValue({name:``,type:t.label})},oe=()=>{C(e=>({...e,open:!1})),n.resetFields()},se=async()=>{try{let e=ej((await n.validateFields()).name),r=await Ov({name:e,type:j.dbName});ee(S.typeKey,r?.items??[]),t.setFieldsValue({[j.formField]:e}),i.message.success(`${j.label} added successfully.`),oe()}catch(e){if(e?.errorFields)return;console.error(`Unable to save testing option:`,e),i.message.error(`Unable to add ${j.label.toLowerCase()}.`)}finally{T(!1)}};return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:qA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>A(`/lms-home`),children:`View Table`})})]}),(0,o.jsx)(`div`,{className:`v1-page`,children:(0,o.jsxs)(`div`,{className:`v1-page-inner`,children:[(0,o.jsx)(`div`,{className:`v1-page-header`,children:(0,o.jsxs)(i.Space,{align:`center`,size:10,children:[(0,o.jsx)(a.ProfileOutlined,{className:`v1-outer-icon`}),(0,o.jsx)(`div`,{children:(0,o.jsx)(KA,{strong:!0,style:{fontSize:16},children:`Add LMS Case`})})]})}),(0,o.jsx)(Z,{children:(0,o.jsxs)(i.Form,{form:t,className:`v1-form`,layout:`vertical`,colon:!1,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),initialValues:JA,onFinish:ne,autoComplete:`off`,children:[(0,o.jsx)(i.Card,{className:`v1-card`,title:(0,o.jsx)(rj,{icon:(0,o.jsx)(a.FileTextOutlined,{}),title:`LMS Case Details`}),extra:(0,o.jsx)(KA,{type:`secondary`,className:`v1-card-subtitle`,children:`Module, flow, step order and execution data`}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsxs)(i.Space.Compact,{style:{width:`100%`},children:[(0,o.jsx)(i.Form.Item,{label:`Module`,name:`module`,style:{flex:1},children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,loading:v,optionFilterProp:`label`,placeholder:`Select module`,options:M,onChange:re})}),(0,o.jsx)(i.Button,{"aria-label":`Add module`,icon:(0,o.jsx)(a.PlusOutlined,{}),style:{marginTop:30},onClick:()=>ae(`module`)})]})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Flow`,name:`flow`,children:(0,o.jsx)(i.AutoComplete,{maxLength:100,allowClear:!0,disabled:R,options:f,placeholder:b?`Loading flows`:`Enter flow`,onChange:ie,filterOption:(e,t)=>t?.value?.toLowerCase().includes(e.toLowerCase())})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Step Order`,name:`step_order`,validateTrigger:[`onBlur`,`onChange`],children:(0,o.jsx)(i.Input,{maxLength:10,disabled:!0,placeholder:E?`Loading step order`:`Step order`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Action`,name:`keyword`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,disabled:z,optionFilterProp:`label`,placeholder:`Select action`,options:m,onChange:G})})}),(0,o.jsx)(i.Col,{xs:24,children:(0,o.jsx)(i.Form.Item,{label:`Description`,name:`description`,children:(0,o.jsx)(i.Input.TextArea,{rows:3,maxLength:255,disabled:z,placeholder:`Enter description`,showCount:!0,onBlur:e=>W(`description`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Key`,name:`target`,rules:[{required:B.key,message:`Key is required for this action`}],children:(0,o.jsx)(i.Input,{maxLength:255,disabled:z||!!F&&!B.key,placeholder:z?`Select module and flow first`:F?B.key?`Required — Enter selector / locator`:`Not needed for this action`:`Select an action first`,onBlur:e=>W(`target`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Tags`,name:`tags`,children:(0,o.jsx)(i.Input,{maxLength:200,disabled:z,placeholder:`Enter tags`,prefix:(0,o.jsx)(a.TagsOutlined,{className:`v1-input-icon`}),onBlur:e=>W(`tags`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Value`,name:`value`,rules:[{required:B.value,message:`Value is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:z||!!F&&!B.value,placeholder:z?`Select module and flow first`:F?B.value?`Required — Enter value`:`Not needed for this action`:`Select an action first`,onBlur:e=>W(`value`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Expected`,name:`expected`,rules:[{required:B.expected,message:`Expected result is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:z||!!F&&!B.expected,placeholder:z?`Select module and flow first`:F?B.expected?`Required — Enter expected result`:`Not needed for this action`:`Select an action first`,onBlur:e=>W(`expected`,e.target.value)})})})]})}),(0,o.jsx)(`div`,{className:`v1-form-actions`,children:(0,o.jsx)(i.Form.Item,{children:(0,o.jsxs)(i.Space,{children:[(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,loading:O,disabled:z,children:`Submit`}),(0,o.jsx)(i.Button,{onClick:()=>{t.resetFields(),d([]),p([])},children:`Reset`})]})})})]})}),(0,o.jsx)(i.Modal,{title:`Add ${j.label}`,open:S.open,confirmLoading:w,okText:`Add`,onCancel:oe,onOk:()=>{T(!0),se()},destroyOnHidden:!0,children:(0,o.jsxs)(i.Form,{form:n,layout:`vertical`,colon:!1,className:`v1-form`,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),children:[(0,o.jsx)(i.Form.Item,{label:`Name`,name:`name`,children:(0,o.jsx)(i.Input,{maxLength:100,placeholder:`Enter ${j.label.toLowerCase()} name`,onBlur:e=>{n.setFieldsValue({name:ej(e.target.value)})}})}),(0,o.jsx)(i.Form.Item,{label:`Type`,name:`type`,children:(0,o.jsx)(i.Input,{disabled:!0})})]})})]})})]})}var aj=[{label:`Home`,href:`/`},{label:`LMS Cases`,href:`/lms-cases`}];function oj(){return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsx)(e.t,{items:aj}),(0,o.jsx)(To,{moduleName:`lms-flows`,rowKey:`id`})]})}var sj=[`referenceId`,`ReferenceId`,`candidateId`,`CandidateId`,`entityId`,`EntityId`,`id`,`Id`,`_id`];function cj(e=sj){return function(t){if(!t||typeof t!=`object`)return``;for(let n of e){let e=t[n];if(e!=null&&e!==``)return String(e)}return``}}function lj(e,t=sj){if(!e||typeof e!=`object`)return[];let n=[];for(let r of t){let t=e[r];t!=null&&t!==``&&n.push(String(t))}return n}var uj=cj();function dj(e){return typeof e==`function`?e:typeof e==`string`?cj([e]):Array.isArray(e)?cj(e):uj}function fj(e,t,n){return!t||typeof t!=`object`?e:{...t,...e,id:e?.id??t?.id??n}}function pj(e,t,n={}){return{status:`success`,total:t,data:{data:e,...n}}}var mj=[`fields`,`fieldConfig`,`tabs`,`tabField`,`actionRules`,`actions`,`columnActions`];function hj(e){let t=e?.data??e,n={};for(let r of mj){let i=e?.[r]??t?.[r];i==null||Array.isArray(i)&&i.length===0||(n[r]=i)}return n}var gj=e=>String(e??``).replace(/[^a-zA-Z0-9]/g,``).toLowerCase();function _j(e,t,n){let r=(Array.isArray(n)?n:[n]).map(gj).filter(Boolean),i=r.length?e.findIndex(e=>r.includes(gj(e?.value))||r.includes(gj(e?.label))):-1;if(i===-1)return[...e,...t];let a=Number(e[i]?.order),o=Number.isFinite(a)?t.map((e,n)=>e.order==null||e.order===``?{...e,order:a+(n+1)/(t.length+1)}:e):t;return[...e.slice(0,i+1),...o,...e.slice(i+1)]}var vj=(e,t)=>Yr(e,t).rows,yj=(e,t)=>{let{rows:n,total:r}=Yr(e,t);return{rows:n,total:r}};function bj(e,t){return function(n,r,i,a={}){return e(t??n,r,i,a)}}function xj(e){return!e||typeof e!=`object`||typeof(e.fetchByKeys??e.fetch??e.function)!=`function`?null:{...e,fetchByKeys:typeof e.fetchByKeys==`function`?e.fetchByKeys:null,fetch:typeof e.fetch==`function`?e.fetch:null,function:typeof e.function==`function`?e.function:null,extractRows:typeof e.extractRows==`function`?e.extractRows:vj,mergeRow:typeof e.mergeRow==`function`?e.mergeRow:fj,fetchById:typeof e.fetchById==`function`?e.fetchById:null}}function Sj({fetchSecondaryByKeys:e,fetchSecondary:t,extractSecondaryRows:n,fetchSecondaryById:r,secondaryKey:i,mergeRow:a,secondaryFetchLimit:o}){return!e&&!t&&!r?[]:[xj({key:i,fetchByKeys:e?(t,n,r)=>e(t,n,r):null,function:t?({moduleName:e,options:n})=>t(e,o,0,n):null,extractRows:n,fetchById:r,mergeRow:a})].filter(Boolean)}function Cj(e){if(typeof e==`function`)return t=>{let n=e(t);return n==null||n===``?[]:[String(n)]};let t=typeof e==`string`?[e]:Array.isArray(e)&&e.length?e:sj;return e=>lj(e,t)}function wj(e,t){let n=new Map;return e.forEach(e=>{for(let r of t(e))n.has(r)||n.set(r,e)}),n}function Tj({moduleName:e,limit:t,offset:n,options:r,keys:i,primaryResponse:a,primaryRows:o,pageRows:s,total:c,source:l}){return{moduleName:e,limit:t,offset:n,options:r,keys:i,primaryResponse:a,primaryRows:o,pageRows:s,total:c,source:l}}async function Ej(e,t){if(typeof e.args==`function`){let n=e.args(t);return(e.fetch??e.function??e.fetchByKeys)(...Array.isArray(n)?n:[n])}if(Array.isArray(e.args))return(e.fetch??e.function??e.fetchByKeys)(...e.args);if(e.fetchByKeys&&Array.isArray(t.keys))return e.fetchByKeys(t.moduleName,t.keys,t.options,t);let n=e.fetch??e.function;return typeof n==`function`?n(t):null}function Dj({fetchPrimaryPage:e,extractPrimaryPage:t=yj,fetchSecondaryByKeys:n,joinSources:r=[],fetchPrimary:i,extractPrimaryRows:a=vj,fetchSecondary:o,extractSecondaryRows:s=vj,fetchSecondaryById:c,primaryKey:l,secondaryKey:u,mergeRow:d=fj,secondaryFetchLimit:f=200,extraFields:p=[],extraFieldsAfter:m}){let h=Array.isArray(r)&&r.length?r.map(xj).filter(Boolean):Sj({fetchSecondaryByKeys:n,fetchSecondary:o,extractSecondaryRows:s,fetchSecondaryById:c,secondaryKey:u,mergeRow:d,secondaryFetchLimit:f}),g=0;async function _(e,t,n,r){if(!e.fetchById||!r)return null;try{let i=await e.fetchById(n,r);return i&&t(i).includes(String(r))?i:null}catch(e){return console.error(`[mergedListApi] per-id join lookup failed for "${r}"`,e),null}}async function v(e,t,n,r,i){if(!n)return e;let a=t.extractRows(n,r)??[],o=dj(t.primaryKey??l),s=Cj(t.key),c=wj(a,s);return Promise.all(e.map(async e=>{let n=o(e),a=c.get(n)??(i()?null:await _(t,s,r,n));return t.mergeRow(e,a,n)}))}async function y(e,t,n,r){let i=e;for(let e of t)i=await v(i,e.source,e.response,n,r);return i}function b(e,t,n){let r={};for(let e of n){if(!e)continue;let t=hj(e);for(let e of Object.keys(t))r[e]??(r[e]=t[e])}return p.length&&(r.fields=_j(r.fields??[],p,m)),pj(e,t,r)}async function x({moduleName:e,limit:t,offset:n,options:r,primaryResponse:i,primaryRows:a,pageRows:o,total:s}){return Promise.all(h.map(async c=>{try{let u=dj(c.primaryKey??l),d=[...new Set(o.map(u).filter(Boolean))];return c.fetchByKeys&&d.length===0?{source:c,response:null}:{source:c,response:await Ej(c,Tj({moduleName:e,limit:t,offset:n,options:r,keys:d,primaryResponse:i,primaryRows:a,pageRows:o,total:s,source:c}))}}catch(e){return console.error(`[mergedListApi] join fetch failed — rendering page without that join`,e),{source:c,response:null}}}))}async function S(n,r,i,a,o){let s=await e(n,r,i,a),c=t(s,n)??{},l=Array.isArray(c.rows)?c.rows:[],u=Number.isFinite(Number(c.total))?Number(c.total):l.length,d=await x({moduleName:n,limit:r,offset:i,options:a,primaryResponse:s,primaryRows:l,pageRows:l,total:u});return b(await y(l,d,n,o),u,[s,...d.map(e=>e.response)])}async function C(e,t,n,r,o){let s=await i(e,t,n,r),c=a(s,e)??[],l=c.length,u=c.slice(n,n+t),d=await x({moduleName:e,limit:t,offset:n,options:r,primaryResponse:s,primaryRows:c,pageRows:u,total:l});return b(await y(u,d,e,o),l,[s,...d.map(e=>e.response)])}return async function(t,n=10,r=0,i={}){let a=++g,o=()=>a!==g;return e?S(t,n,r,i,o):C(t,n,r,i,o)}}function Oj(e,t,n={}){return Dj({fetchPrimary:()=>xD(e,t),extractPrimaryRows:vD,fetchSecondary:xn,fetchSecondaryById:SD,secondaryFetchLimit:n.moduleFetchLimit??200})}function kj(e){let t=String(e??``).trim().split(/[^a-zA-Z0-9]+/).filter(Boolean);return t.length?`${t.map((e,t)=>t===0?e.toLowerCase():e[0].toUpperCase()+e.slice(1).toLowerCase()).join(``)}Count`:``}function Aj(e){let t=Array.isArray(e?.stages)?e.stages:[];if(!t.length)return e;let n={};for(let e of t){let t=kj(e?.stageName);t&&(n[t]=Number(e?.count)||0)}return{...n,...e}}var jj=e=>{let t=Number(e?.targetSubmission??e?.targetSubmissions);return Number.isFinite(t)&&t>0?t:null};function Mj({submittedCountField:e=`submittedCount`,progressField:t=`targetSubmissionProgress`}={}){return function(n,r,i){let a=fj(n,r,i),o=jj(a);return o!=null&&(console.log(`mergeJobWorkflowRow`,i,a?.[e],o),a[t]=`${Number(a?.[e])||0} of ${o}`),a}}function Nj(e={}){let t=Mj(),n=Dj({primaryKey:`_id`,secondaryKey:`entityId`,extraFields:e.extraFields,extraFieldsAfter:e.extraFieldsAfter,fetchPrimaryPage:xn,fetchSecondaryByKeys:()=>bD(),extractSecondaryRows:e=>(e?.items??[]).map(Aj),mergeRow:(e,n,r)=>{let i=t(e,n,r);return n?._id&&(i.workflowId=n._id),i}});return async function(e,t,r,i){return await n(e,t,r,i)}}async function Pj(e,t=10,n=0,r={},i={}){return Yr(await Nj(i)(e,t,n,r),e)}async function Fj(e,t,n,r=10,i=0,a={}){return Yr(await Oj(e,t)(n,r,i,a),n)}var Ij=QO,Lj=Zv(Xk),Rj=Zv(Qk),zj=Zv(pA),Bj=Zv(TA),Vj=Zv(PA),Hj=Zv(LA),Uj=Zv(BA),Wj=Zv(UA),Gj=Zv(GA),Kj=Zv(ij),qj=Zv(oj);exports.ADMIN_API_URL=t._,exports.ADMIN_APP_ID=t.v,exports.APP_ID=t.y,exports.AUTH_URL=t.b,exports.ActivityNotesCard=vc,exports.ActivityTab=pc,exports.AddBatchCandidatePopup=NO,exports.AddFormV1=Xs,exports.AdminDashboard=QO,exports.AdminDashboardContent=Ew,exports.AdminPage=Ij,exports.AppAlert=Zs,exports.AppButton=e.at,exports.AppShell=bv,exports.ApprovalActionBar=Hh,exports.AssigneeAvatars=yc,exports.AuthGuard=vv,exports.BILLING_STATUS_FLOW=Od,exports.BOOLEAN_API_KEYS=Lm,exports.BOOLEAN_PARSEABLE_API_KEYS=Mm,exports.BULK_UPLOAD_DEFAULT_ACCEPT=bc,exports.BULK_UPLOAD_DEFAULT_MAX_SIZE_MB=xc,exports.Breadcrumb=e.t,exports.BulkUploadPage=zj,exports.BulkUploadPanel=kc,exports.CANDIDATES_URL=t.x,exports.CONTRACT_C2C=fg,exports.CONTRACT_W2=dg,exports.CURRENCY_SYMBOLS=Ll,exports.CalendarCard=D,exports.CoreThemeAdminApp=Aw,exports.CoreThemeAdminRoutes=kw,exports.CustomPagination=Ae,exports.DEFAULT_HOURS_POLICY=uh,exports.DayLogModal=Ph,exports.DescriptionBlock=Hc,exports.DetailHeaderCard=jf,exports.DetailViewPage=Rf,exports.DetailViewV1=Du,exports.DocumentViewer=e.vn,exports.DynamicCards=Dt,exports.DynamicPopup=AE,exports.DynamicPopupRoute=RO,exports.DynamicTabs=j,exports.EditFormV1=Ip,exports.FIELD_TYPE_REGISTRY=hm,exports.FINANCE_APPROVAL_CONFIG=rg,exports.FINANCE_TYPE_CFO=Xh,exports.FINANCE_TYPE_ONBOARDING_MANAGER=Yh,exports.FINANCE_TYPE_ONBOARDING_MANAGER_REAPPROVE=$h,exports.FINANCE_TYPE_ONLY_FINANCE=Zh,exports.FINANCE_TYPE_SUBMISSION_MANAGER=Jh,exports.FINANCE_TYPE_SUBMISSION_MANAGER_REAPPROVE=Qh,exports.FileListCard=__,exports.FinanceApprovalPanel=Xg,exports.FinanceAvatar=uf,exports.FinanceBadge=mf,exports.FinanceDayCell=Wh,exports.FinanceDivider=tf,exports.FinanceEmployeeCell=df,exports.FinanceEmptyState=Qd,exports.FinanceEquation=nf,exports.FinanceHistoryTimeline=sf,exports.FinanceHoursGrid=Zd,exports.FinanceKpiRow=Xd,exports.FinanceLine=ef,exports.FinanceListToolbar=lh,exports.FinanceMarginBadge=hf,exports.FinanceMoneyCell=pf,exports.FinanceRecordsTable=vf,exports.FinanceRowChevron=gf,exports.FinanceSection=$d,exports.FinanceStatusPill=Yd,exports.FinanceTextCell=ff,exports.FinanceTimesheetAnalysis=Kh,exports.FinanceWorkflowSteps=rf,exports.HOURS_MESSAGES=dh,exports.Header=K_,exports.HierarchyUserFilter=Mt,exports.JOBS_URL=t.S,exports.LegacyAdminPage=Lj,exports.ListView=To,exports.LmsHomePage=qj,exports.LmsTestForm=Kj,exports.Login=xv,exports.MailPopup=Yw,exports.ManageModules=Hj,exports.ManageSubmodules=Uj,exports.ModuleRowActions=Gp,exports.NotesPanel=Vh,exports.NotesTab=_c,exports.PAYROLL_STATUS_FLOW=kd,exports.POPUP_CONFIGS=wO,exports.ParamCardView=Qp,exports.ParamListView=im,exports.PeriodBadgeTag=Ch,exports.PreviewPopup=ET,exports.ProjectSelect=Xv,exports.ProofUploadPreview=Bh,exports.QuickLogBar=Lh,exports.QuickLogSelectionBar=Fh,exports.RejectionReasonModal=Ih,exports.SUBMISSIONS_URL=t.w,exports.SearchBuilderV1=eh,exports.Sidebar=mv,exports.StatusBadge=nh,exports.StatusBadgeTag=Sh,exports.StickyNotesFullPage=Rj,exports.StylishDynamicTabs=ih,exports.TemplateEditor=oh,exports.TestForm=Bj,exports.TestingHomePage=Gj,exports.TimelineGroups=ac,exports.TimesheetDayCell=jh,exports.TipTapEditor=e.yn,exports.UserForm=ZO,exports.VendorShareDrawer=HO,exports.ViewSummaryWidget=xi,exports.WizardPopup=MT,exports.ZinnextTableView=Wj,exports.ZinnextTestForm=Vj,exports.appNow=e.Cn,exports.applyIntegrationStatus=e.zn,exports.approveSubmission=pe,exports.buildAcceptAttr=Ec,exports.buildBooleanRequest=Hm,exports.buildCsv=Ud,exports.buildDailyRows=Ld,exports.buildDayGradient=kh,exports.buildRateHistoryEntries=Lg,exports.buildWeeklyRollup=Bd,exports.clearSelectedProject=t.r,exports.colors=e.Sn,exports.computeFinance=kg,exports.computeHoursPolicy=_h,exports.computeMarginBand=Vd,exports.conditionMatches=e.i,exports.configureCoreTheme=t.T,exports.configuredFieldLabel=e.a,exports.createAllWorkflowsListFetcher=Nj,exports.createMergedListFetcher=Dj,exports.createModuleListFetchAdapter=bj,exports.createWorkflowStageListFetcher=Oj,exports.currencySymbol=Rl,exports.defaultMergeRow=fj,exports.deleteIntegrationConfig=e.Xn,exports.deriveDayStats=Id,exports.describeCapacity=yh,exports.downloadCsv=qd,exports.evaluateShowIfWith=e.o,exports.findEmployerRow=Cg,exports.flattenGroups=xg,exports.formatAmount=Wl,exports.formatApp=e.wn,exports.formatAppDateTime=e.Tn,exports.formatFileSize=Tc,exports.formatFinanceMoney=Rg,exports.formatHours=yd,exports.formatMoney=Gl,exports.formatPercent=xd,exports.formatRate=Kl,exports.getActivity=e.rn,exports.getAllWorkflowsModuleList=Pj,exports.getAppTimeZone=e.En,exports.getApprovalDate=Td,exports.getBgcIntegrationConfig=e.pr,exports.getBgcIntegrationSummary=e.mr,exports.getBillingActionStates=Ad,exports.getBooleanEligibleTypes=ym,exports.getCurrentRoleName=t.s,exports.getFieldLabel=Gd,exports.getFieldType=_m,exports.getFileExtension=wc,exports.getFinanceApprovalConfig=cg,exports.getFormGroupsRaw=o_,exports.getIntegrationConfig=e.br,exports.getIntegrationConfigs=e.xr,exports.getIntegrationSummary=e.Sr,exports.getModuleConfig=De,exports.getModuleDataDetail=e.an,exports.getPayrollActionStates=jd,exports.getPeriodBadgeConfig=ke,exports.getSelectedProject=t.c,exports.getStoredToken=t.l,exports.getStoredUser=t.u,exports.getUserRoles=t.d,exports.getVMSApprove=me,exports.getValueStyle=Kd,exports.getWorkflowStageModuleList=Fj,exports.getWorkflowSteps=Md,exports.humanizeEvent=wd,Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Jo}}),exports.indexFieldConfig=Wd,exports.initialsOf=Sd,exports.insertTokenAtCursor=Im,exports.isBooleanEligible=vm,exports.isBooleanParsable=Pm,exports.isTester=t.f,exports.logout=t.m,exports.marginIncludesReferral=ug,exports.matchLocationTax=Og,Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Kf}}),exports.normalizeContract=Tg,Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Ac}}),exports.rateUnitLabel=Bl,exports.rateUnitShort=Hl,exports.reconcileHours=vh,exports.registerFieldType=gm,exports.rejectSubmission=ge,exports.resolveActivityMeta=uc,exports.resolveAndCompute=Ag,exports.resolveDayKind=hh,exports.resolveFinanceInputs=Dg,exports.resolveMergeKey=uj,exports.resolveMergedListKey=uj,exports.resolveRejectionReason=lg,exports.resolveSubmissionFinance=s_,exports.saveBgcIntegrationConfig=e.Wr,exports.saveIntegrationConfig=e.qr,exports.setSelectedProject=t.g,exports.showIfConditions=e.c,exports.stageCountKey=kj,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Sv}}),exports.testIntegrationConnection=e.$r,exports.toApp=e.On,exports.toNumber=Ul,exports.tzLabel=e.kn,exports.tzShortLabel=e.An,exports.useDropdownFields=Ln,exports.useDropdownValues=Si,exports.useEditForm=v_,exports.useFieldConfig=Rn,exports.useFilterFields=zn,exports.useMenuPermission=Jn,exports.useModuleActions=Rp,exports.useRecordRefresh=Ff,exports.validateBooleanQuery=Fm,exports.validateBulkFile=Dc,exports.withAdminAppId=t.E,exports.withAppId=t.D,exports.withAuthGuard=Zv;
12
+ `))}function cT(e){let t=e.match(/^([A-Za-z][A-Za-z&/ ]{1,28}?)\s*:\s*(\S.+)$/);if(!t)return null;let n=t[1].trim(),r=t[2].trim();return n.split(/\s+/).length>3||r.length>60?null:{fieldKey:n.toLowerCase().replace(/\s+/g,`-`),fieldLabel:rT(n),value:r}}function lT(e){let t=e.toLowerCase().replace(/[\s:.\-–—]+$/,``).trim();return $w.has(t)?eT.test(t)?`education`:tT.test(t)?`keySkills`:`overview`:null}function uT(e){let t=[],n={overview:[],keySkills:[],education:[]},r=`overview`;return e.forEach(e=>{let i=lT(e);if(i){r=i;return}if(r===`overview`){let n=cT(e);if(n){t.push(n);return}}n[r].push(e)}),{meta:t,overview:iT(n.overview),keySkills:iT(n.keySkills),education:iT(n.education)}}function dT(e){let t=[...Qw].sort((e,t)=>t.length-e.length),n=RegExp(`\\b(${t.map(nT).join(`|`)})\\b\\s*:?`,`gi`),r=[...e.matchAll(n)];if(!r.length)return{meta:[],overview:iT(sT(e)),keySkills:[],education:[]};let i={overview:[],keySkills:[],education:[]},a=e.slice(0,r[0].index).trim();return a&&i.overview.push(...sT(a)),r.forEach((t,n)=>{let a=t[1].trim().toLowerCase(),o=t.index+t[0].length,s=n+1<r.length?r[n+1].index:e.length,c=sT(e.slice(o,s).trim());c.length&&i[eT.test(a)?`education`:tT.test(a)?`keySkills`:`overview`].push(...c)}),{meta:[],overview:iT(i.overview),keySkills:iT(i.keySkills),education:iT(i.education)}}function fT(e){let t=aT(e);if(!t)return{meta:[],overview:[],keySkills:[],education:[]};let n=oT(t);return n.length>=4?uT(n):dT(t)}function pT({items:e}){return(0,o.jsx)(`ul`,{className:`jdv-ats-bullets`,children:e.map((e,t)=>(0,o.jsx)(`li`,{className:`jdv-ats-bullet-item`,children:e},t))})}function mT({raw:e=``,meta:t=[]}){let[n,i]=(0,r.useState)(!1),a=(0,r.useMemo)(()=>fT(e),[e]),s=t.length?t:a.meta,c=[];if(a.overview.length&&c.push({key:`overview`,title:`Overview`,items:a.overview}),a.keySkills.length&&c.push({key:`keySkills`,title:`Key Skills`,items:a.keySkills,card:!0,icon:`🛠️`}),a.education.length&&c.push({key:`education`,title:`Education`,items:a.education,card:!0,icon:`🎓`}),!s.length&&!c.length)return(0,o.jsx)(Xw,{type:`secondary`,children:`No description available.`});let l=n?c:c.slice(0,Zw),u=c.length-Zw;return(0,o.jsxs)(`div`,{className:`jdv-ats-desc`,children:[s.length>0&&(0,o.jsx)(`div`,{className:`jdv-ats-meta-grid`,children:s.map(({fieldKey:e,fieldLabel:t,value:n})=>(0,o.jsxs)(`div`,{className:`jdv-ats-meta-row`,children:[(0,o.jsx)(`span`,{className:`jdv-ats-meta-key`,children:t}),(0,o.jsx)(`span`,{className:`jdv-ats-meta-val`,children:n})]},e??t))}),(0,o.jsx)(`div`,{className:`jdv-ats-sections`,children:l.map(e=>e.card?(0,o.jsxs)(`div`,{className:`education-block`,children:[(0,o.jsxs)(`div`,{className:`education-header`,children:[(0,o.jsx)(`span`,{children:e.icon}),(0,o.jsx)(`span`,{children:e.title})]}),(0,o.jsx)(`ul`,{className:`education-list`,children:e.items.map((e,t)=>(0,o.jsx)(`li`,{className:`education-list-item`,children:e},t))})]},e.key):(0,o.jsxs)(`div`,{className:`jdv-ats-section`,children:[(0,o.jsx)(`div`,{className:`jdv-ats-section-hd`,children:(0,o.jsx)(`span`,{children:e.title})}),(0,o.jsx)(pT,{items:e.items})]},e.key))}),u>0&&(0,o.jsx)(`span`,{className:`jdv-desc-toggle`,onClick:()=>i(e=>!e),children:n?`Show less`:`Show more (${u} more section${u>1?`s`:``})`})]})}var{Text:hT}=i.Typography;function gT(e){return e?e.trim().split(/\s+/).slice(0,2).map(e=>e[0].toUpperCase()).join(``):`?`}function _T(e){return e?e.name?e.name:e.fullName?e.fullName:e.firstName||e.lastName?[e.firstName,e.lastName].filter(Boolean).join(` `):e.candidateName??e.clientName??e.jobTitle??``:``}function vT(e){return e?e.email??e.emailId??e.emailAddress??``:``}function yT(e){return e?e.status?e.status:e.stage?e.stage:typeof e.isActive==`boolean`?e.isActive?`Active`:`Inactive`:``:``}function bT(e){return e==null||e===``?`-`:typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):Array.isArray(e)?e.join(`, `):typeof e==`object`?e.label??e.name??Object.values(e).join(` `):String(e)}var xT=[`jobDescription`,`description`,`rawDescription`,`jobDescriptionText`];function ST(e){return String(e??``).toLowerCase()===`job`}function CT(e){let t=xT.includes(e.field),n=/description/i.test(e.label??``);return t||n}function wT({record:e}){let t=_T(e),n=vT(e),r=yT(e);return!t&&!n?null:(0,o.jsxs)(`div`,{className:`preview-profile-card`,children:[(0,o.jsxs)(`div`,{className:`preview-profile-card__info`,children:[(0,o.jsx)(i.Avatar,{className:`preview-profile-card__avatar`,children:gT(t)}),(0,o.jsxs)(`div`,{className:`preview-profile-card__text`,children:[t&&(0,o.jsx)(`span`,{className:`preview-profile-card__name`,children:t}),n&&(0,o.jsx)(`span`,{className:`preview-profile-card__email`,children:n})]})]}),r&&(0,o.jsx)(i.Tag,{className:`preview-profile-card__status`,children:r})]})}function TT({fields:t,moduleName:n,centralDocuments:i=[]}){let[a,s]=(0,r.useState)([]),[c,l]=(0,r.useState)(0),[u,d]=(0,r.useState)(!1);if(!t?.length)return null;function f(e){let t=String(e?.type??``).trim().toLowerCase(),n=`${e?.field??``} ${e?.label??``}`;return[`file`,`document`,`upload`].includes(t)||/resume|cv|document|attachment/i.test(n)}function p(e,t){s(e),l(t),d(!0)}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`div`,{className:`preview-field-grid`,children:t.map(t=>{let r=t.value,a=Array.isArray(r)&&r.length>0,s=ST(n)&&CT(t)&&typeof r==`string`&&r.trim(),c=f(t)?i.filter(e=>{let n=String(e?.fieldName??e?.field??e?.formField??e?.key??``).trim().toLowerCase(),r=String(t?.field??``).trim().toLowerCase();if(n&&r&&n===r)return!0;let i=`${t?.field??``} ${t?.label??``}`;return/resume|cv/i.test(i)?/resume|cv/i.test(`${n} ${e?.fileName??``} ${e?.name??``}`):!1}).map(e=>({name:e?.fileName||e?.name||e?.uploadedFileName||e?.originalName||t?.label||`Document`,url:e?.fileUrl||e?.downloadUrl||e?.signedUrl||e?.url||``,type:e?.mimeType||e?.contentType||e?.type})).filter(e=>e.url):[],l=f(t)?c.length?c:e.Nt(r).filter(e=>e.url):[];return l.length?(0,o.jsxs)(`div`,{className:`preview-field-card preview-field-card--documents`,children:[(0,o.jsx)(`span`,{className:`preview-field-card__label`,children:t.label}),(0,o.jsx)(`div`,{className:`preview-document-list`,children:l.map((e,t)=>(0,o.jsxs)(`button`,{type:`button`,className:`preview-document-link`,onClick:()=>p(l,t),title:`Preview ${e.name||`document`}`,children:[(0,o.jsx)(`span`,{className:`preview-document-link__icon`,"aria-hidden":`true`,children:`▣`}),(0,o.jsx)(`span`,{className:`preview-document-link__name`,children:e.name||`Document ${t+1}`}),(0,o.jsx)(`span`,{className:`preview-document-link__action`,children:`Preview`})]},`${e.url}-${t}`))})]},t.field??t.label):a?r.map((e,n)=>(0,o.jsxs)(`div`,{className:`preview-field-card`,children:[(0,o.jsxs)(`span`,{className:`preview-field-card__label`,children:[t.label,r.length>1?` (${n+1})`:``]}),(0,o.jsx)(`span`,{className:`preview-field-card__value`,children:bT(e)})]},`${t.field??t.label}-${n}`)):s?(0,o.jsxs)(`div`,{className:`preview-field-card preview-field-card--description`,children:[(0,o.jsx)(`span`,{className:`preview-field-card__label`,children:t.label}),(0,o.jsx)(`div`,{className:`preview-field-card__description`,children:(0,o.jsx)(mT,{raw:r})})]},t.field??t.label):(0,o.jsxs)(`div`,{className:`preview-field-card`,children:[(0,o.jsx)(`span`,{className:`preview-field-card__label`,children:t.label}),(0,o.jsx)(`span`,{className:`preview-field-card__value`,children:bT(r)})]},t.field??t.label)})}),(0,o.jsx)(e.vn,{documents:a,open:u,onClose:()=>d(!1),initialIndex:c})]})}function ET(){let t=(0,c.useNavigate)(),{moduleName:n=``,record:a=null}=(0,c.useLocation)().state??{},s=a?.id??a?._id,[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)(!!(n&&s)),[p,m]=(0,r.useState)(null),[h,g]=(0,r.useState)([]),[_,v]=(0,r.useState)(0),y=(0,r.useRef)(null),b=(0,r.useRef)(null),x=(0,r.useRef)([]),S=(0,r.useRef)([]);(0,r.useEffect)(()=>{if(!n||!s)return;let t=!1;return Promise.all([e.fn({module:n,id:s}),e.ln(n,s).catch(()=>({data:[]}))]).then(([e,n])=>{t||(u(Array.isArray(e)?e:[]),g(Array.isArray(n)?n:n?.data??[]),f(!1))}).catch(e=>{t||(m(e.message||`Failed to load preview`),g([]),f(!1))}),()=>{t=!0}},[n,s]);function C(){t(-1)}function w(e,t){return e?.label??e?.name??`Section ${t+1}`}function T(e){let t=y.current,n=S.current[e];if(!t||!n)return;let r=t.getBoundingClientRect(),i=n.getBoundingClientRect(),a=(t.querySelector(`.preview-stepper-wrap`)?.offsetHeight??0)+12,o=t.scrollTop+i.top-r.top-a;v(e),t.scrollTo({top:Math.max(0,o),behavior:`smooth`})}function E(){let e=y.current;if(!e||!S.current.length)return;let t=e.getBoundingClientRect().top+(e.querySelector(`.preview-stepper-wrap`)?.offsetHeight??0)+24,n=0;S.current.forEach((e,r)=>{e&&e.getBoundingClientRect().top<=t&&(n=r)}),v(e=>e===n?e:n)}(0,r.useEffect)(()=>{let e=b.current,t=x.current[_];if(!e||!t)return;let n=t.offsetLeft-(e.clientWidth-t.offsetWidth)/2,r=Math.max(0,e.scrollWidth-e.clientWidth);e.scrollTo({left:Math.min(Math.max(0,n),r),behavior:`smooth`})},[_,l.length]);function D(){return l.length?(0,o.jsx)(`div`,{ref:b,className:`preview-stepper-wrap`,"aria-label":`Preview sections`,children:(0,o.jsx)(`div`,{className:`preview-stepper`,children:l.map((e,t)=>(0,o.jsxs)(`div`,{className:`preview-stepper__segment`,children:[(0,o.jsxs)(`button`,{type:`button`,className:`preview-stepper__item`,ref:e=>{x.current[t]=e},onClick:()=>T(t),"aria-current":_===t?`step`:void 0,title:`Go to ${w(e,t)}`,children:[(0,o.jsx)(`span`,{className:[`preview-stepper__circle`,t<_?`preview-stepper__circle--done`:``,t===_?`preview-stepper__circle--active`:``].filter(Boolean).join(` `),children:t+1}),(0,o.jsx)(`span`,{className:[`preview-stepper__label`,t===_?`preview-stepper__label--active`:``].filter(Boolean).join(` `),children:w(e,t)})]}),t<l.length-1&&(0,o.jsx)(`span`,{className:[`preview-stepper__line`,t<_?`preview-stepper__line--done`:``].filter(Boolean).join(` `),"aria-hidden":`true`})]},e.name??e.id??t))})}):null}let O=(0,o.jsxs)(`div`,{className:`preview-modal-header`,children:[(0,o.jsx)(`span`,{className:`preview-modal-module`,children:n.toUpperCase()}),(0,o.jsx)(`span`,{className:`preview-modal-title`,children:n?` Details`:`Preview`})]}),k=(0,o.jsx)(`div`,{className:`wizard-footer preview-scroll-footer`,children:(0,o.jsx)(`div`,{className:`wizard-footer-nav`,children:(0,o.jsx)(i.Button,{onClick:C,children:`Close`})})});function A(){return!n||!s?(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status`,children:`Preview id is missing.`}):d?(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status`,children:(0,o.jsx)(i.Spin,{size:`small`})}):p?(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status job-preview-error`,children:p}):l.length?(0,o.jsx)(`div`,{className:`preview-section-list`,children:l.map((e,t)=>(0,o.jsxs)(`section`,{ref:e=>{S.current[t]=e},className:`preview-section-card`,"data-section-index":t,children:[(0,o.jsxs)(`div`,{className:`preview-section-card__header`,children:[(0,o.jsx)(`span`,{className:`preview-section-card__number`,children:t+1}),(0,o.jsx)(`span`,{className:`preview-section-card__title`,children:w(e,t)})]}),(0,o.jsx)(`div`,{className:`preview-section-card__body`,children:e.fields?.length>0?(0,o.jsx)(TT,{fields:e.fields,moduleName:n,centralDocuments:h}):(0,o.jsx)(hT,{type:`secondary`,children:`No fields in this group.`})})]},e.name??e.id??t))}):(0,o.jsx)(`div`,{className:`job-preview-content job-preview-status`,children:`No form groups found.`})}return(0,o.jsx)(i.Modal,{centered:!0,className:`wizard-modal preview-modal preview-scroll-modal`,footer:k,open:!0,title:O,width:`min(900px, calc(100vw - 32px))`,onCancel:C,maskClosable:!1,children:(0,o.jsxs)(`div`,{ref:y,className:`wizard-body preview-scroll-body`,onScroll:E,children:[!d&&!p&&l.length>0&&D(),a&&(0,o.jsx)(wT,{record:a}),A()]})})}var{Text:DT}=i.Typography,{TextArea:OT}=i.Input,kT=[{key:`basic`,title:`Basic Info`,description:`General details`,fields:[{name:`firstName`,label:`First Name`,type:`input`,required:!0,placeholder:`Enter first name`,span:12},{name:`lastName`,label:`Last Name`,type:`input`,required:!0,placeholder:`Enter last name`,span:12},{name:`email`,label:`Email Address`,type:`input`,required:!0,placeholder:`Enter email address`,rules:[{type:`email`,message:`Please enter a valid email`}]},{name:`phone`,label:`Phone`,type:`input`,placeholder:`Enter phone number`}]},{key:`details`,title:`Details`,description:`Additional info`,fields:[{name:`role`,label:`Role`,type:`select`,required:!0,placeholder:`Select a role`,span:12,options:[{label:`Developer`,value:`developer`},{label:`Designer`,value:`designer`},{label:`Manager`,value:`manager`},{label:`Analyst`,value:`analyst`}]},{name:`department`,label:`Department`,type:`select`,placeholder:`Select department`,span:12,options:[{label:`Engineering`,value:`engineering`},{label:`Product`,value:`product`},{label:`Operations`,value:`operations`},{label:`Finance`,value:`finance`}]},{name:`notes`,label:`Notes`,type:`textarea`,placeholder:`Any additional notes...`}]},{key:`confirm`,title:`Confirm`,description:`Review & submit`,isReview:!0}];function AT(e){switch(e.type){case`select`:return(0,o.jsx)(i.Select,{placeholder:e.placeholder,options:e.options,style:{width:`100%`}});case`textarea`:return(0,o.jsx)(OT,{rows:3,placeholder:e.placeholder});case`number`:return(0,o.jsx)(i.InputNumber,{placeholder:e.placeholder,style:{width:`100%`}});default:return(0,o.jsx)(i.Input,{type:e.inputType||`text`,placeholder:e.placeholder})}}function jT({steps:e,form:t}){let n=t.getFieldsValue(),r=e.filter(e=>!e.isReview);return r.some(e=>(e.fields||[]).some(e=>n[e.name]!==void 0&&n[e.name]!==``))?(0,o.jsxs)(`div`,{className:`wizard-review-content`,children:[r.map(e=>(0,o.jsxs)(`div`,{className:`wizard-review-section`,children:[(0,o.jsx)(DT,{className:`wizard-review-section-title`,children:e.title}),(0,o.jsx)(`div`,{className:`wizard-review-grid`,children:(e.fields||[]).map(e=>{let t=n[e.name],r=t===void 0||t===``||t===null?`—`:String(t);return(0,o.jsxs)(`div`,{className:`wizard-review-row`,children:[(0,o.jsx)(`span`,{className:`wizard-review-label`,children:e.label}),(0,o.jsx)(`span`,{className:`wizard-review-separator`,children:`:`}),(0,o.jsx)(`span`,{className:`wizard-review-value`,children:r})]},e.name)})})]},e.key)),(0,o.jsxs)(`div`,{className:`wizard-review-confirm-note`,children:[(0,o.jsx)(a.CheckCircleOutlined,{className:`wizard-review-confirm-icon`}),(0,o.jsx)(DT,{type:`secondary`,children:`Please review the information above before submitting.`})]})]}):(0,o.jsx)(`div`,{className:`wizard-review-empty`,children:(0,o.jsx)(DT,{type:`secondary`,children:`No data entered yet.`})})}function MT(){let[e]=i.Form.useForm(),t=(0,c.useNavigate)(),{title:n=`Wizard`,moduleName:a=``,steps:s=kT,onSubmit:l}=(0,c.useLocation)().state??{},[u,d]=(0,r.useState)(0),f=s[u],p=u===s.length-1,m=u===0;function h(){t(-1)}function g(){let t=(f.fields||[]).map(e=>e.name);e.validateFields(t.length>0?t:void 0).then(()=>{d(e=>e+1)})}function _(){d(e=>e-1)}function v(){let n=e.getFieldsValue();typeof l==`function`&&l(n),t(-1)}let y=s.map((e,t)=>({title:e.title,description:e.description,status:t<u?`finish`:t===u?`process`:`wait`}));return(0,o.jsxs)(i.Modal,{open:!0,title:a?`${n} — ${a}`:n,footer:(0,o.jsxs)(`div`,{className:`wizard-footer`,children:[(0,o.jsx)(i.Button,{onClick:h,children:`Cancel`}),(0,o.jsxs)(`div`,{className:`wizard-footer-nav`,children:[!m&&(0,o.jsx)(i.Button,{onClick:_,children:`Back`}),p?(0,o.jsx)(i.Button,{type:`primary`,onClick:v,children:`Submit`}):(0,o.jsx)(i.Button,{type:`primary`,onClick:g,children:`Next`})]})]}),onCancel:h,width:`min(680px, calc(100vw - 32px))`,centered:!0,className:`wizard-modal`,children:[(0,o.jsx)(`div`,{className:`wizard-steps-container`,children:(0,o.jsx)(i.Steps,{current:u,items:y,size:`small`,className:`wizard-steps`})}),(0,o.jsx)(`div`,{className:`wizard-body`,children:(0,o.jsxs)(i.Form,{form:e,layout:`vertical`,children:[s.filter(e=>!e.isReview).map((e,t)=>(0,o.jsx)(`div`,{style:{display:t===u?`block`:`none`},children:(0,o.jsx)(i.Row,{gutter:16,children:(e.fields||[]).map(e=>(0,o.jsx)(i.Col,{span:e.span||24,children:(0,o.jsx)(i.Form.Item,{name:e.name,label:e.label,rules:[...e.required?[{required:!0,message:`${e.label} is required`}]:[],...e.rules||[]],children:AT(e)})},e.name))})},e.key)),f.isReview&&(0,o.jsx)(jT,{steps:s,form:e})]})})]})}function NT({titleText:e,titleIcon:t}){let n=t===`delete`;return(0,o.jsxs)(`span`,{className:`dynamic-popup__header`,children:[(0,o.jsx)(`span`,{className:`dynamic-popup__header-icon-box${n?` dynamic-popup__header-icon-box--danger`:``}`,children:n?(0,o.jsx)(a.DeleteOutlined,{}):(0,o.jsx)(a.AppstoreOutlined,{})}),(0,o.jsx)(`span`,{className:`dynamic-popup__header-label`,children:e})]})}function PT({note:t,description:n,showSelectedCount:r,count:i,itemLabel:a,bodyText:s,deleteError:c}){return(0,o.jsxs)(o.Fragment,{children:[t&&(0,o.jsx)(e.bn,{variant:`body`,color:`secondary`,className:`dynamic-popup__note`,children:t}),n&&(0,o.jsx)(e.bn,{variant:`body`,className:`dynamic-popup__description`,children:n}),r&&i>0&&(0,o.jsxs)(e.bn,{variant:`body`,className:`dynamic-popup__selected-count`,children:[`Changing status for `,(0,o.jsx)(`strong`,{children:i}),` selected `,a,`.`]}),s&&(0,o.jsx)(e.bn,{variant:`body`,children:s}),c&&(0,o.jsx)(e.bn,{variant:`caption`,color:`danger`,className:`dynamic-popup__error`,children:c})]})}function FT({footerNote:t}){return t?(0,o.jsx)(e.bn,{variant:`caption`,color:`secondary`,className:`dynamic-popup__footer-note`,children:t}):null}function IT(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>t?.[n]??``).trim()}function LT(e){return String(e).replace(/\(\s*\)/g,``).replace(/\s+/g,` `).replace(/(^|\s)([-–—·|])(?=\s*\2)/g,``).replace(/^[\s\-–—·|]+/,``).replace(/[\s\-–—·|]+$/,``).trim()}function RT(e){if(!e)return``;let t=new Date(e);if(Number.isNaN(t.getTime()))return``;let n=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=Math.round((n(new Date)-n(t))/864e5);return r<=0?`Today`:r===1?`Yesterday`:`${r} days ago`}function zT(e){let t=Array.isArray(e?.submissionHistory)?e.submissionHistory:[],n=[e?.lastSubmittedAt,e?.submittedAt,e?.updatedAt,...t.map(e=>e?.submittedAt||e?.updatedAt)].filter(Boolean);return n.length?n.reduce((e,t)=>new Date(t)>new Date(e)?t:e):null}function BT(e){let t=Array.isArray(e?.submissionHistory)?e.submissionHistory:[],n=[e?.lastSubmittedAt,e?.submittedAt,...t.map(e=>e?.submittedAt)].filter(Boolean);return n.length?n.reduce((e,t)=>new Date(t)>new Date(e)?t:e):null}function VT(e,t){if(typeof e==`string`)return{label:e,value:e};if(e?.label!==void 0&&e?.value!==void 0&&!t?.labelTemplate&&!t?.valueKey)return e;let{labelKey:n,valueKey:r,labelTemplate:i}=t??{},a=i?.includes(`{lastdate}`)?{...e,lastdate:RT(zT(e))}:e,o=(i?LT(IT(i,a)):null)||(n?e?.[n]:null)||e?.name||e?.fullName||e?.candidateName||e?.title||e?.displayName||e?.text||e?.applicantReferenceId||e?.applicantRefrenceId||String(Object.values(e||{})[0]??``),s=(r?e?.[r]:null)??e?.id??e?._id??e?.applicantReferenceId??e?.applicantRefrenceId??String(Object.values(e||{})[0]??``),c=e?.disabled===!0||e?.disable===!0,l=String(e?.optionNote??``).trim(),u={label:l?`${String(o)} — ${l}`:String(o),value:String(s),_raw:e};if(c&&(u.disabled=!0),l&&(u.title=l),e?.isSubmitted===!0||e?.alreadySubmitted===!0){u.alreadySubmitted=!0,u.existingSubmissionId=String(e?.existingSubmissionId??e?.jobSubmissionId??e?.submissionId??``);let t=e?.submittedAt||BT(e);t&&(u.submittedAt=t)}if(e?.isFromSubmission===!0&&e?.submissionId){u.isFromSubmission=!0,u.priorSubmissionId=String(e.submissionId);let t=e?.lastSubmittedAt||BT(e);t&&(u.priorSubmittedAt=t)}return u}function HT(e,t){return(t?.[e.optionsKey]??e.defaultOptions??[]).map(t=>VT(t,e))}function UT(e={}){return{selectedIds:[],selectedRecords:[],moduleName:``,removedIds:[],...e}}var WT=`DD MMM YYYY`,GT=`DD MMM YYYY, h:mm A`;function KT(e,t){if(e==null||e===``)return``;let n=(0,s.default)(e);return n.isValid()?t===`relative`&&RT(e)||n.format(WT):String(e)}function qT(e,t){return e?String(e).includes(`{`)?LT(IT(e,t)):String(t?.[e]??e).trim():``}function JT(e){if(e?.alreadySubmitted){let t=e?.submittedAt?(0,s.default)(e.submittedAt):null;return{tone:`blocked`,tooltip:t?.isValid()?`Already submitted to this job on ${t.format(GT)}`:`Already submitted to this job — a candidate can only be submitted once per job`}}if(e?.isFromSubmission){let t=e?.priorSubmittedAt?(0,s.default)(e.priorSubmittedAt):null;return{tone:`history`,tooltip:t?.isValid()?`Previously submitted on ${t.format(GT)} — this form will prefill from it`:`Submitted to another job before — this form will prefill from it`}}return null}function YT(e,t){return e?.alreadySubmitted||!e?.disabled?``:String(t?.message??e?.title??``).trim()}function XT({meta:e}){return(0,o.jsx)(`div`,{className:`dynamic-popup__option-dates`,children:e.map(e=>(0,o.jsxs)(r.Fragment,{children:[(0,o.jsx)(`span`,{className:`dynamic-popup__option-date-label`,children:e.label}),(0,o.jsx)(`span`,{className:`dynamic-popup__option-date-value`,children:e.text})]},e.label))})}function ZT({option:e,layout:t}){let n=e?._raw??e??{},r=qT(t.id,n),s=qT(t.title,n)||String(e?.label??``),c=qT(t.subtitle,n),l=qT(t.titleAccent?.key,n),u=qT(t.titleAccent?.toneKey,n),d=t.titleAccent?.prefix??``,f=(t.meta??[]).map(e=>({label:e.label,text:KT(n?.[e.key],e.type)})).filter(e=>e.text),p=YT(e,n),m=JT(e);return(0,o.jsxs)(`div`,{className:`dynamic-popup__option`,children:[(0,o.jsx)(`span`,{className:`dynamic-popup__option-tick${m?` dynamic-popup__option-tick--${m.tone}`:``}`,children:m&&(0,o.jsx)(i.Tooltip,{title:m.tooltip,placement:`topLeft`,children:(0,o.jsx)(a.CheckCircleFilled,{"aria-label":m.tooltip})})}),(0,o.jsxs)(`div`,{className:`dynamic-popup__option-main`,children:[(0,o.jsxs)(`div`,{className:`dynamic-popup__option-head`,children:[r&&(0,o.jsx)(`span`,{className:`dynamic-popup__option-id`,children:r}),(0,o.jsxs)(`span`,{className:`dynamic-popup__option-title`,children:[(0,o.jsx)(`span`,{className:`dynamic-popup__option-title-text`,children:s}),l&&(0,o.jsx)(`span`,{className:`dynamic-popup__option-title-accent${u?` dynamic-popup__option-title-accent--${u}`:``}`,children:`${d}${l}`})]}),p&&(0,o.jsx)(`span`,{className:`dynamic-popup__option-flag`,children:p})]}),c&&(0,o.jsx)(`div`,{className:`dynamic-popup__option-sub`,children:c})]}),e?.alreadySubmitted?(0,o.jsx)(`span`,{className:`dynamic-popup__option-onjob`,children:`On this job`}):f.length>0&&(0,o.jsx)(XT,{meta:f})]})}var{Text:QT}=i.Typography,{TextArea:$T}=i.Input,eE=[{label:`$`,value:`$`},{label:`EUR`,value:`EUR`},{label:`GBP`,value:`GBP`},{label:`INR`,value:`INR`}],tE=[{label:`Hourly`,value:`Hourly`},{label:`Daily`,value:`Daily`},{label:`Weekly`,value:`Weekly`},{label:`Monthly`,value:`Monthly`},{label:`Yearly`,value:`Yearly`}];function nE(e=[]){return e.map(e=>{if(!e||typeof e!=`object`)return e;let t=[e.value,e.user_id,e.userId,e.USER_ID,e.legacyUserId,e.id,e._id].find(e=>e!=null&&String(e).trim()!==``),n=t==null?``:String(t).trim();return{...e,value:n}}).filter(e=>typeof e!=`object`||!e||String(e.value??``).trim()!==``)}function rE({field:e,value:t,onChange:n}){return(0,o.jsx)(i.Input,{value:t,onChange:n,placeholder:e.placeholder,maxLength:e.maxLength,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function iE({field:e,value:t,onChange:n}){return(0,o.jsx)($T,{value:t,onChange:n,rows:e.rows??5,placeholder:e.placeholder})}function aE({field:e,options:t,value:n,onChange:r}){return(0,o.jsx)(i.Select,{showSearch:!0,value:n,onChange:r,options:nE(t),placeholder:e.placeholder,className:`dynamic-popup__field-select`,optionFilterProp:`label`,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function oE({field:e,options:t,value:n,onChange:r}){return(0,o.jsx)(i.Select,{mode:`multiple`,showSearch:!0,value:n,onChange:r,options:nE(t),placeholder:e.placeholder,className:`dynamic-popup__field-select`,optionFilterProp:`label`,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function sE({field:e,options:t,onSearch:n,value:r,onChange:s,popupContext:c}){let l=nE(t),u=e.optionLayout,d=new Map(l.map(e=>[String(e?.value??``),e]));async function f(t,n){let r=n??d.get(String(t??``));typeof e.onSelectGuard==`function`&&await e.onSelectGuard({value:t,option:r,field:e,popupContext:c,confirm:i.Modal.confirm})===!1||s?.(t)}return(0,o.jsx)(i.Select,{showSearch:!0,filterOption:!1,notFoundContent:e.notFoundContent??null,value:r,onChange:f,options:l,placeholder:e.placeholder,onSearch:n,className:`dynamic-popup__field-select${u?` dynamic-popup__field-select--rich`:``}`,popupClassName:u?`dynamic-popup__option-dropdown`:void 0,listHeight:u?340:void 0,optionLabelProp:`label`,optionRender:u?e=>(0,o.jsx)(ZT,{option:e?.data??e,layout:u}):void 0,prefix:(0,o.jsx)(a.CrownOutlined,{})})}function cE({field:e,mentionOpts:t,onMentionSearch:n,value:r,onChange:a}){return(0,o.jsx)(i.Mentions,{value:r,onChange:a,rows:e.rows??5,placeholder:e.placeholder,prefix:`@`,options:t,onSearch:n,className:`dynamic-popup__mention-textarea`})}function lE({field:e={},value:t={},onChange:n}){let a=t.period??`Hourly`,s=t.isRange??!1;function c(e){n?.({...t,...e})}(0,r.useEffect)(()=>{let e={};t.currency??(e.currency=`$`),t.period??(e.period=`Hourly`),Object.keys(e).length&&n?.({...t,...e})},[]);let l=Number(s?t.maxAmount:t.amount),u=s&&t.minAmount!=null&&t.maxAmount!=null&&Number(t.maxAmount)<=Number(t.minAmount),d=e.rateCeiling!=null&&Number.isFinite(l)&&l>Number(e.rateCeiling);return(0,o.jsxs)(`div`,{children:[(0,o.jsxs)(i.Space.Compact,{style:{width:`100%`},children:[s?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.InputNumber,{controls:!1,placeholder:`From`,value:t.minAmount,onChange:e=>c({minAmount:e}),style:{flex:1}}),(0,o.jsx)(i.InputNumber,{controls:!1,placeholder:`To`,value:t.maxAmount,onChange:e=>c({maxAmount:e}),style:{flex:1}})]}):(0,o.jsx)(i.InputNumber,{controls:!1,placeholder:`0`,value:t.amount,onChange:e=>c({amount:e}),style:{flex:2}}),(0,o.jsx)(i.Select,{value:t.currency??`$`,options:eE,onChange:e=>c({currency:e}),style:{width:80}}),(0,o.jsx)(i.Select,{value:a,options:tE,onChange:e=>c({period:e}),style:{width:110}})]}),(u||d)&&(0,o.jsxs)(`div`,{style:{marginTop:4},children:[u&&(0,o.jsx)(QT,{type:`danger`,style:{fontSize:12,display:`block`},children:`To rate must be greater than From rate.`}),d&&(0,o.jsxs)(QT,{type:`danger`,style:{fontSize:12,display:`block`},children:[`Rate must not exceed the client rate (`,e.rateCeiling,`).`]})]}),(0,o.jsxs)(i.Space,{size:`small`,style:{marginTop:8},children:[(0,o.jsx)(i.Switch,{checked:s,onChange:e=>c({isRange:e})}),(0,o.jsx)(`span`,{children:`Range`})]})]})}function uE({field:e,value:t,onChange:n}){return(0,o.jsx)(i.DatePicker,{value:t,onChange:n,placeholder:e.placeholder??`Select date`,style:{width:`100%`},format:`YYYY-MM-DD`})}function dE({field:e,checked:t,onChange:n}){return(0,o.jsx)(i.Checkbox,{checked:t,onChange:n,children:e.checkboxLabel})}function fE({field:e,value:t,onChange:n}){return(0,o.jsx)(i.InputNumber,{value:t,onChange:n,min:e.min,max:e.max,placeholder:e.placeholder,style:{width:`100%`}})}function pE({options:e,value:t,onChange:n}){return(0,o.jsx)(i.Radio.Group,{value:t,onChange:n,options:e})}var mE={input:rE,text:rE,textarea:iE,select:aE,"multi-select":oE,"search-select":sE,"mention-textarea":cE,"candidate-rate":lE,"priority-checkbox":dE,"date-picker":uE,number:fE,radio:pE};function hE(e){return e===`priority-checkbox`?{valuePropName:`checked`}:{}}var gE=new Set([`input`,`text`,`textarea`,`mention-textarea`]);function _E({form:t,fields:n,initialValues:r,dynamicOptions:a,popupContext:s,extraData:c,removedIds:l,setRemovedIds:u,showAlreadyAssigned:d,onValuesChange:f,getSearchHandler:p,getMentionSearchHandler:m,mentionOptions:h}){let g=(c?.recruitersData??[]).filter(e=>{let t=String(e?.user_id??e?.id??e?.userId??``);return t&&!l.includes(t)}),_=d&&c;return!n.length&&!_?null:(0,o.jsxs)(o.Fragment,{children:[_&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(`div`,{className:`dynamic-popup__already-assigned`,children:[(0,o.jsx)(e.bn,{variant:`caption`,color:`secondary`,children:`Already Assigned People`}),(0,o.jsx)(`div`,{style:{marginTop:6,display:`flex`,flexWrap:`wrap`,gap:6},children:g.length===0?(0,o.jsx)(e.bn,{variant:`caption`,color:`secondary`,children:`No one is currently assigned to this job.`}):g.map(e=>{let t=String(e?.user_id??e?.id??e?.userId??``),n=e?.name??e?.user_name??e?.userName??e?.email??`Assigned user`;return(0,o.jsx)(i.Tag,{closable:!0,onClose:()=>{t&&u(e=>Array.from(new Set([...e,t])))},children:n},t||n)})})]}),(0,o.jsx)(i.Divider,{style:{margin:`12px 0`}})]}),n.length>0&&(0,o.jsx)(i.Form,{form:t,layout:`vertical`,initialValues:r,onValuesChange:(e,t)=>f(t),children:vE(n).map(t=>yE(t,t=>{let n=a[t.name]??HT(t,s),r=p(t),c=m(t),l=h[t.name]??[],u=hE(t.type),d=mE[t.type],f=[];return t.required&&f.push({required:!0,message:`${t.label||`This field`} is required`}),typeof t.validator==`function`&&f.push({validator:(e,n)=>{let r=t.validator(n,s);return r?Promise.reject(Error(r)):Promise.resolve()}}),gE.has(t.type)&&f.push(e.Qt({label:t.label,field:t.name,type:t.type})),(0,o.jsx)(i.Form.Item,{name:t.name,label:t.label,rules:f,...u,children:d?(0,o.jsx)(d,{field:t,options:n,onSearch:r,mentionOpts:l,onMentionSearch:c,popupContext:s}):null},t.name)}))})]})}function vE(e){let t=[];for(let n of e){let e=t[t.length-1];n.inlineRow&&e?.inlineRow===n.inlineRow?e.fields.push(n):t.push({inlineRow:n.inlineRow,fields:[n]})}return t.map(e=>e.fields)}function yE(e,t){return e.length===1?t(e[0]):(0,o.jsx)(`div`,{style:{display:`flex`,gap:8,alignItems:`flex-start`},children:e.map((e,n)=>(0,o.jsx)(`div`,{style:{flex:n===0?2:1,minWidth:0},children:t(e)},e.name))},`row-${e.map(e=>e.name).join(`-`)}`)}function bE(e){return[`select`,`multi-select`,`search-select`,`radio`].includes(e?.type)&&e?.dataSource===`master`&&e?.masterName}function xE(e){let t=e?.data??e;return Array.isArray(t)?t:Array.isArray(t?.data)?t.data:Array.isArray(t?.items)?t.items:Array.isArray(t?.rows)?t.rows:Array.isArray(t?.records)?t.records:[]}function SE(e){let t=String(e?.masterName??``).trim().toLowerCase();return t===`clientsubmissions`||t===`clientsubmissionstatus`}function CE(e){return SE(e)?{...e,labelKey:e.labelKey||`clientSubmissionStatusText`,valueKey:e.valueKey||`clientSubmissionStatusText`}:e}function wE(e,t){let n=VT(e,CE(t));return SE(t)?{...n,value:String(n.label??``)}:n}function TE({open:e,config:n,api:i,fields:a,popupContext:o,formValues:s}){let[c,l]=(0,r.useState)({}),[u,d]=(0,r.useState)(null);return(0,r.useEffect)(()=>{e||(l({}),d(null))},[e]),(0,r.useEffect)(()=>{if(!e||!n||!i.getOptions)return;let t=new AbortController;return a.forEach(e=>{!e.fetchOptionsKey||e.fetchOptionsParamKey||Promise.resolve(i.getOptions(e,void 0,o)).then(n=>{t.signal.aborted||l(t=>({...t,[e.name]:n}))}).catch(n=>{t.signal.aborted||console.error(`[DynamicPopup] Failed to load options for field "${e.name}":`,n)})}),()=>t.abort()},[e,i,n,a,o]),(0,r.useEffect)(()=>{if(!e||!n)return;let r=a.filter(bE);if(!r.length)return;let i=new AbortController;return r.forEach(e=>{t.a(t.b,`/masters/dropdown?${new URLSearchParams({masterName:e.masterName,offset:`0`,limit:String(e.limit??50)}).toString()}`).then(t=>{if(i.signal.aborted)return;let n=xE(t).map(t=>wE(t,e));l(t=>({...t,[e.name]:n}))}).catch(t=>{i.signal.aborted||console.error(`[DynamicPopup] Failed to load master options for field "${e.name}":`,t)})}),()=>i.abort()},[e,n,a]),(0,r.useEffect)(()=>{if(!e||!n||!i.getOptions)return;let t=a.filter(e=>e.fetchOptionsKey&&e.fetchOptionsParamKey);if(!t.length)return;let r=new AbortController;return t.forEach(e=>{let t=s[e.fetchOptionsParamKey]??o[e.fetchOptionsParamKey],n={[e.fetchOptionsParamKey]:t};Promise.resolve(i.getOptions(e,n,o)).then(t=>{r.signal.aborted||l(n=>({...n,[e.name]:t}))}).catch(t=>{r.signal.aborted||console.error(`[DynamicPopup] Failed to load param-dependent options for "${e.name}":`,t)})}),()=>r.abort()},[e,i,n,a,s,o]),(0,r.useEffect)(()=>{if(!e||!n||!i.loadExtraData)return;let t=new AbortController;return Promise.resolve(i.loadExtraData(o)).then(e=>{t.signal.aborted||d(e)}).catch(e=>{t.signal.aborted||(console.error(`[DynamicPopup] Failed to load extra data:`,e),d(null))}),()=>t.abort()},[e,i,n,o]),{dynamicOptions:c,setDynamicOptions:l,extraData:u}}var EE=500,DE=3;function OE({api:e,open:t,fields:n=[],popupContext:i,setDynamicOptions:a}){let[o,s]=(0,r.useState)({}),c=(0,r.useRef)({}),l=(0,r.useRef)({}),u=(0,r.useRef)({}),d=(0,r.useCallback)((t,n)=>{let r=e.searchOptions??e.searchFetcher;if(typeof r!=`function`)return;l.current[t.name]?.abort();let o=new AbortController;return l.current[t.name]=o,Promise.resolve(r(t,n,i)).then(e=>{if(o.signal.aborted)return;let n=Array.isArray(e)?e:e?.items??e?.list??[];a(e=>({...e,[t.name]:n.map(e=>VT(e,t))}))}).catch(e=>{o.signal.aborted||console.error(`[DynamicPopup] Search failed for field "${t.name}":`,e)}),o},[e,i,a]),f=n.filter(e=>(e.searchFetchKey||e.searchFetcher)&&e.preloadOptions!==!1),p=f.map(e=>e.name).join(`|`),m=(0,r.useRef)({runSearch:d,preloadFields:f});(0,r.useEffect)(()=>{m.current={runSearch:d,preloadFields:f}}),(0,r.useEffect)(()=>{if(!t||!p)return;let{runSearch:e,preloadFields:n}=m.current,r=n.map(t=>e(t,``)).filter(Boolean);return()=>r.forEach(e=>e.abort())},[t,p]);function h(t){if(!t.searchFetchKey&&!t.searchFetcher||typeof(e.searchOptions??e.searchFetcher)!=`function`)return;let n=t.searchMinLength??DE;return e=>{clearTimeout(c.current[t.name]);let r=e.length<n?``:e;c.current[t.name]=setTimeout(()=>{d(t,r)},EE)}}function g(t){let n=e.getMentionOptions??e.mentionFetcher;if(typeof n==`function`)return e=>{u.current[t.name]?.abort();let r=new AbortController;u.current[t.name]=r,Promise.resolve(n(t,e,i)).then(e=>{if(r.signal.aborted)return;let n=Array.isArray(e)?e:e?.items??e?.list??[];s(e=>({...e,[t.name]:n.map(e=>({value:e.user_name??e.userName??e.username??String(e),label:e.user_name??e.userName??e.username??String(e)}))}))}).catch(e=>{r.signal.aborted||console.error(`[DynamicPopup] Mention search failed for field "${t.name}":`,e)})}}return{mentionOptions:o,getSearchHandler:h,getMentionSearchHandler:g}}function kE({form:e,config:t,api:n,popupContext:a,resolvedIds:o,dynamicOptions:s,extraData:c,removedIds:l,fields:u,onClose:d,onSubmit:f}){let[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(null);async function _(e){let t={resolvedIds:o,dynamicOptions:s,extraData:c,removedIds:l};if(typeof n.submit==`function`)return n.submit(e,a,t);if(typeof f==`function`)return f(e,a,t)}function v(){if(t){if(!u.length){if(t.mode===`delete`&&typeof n.deleteItems==`function`){m(!0),g(null),Promise.resolve(n.deleteItems(o,a)).then(()=>{i.message.success(t.successMessage||`Deleted successfully`),d({success:!0})}).catch(e=>{let t=e?.message||`Delete failed. Please try again.`;g(t),m(!1),i.message.error(t)});return}if(typeof n.onOk==`function`){m(!0),Promise.resolve(n.onOk(a)).then(()=>d({success:!0})).catch(e=>{let t=e?.message||`Failed. Please try again.`;i.message.error(t),m(!1)});return}if(typeof n.submit==`function`){m(!0),Promise.resolve(_({})).then(e=>{e?.navigated||(i.message.success(t.successMessage||`Saved successfully`),d({success:!0}))}).catch(e=>{i.message.error(e?.message||`Failed. Please try again.`)}).finally(()=>m(!1));return}d();return}e.validateFields().then(async e=>{m(!0);try{if((await _(e))?.navigated)return;i.message.success(t.successMessage||`Saved successfully`),d({success:!0})}catch(e){i.message.error(e?.message||`Failed. Please try again.`)}finally{m(!1)}}).catch(()=>{})}}function y(){m(!1),g(null)}return{handleOk:v,confirming:p,deleteError:h,resetSubmitState:y}}function AE({open:e=!0,config:t,context:n={},onClose:a,onSubmit:c,api:l={}}){let[u]=i.Form.useForm(),[d,f]=(0,r.useState)({}),[p,m]=(0,r.useState)([]),h=i.Form.useWatch([],u,{preserve:!0})??{},g=(0,r.useMemo)(()=>UT(n),[n]),{selectedIds:_=[],selectedRecords:v=[],moduleName:y=``}=g,b=(0,r.useMemo)(()=>_.map((e,t)=>{let n=v[t];return n?.id??n?._id??e}),[_,v]),x=(0,r.useMemo)(()=>t?typeof t.getFields==`function`?t.getFields(g):t.fields??[]:[],[t,g]),S=(0,r.useMemo)(()=>{let e={};return x.forEach(t=>{let n=g[t.initialValueKey];!t.initialValueKey||n===void 0||(e[t.name]=t.type===`date-picker`?(0,s.default)(n):n)}),e},[x,g]),{dynamicOptions:C,setDynamicOptions:w,extraData:T}=TE({open:e,config:t,api:l,fields:x,popupContext:g,formValues:d}),{mentionOptions:E,getSearchHandler:D,getMentionSearchHandler:O}=OE({api:l,open:e,fields:x,popupContext:g,setDynamicOptions:w});function k(e){typeof a==`function`&&a(e)}let{handleOk:A,confirming:j,deleteError:M,resetSubmitState:N}=kE({form:u,config:t,api:l,popupContext:g,resolvedIds:b,dynamicOptions:C,extraData:T,removedIds:p,fields:x,onClose:k,onSubmit:c});(0,r.useEffect)(()=>{e&&(u.resetFields(),f(S??{}),m(g.removedIds??[]),N())},[e,S]);let P=!!t?.autoSubmitWhenNoFields&&x.length===0;(0,r.useEffect)(()=>{!e||!P||A()},[e,P]);let F=_.length,I=String(y).replace(/s$/i,``),L=F===1?I:y,R=v[0]??{},z=t?.getTitleText?t.getTitleText(F,L,R,g):t?.title,B=F===1?R.jobTitle??R.title??R.name??R.fullName??R.candidateName??null:null,ee=t?.getBodyText?t.getBodyText(F,I,L,B,g):t?.bodyText??null,V=typeof t?.getNote==`function`?t.getNote(g):t?.note,H=x.filter(e=>e.required).every(e=>{let t=h[e.name];return!(t==null||t===``||Array.isArray(t)&&t.length===0||typeof t==`object`&&!Array.isArray(t)&&Object.keys(t).length===0)}),U=t?.disabledUntilFilled&&!H;if(!t||!e||P)return null;let te=t.component;return te?(0,o.jsx)(i.Modal,{open:e,title:t.title||t.getTitleText?(0,o.jsx)(NT,{titleText:z,titleIcon:t.titleIcon}):null,footer:null,width:t.width??760,centered:!0,maskClosable:!1,onCancel:()=>k(),className:`dynamic-popup${t.className?` ${t.className}`:``}`,children:(0,o.jsx)(te,{context:g,selectedIds:b,selectedRecords:v,moduleName:y,onClose:k})}):(0,o.jsxs)(i.Modal,{open:e,title:(0,o.jsx)(NT,{titleText:z,titleIcon:t.titleIcon}),okText:t.okText||`OK`,cancelText:t.cancelText??`Cancel`,onOk:A,onCancel:()=>k(),okButtonProps:{danger:t.okButtonDanger,disabled:U,loading:j},cancelButtonProps:{disabled:j},closable:!j,maskClosable:!1,width:t.width??480,centered:!0,className:`dynamic-popup${t.className?` ${t.className}`:``}`,children:[(0,o.jsx)(PT,{note:V,description:t.description,showSelectedCount:t.showSelectedCount,count:F,itemLabel:L,bodyText:ee,deleteError:M}),(0,o.jsx)(FT,{footerNote:t.footerNote}),(0,o.jsx)(_E,{form:u,fields:x,initialValues:S,dynamicOptions:C,popupContext:g,extraData:T,removedIds:p,setRemovedIds:m,showAlreadyAssigned:t.showAlreadyAssigned,onValuesChange:f,getSearchHandler:D,getMentionSearchHandler:O,mentionOptions:E})]})}var jE={mode:`delete`,getTitleText:(e,t)=>`Delete ${e>0?`${e} `:``}${t}`,titleIcon:`delete`,okText:`Delete`,okButtonDanger:!0,width:420,getBodyText:(e,t,n,r)=>r?`Are you sure you want to delete the ${r} ${t}?`:e>1?`Are you sure you want to delete ${e} selected ${n}?`:`Are you sure you want to delete this ${t}?`,footerNote:`This action cannot be undone.`,fields:[]},ME={deleteItems:async(e,t)=>{await ee(t.moduleName,e)}},NE=new Map;async function PE(t){return t?(NE.has(t)||NE.set(t,e.fn({module:t}).catch(e=>(NE.delete(t),console.warn(`[in-progress gate] could not read ${t} form groups:`,e),[]))),NE.get(t)):[]}function FE(t=[],n){return t.some(t=>{let r=e.C(t,n);return r&&r.severity!==`allow`})}async function IE({targetModule:t,sourceModule:n,recordId:r,region:i}={}){let a={severity:`allow`,message:``,group:null};if(!t||!n||!r)return a;let o=i??e.Pn().region;try{let i=await PE(t);if(!FE(i,o))return a;let s=await e.fn({module:n,id:r}),c={};for(let e of s){let t=e?.payloadKey||e?.name;t&&Array.isArray(e?.rows)&&(c[t]=e.rows)}return e.D(i,o,c)}catch(e){return console.warn(`[in-progress gate] check skipped:`,e),a}}var LE=`Already submitted`,RE=`submissions`,zE=`candidates`,BE=1440*60*1e3,VE=90,HE=`This candidate was created or last updated more than 90 days ago. Only candidates created or updated within the last 90 days can be selected. Please update this candidate first.`,UE=[`createdAt`,`createdDate`,`dateCreated`,`created_on`,`createdOn`],WE=[`updatedAt`,`updatedDate`,`lastUpdatedAt`,`lastUpdatedDate`,`modifiedAt`,`modifiedDate`];function GE(e,t){for(let n of t){let t=e?.[n];if(!t)continue;let r=new Date(t);if(!Number.isNaN(r.getTime()))return r}return null}function KE(e){return GE(e,UE)}function qE(e){return GE(e,WE)}function JE(e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))return null;let t=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();return Math.max(0,Math.floor((t(new Date)-t(e))/BE))}function YE(e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))return null;let t=new Date,n=(t.getFullYear()-e.getFullYear())*12+(t.getMonth()-e.getMonth());return t.getDate()<e.getDate()&&--n,Math.max(0,n)}function XE(e){if(!(e instanceof Date)||Number.isNaN(e.getTime()))return null;let t=new Date,n=t.getFullYear()-e.getFullYear();return(t.getMonth()<e.getMonth()||t.getMonth()===e.getMonth()&&t.getDate()<e.getDate())&&--n,Math.max(0,n)}function ZE(e){return e===null?``:e<=14?`green`:e<=89?`yellow`:`red`}function QE(e,t=VE){if(!e)return!1;let n=Date.now()-t*BE,r=KE(e),i=qE(e),a=r&&r.getTime()>=n,o=i&&i.getTime()>=n;return!a&&!o}function $E(e){let t=qE(e);if(!t)return{createdAgo:``,createdAgoTone:``};let n=JE(t),r=YE(t),i=XE(t);return i>=1?{createdAgo:`${i} year${i===1?``:`s`} ago`,createdAgoTone:ZE(n)}:r>=1?{createdAgo:`${r} month${r===1?``:`s`} ago`,createdAgoTone:ZE(n)}:{createdAgo:RT(t),createdAgoTone:ZE(n)}}function eD(e){return{...e,...$E(e),isStaleCandidate:QE(e)}}function tD(e){return String(e?.applicantId??e?._id??e?.id??``)}var nD=null;async function rD(){return nD||=e.Or(zE).then(e=>e?.strategies?.duplicateCheck?.editRoute??``).catch(()=>``),nD}async function iD(e){let t=tD(e);if(!t)return``;let n=await rD();return n?n.replace(/:(_?id)\b/g,encodeURIComponent(t)):``}async function aD({option:e,popupContext:t,confirm:n}){let r=e?._raw??e??{},i=tD(r);if(i){let e=await IE({targetModule:RE,sourceModule:zE,recordId:i});if(e.severity===`block`)return new Promise(t=>{n({title:`This candidate cannot be submitted`,content:e.message,okText:`Pick someone else`,cancelText:`Close`,onOk:()=>t(!1),onCancel:()=>t(!1)})})}if(!QE(r))return!0;let a=t?.navigate;return!a||!i?!1:new Promise(e=>{n({title:`Candidate update required`,content:HE,okText:`OK`,cancelText:`Cancel`,onOk:async()=>{let t=await iD(r);t&&a(t),e(!1)},onCancel:()=>e(!1)})})}function oD(e,t,n){return{...e,label:`${e.label} - ${LE}`,disabled:!0,title:`${LE}${t?` (submission ${t})`:``}`,alreadySubmitted:!0,existingSubmissionId:t||``,...n?{submittedAt:n}:{}}}var sD={searchOptions:async(e,t,n)=>{if(e.searchFetchKey===`quickSubmitJobList`){let e=n.selectedRecords?.[0]??{},r=e.id??e._id??n.selectedIds?.[0],i,a=!0;try{i=await q({searchQuery:t,candidateId:r})}catch{a=!1;let e=await jn({searchQuery:t,candidateId:r});i=Array.isArray(e?.data)?e.data:[]}let o=i.map(e=>({label:[e.jobReferenceId??e.clientJobReferenceId,e.jobTitle].filter(Boolean).join(` - `)||String(e._id??``),value:e._id??``,_raw:e}));if(a)return o.map(e=>{if(e._raw?.isSubmitted||e._raw?.alreadySubmitted)return oD(e,e._raw?.jobSubmissionId||``,e._raw?.submittedAt||``);if(e._raw?.disable){let t=String(e._raw?.message??``).trim();return{...e,disabled:!0,label:t?`${e.label} - ${t}`:e.label,title:t}}return e});let s=await ve({applicantId:r,jobIds:o.map(e=>e.value)}).catch(()=>new Map);return o.map(e=>{let t=s.get(String(e.value));return t?oD(e,t.submissionId,t.submittedAt):e})}if(e.searchFetchKey===`quickSubmitCandidates`){let e=n.selectedRecords?.[0]??{},r=n.jobId??e.jobId??e.id??e._id??n.selectedIds?.[0],i,a=new Map;try{i=await _e({search:t,jobId:r})}catch{let e=await jo({isFromSubmission:n.isFromSubmission,jobId:r,submissionId:n.submissionId,search:t});i=Array.isArray(e)?e:[],a=await ve({jobId:r,applicantIds:i.map(tD)}).catch(()=>new Map)}return i.map(e=>eD(e)).map(e=>{let t=a.get(tD(e));if(!(t||e?.isSubmitted===!0||e?.alreadySubmitted===!0))return e;let n=t?.submissionId||e?.jobSubmissionId||``,r=t?.submittedAt||e?.submittedAt||``;return{...e,disabled:!0,optionNote:LE,isSubmitted:!0,alreadySubmitted:!0,existingSubmissionId:n,...r?{submittedAt:r}:{}}})}return[]},submit:async(e,t,n)=>{let{navigate:r,selectedRecords:i=[],selectedIds:a=[],moduleName:o}=t,s=i[0]??{},c,l;t.jobId?(c=t.jobId,l=s.id??s._id??a[0]??``):o===`candidate`?(c=e.jobId??``,l=s.id??s._id??a[0]??``):(c=s.jobId??s.id??s._id??a[0]??``,l=e.candidate??``);let u=n?.dynamicOptions?.candidate?.find(e=>tD(e?._raw)===String(l)),d=n?.dynamicOptions?.jobId?.find(e=>String(e?.value)===String(c)),f=u?._raw?.isSubmitted||u?._raw?.alreadySubmitted||d?.alreadySubmitted||d?._raw?.isSubmitted||d?._raw?.alreadySubmitted;if(!c||!l)throw Error(`Select both a job and a candidate to quick submit.`);if(QE(u?._raw))throw Error(HE);let p=await IE({targetModule:RE,sourceModule:zE,recordId:l});if(p.severity===`block`)throw Error(p.message);let m=f,h=u?._raw?.existingSubmissionId||u?._raw?.jobSubmissionId||d?.existingSubmissionId||d?._raw?.jobSubmissionId||``;try{let e=await K({jobId:c,applicantId:l});m||=!!e?.exists,h=e?.submissionId||h}catch(e){throw Error(`Could not verify existing submissions (${e?.message??`request failed`}). Please try again.`,{cause:e})}if(m)throw Error(`This candidate is already submitted for this job${h?` (submission ${h})`:``}.`);let g=new URLSearchParams;l&&g.set(`candidateId`,l);let _=u?.priorSubmissionId||u?._raw?.submissionId||d?.priorSubmissionId||d?._raw?.submissionId||``;_?(g.set(`submissionId`,String(_)),g.set(`isFromSubmission`,`true`)):g.set(`isFromSubmission`,`false`);let v=Oo(Ao({jobId:c,applicantId:l}).catch(()=>[]));return r(`/submission-create/${c}?${g.toString()}`,{state:{relevantSkillsToken:v}}),{navigated:!0}}},cD={title:`Submit`,okText:`Submit`,width:640,disabledUntilFilled:!0,autoSubmitWhenNoFields:!0,getNote:e=>e.moduleName===`candidate`?`Note: Select a job to submit this candidate.`:`Note: Select a candidate to submit for this job`,getFields:e=>e.jobId?[]:e.moduleName===`candidate`?[{name:`jobId`,label:`Job list`,type:`search-select`,required:!0,placeholder:`Search Job ID / job name - or pick a recent job`,searchFetchKey:`quickSubmitJobList`,optionLayout:{id:`{jobReferenceId}`,title:`{jobTitle}`,subtitle:`{clientJobReferenceId}`,meta:[{label:`Created`,key:`createdAt`,type:`date`},{label:`Updated`,key:`updatedAt`,type:`relative`}]}}]:[{name:`candidate`,label:`Candidate`,type:`search-select`,required:!0,placeholder:`Search candidate name / email - or pick a recent candidate`,optionsKey:`candidateOptions`,searchFetchKey:`quickSubmitCandidates`,labelTemplate:`{applicantRefrenceId} - {firstName} {lastName} - {createdAgo}`,valueKey:`applicantId`,optionLayout:{id:`{applicantRefrenceId}`,title:`{firstName} {lastName}`,titleAccent:{key:`createdAgo`,toneKey:`createdAgoTone`,prefix:` - `},subtitle:`{designation} - {email}`,meta:[{label:`Created`,key:`createdAt`,type:`date`},{label:`Updated`,key:`updatedAt`,type:`relative`}]},onSelectGuard:aD}]},lD={title:`Add Notes & Share`,okText:`Save & Share`,width:480,fields:[{name:`notes`,type:`mention-textarea`,required:!0,rows:5,placeholder:`Add your notes on the job. Use '@' to mention someone.`,mentionFetchKey:`mentionUsers`}]},uD=e=>e?.data??e;async function dD({relatedId:e,notes:n,title:r,notesFor:i}){return uD(await pn(t.b,`/notes`,{method:`POST`,body:JSON.stringify({relatedId:e,notes:n,title:r,notesFor:i})}))}var fD={getMentionOptions:async(e,t)=>H(t),submit:async(e,t)=>{let n=Array.isArray(t.selectedIds)?t.selectedIds[0]:t.selectedIds;if(!n)throw Error(`Please select a record before adding a note.`);await dD({relatedId:String(n),notes:e.notes,notesFor:t.moduleName})}},pD={name:`jobId`,label:`Job Title / ID`,type:`search-select`,required:!0,placeholder:`Minimum 3 characters`,searchFetchKey:`tagToJobJobList`,valueKey:`_id`,labelTemplate:`{jobReferenceId} - {jobTitle}`},mD={name:`hiringStage`,label:`Hiring stage`,type:`select`,required:!0,optionsKey:`hiringStageOptions`,defaultOptions:[{label:`Shortlisted`,value:`shortlisted`},{label:`Pipeline`,value:`pipeline`}],initialValueKey:`hiringStage`},hD={title:`Tag to Job`,okText:`Tag`,width:480,disabledUntilFilled:!0,autoSubmitWhenNoFields:!0,getFields:e=>e.jobId&&e.hiringStage?[]:e.jobId?[mD]:[pD,mD]},gD=e=>e?.data??e;function _D(e){return Array.isArray(e)&&e.every(e=>e&&typeof e==`object`&&`Key`in e)?e.reduce((e,{Key:t,Value:n})=>(e[t]=n,e),{}):e}function vD(e){return e?Array.isArray(e.data)?e.data.map(_D):e.stage&&Array.isArray(e.stage.data)?e.stage.data.map(_D):Array.isArray(e)?e.map(_D):[]:[]}async function yD(e=1,n=10){let r=await t.a(t.b,`/workflow/list/all?page=${e}&limit=${n}`),i=gD(r),a=Array.isArray(i)?i:i?.data??[];return{items:a,total:Number(r?.total??i?.total)||a.length,page:e,limit:n}}async function bD(e,n){let r=gD(await t.a(t.b,`/workflow/${e}/stage/${n}`));return Array.isArray(r)?{data:r}:r}async function xD(e,n){if(!e||!n)return null;try{let r=gD(await t.a(t.b,`/module-data-list?${new URLSearchParams({module:e,limit:`1`,offset:`0`,scope:`allJobs`,filters:JSON.stringify([{field:`_id`,op:`in`,values:[String(n)],operator:`and`}])})}`));if(Array.isArray(r))return r[0]??null;if(r?.data&&Array.isArray(r.data))return r.data[0]??null;let i=r?.rows??r?.records??r?.items??r?.list;return Array.isArray(i)?i[0]??null:r??null}catch(t){return console.error(`[getModuleRecordById] failed: ${e}/${n}`,t),null}}async function SD(e){return gD(await t.a(t.S,`/source/workflow-instance`,{method:`POST`,body:JSON.stringify(e)}))}var CD={pipeline:`pipeline`,goodfited:`goodfited`,contacted:`contacted`,submitted:`submitted`,shortlisted:`shortlisted`,interviewinprogress:`interviewInprogress`,selected:`selected`};function wD(e,...t){for(let n of t){let t=String(n).split(`.`).reduce((e,t)=>e?.[t],e);if(t!=null&&t!==``)return t}}function TD(e){let t=String(e??``).trim();return t?CD[t.toLowerCase()]??t:``}function ED(e,t){let n=wD(e,`candidateId`,`candidate_id`,`applicantId`,`applicantID`,`applicantReferenceId`,`applicantRefrenceId`,`_id`,`id`)??t;if(!n)return null;let r=(wD(e,`candidateName`,`candidate_name`,`fullName`,`name`)??[wD(e,`firstName`,`first_name`),wD(e,`lastName`,`last_name`)].filter(Boolean).join(` `))||void 0,i={candidateId:String(n),candidateName:r,phone:wD(e,`phone`,`phoneNumber`,`phone_number`,`mobile`,`mobileNumber`,`mobile_number`),source:wD(e,`source`,`sourceType`,`candidateSource`,`profileSource`),submittedAt:wD(e,`submittedAt`,`lastSubmittedAt`,`updatedAt`),remarks:wD(e,`remarks`,`comment`,`comments`,`notes`),assignedRecruiter:wD(e,`assignedRecruiter`,`recruiterName`,`ownerName`,`assignedToName`),screeningStatus:wD(e,`screeningStatus`,`screening.status`,`screeningResult`),screeningScore:wD(e,`screeningScore`,`screening.score`,`score`),assignedDate:wD(e,`assignedDate`,`assignedAt`,`createdAt`)};return Object.fromEntries(Object.entries(i).filter(([,e])=>e!=null&&e!==``))}var DD={searchOptions:async(e,t)=>e.searchFetchKey===`tagToJobJobList`?V(t):[],submit:async(e,t)=>{let n=e.jobId??t.jobId,r=TD(e.hiringStage??t.hiringStage),i=Array.isArray(t.selectedIds)?t.selectedIds:[],a=Array.isArray(t.selectedRecords)?t.selectedRecords:[],o=Math.max(i.length,a.length,1);for(let e=0;e<o;e+=1){let t=i[e]?String(i[e]):``,o=ED(a[e]??{},t);await SD({jobId:n,module:`jobs`,currentStage:r,...o?{candidateDetails:o}:{}})}await W({jobId:n,candidateIds:t.selectedIds,hiringStage:r})}},OD={title:`Change Status`,okText:`Apply`,width:420,showSelectedCount:!0,fields:[{name:`status`,label:`New Status`,type:`select`,required:!0,placeholder:`Select a status`,dataSource:`master`,masterName:`clientSubmissions`,labelKey:`clientSubmissionStatusText`,valueKey:`clientSubmissionStatusText`,initialValueKey:`currentStatus`,defaultOptions:[{label:`Active`,value:`active`},{label:`Inactive`,value:`inactive`},{label:`Pending`,value:`pending`},{label:`Closed`,value:`closed`}]}]};function kD(e,t){return(t?.status??[]).find(t=>String(t?.value??``)===String(e??``))??null}var AD={submit:async(e,t,n)=>{let r=kD(e.status,n?.dynamicOptions)?._raw??{},i={clientSubmissionStatusText:String(e.status??``).trim(),clientSubmissionStatusId:Number(r.id??r.uniqueId??0)||0,clientSubmissionStatusType:String(r.type??``).trim()};await B(t.moduleName,t.selectedIds,i)}},jD={getTitleText:e=>`Remove ${e>1?`${e} Candidates`:`Candidate`} from Shortlist`,titleIcon:`delete`,okText:`Remove`,okButtonDanger:!0,width:420,getBodyText:e=>e>1?`Are you sure you want to remove ${e} selected candidates from the shortlist?`:`Are you sure you want to remove this candidate from the shortlist?`,footerNote:`The candidate will be moved back to the pipeline.`,fields:[]},MD={onOk:async e=>{await ye({jobId:e.jobId??e.selectedIds[0],candidateIds:e.selectedIds})}},ND={title:`Add to Groups`,description:`Select a group to add the selected candidate(s) to`,okText:`Add to Group`,width:480,disabledUntilFilled:!0,fields:[{name:`groupId`,label:`Group`,type:`select`,required:!0,placeholder:`Select a group`,fetchOptionsKey:`candidateGroups`}]},PD={getOptions:async e=>e.fetchOptionsKey===`candidateGroups`?re():[],submit:async(e,t,{dynamicOptions:n})=>{let r=(n.groupId??[]).find(t=>String(t.value)===String(e.groupId));await ie({candidateIds:t.selectedIds,groupId:e.groupId,groupName:r?.label??``})}},FD=[{title:`Name`,key:`name`,render:(e,t)=>t.name||`${t.first_name??``} ${t.last_name??``}`.trim()||t.user_name||`Assigned user`},{title:`Role`,dataIndex:`role_name`,key:`role`,render:e=>e||`-`},{title:`Reporting`,dataIndex:`reporting_name`,key:`reporting`,render:e=>e||`-`}];function ID({selectedIds:e,onClose:t}){let n=e?.[0],[s,c]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)({assignedUsers:[],totalSubmissions:0,message:``}),[p,m]=(0,r.useState)([]);(0,r.useEffect)(()=>{let e=!1;return c(!0),Promise.all([ae(n).catch(t=>(e||i.message.error(t?.message??`Failed to load self-assign details`),{assignedUsers:[],totalSubmissions:0,message:``})),ce(n).catch(()=>({recruitersData:[]}))]).then(([t,n])=>{e||(f(t),m(Array.isArray(n?.recruitersData)?n.recruitersData:[]))}).finally(()=>{e||c(!1)}),()=>{e=!0}},[n]);let h=async()=>{u(!0);try{await G({jobIds:[n]}),i.message.success(`Job assigned successfully`),t?.({success:!0})}catch(e){i.message.error(e?.message??`Failed to assign job`)}finally{u(!1)}};if(s)return(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})});let g=p.map(e=>({user_id:e.recruiterId??e.id??e.user_id,name:e.name??``,role_name:e.role_name??e.roleName??``,reporting_name:e.reporting_name??e.reportingName??``})),_=new Map(g.map(e=>[String(e.user_id??``),e])),v=(d.assignedUsers?.length??0)>0?d.assignedUsers.map(e=>{let t=e.user_id??e.userId??e.recruiterId??e.id,n=_.get(String(t??``))??{};return{...e,user_id:t,name:n.name||e.name||``,role_name:n.role_name||e.role_name||e.roleName||``,reporting_name:n.reporting_name||e.reporting_name||e.reportingName||``}}):g;return(0,o.jsxs)(`div`,{className:`self-assign-popup-body`,children:[v.length>0?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(`div`,{style:{fontWeight:700,marginBottom:8},children:`Team Members Allocated`}),(0,o.jsx)(i.Table,{columns:FD,dataSource:v,pagination:!1,rowKey:e=>e.user_id??`${e.first_name}-${e.last_name}`,size:`small`,className:`mb-3 no-header-bg`,scroll:{y:200}}),(0,o.jsxs)(`div`,{className:`warning-card`,style:{display:`flex`,alignItems:`center`,gap:8,marginTop:12},children:[(0,o.jsx)(a.ExclamationCircleFilled,{style:{color:`#faad14`,fontSize:18}}),(0,o.jsx)(`div`,{style:{fontSize:13},children:`These users are already assigned to this job. Do you still want to assign yourself as well?`})]})]}):(0,o.jsx)(`div`,{style:{padding:`8px 0`},children:d.message||`No one is currently assigned to this job. Do you want to assign yourself?`}),(0,o.jsxs)(`div`,{style:{display:`flex`,justifyContent:`flex-end`,gap:12,marginTop:24},children:[(0,o.jsx)(i.Button,{size:`small`,onClick:()=>t?.(),disabled:l,children:`No`}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,onClick:h,loading:l,children:`Yes`})]})]})}ID.propTypes={selectedIds:l.default.array,onClose:l.default.func};var LD={title:`Self Assign`,width:480,className:`self-assign-modal`,component:ID},RD={submit:async()=>{}};function zD(e={}){let t=Array.isArray(e.jobPayDetails)?e.jobPayDetails[e.jobPayDetails.length-1]:e.jobPayDetails??e.clientBudget??{},n=Number(t.clientBudgetEnd),r=Number(t.clientBudgetStart);return Number.isFinite(n)&&n>0?n:Number.isFinite(r)&&r>0?r:null}var BD={getTitleText:(e,t,n)=>{let r=n?.jobTitle||n?.title||``;return r?`Assign - ${r}`:`Assign`},okText:`Assign`,width:520,disabledUntilFilled:!0,showAlreadyAssigned:!0,getFields:e=>(zD(e?.selectedRecords?.[0]??{}),[{name:`assignToUserId`,label:`Assign to`,type:`multi-select`,required:!0,placeholder:`Select recruiter(s)`,fetchOptionsKey:`assignToUsers`}])},VD={getOptions:async e=>e.fetchOptionsKey===`assignToUsers`?se():[],loadExtraData:async e=>ce(e.selectedIds[0]),submit:async(e,t,{removedIds:n,extraData:r})=>{await de({jobIds:t.selectedIds,userId:e.assignToUserId,removedIds:n,existingRecruiters:r?.recruitersData})}},HD={title:`Add Sticky Notes`,getTitleText:(e,t,n,r)=>r.editingNoteId?`Edit Sticky Notes`:`Add Sticky Notes`,okText:`Save`,width:480,fields:[{name:`heading`,label:`Heading`,type:`input`,required:!0,placeholder:`Enter heading`,initialValueKey:`editingHeading`},{name:`targetDate`,label:`Target Date`,type:`date-picker`,required:!1,initialValueKey:`editingTargetDate`},{name:`comments`,label:`Comments`,type:`mention-textarea`,required:!0,rows:5,placeholder:`Enter your note here... Use '@' to mention someone.`,mentionFetchKey:`mentionUsers`,initialValueKey:`editingComments`}]},UD={getMentionOptions:async(e,t)=>H(t),submit:async(e,t)=>{let n=e.targetDate?e.targetDate.toISOString():``;t.editingNoteId?await te(t.editingNoteId,{title:e.heading,targetDate:n,notes:e.comments}):await U({relatedIds:t.selectedIds,module:t.moduleName,title:e.heading,targetDate:n,notes:e.comments}),window.dispatchEvent(new Event(`sticky-notes:refresh`))}},WD={title:`Move to Onboarding`,bodyText:`Are you sure you want to move this candidate to onboarding?`,okText:`Yes`,cancelText:`No`,width:420,successMessage:`Moved to onboarding successfully`,successNavigate:`/onboarding`,fields:[{name:`sendOnboardingEmail`,type:`priority-checkbox`,checkboxLabel:`Send Onboarding Email`}]},GD={submit:async(e,t)=>{await fe({submissionId:t.selectedRecords?.[0]?.submissionId,isMail:e.sendOnboardingEmail})}};function KD(e){return Array.isArray(e)?e[e.length-1]??{}:e&&typeof e==`object`?e:{}}var qD={USD:`$`,INR:`₹`,EUR:`€`,GBP:`£`};function JD(e,t,n){let r=KD(e?.[t])[n];if(r!=null&&r!==``)return r;let i=e?.[`${t}.${n}`];return i!=null&&i!==``?i:void 0}function YD(e){let t=e.selectedRecords?.[0]??{},n=JD(t,`candidateRate`,`candidateAcceptedRate`)??JD(t,`candidateBudget`,`candidateBudgetStart`);if(n===void 0||Number(n)===0)return null;let r=JD(t,`candidateRate`,`candidateAcceptedCurrency`)??JD(t,`candidateBudget`,`candidateBudgetCurrency`);return{amount:n,symbol:JD(t,`candidateRate`,`candidateAcceptedCurrencySymbol`)??JD(t,`candidateBudget`,`candidateBudgetCurrencySymbol`)??qD[String(r??``).toUpperCase()]??(r||`$`),unit:JD(t,`candidateRate`,`candidateAcceptedPayUnit`)??JD(t,`candidateBudget`,`candidateBudgetUnit`)??``}}var XD={title:`Approve Rate`,okText:`Approve`,width:520,className:`medium-modal`,successMessage:`Rate approved`,getBodyText:(e,t,n,r,i)=>{let a=YD(i);return`Candidate Rate: ${a?`${a.symbol}${a.amount}${a.unit?`/${a.unit}`:``}`:`-`}`},fields:[{name:`candidateProposedRate`,label:`Proposed Rate`,type:`number`,required:!0,placeholder:`Amount`,min:0,inlineRow:`proposedRate`,validator:(e,t)=>{if(e==null||e===``)return;let n=YD(t);if(n&&Number(e)<=Number(n.amount))return`Proposed rate must be greater than Candidate Rate`}},{name:`candidateProposedRateCurrency`,label:`Currency`,type:`select`,required:!0,inlineRow:`proposedRate`,defaultOptions:[{label:`$ USD`,value:`$`},{label:`₹ INR`,value:`₹`},{label:`€ EUR`,value:`€`}]},{name:`candidateProposedRateUnit`,label:`Unit`,type:`select`,required:!0,inlineRow:`proposedRate`,defaultOptions:[{label:`Year`,value:`yr`},{label:`Month`,value:`mo`},{label:`Week`,value:`wk`},{label:`Hour`,value:`hr`},{label:`Daily`,value:`day`}]},{name:`submitVia`,label:`Submit Via`,type:`radio`,required:!0,defaultOptions:[{label:`Mail`,value:`Mail`},{label:`VMS`,value:`VMS`}]}]},ZD={submit:async(e,t)=>{let n=t.selectedIds[0];if(await pe(n,{candidateProposedRate:e.candidateProposedRate,candidateProposedRateCurrency:e.candidateProposedRateCurrency,candidateProposedRateUnit:e.candidateProposedRateUnit,submitVia:e.submitVia}),e.submitVia===`VMS`)try{await me(n)}catch{i.message.warning(`Approved. VMS notification could not be sent — use Send Mail to notify the client.`)}else i.message.info(`Approved — use Send Mail to notify the client.`)}};async function QD(e,n={}){let r=t.l();if(!r){let e=Error(`Authentication required`);throw e.status=401,e}let i=await fetch(`${t.w}${e}`,{...n,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${r}`,...n.headers}});if(i.status===401&&t.m(),!i.ok){let e=Error(`API ${i.status}: ${i.statusText}`);throw e.status=i.status,e}return i.json()}async function $D(e){let t=await QD(`/mail-form?${new URLSearchParams({submissionId:e,submissionType:`client`}).toString()}`);return t.data??t}function eO(...e){return e.map(e=>e==null?``:String(e).trim()).find(Boolean)??``}var tO=(e,t)=>!!e&&e.toLowerCase()===eO(t).toLowerCase();function nO(e,t,n){let r=eO(t.submittedBy);return eO(tO(r,n)||tO(r,e.submitSource)||tO(r,e.supplierName)||tO(r,e.source)||tO(r,e.candidateSource)?``:r,e.signatureEmail)}function rO(e,t={}){let n=t.employerName??e.supplierName??e.submitSource;return{client:t.clientName??e.clientName,role:t.jobTitle??e.jobTitle??e.designation,reqId:t.reqId??e.jobClientRefrenceId??e.mspReqId??e.submissionId,name:t.candidateName||[e.firstName,e.lastName].filter(Boolean).join(` `)||e.candidateFullName,location:t.jobLocation??e.city??e.currentLocation??e.jobLocation,vendor:n,submittedBy:nO(e,t,n),submittedAt:t.createdAt??e.createdAt,email:t.email??e.email,employerLocation:t.employerLocation,employerName:t.employerName}}function iO(e){let t=e?.$oid??e?._id?.$oid??e?._id??e?.id?.$oid??e?.id??e;if(t==null||typeof t==`object`)return``;let n=String(t).trim();return/^[a-f\d]{24}$/i.test(n)?n:``}function aO(...e){for(let t of e){let e=[t?.jobId,t?.JobId,t?.job_id,t?.jobDetails?._id,t?.jobDetails?.id,t?.job?._id,t?.job?.id,t?.submission?.jobId,t?.submission?.JobId,t?.submission?.job_id,t?.submission?.jobDetails?._id,t?.submission?.jobDetails?.id,t?.submission?.job?._id,t?.submission?.job?.id,t?.recordMeta?.jobId,t?.recordMeta?.JobId,t?.recordMeta?.job_id,t?.submission?.recordMeta?.jobId,t?.submission?.recordMeta?.JobId,t?.submission?.recordMeta?.job_id].map(iO).find(Boolean);if(e)return e}return``}function oO(e){if(!e?.referralId)return{};let t=Number(e.referralRate??e.referalRate??0)||0,n=String(e.referralType??e.referalType??`RECURRING`).trim()||`RECURRING`,r=e.referralId??e.referalId;return{referralId:r,referalId:r,referralRate:t,referalRate:t,referralType:n,referalType:n,referralEnabled:!0,referalEnabled:!0,isReferralApplicable:!0,referralDetails:{referralId:r,referalId:r,referralRate:t,referalRate:t,referralType:n,referalType:n,referralEnabled:!0,referalEnabled:!0,isReferralApplicable:!0}}}function sO(e={}){return{to:(e.to??e.To??[]).map(e=>e.email??e.Email??e).filter(Boolean).join(`, `),cc:(e.cc??e.Cc??[]).map(e=>e.email??e.Email??e).filter(Boolean).join(`, `),bcc:(e.bcc??e.Bcc??[]).map(e=>e.email??e.Email??e).filter(Boolean).join(`, `),subject:e.subject??e.Subject??``,contents:e.content?.value??e.Content?.Value??e.contents??e.body??``}}function cO({context:e,selectedIds:t,selectedRecords:n,moduleName:a,onClose:s}){let c=n?.[0]??{},l=t?.[0]??bg(c),[u,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(!0),[m,h]=(0,r.useState)([]),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(`vms`),[b,x]=(0,r.useState)(null),[S,C]=(0,r.useState)(null),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(!1),[O,k]=(0,r.useState)(!1),[A,j]=(0,r.useState)(!1),[M,N]=(0,r.useState)({to:``,cc:``,bcc:``,subject:``,contents:``,showCc:!1,showBcc:!1});(0,r.useEffect)(()=>{let e=!1;return s_(l,c).then(t=>{e||d(t)}).catch(t=>{e||(i.message.error(t?.message??`Unable to load finance details`),d({record:{submission:c},lookups:{},display:{}}))}).finally(()=>{e||p(!1)}),()=>{e=!0}},[l]),(0,r.useEffect)(()=>{let e=!1;return g_().then(t=>{e||h(t)}).catch(()=>{}),()=>{e=!0}},[]);let P=async()=>{if(b){if(v===`mail`){_(!1),D(!0),k(!0);try{let e=sO(await $D(l));N({to:e.to,cc:e.cc,bcc:e.bcc,subject:e.subject,contents:e.contents,showCc:!!e.cc,showBcc:!!e.bcc})}catch(e){i.message.error(e?.message??`Unable to prepare approval mail`)}finally{k(!1)}return}T(!0);try{await pe(l,{candidateProposedRate:b.proposedRate,candidateProposedRateCurrency:b.currencyRaw??b.currency,candidateProposedRateUnit:b.rateUnit,submitVia:`VMS`,...oO(S)}),i.message.success(`Submission approved`),_(!1),x(null),C(null),s?.({success:!0})}catch(e){i.message.error(e?.message??`Unable to approve submission`)}finally{T(!1)}}},F=!O&&jw(M.to).length>0&&Mw(M.to)&&Mw(M.cc)&&Mw(M.bcc)&&M.subject.trim()&&M.contents.trim(),I=async()=>{if(!b||!F||A)return;j(!0);let e={candidateProposedRate:b.proposedRate,candidateProposedRateCurrency:b.currencyRaw??b.currency,candidateProposedRateUnit:b.rateUnit};try{await pe(l,{...e,submitVia:`VMS`,...oO(S)});let t=aO(u?.record,c);if(!t)i.message.warning(`Submission approved, but job details were not available to send mail`);else try{await sn({jobId:t,toMail:jw(M.to),ccMail:jw(M.cc),bccMail:jw(M.bcc),subject:M.subject,contents:M.contents}),i.message.success(`Approval mail sent and submission approved`)}catch(e){i.message.warning(e?.message?`Submission approved, but mail was not sent: ${e.message}`:`Submission approved, but mail was not sent`)}D(!1),x(null),C(null),s?.({success:!0})}catch(e){i.message.error(e?.message??`Unable to send approval mail`)}finally{j(!1)}},L=(0,r.useMemo)(()=>({submissionApprove:async({computed:e,referral:t})=>{x(e),C(t??null),y(`vms`),_(!0)},submissionReject:async()=>{e?.navigate?.(`/popup/reject`,{replace:!0,state:{background:e?.background??null,selectedIds:t,selectedRecords:n,moduleName:a}})}}),[e,t,n,a]);return f||!u?(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Xg,{type:Jh,record:u.record,lookups:u.lookups,identity:rO(c,u.display),referralOptions:m,currentUserId:typeof localStorage<`u`?localStorage.getItem(`userId`)??void 0:void 0,actions:L,onClose:()=>s?.(),variant:`popup`}),(0,o.jsx)(i.Modal,{title:`Choose approval method`,open:g,okText:`Approve`,confirmLoading:w,onOk:P,onCancel:()=>{w||(_(!1),x(null),C(null))},children:(0,o.jsxs)(i.Radio.Group,{value:v,onChange:e=>y(e.target.value),style:{display:`grid`,gap:12},children:[(0,o.jsx)(i.Radio,{value:`vms`,children:`Via VMS`}),(0,o.jsx)(i.Radio,{value:`mail`,children:`Via Mail`})]})}),(0,o.jsx)(i.Drawer,{open:E,placement:`right`,onClose:()=>{A||D(!1)},closable:!1,rootClassName:`mail-popup`,width:620,maskClosable:!1,footer:(0,o.jsxs)(`div`,{className:`mail-popup__footer`,children:[(0,o.jsx)(i.Button,{onClick:()=>D(!1),disabled:A,children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,loading:A,disabled:!F,onClick:I,children:`Send`})]}),children:O?(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})}):(0,o.jsx)(Lw,{value:M,onChange:N,moduleName:`submissions`,ready:!O,title:`Submit Via Mail`,contextRecords:[u.record?.submission??c]})})]})}cO.propTypes={context:l.default.object,selectedIds:l.default.array,selectedRecords:l.default.array,moduleName:l.default.string,onClose:l.default.func};var lO={title:`Manager Approve`,width:780,className:`fa-modal manager-approve-modal`,component:cO},uO={submit:async()=>{}};function dO(...e){return e.map(e=>e==null?``:String(e).trim()).find(Boolean)??``}var fO=(e,t)=>!!e&&e.toLowerCase()===dO(t).toLowerCase();function pO(e,t,n){let r=dO(t.submittedBy);return dO(fO(r,n)||fO(r,e.submitSource)||fO(r,e.supplierName)||fO(r,e.source)||fO(r,e.candidateSource)?``:r,e.signatureEmail)}function mO(e,t={}){let n=t.employerName??e.supplierName??e.submitSource;return{client:t.clientName??e.clientName,role:t.jobTitle??e.jobTitle??e.designation,reqId:t.reqId??e.jobClientRefrenceId??e.mspReqId??e.submissionId,name:t.candidateName||[e.firstName,e.lastName].filter(Boolean).join(` `)||e.candidateFullName,location:t.jobLocation??e.city??e.currentLocation??e.jobLocation,vendor:n,submittedBy:pO(e,t,n),submittedAt:t.createdAt??e.createdAt,email:t.email??e.email,employerLocation:t.employerLocation,employerName:t.employerName}}function hO(e){let t=Array.isArray(e)?e:[];for(let e=t.length-1;e>=0;--e)if(String(t[e]?.activityType??``).trim().toLowerCase()===`cfo rejected`)return t[e];return null}function gO(e){return String(e??``).toLowerCase().replace(/\b\w/g,e=>e.toUpperCase())}function _O({selectedIds:t,selectedRecords:n,onClose:a}){let s=n?.[0]??{},c=t?.[0]??bg(s),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(!0);(0,r.useEffect)(()=>{let t=!1;return m(!0),Promise.all([s_(c,s),e.rn(`submission`,c).catch(()=>[])]).then(([e,n])=>{if(t)return;let r=hO(n);f(bg(e?.meta?.workforceEngagementId??s?.onboarding?.workforceEngagementId??s?.workforceEngagementId));let i=e?.meta?.rejectReasonComments||r?.activityComments||``;u({...e,record:{...e.record,submission:{...e.record.submission,cfoRejectionReason:i?gO(i):``,cfoRejectedAt:e?.meta?.rejectedAt??r?.activityTime??null}}})}).catch(e=>{t||(i.message.error(e?.message??`Unable to load finance details`),u({record:{submission:s},lookups:{},display:{}}))}).finally(()=>{t||m(!1)}),()=>{t=!0}},[c]);let h=(0,r.useMemo)(()=>({submissionReapproveSend:async({computed:e})=>{await he(d,{submissionId:c,billRate:e.proposedRate,payRate:e.employerRate,currency:e.currencyRaw??e.currency,rateUnit:e.rateUnit,vmsPercent:e.clientVmsPercent}),await pe(c,{candidateProposedRate:e.proposedRate,candidateProposedRateCurrency:e.currencyRaw??e.currency,candidateProposedRateUnit:e.rateUnit,submitVia:`Mail`,context:`resend`}),i.message.success(`Re-approved and sent for CFO approval`),a?.({success:!0})}}),[c,d,a]);return p||!l?(0,o.jsx)(`div`,{style:{display:`flex`,justifyContent:`center`,padding:48},children:(0,o.jsx)(i.Spin,{size:`large`})}):(0,o.jsx)(Xg,{type:Qh,record:l.record,lookups:l.lookups,identity:mO(s,l.display),currentUserId:typeof localStorage<`u`?localStorage.getItem(`userId`)??void 0:void 0,actions:h,onClose:()=>a?.(),variant:`popup`})}_O.propTypes={selectedIds:l.default.array,selectedRecords:l.default.array,onClose:l.default.func};var vO={title:`Re-Approve`,width:780,className:`fa-modal manager-approve-modal`,component:_O},yO={submit:async()=>{}},bO=[{id:1,name:`Re-Submission`},{id:2,name:`Candidate doesn't fit into the profile`},{id:3,name:`Incomplete candidate details - (Re-Submission)`}],xO={title:`Reject`,okText:`Reject`,okButtonDanger:!0,width:480,successMessage:`Submission rejected successfully`,fields:[{name:`rejectReason`,label:`Rejection Reasons`,type:`select`,required:!0,placeholder:`Select rejection reasons`,defaultOptions:bO.map(e=>({label:e.name,value:e.id}))},{name:`rejectReasonComments`,label:`Comments`,type:`textarea`,required:!0,rows:4}]},SO={submit:async(e,t)=>{let n=bO.find(t=>String(t.id)===String(e.rejectReason));await ge({submissionId:t.selectedIds[0],rejectReasonId:e.rejectReason,rejectReason:n?.name??``,rejectReasonComments:e.rejectReasonComments})}},CO={delete:jE,"quick-submit":cD,"add-notes":lD,"tag-to-job":hD,"change-status":OD,"remove-from-shortlist":jD,"add-to-groups":ND,"self-assign":LD,"others-assign":BD,"sticky-notes":HD,"move-to-onboarding":WD,"approve-rate":XD,"manager-approve":lO,"manager-reapprove":vO,reject:xO},wO={delete:ME,"quick-submit":sD,"add-notes":fD,"tag-to-job":DD,"change-status":AD,"remove-from-shortlist":MD,"add-to-groups":PD,"self-assign":RD,"others-assign":VD,"sticky-notes":UD,"move-to-onboarding":GD,"approve-rate":ZD,"manager-approve":uO,"manager-reapprove":yO,reject:SO};function TO(e){let t=e?.data??e;return Array.isArray(t)?t:t?.data??t?.rows??t?.records??t?.items??t?.list??[]}function EO(e,...t){for(let n of t){let t=String(n).split(`.`).reduce((e,t)=>e?.[t],e);if(t!=null&&t!==``)return t}return``}function DO(e){let t=String(EO(e,`isDeleted`,`deleted`)).toLowerCase(),n=String(EO(e,`assignmentStatus`,`status`)).toLowerCase();return t!==`true`&&t!==`1`&&![`removed`,`inactive`,`deleted`].includes(n)}function OO(e){let t=EO(e,`candidateName`,`candidate_name`,`fullName`,`name`);return t?String(t):[EO(e,`firstName`,`first_name`),EO(e,`lastName`,`last_name`)].filter(Boolean).join(` `)||`Unnamed candidate`}function kO(e){return String(EO(e,`candidateId`,`candidate_id`,`candidate._id`,`candidate.id`))}function AO(e){return String(EO(e,`workforceEngagementId`,`engagementId`,`_id`,`id`))}function jO(e){return String(EO(e,`batchName`,`name`,`title`,`batch_name`))}function MO({open:n=!0,context:a={},onClose:s}){let[c,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]),[f,p]=(0,r.useState)(``),[m,h]=(0,r.useState)(!0),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(``),[b,x]=(0,r.useState)(new Map),S=String(a.selectedIds?.[0]??a.selectedRecords?.[0]?._id??a.selectedRecords?.[0]?.id??a.batchId??``);(0,r.useEffect)(()=>{if(!n)return;let t=!1;return Promise.resolve().then(()=>(t||h(!0),Promise.all([e.mn(`onboarding`,200,0),e.mn(`batchCandidates`,1e3,0).catch(()=>[])]))).then(([e,n])=>{t||(l(TO(e)),x(new Map(TO(n).filter(DO).map(e=>[String(EO(e,`candidateId`,`candidate_id`)),e]).filter(([e])=>e))))}).catch(e=>{t||y(e.message||`Unable to load onboarding candidates`)}).finally(()=>{t||h(!1)}),()=>{t=!0}},[n]);let C=(0,r.useMemo)(()=>{let e=f.trim().toLowerCase();return e?c.filter(t=>[OO(t),EO(t,`email`,`candidateEmail`,`candidate_email`),EO(t,`status`,`onboardingStatus`,`onboarding_status`)].some(t=>String(t).toLowerCase().includes(e))):c},[c,f]);async function w(){if(!S){y(`Select a batch before adding candidates`);return}let n=c.filter(e=>u.includes(AO(e)));if(!n.length)return;let r=n.map(e=>({record:e,assignment:b.get(kO(e))})).filter(e=>e.assignment);if(r.length){y(`${r.map(({record:e})=>OO(e)).join(`, `)} ${r.length===1?`is`:`are`} already added to a batch. Each candidate can be added to only one batch.`);return}_(!0),y(``);try{let{userId:r}=t.o(),o=jO(a.selectedRecords?.[0])||jO(a);await Promise.all(n.map(t=>e.Gn(`batchCandidates`,{schemaVersion:1,batchId:S,batchName:o,candidateId:kO(t),workforceEngagementId:AO(t),source:`ONBOARDING`,assignmentStatus:`ASSIGNED`,assignedAt:new Date().toISOString(),assignedBy:r??0,isDeleted:!1}))),i.message.success(`${n.length} candidate${n.length===1?``:`s`} added to the batch`),s?.({refresh:!0})}catch(e){y(e.message||`Unable to add candidates to the batch`)}finally{_(!1)}}return(0,o.jsxs)(i.Modal,{open:n,title:`Add Candidate to Batch`,okText:`Add`,onOk:w,onCancel:()=>s?.(),okButtonProps:{disabled:u.length===0||!S,loading:g},cancelButtonProps:{disabled:g},closable:!g,maskClosable:!1,width:760,centered:!0,children:[v&&(0,o.jsx)(i.Alert,{type:`error`,showIcon:!0,message:v,style:{marginBottom:12}}),(0,o.jsx)(i.Input.Search,{allowClear:!0,placeholder:`Search onboarding candidates`,value:f,onChange:e=>p(e.target.value),style:{marginBottom:12}}),(0,o.jsx)(i.Table,{rowKey:e=>AO(e),columns:[{title:`Candidate`,key:`candidate`,render:(e,t)=>OO(t)},{title:`Email`,key:`email`,render:(e,t)=>EO(t,`email`,`candidateEmail`,`candidate_email`)||`—`},{title:`Onboarding status`,key:`status`,render:(e,t)=>EO(t,`status`,`onboardingStatus`,`onboarding_status`)||`—`}],dataSource:C,loading:m,size:`small`,pagination:{pageSize:10,showSizeChanger:!1},rowSelection:{selectedRowKeys:u,onChange:d,getCheckboxProps:e=>{let t=b.get(kO(e));return{disabled:!kO(e)||!AO(e)||!!t,title:t?`Candidate is already added to a batch`:void 0}}},locale:{emptyText:m?`Loading candidates…`:`No onboarding candidates found`}})]})}var NO={text:`input`,string:`input`,textarea:`textarea`,date:`date-picker`,datepicker:`date-picker`,multiselect:`multi-select`,lookup:`search-select`};function PO(e){if(!e)return null;let t=[...e.groups??[]].sort((e,t)=>Number(e.order??0)-Number(t.order??0)).flatMap(e=>[...e.fields??[]].filter(e=>e.show!==0&&e.show!==!1).sort((e,t)=>Number(e.order??0)-Number(t.order??0)).map(e=>({...e,name:e.name??e.field,label:e.label??e.field,type:NO[String(e.type??`text`).toLowerCase()]??e.type??`input`,required:e.required??e.req===1,options:(e.options??[]).map(e=>({label:e.label??e.name??e.value,value:e.value??e.id??e.label}))}))),n=FO(e.successNavigate);return{title:e.label,fields:t,...n?{successNavigate:n}:{}}}function FO(e){let t=String(e??``).trim();return!t||!t.startsWith(`/`)||t.startsWith(`//`)||/^[a-z][a-z0-9+.-]*:/i.test(t)?null:t}function IO(e,t=[]){if(!e||!Array.isArray(t)||!t.length)return e;let n=new Map(t.filter(e=>e?.name).map(e=>[String(e.name),e]));return n.size?{...e,fields:(e.fields??[]).map(r=>{let i=n.get(String(r.name))??n.get(String(r.label))??(n.size===1&&(e.fields??[]).length===1?t[0]:null);if(!i)return r;let{name:a,...o}=i;return{...r,...o}})}:e}function LO({apiMap:n={},extraConfigs:i={}}){let a=(0,r.useMemo)(()=>({...wO,...n}),[n]),s=(0,r.useMemo)(()=>{let e={...CO};return Object.entries(i).forEach(([t,n])=>{e[t]={...e[t]??{},...n}}),e},[i]),{popupKey:l}=(0,c.useParams)(),u=(0,c.useNavigate)(),{state:d={}}=(0,c.useLocation)(),[f,p]=(0,r.useState)({key:``,config:null});(0,r.useEffect)(()=>{let t=!1;if(!l||!d.moduleName)return;let n=`${d.moduleName}:${l}`;return e.gr(d.moduleName,`popup`,l).then(e=>{t||p({key:n,config:PO(e[0])})}).catch(()=>{t||p({key:n,config:null})}),()=>{t=!0}},[l,d.moduleName]);let m=(0,r.useMemo)(()=>{let e=s[l],t=`${d.moduleName}:${l}`,n=f.key===t?f.config:null;return IO(n?{...e,...n}:e,d.popupAction?.popupFieldOverrides)},[f,s,l,d.moduleName,d.popupAction?.popupFieldOverrides]),h=(0,r.useMemo)(()=>({selectedIds:d.selectedIds??[],selectedRecords:d.selectedRecords??[],moduleName:d.moduleName??``,navigate:u,background:d.background??null,...d.popupContext??{}}),[u,d.selectedIds,d.selectedRecords,d.moduleName,d.popupContext,d.background]),g=(0,r.useMemo)(()=>{let e=d.popupAction;return e?.apiPath?{submit:(n,r)=>{let i=String(e.apiMethod||`POST`).toUpperCase();return t.a(t.b,e.apiPath.startsWith(`/`)?e.apiPath:`/${e.apiPath}`,{method:i,body:[`GET`,`DELETE`].includes(i)?void 0:JSON.stringify({...n,selectedIds:r.selectedIds,selectedRecords:r.selectedRecords,moduleName:r.moduleName})})}}:{}},[d.popupAction]),_=e=>{let t=d.background;if(e?.success&&m?.successNavigate){u(m.successNavigate,{replace:!0,state:{refreshTimestamp:Date.now()}});return}if(e?.success&&t?.pathname){u(`${t.pathname}${t.search??``}`,{replace:!0,state:{...t.state??{},refreshTimestamp:Date.now()}});return}u(-1)};return l===`add-batch-candidate`?(0,o.jsx)(MO,{open:!0,context:h,onClose:_}):(0,o.jsx)(AE,{open:!0,config:m,context:h,onClose:_,api:{...a[l]??{},...g}})}var RO={title:`Vendor Share`,maxVendorSelect:1e3,defaultTab:`myVendor`,defaultPageSize:10,vendorTabs:[{key:`myVendor`,label:`My Vendors`},{key:`allVendor`,label:`All Vendors`}],vendorColumns:[{title:`Vendor Name`,dataIndex:`vendorName`,key:`vendorName`},{title:`Email`,dataIndex:`vendorEmail`,key:`vendorEmail`},{title:`Location`,dataIndex:`vendorLocation`,key:`vendorLocation`},{title:`Updated On`,dataIndex:`updatedOn`,key:`updatedOn`}]},zO={getVendorList:({jobId:e,limit:t,offset:n,type:r})=>rn({jobId:e,limit:t,offset:n,sortBy:`new`,type:r}),getMailDetails:e=>an(e),submit:({jobId:e,toMail:t,ccMail:n,bccMail:r,subject:i,contents:a})=>sn({jobId:e,toMail:t,ccMail:n,bccMail:r,subject:i,contents:a})},BO=RO.vendorColumns.map(e=>({...e,render:e=>e||`-`}));function VO(){let e=(0,c.useNavigate)(),t=(0,c.useLocation)(),{selectedIds:n=[],selectedRecords:s=[],recipients:l=[],subject:u=``,onSend:d,moduleName:f=``,popupAction:p={}}=t.state??{},m=n[0]??s[0]?._id??s[0]?.id,[h,g]=(0,r.useState)({to:l.join(`, `),cc:``,bcc:``,subject:u,contents:``,showCc:!1,showBcc:!1}),[_,v]=(0,r.useState)(!m),[y,b]=(0,r.useState)(RO.defaultTab),[x,S]=(0,r.useState)(``),[C,w]=(0,r.useState)([]),[T,E]=(0,r.useState)(0),[D,O]=(0,r.useState)(0),[k,A]=(0,r.useState)(0),[j,M]=(0,r.useState)(1),[N,P]=(0,r.useState)(RO.defaultPageSize),[F,I]=(0,r.useState)(!1),[L,R]=(0,r.useState)([]);(0,r.useEffect)(()=>{if(!m)return;let e=!1;I(!0);let t=x?100:N,n=x?0:(j-1)*N;return zO.getVendorList({jobId:m,limit:t,offset:n,type:y}).then(t=>{if(e)return;let n=t?.data?.vendorList??t?.data??[],r=t?.data?.myVendorCount??0,i=t?.data?.allVendorCount??0;w(Array.isArray(n)?n:[]),E(r),O(i),A(y===`myVendor`?r:i)}).catch(()=>{e||(w([]),A(0))}).finally(()=>{e||I(!1)}),()=>{e=!0}},[m,y,j,N,x]),(0,r.useEffect)(()=>{m&&zO.getMailDetails(m).then(e=>g(t=>({...t,subject:e.subject||t.subject,contents:e.contents||t.contents,to:e.toMail?.length?Array.isArray(e.toMail)?e.toMail.join(`, `):String(e.toMail):t.to,cc:e.ccMail?.length?Array.isArray(e.ccMail)?e.ccMail.join(`, `):String(e.ccMail):t.cc}))).catch(()=>{}).finally(()=>v(!0))},[m]);let z=(0,r.useMemo)(()=>L.map(e=>C.find(t=>t.vendorId===e)?.vendorEmail??``).filter(Boolean),[L,C]),B=(0,r.useMemo)(()=>({...h,bcc:[...new Set([...jw(h.bcc),...z])].join(`, `),showBcc:h.showBcc||z.length>0}),[h,z]);function ee(e){let t=new Set(z);g({...e,bcc:jw(e.bcc).filter(e=>!t.has(e)).join(`, `)})}let V=(jw(B.to).length||jw(B.bcc).length)&&Mw(B.to)&&Mw(B.cc)&&Mw(B.bcc)&&B.subject.trim(),H=e=>e===`myVendor`?T:D;function U(){e(-1)}function te(){V&&zO.submit({jobId:m,toMail:jw(B.to),ccMail:jw(B.cc),bccMail:jw(B.bcc),subject:B.subject,contents:B.contents}).then(t=>{t?.status===!0?(i.message.success(t?.data||`Mail sent successfully.`),typeof d==`function`&&d({...B,message:B.contents,selectedIds:n}),e(-1)):i.message.error(t?.message||t?.data||`Failed to send mail. Please try again.`)}).catch(e=>{i.message.error(e?.message||`Failed to send mail. Please try again.`)})}let ne=(0,r.useMemo)(()=>{if(!x)return C;let e=x.toLowerCase();return C.filter(t=>(t.vendorName??``).toLowerCase().includes(e)||(t.vendorEmail??``).toLowerCase().includes(e)||(t.vendorLocation??``).toLowerCase().includes(e))},[C,x]);return(0,o.jsx)(i.Drawer,{open:!0,placement:`right`,onClose:U,closable:!1,rootClassName:`vendor-share`,width:`95%`,footer:(0,o.jsxs)(`div`,{className:`vendor-share__footer`,children:[(0,o.jsx)(i.Button,{onClick:U,children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,disabled:!V,onClick:te,children:`Send`})]}),children:(0,o.jsxs)(`div`,{className:`vendor-share__body`,children:[(0,o.jsxs)(`div`,{className:`vendor-share__left`,children:[(0,o.jsxs)(`div`,{className:`vendor-share__vendor-header`,children:[(0,o.jsxs)(`div`,{className:`vendor-share__vendor-header-row`,children:[(0,o.jsx)(i.Button,{type:`text`,icon:(0,o.jsx)(a.CloseOutlined,{}),onClick:U,size:`small`,style:{marginRight:8}}),(0,o.jsx)(`span`,{className:`dynamic-popup__header-icon-box`,children:(0,o.jsx)(a.TeamOutlined,{})}),(0,o.jsx)(`span`,{className:`dynamic-popup__header-label`,children:`Vendor List`}),(0,o.jsxs)(`div`,{className:`vendor-share__vendor-search`,children:[(0,o.jsx)(a.SearchOutlined,{className:`vendor-share__search-icon`}),(0,o.jsx)(i.Input,{variant:`borderless`,placeholder:`Search vendor`,value:x,onChange:e=>{S(e.target.value),M(1)},className:`vendor-share__search-input`})]})]}),(0,o.jsx)(`div`,{className:`vendor-share__vendor-tabs`,children:RO.vendorTabs.map(e=>(0,o.jsxs)(`span`,{className:`vendor-share__vendor-tab${y===e.key?` vendor-share__vendor-tab--active`:``}`,onClick:()=>{b(e.key),M(1),R([])},children:[e.label,` (`,H(e.key),`)`]},e.key))})]}),(0,o.jsx)(`div`,{className:`vendor-share__vendor-table-wrapper`,children:(0,o.jsx)(i.Table,{rowKey:e=>e.vendorId,columns:BO,dataSource:ne,loading:F,pagination:!1,size:`small`,rowSelection:{selectedRowKeys:L,onChange:e=>{e.length>RO.maxVendorSelect||R(e)}},scroll:{y:`calc(100vh - 340px)`}})}),(0,o.jsx)(`div`,{className:`vendor-share__vendor-footer`,children:(0,o.jsx)(Ae,{current:j,pageSize:N,total:k,onChange:e=>M(e),onPageSizeChange:e=>P(e)})})]}),(0,o.jsx)(`div`,{className:`vendor-share__right`,children:(0,o.jsx)(Lw,{value:B,onChange:ee,moduleName:f,defaultTemplateId:p.defaultTemplateId??t.state?.defaultTemplateId??``,ready:_,contextRecords:s,title:`Share`,hint:`Select vendors or add email addresses`,bccHint:`Vendor emails are added automatically`,afterBcc:L.length>0?(0,o.jsxs)(`div`,{className:`vendor-share__selected-count`,children:[L.length,` / `,RO.maxVendorSelect,` Vendors selected`]}):null})})]})})}var HO={EMAIL:/^[a-zA-Z0-9._%+-]+@[a-zA-Z][a-zA-Z-]*\.[a-zA-Z]{2,}$/,PHONE:/^[0-9]{10}$/,PASSWORD:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,ALPHABETS:/^[A-Za-z ]+$/,ALPHANUMERIC:/^(?!\s)[A-Za-z0-9 ]+$/,NUMBER:/^[0-9]+$/,URL:/^(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+(com|org|net|in|co|io|gov|edu)(\/[^\s]*)?$/i,CANDIDATE_ID:/^[A-Za-z0-9-]+$/,REMARKS:/^[A-Za-z0-9\s.,'"\-()!?/@#$%&]*$/,DESIGNATION:/^[a-zA-Z0-9\s,.\-&()]{2,100}$/,DOB:/^(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])\/\d{4}$/,COMPANY_NAME:/^[A-Za-z0-9\s&.,'()-]+$/,FIRST_NAME:/^[A-Z][a-zA-Z]*$/,FULL_NAME:/^[A-Z][a-zA-Z]*(?: [A-Z][a-zA-Z]*)*$/,NO_SPACES:/^\S+$/,STARTS_WITH_CAPITAL:/^[A-Z].*$/},UO={SINGLE_FILE_COUNT:1,MULTI_FILE_COUNT:5,MAX_FILE_SIZE:2,ALLOWED_FILE_TYPES:[`image/jpeg`,`image/png`,`application/pdf`]},WO={REQUIRED:e=>`Mandatory Field`,INVALID_EMAIL:`Please enter a valid email address.`,INVALID_PHONE:`Phone number must contain exactly 10 digits.`,INVALID_PASSWORD:`Password must contain uppercase, lowercase, number, special character and minimum 8 characters.`,INVALID_ALPHABETS:`Only alphabets and spaces are allowed.`,INVALID_ALPHANUMERIC:`Only letters, numbers and spaces are allowed.`,INVALID_NUMBER:`Only numbers are allowed.`,INVALID_URL:`Please enter a valid URL.`,INVALID_CANDIDATE_ID:e=>`${e} can contain only letters, numbers and hyphens.`,INVALID_REMARKS:`Remarks contain invalid characters.`,INVALID_DESIGNATION:`Designation contains invalid characters.`,INVALID_DOB:`DOB must be in MM/DD/YYYY format.`,INVALID_LINKEDIN:`Please enter a valid LinkedIn URL.`,INVALID_COMPANY_NAME:`Company name contains invalid characters.`,INVALID_FIRST_NAME:`First letter must be capital and spaces are not allowed.`,INVALID_FULL_NAME:`Each word must start with a capital letter.`,NO_SPACES_ALLOWED:`Spaces are not allowed.`,MUST_START_WITH_CAPITAL:`First letter must be capital.`,INVALID_FILE_TYPE:`Only JPG, PNG and PDF files are allowed.`,INVALID_FILE_SIZE:`File upload must be ${UO.MAX_FILE_SIZE} MB below.`,INVALID_FILE_TYPE:`Only JPG, PNG and PDF files are allowed.`,SINGLE_FILE_ONLY:`Only one file can be uploaded.`},GO={FIRST_NAME_MIN:3,FIRST_NAME_MAX:30},KO={REMARKS_MIN:10,REMARKS_MAX:250},qO={removeSpaces:(e=``)=>e.replace(/\s/g,``),capitalizeFirstLetter:(e=``)=>e.charAt(0).toUpperCase()+e.slice(1),capitalizeWords:(e=``)=>e.replace(/\b\w/g,e=>e.toUpperCase()),removeExtraSpaces:(e=``)=>e.replace(/\s+/g,` `).trim(),firstNameFormatter:(e=``)=>e.replace(/\s+/g,` `).trimStart().replace(/\b\w/g,e=>e.toUpperCase()),fullNameFormatter:(e=``)=>e.replace(/\s+/g,` `).trimStart().replace(/\b\w/g,e=>e.toUpperCase()),phoneFormatter:(e=``)=>e.replace(/\D/g,``).slice(0,10),dobFormatter:(e=``)=>{let t=e.replace(/\D/g,``);return t.length<=2?t:t.length<=4?`${t.slice(0,2)}/${t.slice(2)}`:`${t.slice(0,2)}/${t.slice(2,4)}/${t.slice(4,8)}`}},JO={required:(e=`Field`)=>({required:!0,message:WO.REQUIRED(e)}),email:()=>({pattern:HO.EMAIL,message:WO.INVALID_EMAIL}),phone:()=>({pattern:HO.PHONE,message:WO.INVALID_PHONE}),password:()=>({pattern:HO.PASSWORD,message:WO.INVALID_PASSWORD}),alphabets:()=>({pattern:HO.ALPHABETS,message:WO.INVALID_ALPHABETS}),alphanumeric:()=>({pattern:HO.ALPHANUMERIC,message:WO.INVALID_ALPHANUMERIC}),number:()=>({pattern:HO.NUMBER,message:WO.INVALID_NUMBER}),url:()=>({pattern:HO.URL,message:WO.INVALID_URL}),candidateId:(e=`ID`)=>({pattern:HO.CANDIDATE_ID,message:WO.INVALID_CANDIDATE_ID(e)}),remarks:()=>({pattern:HO.REMARKS,message:WO.INVALID_REMARKS,REMARKS_MIN:`Remarks must be at least ${KO.REMARKS_MIN} characters.`,REMARKS_MAX:`Remarks must not exceed ${KO.REMARKS_MAX} characters.`}),designation:()=>({pattern:HO.DESIGNATION,message:WO.INVALID_DESIGNATION}),dob:(e=!0)=>({validator:(t,n)=>{if(!n)return e?Promise.reject(Error(`Date of Birth is required.`)):Promise.resolve();if(!HO.DOB.test(n))return Promise.reject(Error(WO.INVALID_DOB));let r=(0,s.default)(n,`MM/DD/YYYY`,!0);if(!r.isValid())return Promise.reject(Error(WO.INVALID_DOB));let i=(0,s.default)().endOf(`day`);return r.isAfter(i)?Promise.reject(Error(`Date of Birth cannot be a future date.`)):i.diff(r,`year`)<21?Promise.reject(Error(`Age must be at least 21 years.`)):Promise.resolve()}}),linkedin:()=>({pattern:HO.LINKEDIN,message:WO.INVALID_LINKEDIN}),companyName:()=>({pattern:HO.COMPANY_NAME,message:WO.INVALID_COMPANY_NAME}),firstName:()=>({pattern:HO.FIRST_NAME,message:WO.INVALID_FIRST_NAME,FIRST_NAME_MIN:`First Name must be at least ${GO.FIRST_NAME_MIN} characters.`,FIRST_NAME_MAX:`First Name must not exceed ${GO.FIRST_NAME_MAX} characters.`}),firstNameMinLength:()=>({min:GO.FIRST_NAME_MIN,message:WO.FIRST_NAME_MIN}),firstNameMaxLength:()=>({max:GO.FIRST_NAME_MAX,message:WO.FIRST_NAME_MAX}),remarksMinLength:()=>({min:KO.REMARKS_MIN,message:WO.REMARKS_MIN}),remarksMaxLength:()=>({max:KO.REMARKS_MAX,message:WO.REMARKS_MAX}),fullName:()=>({pattern:HO.FULL_NAME,message:WO.INVALID_FULL_NAME}),noSpaces:()=>({pattern:HO.NO_SPACES,message:WO.NO_SPACES_ALLOWED}),startsWithCapital:()=>({pattern:HO.STARTS_WITH_CAPITAL,message:WO.MUST_START_WITH_CAPITAL}),fileUpload:()=>({validator:(e,t)=>{if(!t||t.length===0)return Promise.resolve();for(let e of t){let t=e.originFileObj||e;if(!(t.size/1024/1024<=UO.MAX_FILE_SIZE))return i.message.error(WO.INVALID_FILE_SIZE),Promise.reject(Error(WO.INVALID_FILE_SIZE));if(!UO.ALLOWED_FILE_TYPES.includes(t.type))return Promise.reject(Error(WO.INVALID_FILE_TYPE))}return Promise.resolve()}}),singleFileUpload:()=>({validator:(e,t)=>{if(!t||t.length===0)return Promise.resolve();if(t.length>UO.SINGLE_FILE_COUNT)return Promise.reject(Error(WO.SINGLE_FILE_ONLY));let n=t[0];return n.size/1024/1024<UO.MAX_FILE_SIZE?UO.ALLOWED_FILE_TYPES.includes(n.type)?Promise.resolve():Promise.reject(Error(WO.INVALID_FILE_TYPE)):Promise.reject(Error(WO.INVALID_FILE_SIZE))}}),multiFileUpload:()=>({validator:(e,t)=>{if(!t||t.length===0)return Promise.resolve();if(t.length>UO.MULTI_FILE_COUNT)return Promise.reject(Error(WO.INVALID_FILE_COUNT));for(let e of t){if(!(e.size/1024/1024<UO.MAX_FILE_SIZE))return Promise.reject(Error(WO.INVALID_FILE_SIZE));if(!UO.ALLOWED_FILE_TYPES.includes(e.type))return Promise.reject(Error(WO.INVALID_FILE_TYPE))}return Promise.resolve()}})},YO={beforeUpload:e=>[`image/jpeg`,`image/png`,`application/pdf`].includes(e.type)?e.size/1024/1024<=2?!1:(i.message.error(`File upload must be 2 MB below.`),i.Upload.LIST_IGNORE):(i.message.error(`Only JPG, PNG and PDF files are allowed.`),i.Upload.LIST_IGNORE)},XO=()=>{let[e]=i.Form.useForm();return(0,o.jsx)(`div`,{style:{padding:24},children:(0,o.jsxs)(i.Form,{form:e,layout:`vertical`,onFinish:e=>{console.log(`Form Values:`,e)},autoComplete:`off`,children:[(0,o.jsxs)(i.Row,{gutter:16,children:[(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Email`,name:`email`,rules:[JO.required(`Email`),JO.email()],children:(0,o.jsx)(i.Input,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Phone Number`,name:`phone`,rules:[JO.required(`Phone Number`),JO.phone()],validateTrigger:[`onBlur`,`onChange`],children:(0,o.jsx)(i.Input,{maxLength:10,onChange:t=>{e.setFieldsValue({phone:qO.phoneFormatter(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Password`,name:`password`,rules:[JO.required(`Password`),JO.password()],children:(0,o.jsx)(i.Input.Password,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Full Name`,name:`fullName`,rules:[JO.required(`Full Name`),JO.alphabets(),JO.firstNameMinLength(),JO.firstNameMaxLength()],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({fullName:qO.firstNameFormatter(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Username`,name:`username`,rules:[JO.required(`Username`),JO.alphanumeric()],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({username:qO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Website URL`,name:`website`,rules:[JO.required(`Website URL`),JO.url()],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({website:qO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`MSP Req ID`,name:`mspreqID`,rules:[JO.required(`MSP Req ID`),JO.candidateId(`MSP Req ID`)],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({mspreqID:qO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Candidate ID`,name:`candidateId`,rules:[JO.required(`Candidate ID`),JO.candidateId(`Candidate ID`)],children:(0,o.jsx)(i.Input,{onChange:t=>{e.setFieldsValue({candidateId:qO.removeExtraSpaces(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:24,children:(0,o.jsx)(i.Form.Item,{label:`Remarks`,name:`remarks`,rules:[JO.required(`Remarks`),JO.remarks(),JO.remarksMinLength(),JO.remarksMaxLength()],children:(0,o.jsx)(i.Input.TextArea,{rows:4})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Designation`,name:`designation`,rules:[JO.required(`Designation`),JO.designation()],children:(0,o.jsx)(i.Input,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Date of Birth`,name:`dob`,rules:[JO.dob()],children:(0,o.jsx)(i.Input,{placeholder:`MM/DD/YYYY`,maxLength:10,onChange:t=>{e.setFieldsValue({dob:qO.dobFormatter(t.target.value)})}})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Company Name`,name:`companyName`,rules:[JO.required(`Company Name`),JO.companyName()],children:(0,o.jsx)(i.Input,{})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{name:`contractType`,label:`Contract Type`,children:(0,o.jsxs)(i.Select,{showSearch:!0,allowClear:!0,filterOption:(e,t)=>(t?.label??``).toLowerCase().includes(e.toLowerCase()),children:[(0,o.jsx)(i.Select.Option,{value:`C2C`,label:`C2C`,children:`C2C`}),(0,o.jsx)(i.Select.Option,{value:`W2-Contract`,label:`W2-Contract`,children:`W2-Contract`}),(0,o.jsx)(i.Select.Option,{value:`W2-Fulltime`,label:`W2-Fulltime`,children:`W2-Fulltime`}),(0,o.jsx)(i.Select.Option,{value:`1099`,label:`1099`,children:`1099`})]})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{name:`candidateProposedRateCurrency`,label:`Currency`,children:(0,o.jsxs)(i.Select,{showSearch:!0,allowClear:!0,children:[(0,o.jsx)(i.Select.Option,{value:`$`,children:`$`}),(0,o.jsx)(i.Select.Option,{value:`₹`,children:`₹`}),(0,o.jsx)(i.Select.Option,{value:`€`,children:`€`}),(0,o.jsx)(i.Select.Option,{value:`zł`,children:`zł`}),(0,o.jsx)(i.Select.Option,{value:`£`,children:`£`}),(0,o.jsx)(i.Select.Option,{value:`kr`,children:`kr`}),(0,o.jsx)(i.Select.Option,{value:`Fr`,children:`Fr`}),(0,o.jsx)(i.Select.Option,{value:`kr`,children:`kr`})]})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Resume new`,name:`resume`,children:(0,o.jsx)(i.Upload,{beforeUpload:YO.beforeUpload,maxCount:1,children:(0,o.jsx)(i.Button,{children:`Upload Resume`})})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Documents`,name:`documents`,valuePropName:`fileList`,getValueFromEvent:e=>e?.fileList,rules:[JO.multiFileUpload()],children:(0,o.jsx)(i.Upload,{multiple:!0,beforeUpload:YO.beforeUpload,children:(0,o.jsx)(i.Button,{children:`Upload Documents`})})})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{label:`Upload File`,name:`file`,valuePropName:`fileList`,getValueFromEvent:e=>e?.fileList,rules:[JO.fileUpload()],children:(0,o.jsx)(i.Upload,{beforeUpload:YO.beforeUpload,maxCount:1,children:(0,o.jsx)(i.Button,{children:`Upload`})})})})]}),(0,o.jsx)(i.Row,{children:(0,o.jsx)(i.Form.List,{name:`users`,children:(e,{add:t,remove:n})=>(0,o.jsxs)(o.Fragment,{children:[e.map(({key:e,name:t,...r})=>(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(i.Col,{span:12,children:(0,o.jsx)(i.Form.Item,{required:!0,...r,rules:[{required:!0,message:`First name is requried`}],name:[t,`first`],children:(0,o.jsx)(i.Input,{placeholder:`First Name`})})}),(0,o.jsx)(i.Col,{span:11,children:(0,o.jsx)(i.Form.Item,{...r,required:!0,name:[t,`last`],children:(0,o.jsx)(i.Input,{placeholder:`Last Name`})})}),(0,o.jsx)(i.Col,{span:1,children:(0,o.jsx)(a.MinusCircleOutlined,{onClick:()=>n(t)})})]})),(0,o.jsx)(i.Form.Item,{children:(0,o.jsx)(i.Button,{type:`dashed`,onClick:()=>t(),block:!0,icon:(0,o.jsx)(a.PlusOutlined,{}),children:`Add field`})})]})})}),(0,o.jsxs)(i.Form.Item,{children:[(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,children:`Submit`}),(0,o.jsx)(i.Button,{style:{marginLeft:10},onClick:()=>e.resetFields(),children:`Reset`})]})]})})};function ZO(e){return(0,o.jsx)(bv,{children:(0,o.jsx)(Ew,{...e})})}var{Text:QO}=i.Typography,$O=[{label:`Total Jobs`,value:1697,icon:`fileText`},{label:`Active Jobs`,value:1685,icon:`checkCircle`},{label:`My Jobs`,value:600,icon:`user`}],ek={fileText:(0,o.jsx)(a.FileTextOutlined,{}),checkCircle:(0,o.jsx)(a.CheckCircleOutlined,{}),user:(0,o.jsx)(a.UserOutlined,{}),filter:(0,o.jsx)(a.FilterOutlined,{})};function tk({stats:e=$O}){return(0,o.jsx)(i.Card,{children:(0,o.jsx)(i.Row,{gutter:[12,12],children:e.map(e=>(0,o.jsx)(i.Col,{xs:24,sm:24,md:8,lg:8,xl:8,children:(0,o.jsxs)(i.Card,{className:`stats-inner-card`,children:[(0,o.jsxs)(i.Space,{align:`center`,children:[ek[e.icon]??ek.fileText,(0,o.jsx)(QO,{children:e.label})]}),(0,o.jsx)(i.Statistic,{value:e.value})]})},e.label))})})}var{Text:nk}=i.Typography;function rk(e){return e?.USER_NAME??e?.user_name??e?.username??e?.name??e?.full_name??e?.fullName??e?.email??`User ${e?.USER_ID??e?.user_id??`?`}`}function ik(e){return{...e,key:e.USER_ID??e.user_id??e.userId??e.id??e._id,_name:rk(e),_email:e.email??e.EMAIL??e.user_email??``,_role:e.role_name??e.roleName??e.ROLE_NAME??``,_rawRef:e}}function ak(){let[t,n]=(0,r.useState)([]),[s,c]=(0,r.useState)(0),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(1),[p,m]=(0,r.useState)(10),[h,g]=(0,r.useState)(``),_=(0,r.useCallback)(async({offset:t,limit:r,searchQuery:a}={})=>{u(!0);try{let i=await e.lr({offset:t,limit:r,searchQuery:a??``}),o=(i.users??[]).map(ik);n(o),c(i.total??o.length)}catch{i.message.error(`Failed to load users`)}finally{u(!1)}},[]);return(0,r.useEffect)(()=>{queueMicrotask(()=>{_({offset:(d-1)*p,limit:p,searchQuery:h})})},[_,d,p,h]),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.TeamOutlined,{}),title:`Users`,style:{marginBottom:0},bodyStyle:{padding:0},children:(0,o.jsx)(im,{listName:`Users`,dataSource:t,fields:[{label:`Name`,value:`_name`,width:220,render:(e,t)=>(0,o.jsxs)(`div`,{children:[(0,o.jsx)(nk,{strong:!0,style:{fontSize:13},children:e}),t._email&&(0,o.jsx)(`div`,{style:{fontSize:11,color:`var(--color-text-muted)`},children:t._email})]})},{label:`Role`,value:`_role`,width:180}],loading:l,total:s,current:d,pageSize:p,onPageChange:e=>f(e),onPageSizeChange:e=>{m(e),f(1)},onSearch:e=>{g(e),f(1)}})})}var{Text:ok}=i.Typography,sk=[{key:`job`,label:`Jobs`},{key:`candidate`,label:`Candidates`},{key:`submissions`,label:`Submissions`}],ck=[{key:`listView`,label:`List View`},{key:`filter`,label:`Filter`},{key:`form`,label:`Form`}];function lk({field:e,index:t,onToggle:n,onReorder:s}){let c=(0,r.useRef)(null),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(!1);function p(e){c.current=t,e.dataTransfer.effectAllowed=`move`,f(!0)}function m(){f(!1),u(!1)}function h(e){e.preventDefault(),u(!0)}function g(){u(!1)}function _(e){e.preventDefault(),u(!1),c.current!==null&&c.current!==t&&s(c.current,t),c.current=null}return(0,o.jsxs)(`div`,{draggable:!0,onDragStart:p,onDragEnd:m,onDragOver:h,onDragLeave:g,onDrop:_,className:`uss-field-row with-edit${l?` drag-over`:``}${d?` dragging`:``}`,children:[(0,o.jsx)(`span`,{className:`uss-drag-handle`,children:(0,o.jsx)(a.HolderOutlined,{})}),(0,o.jsxs)(`span`,{className:`uss-field-name`,children:[e.fieldName,(0,o.jsx)(`span`,{className:`uss-field-key`,children:e.fieldKey})]}),(0,o.jsx)(`span`,{className:`uss-toggle-cell`,children:(0,o.jsx)(i.Switch,{size:`small`,checked:e.isVisible,onChange:e=>n(t,`isVisible`,e)})}),(0,o.jsx)(`span`,{className:`uss-toggle-cell`,children:(0,o.jsx)(i.Switch,{size:`small`,checked:!!e.isEditable,onChange:e=>n(t,`isEditable`,e)})}),(0,o.jsx)(`span`,{className:`uss-toggle-cell`,children:(0,o.jsx)(i.Switch,{size:`small`,checked:!!e.ismandatory,onChange:e=>n(t,`ismandatory`,e)})})]})}function uk({team:t,configType:n}){let[a,s]=(0,r.useState)({}),[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)({}),[f,p]=(0,r.useState)(`job`);(0,r.useEffect)(()=>{t&&(l(!0),e.zr(t,n).then(s).catch(()=>i.message.error(`Failed to load field config`)).finally(()=>l(!1)))},[t,n]);let m=a[f]??[];function h(e,t){s(n=>({...n,[e]:typeof t==`function`?t(n[e]??[]):t}))}function g(e,t,n){h(f,r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}function _(e,t){h(f,n=>{let r=[...n],[i]=r.splice(e,1);return r.splice(t,0,i),r.map((e,t)=>({...e,order:t}))})}async function v(){let r=f;d(e=>({...e,[r]:!0}));try{await e.ui(t,r,m,n),i.message.success(`Saved`)}catch{i.message.error(`Save failed`)}finally{d(e=>({...e,[r]:!1}))}}return(0,o.jsxs)(i.Spin,{spinning:c,children:[(0,o.jsx)(i.Tabs,{size:`small`,activeKey:f,onChange:p,items:sk.map(e=>({key:e.key,label:e.label}))}),(0,o.jsxs)(`div`,{className:`uss-field-header with-edit`,children:[(0,o.jsx)(`span`,{}),(0,o.jsx)(`span`,{children:`Field`}),(0,o.jsx)(`span`,{style:{textAlign:`center`},children:`Visible`}),(0,o.jsx)(`span`,{style:{textAlign:`center`},children:`Editable`}),(0,o.jsx)(`span`,{style:{textAlign:`center`},children:`Mandatory`})]}),(0,o.jsxs)(`div`,{className:`uss-field-list`,children:[m.length===0&&!c&&(0,o.jsx)(`div`,{className:`uss-empty`,children:`No fields found.`}),m.map((e,t)=>(0,o.jsx)(lk,{field:e,index:t,onToggle:g,onReorder:_},e.fieldKey??t))]}),(0,o.jsx)(`div`,{className:`uss-modal-footer`,children:(0,o.jsxs)(i.Button,{type:`primary`,size:`small`,loading:u[f],onClick:v,children:[`Save `,sk.find(e=>e.key===f)?.label]})})]})}function dk(){let[t,n]=(0,r.useState)(null),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(!1),[d,f]=(0,r.useState)(`listView`),[p,m]=(0,r.useState)([]),[h,g]=(0,r.useState)(0),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(``),[x,S]=(0,r.useState)(!1),C=(0,r.useCallback)(async()=>{v(!0);try{let t=await e.cr();m(t.teams),g(t.total)}catch{i.message.error(`Failed to load teams`)}finally{v(!1)}},[]);(0,r.useEffect)(()=>{C()},[C]);function w(e){n(e),f(`listView`),c(!0)}function T(e){n(e),b(e.teamName??``),u(!0)}async function E(){if(!y.trim()){i.message.warning(`Team name is required`);return}S(!0);try{await e.li(t,{teamName:y.trim(),managerId:t.managerId,memberIds:t.memberIds}),i.message.success(`Team updated`),u(!1),C()}catch{i.message.error(`Failed to update team`)}finally{S(!1)}}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(Z,{icon:(0,o.jsx)(a.TeamOutlined,{}),title:`Teams`,style:{marginBottom:0},bodyStyle:{padding:0},children:(0,o.jsx)(im,{listName:`Teams`,dataSource:p,fields:[{label:`Team Name`,value:`teamName`,width:200},{label:`Manager`,value:`manager`,width:200},{label:`Members`,value:`memberCount`,width:90,sorter:!1},{label:`Actions`,value:`_actions`,width:160,sorter:!1,render:(e,t)=>(0,o.jsxs)(`div`,{style:{display:`flex`,gap:4},children:[(0,o.jsx)(i.Button,{size:`small`,type:`link`,onClick:()=>T(t),children:`Edit`}),(0,o.jsx)(i.Button,{size:`small`,type:`link`,onClick:()=>w(t),children:`Configure`})]})}],loading:_,total:h})}),(0,o.jsx)(i.Modal,{open:l,onCancel:()=>u(!1),title:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.TeamOutlined,{style:{color:`var(--color-brand)`,marginRight:6}}),`Edit Team`]}),width:420,footer:null,destroyOnClose:!0,children:(0,o.jsxs)(`div`,{className:`uss-edit-team-body`,style:{paddingTop:12},children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{className:`uss-edit-team-label`,children:`Team Name`}),(0,o.jsx)(i.Input,{value:y,onChange:e=>b(e.target.value),onPressEnter:E,placeholder:`Enter team name`})]}),(0,o.jsxs)(`div`,{className:`uss-modal-footer`,children:[(0,o.jsx)(i.Button,{onClick:()=>u(!1),children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,loading:x,onClick:E,children:`Save`})]})]})}),(0,o.jsxs)(i.Modal,{className:`uss-modal`,open:s,onCancel:()=>c(!1),title:(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,o.jsx)(a.TeamOutlined,{style:{color:`var(--color-brand)`}}),(0,o.jsxs)(`span`,{children:[`Configure: `,t?.teamName]})]}),width:720,footer:null,destroyOnClose:!0,children:[(0,o.jsx)(`div`,{style:{marginBottom:12},children:(0,o.jsx)(`div`,{className:`uss-config-toggle`,children:ck.map(e=>(0,o.jsx)(`button`,{className:`uss-config-btn${d===e.key?` active`:``}`,onClick:()=>f(e.key),children:e.label},e.key))})}),t&&(0,o.jsx)(uk,{team:t,configType:d},`${t?.teamId}-${d}`)]})]})}var fk=[`view`,`add`,`edit`,`delete`],pk={view:`View`,add:`Add`,edit:`Edit`,delete:`Delete`,sourcing:`Sourcing`,assign:`Assign`,share:`Share`,change_status:`Status`,my_jobs:`My Jobs`,all_jobs:`All Jobs`,po_msa:`PO MSA`,reApprove:`ReApprove`,sendApprove:`Send Approve`};function mk(e){return pk[e]??e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function hk(e){let t=fk.filter(t=>e.includes(t)),n=e.filter(e=>!fk.includes(e)).sort();return[...t,...n]}function gk(e){let t=new Set;return Object.values(e).forEach(({permissions:e})=>Object.keys(e??{}).forEach(e=>t.add(e))),hk([...t])}function _k(e){let t=0,n=0;return Object.entries(e).forEach(([e,{permissions:r}])=>{Object.entries(r??{}).forEach(([r,{value:i}])=>{Ay(e,r)&&(n++,i===`1`&&t++)})}),{enabled:t,total:n}}function vk(e={}){if(!e||typeof e!=`object`)return e;let t=Object.keys(e).find(e=>String(e).trim().toLowerCase()===`onboarding`);if(!t)return e;let n=e[t]??{},r={...n.permissions??{}};for(let e of[`sendApprove`,`reApprove`])Object.keys(r).some(t=>t.toLowerCase()===e.toLowerCase())||(r[e]={id:0,value:`0`});return{...e,[t]:{...n,permissions:r}}}function yk({value:e,onSave:t,className:n}){let[i,s]=(0,r.useState)(!1),[c,l]=(0,r.useState)(e);(0,r.useEffect)(()=>{l(e)},[e]);function u(){s(!1);let n=c.trim();n&&n!==e?t(n):l(e)}return i?(0,o.jsx)(`input`,{autoFocus:!0,className:`perm-inline-input${n?` ${n}`:``}`,value:c,style:{width:Math.max(48,c.length*8)},onChange:e=>l(e.target.value),onBlur:u,onKeyDown:t=>{t.key===`Enter`&&u(),t.key===`Escape`&&(s(!1),l(e)),t.stopPropagation()},onClick:e=>e.stopPropagation()}):(0,o.jsxs)(`span`,{className:`perm-editable-name${n?` ${n}`:``}`,onDoubleClick:e=>{e.stopPropagation(),s(!0)},children:[e,(0,o.jsx)(a.EditOutlined,{className:`perm-name-edit-icon`})]})}function bk({entry:e,label:t,onToggle:n,onLabelSave:s}){let[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(t),f=e?.value===`1`,p=!!e;(0,r.useEffect)(()=>{d(t)},[t]);function m(){l(!1);let e=u.trim();e&&e!==t?s(e):d(t)}return(0,o.jsx)(i.Tooltip,{title:p?f?`Click to disable`:`Click to enable`:`Not applicable for this module`,children:(0,o.jsxs)(`div`,{className:`perm-action-pill${f?` on`:``}${p?``:` na`}`,onClick:()=>{!c&&p&&n()},children:[(0,o.jsx)(`span`,{className:`perm-action-pill-dot${f?` on`:``}`}),c?(0,o.jsx)(`input`,{autoFocus:!0,className:`perm-pill-input`,value:u,style:{width:Math.max(36,u.length*7)},onChange:e=>d(e.target.value),onBlur:m,onKeyDown:e=>{e.key===`Enter`&&m(),e.key===`Escape`&&(l(!1),d(t)),e.stopPropagation()},onClick:e=>e.stopPropagation()}):(0,o.jsx)(`span`,{className:`perm-action-pill-label`,onDoubleClick:e=>{e.stopPropagation(),l(!0)},children:t}),f&&!c&&(0,o.jsx)(a.CheckOutlined,{className:`perm-action-pill-check`})]})})}function xk({menuName:e,menuData:t,permKeys:n,onChange:r,displayName:i,actionLabels:a,onModuleLabelSave:s,onActionLabelSave:c}){let l=t?.permissions??{},u=n.filter(t=>Ay(e,t)),d=u.filter(e=>l[e]?.value===`1`).length,f=u.filter(e=>l[e]).length,p=f>0&&d===f;return(0,o.jsxs)(`div`,{className:`perm-module-card${p?` all-on`:d>0&&!p?` some-on`:``}`,children:[(0,o.jsxs)(`div`,{className:`perm-module-card-header`,children:[(0,o.jsx)(yk,{value:i,onSave:t=>s(e,t),className:`perm-module-card-name`}),f>0&&(0,o.jsxs)(`span`,{className:`perm-module-card-badge${d>0?` active`:``}`,children:[d,`/`,f]})]}),(0,o.jsx)(`div`,{className:`perm-module-card-body`,children:u.map(t=>(0,o.jsx)(bk,{entry:l[t],label:a[t]??mk(t),onToggle:()=>r(e,t),onLabelSave:e=>c(t,e)},t))})]})}function Sk({role:t,moduleLabels:n={},actionLabels:s={},onModuleLabelSave:c=()=>{},onActionLabelSave:l=()=>{}}){let[u,d]=(0,r.useState)({}),[f,p]=(0,r.useState)({}),[m,h]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)(!1),b=e.Pr(t);(0,r.useEffect)(()=>{b&&(h(!0),y(!1),e.Lr(b).then(e=>{let t=vk(e);d(t),p(t)}).catch(()=>i.message.error(`Failed to load permissions`)).finally(()=>h(!1)))},[b]);function x(e,t){y(!0),p(n=>{let r=n[e]??{menuId:u[e]?.menuId??0,permissions:{}},i=r.permissions?.[t]??{id:0,value:`0`};return{...n,[e]:{...r,permissions:{...r.permissions,[t]:{...i,value:i.value===`1`?`0`:`1`}}}}})}async function S(){_(!0);try{await e.si(b,f),d(f),y(!1),i.message.success(`Permissions saved`)}catch(e){i.message.error(e?.message||`Save failed`)}finally{_(!1)}}let C=(0,r.useMemo)(()=>Object.keys(f).sort(),[f]),w=(0,r.useMemo)(()=>gk(f),[f]),{enabled:T,total:E}=(0,r.useMemo)(()=>_k(f),[f]);return(0,o.jsxs)(i.Spin,{spinning:m,children:[(0,o.jsxs)(`div`,{className:`perm-panel-header`,children:[(0,o.jsxs)(`div`,{className:`perm-panel-title`,children:[(0,o.jsx)(a.LockOutlined,{style:{color:`var(--color-brand)`,marginRight:6}}),(0,o.jsx)(`span`,{children:t?.roleName}),!m&&E>0&&(0,o.jsxs)(i.Tag,{color:`blue`,style:{marginLeft:8,fontSize:11},children:[T,`/`,E,` enabled`]})]}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,icon:(0,o.jsx)(a.UnlockOutlined,{}),loading:g,disabled:!v,onClick:S,children:`Save Changes`})]}),(0,o.jsxs)(`div`,{className:`perm-hint`,children:[(0,o.jsx)(a.InfoCircleOutlined,{className:`perm-hint-icon`}),(0,o.jsxs)(`span`,{children:[`Click a pill to toggle. `,(0,o.jsx)(`strong`,{children:`Double-click`}),` a module name or action label to rename it — labels are saved locally.`]})]}),C.length===0&&!m?(0,o.jsx)(`div`,{className:`perm-empty`,children:`No permission entries found for this role.`}):(0,o.jsx)(`div`,{className:`perm-cards-grid`,children:C.map(e=>(0,o.jsx)(xk,{menuName:e,menuData:f[e],permKeys:w,onChange:x,displayName:n[e]??e,actionLabels:s,onModuleLabelSave:c,onActionLabelSave:l},e))})]})}var{Text:Ck}=i.Typography,wk=[{key:`listView`,label:`List View`},{key:`filter`,label:`Filter`},{key:`form`,label:`Form`},{key:`permissions`,label:`Permissions`}];function Tk(e){return String(e||``).replace(/[-_]/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim()}function Ek(e){return String(e||``).trim().toLowerCase()}function Dk(e){return e?.key||e?.collectionName||e?.value||``}function Ok(e=[],t=[]){let n=[],r=new Set,i=new Set,a=new Set;return e.forEach(e=>{let t=Dk(e);if(!t)return;let o=Ek(e.key||t),s=Ek(e.collectionName);e.seeded&&(i.add(o),s&&i.add(s)),s&&a.add(s),r.add(t),n.push({label:e.label||Tk(t),value:t,disabled:!!e.seeded})}),t.forEach(e=>{let t=String(e||``).trim();if(!t||r.has(t))return;let o=Ek(t);a.has(o)||i.has(o)||(r.add(t),n.push({label:Tk(t),value:t,disabled:!1}))}),n}function kk(){let[t,n]=(0,r.useState)(null),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(`listView`),[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(0),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)([]),[x,S]=(0,r.useState)(!1),[C,w]=(0,r.useState)(!1),T=(0,r.useMemo)(()=>_.filter(e=>!e.disabled),[_]),E=!x&&T.length===0,D=(0,r.useCallback)(async()=>{g(!0);try{let t=await e.sr();f(t.roles),m(t.total)}catch{i.message.error(`Failed to load roles`)}finally{g(!1)}},[]),O=(0,r.useCallback)(async()=>{S(!0);try{let[t,n]=await Promise.all([e.yr(),e.dr()]),r=Ok(t.modules,n),i=new Set(r.filter(e=>!e.disabled).map(e=>e.value));v(r),b(e=>e.filter(e=>i.has(e)))}catch{i.message.error(`Failed to load seed status`)}finally{S(!1)}},[]);(0,r.useEffect)(()=>{D()},[D]),(0,r.useEffect)(()=>{O()},[O]);async function k(){if(y.length===0){i.message.warning(E?`All modules already seeded.`:`Select at least one module to seed.`);return}w(!0);try{await e.Qr(y),i.message.success(`Role field config seeded`),b([]),await O()}catch(e){i.message.error(e?.message||`Seed failed`)}finally{w(!1)}}function A(e,t=`listView`){n(e),u(t),c(!0)}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.AppstoreOutlined,{}),title:`Field Config Seed`,style:{marginBottom:12},children:[(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,flexWrap:`wrap`},children:[(0,o.jsx)(`div`,{style:{minWidth:320,flex:1},children:(0,o.jsx)(i.Select,{mode:`multiple`,allowClear:!0,showSearch:!0,value:y,options:_,placeholder:E?`All modules already seeded`:`Select modules or collections to seed`,disabled:x||C||E,loading:x,onChange:b,style:{width:`100%`}})}),(0,o.jsx)(i.Button,{type:`primary`,loading:C,disabled:x||y.length===0,onClick:k,children:`Seed Field Config`})]}),(0,o.jsx)(Ck,{type:`secondary`,style:{display:`block`,marginTop:8,fontSize:12},children:E?`Seed is disabled because all configured modules already have role field config data.`:`Already seeded modules are disabled. New modules or collections can still be seeded.`})]}),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.SafetyOutlined,{}),title:`Roles`,style:{marginBottom:0},bodyStyle:{padding:0},children:(0,o.jsx)(im,{listName:`Roles`,dataSource:d,fields:[{label:`Role Name`,value:`roleName`,width:200},{label:`Description`,value:`description`,width:240},{label:`Users`,value:`userCount`,width:70,sorter:!1},{label:`Actions`,value:`_configure`,width:200,sorter:!1,render:(e,t)=>(0,o.jsxs)(i.Space,{size:2,children:[(0,o.jsx)(i.Button,{size:`small`,type:`link`,onClick:()=>A(t),children:`Configure`}),(0,o.jsx)(i.Button,{size:`small`,type:`link`,icon:(0,o.jsx)(a.LockOutlined,{}),onClick:()=>A(t,`permissions`),children:`Permissions`})]})}],loading:h,total:p})}),(0,o.jsxs)(i.Modal,{className:`uss-modal`,open:s,onCancel:()=>c(!1),title:(0,o.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,o.jsx)(a.SafetyOutlined,{style:{color:`var(--color-brand)`}}),(0,o.jsxs)(`span`,{children:[`Configure: `,t?.roleName]})]}),width:720,footer:null,destroyOnClose:!0,children:[(0,o.jsx)(`div`,{style:{marginBottom:12},children:(0,o.jsx)(`div`,{className:`uss-config-toggle`,children:wk.map(e=>(0,o.jsx)(`button`,{className:`uss-config-btn${l===e.key?` active`:``}`,onClick:()=>u(e.key),children:e.label},e.key))})}),t&&(l===`permissions`?(0,o.jsx)(Sk,{role:t},t?.roleId):(0,o.jsx)(qy,{role:t,configType:l},`${t?.roleId}-${l}`))]})]})}var Ak=`perm-module-labels`,jk=`perm-action-labels`;function Mk(e){try{return JSON.parse(localStorage.getItem(e)??`{}`)}catch{return{}}}function Nk(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function Pk({label:e,onSave:t,onDelete:n,loading:s}){let[c,l]=(0,r.useState)(!1),[u,d]=(0,r.useState)(e);function f(){l(!1);let n=u.trim();n&&n!==e?t(n):d(e)}return(0,o.jsxs)(`div`,{className:`perm-manage-row`,children:[c?(0,o.jsx)(`input`,{autoFocus:!0,className:`perm-inline-input`,value:u,style:{flex:1,minWidth:0},onChange:e=>d(e.target.value),onBlur:f,onKeyDown:t=>{t.key===`Enter`&&f(),t.key===`Escape`&&(l(!1),d(e))}}):(0,o.jsx)(`span`,{className:`perm-manage-row-label`,children:e}),(0,o.jsxs)(`div`,{className:`perm-manage-row-actions`,children:[(0,o.jsx)(i.Button,{type:`text`,size:`small`,icon:(0,o.jsx)(a.EditOutlined,{}),onClick:()=>{d(e),l(!0)},loading:s}),(0,o.jsx)(i.Popconfirm,{title:`Delete this item?`,onConfirm:n,okText:`Delete`,cancelText:`Cancel`,okType:`danger`,children:(0,o.jsx)(i.Button,{type:`text`,size:`small`,icon:(0,o.jsx)(a.DeleteOutlined,{}),danger:!0})})]})]})}function Fk({open:t,onClose:n}){let[s,c]=(0,r.useState)(`modules`),[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(``),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(``),[C,w]=(0,r.useState)(``),[T,E]=(0,r.useState)(!1);(0,r.useEffect)(()=>{t&&(D(),O())},[t]);async function D(){f(!0);try{u(await e.Er())}catch{i.message.error(`Failed to load modules`)}finally{f(!1)}}async function O(){b(!0);try{v(await e.Tr())}catch{i.message.error(`Failed to load actions`)}finally{b(!1)}}async function k(){let t=p.trim();if(!t){i.message.warning(`Enter a module name`);return}g(!0);try{let n=await e.Un({menuName:t});u(e=>[...e,n]),m(``),i.message.success(`Module added`)}catch{i.message.error(`Failed to add module`)}finally{g(!1)}}async function A(t,n){try{await e.ri(t,{menuName:n}),u(e=>e.map(e=>e.MENUID===t?{...e,MENUNAME:n}:e))}catch{i.message.error(`Failed to update module`)}}async function j(t){try{await e.Qn(t),u(e=>e.filter(e=>e.MENUID!==t)),i.message.success(`Module deleted`)}catch{i.message.error(`Failed to delete module`)}}async function M(){let t=x.trim(),n=C.trim().toLowerCase().replace(/\s+/g,`_`);if(!t||!n){i.message.warning(`Enter both name and key`);return}E(!0);try{let r=await e.Hn({permissionName:t,permissionKey:n});v(e=>[...e,r]),S(``),w(``),i.message.success(`Action added`)}catch(e){i.message.error(e?.message?.includes(`409`)||e?.status===409?`Permission key already exists`:`Failed to add action`)}finally{E(!1)}}async function N(t,n){try{await e.ni(t,{permissionName:n}),v(e=>e.map(e=>e.permissionId===t?{...e,permissionName:n}:e))}catch{i.message.error(`Failed to update action`)}}async function P(t){try{await e.Zn(t),v(e=>e.filter(e=>e.permissionId!==t)),i.message.success(`Action deleted`)}catch{i.message.error(`Failed to delete action`)}}let F=[{key:`modules`,label:`Modules`,children:(0,o.jsxs)(i.Spin,{spinning:d,children:[(0,o.jsxs)(`div`,{className:`perm-manage-add-row`,children:[(0,o.jsx)(i.Input,{placeholder:`Module name`,value:p,onChange:e=>m(e.target.value),onPressEnter:k,style:{flex:1},size:`small`}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,icon:(0,o.jsx)(a.PlusOutlined,{}),loading:h,onClick:k,children:`Add`})]}),(0,o.jsxs)(`div`,{className:`perm-manage-list`,children:[l.length===0&&!d&&(0,o.jsx)(`div`,{className:`perm-empty`,style:{paddingTop:24},children:`No modules found`}),l.map(e=>(0,o.jsx)(Pk,{label:e.MENUNAME,onSave:t=>A(e.MENUID,t),onDelete:()=>j(e.MENUID)},e.MENUID))]})]})},{key:`actions`,label:`Actions`,children:(0,o.jsxs)(i.Spin,{spinning:y,children:[(0,o.jsxs)(`div`,{className:`perm-manage-add-row`,children:[(0,o.jsx)(i.Input,{placeholder:`Action name (e.g. Approve)`,value:x,onChange:e=>S(e.target.value),style:{flex:1},size:`small`}),(0,o.jsx)(i.Input,{placeholder:`Key (e.g. approve)`,value:C,onChange:e=>w(e.target.value),onPressEnter:M,style:{width:140},size:`small`}),(0,o.jsx)(i.Button,{type:`primary`,size:`small`,icon:(0,o.jsx)(a.PlusOutlined,{}),loading:T,onClick:M,children:`Add`})]}),(0,o.jsxs)(`div`,{className:`perm-manage-list`,children:[_.length===0&&!y&&(0,o.jsx)(`div`,{className:`perm-empty`,style:{paddingTop:24},children:`No actions found`}),_.map(e=>(0,o.jsx)(Pk,{label:`${e.permissionName} (${e.permissionKey})`,onSave:t=>N(e.permissionId,t),onDelete:()=>P(e.permissionId)},e.permissionId))]})]})}];return(0,o.jsx)(i.Modal,{open:t,onCancel:n,title:(0,o.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,o.jsx)(a.SettingOutlined,{style:{color:`var(--color-brand)`}}),`Manage Modules & Actions`]}),width:520,footer:null,destroyOnClose:!0,children:(0,o.jsx)(i.Tabs,{activeKey:s,onChange:c,size:`small`,items:F})})}function Ik(){let[t,n]=(0,r.useState)([]),[s,c]=(0,r.useState)(!1),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(``),[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(()=>Mk(Ak)),[_,v]=(0,r.useState)(()=>Mk(jk)),y=(0,r.useCallback)((e,t)=>{g(n=>{let r={...n,[e]:t};return Nk(Ak,r),r})},[]),b=(0,r.useCallback)((e,t)=>{v(n=>{let r={...n,[e]:t};return Nk(jk,r),r})},[]);function x(){g({}),v({}),Nk(Ak,{}),Nk(jk,{}),i.message.success(`Labels reset to defaults`)}let S=(0,r.useCallback)(async()=>{c(!0);try{let{roles:t}=await e.sr();n(t),t.length>0&&u(t[0])}catch{i.message.error(`Failed to load roles`)}finally{c(!1)}},[]);(0,r.useEffect)(()=>{S()},[S]);let C=(0,r.useMemo)(()=>{let e=d.trim().toLowerCase();return e?t.filter(t=>t.roleName.toLowerCase().includes(e)):t},[t,d]),w=Object.keys(h).length>0||Object.keys(_).length>0;return(0,o.jsxs)(`div`,{className:`perm-page`,children:[(0,o.jsxs)(Z,{className:`perm-left-card`,icon:(0,o.jsx)(a.SafetyOutlined,{}),title:`Roles`,bodyStyle:{padding:0},children:[(0,o.jsx)(`div`,{className:`perm-role-search`,children:(0,o.jsx)(i.Input,{prefix:(0,o.jsx)(a.SearchOutlined,{}),placeholder:`Search roles…`,allowClear:!0,size:`small`,value:d,onChange:e=>f(e.target.value)})}),(0,o.jsx)(i.Spin,{spinning:s,children:(0,o.jsxs)(`div`,{className:`perm-role-list`,children:[C.length===0&&!s&&(0,o.jsx)(`div`,{className:`perm-role-empty`,children:`No roles found`}),C.map(e=>{let t=l?.roleId===e.roleId,n=e.description&&e.description!==`N/A`?e.description:e.roleType===0?`Default role`:`Custom role`;return(0,o.jsxs)(`div`,{className:`perm-role-item${t?` active`:``}`,onClick:()=>u(e),children:[(0,o.jsx)(`div`,{className:`perm-role-item-name`,children:e.roleName}),(0,o.jsx)(`div`,{className:`perm-role-item-desc`,children:n})]},e.roleId)})]})})]}),(0,o.jsx)(Z,{className:`perm-right-card`,icon:(0,o.jsx)(a.LockOutlined,{}),title:`Module Permissions`,extra:(0,o.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[w&&(0,o.jsx)(`button`,{className:`perm-reset-btn`,onClick:x,children:`Reset labels`}),(0,o.jsx)(i.Button,{size:`small`,icon:(0,o.jsx)(a.SettingOutlined,{}),onClick:()=>m(!0),children:`Manage`})]}),bodyStyle:{padding:`12px 16px`},children:l?(0,o.jsx)(Sk,{role:l,moduleLabels:h,actionLabels:_,onModuleLabelSave:y,onActionLabelSave:b},l.roleId):(0,o.jsx)(`div`,{className:`perm-empty`,children:`Select a role from the left to manage its permissions.`})}),(0,o.jsx)(Fk,{open:p,onClose:()=>m(!1)})]})}var{Title:Lk,Text:Rk}=i.Typography,zk=[{label:`In Progress`,value:107,sub:`Under review`,color:`blue`},{label:`Hired`,value:2,sub:`Onboarded`,color:`green`},{label:`Project Completed`,value:2,sub:`Project cycle closed`,color:`purple`},{label:`Archive`,value:2,sub:`No longer active`,color:`peach`}];function Bk({items:e=zk}){return(0,o.jsx)(i.Card,{className:`onboarding-card`,title:(0,o.jsx)(Lk,{level:5,children:`Onboarding`}),extra:(0,o.jsx)(i.Button,{type:`link`,children:`View all`}),children:(0,o.jsx)(i.Row,{gutter:[12,12],children:e.map(e=>(0,o.jsx)(i.Col,{xs:12,sm:6,md:6,lg:12,xl:12,children:(0,o.jsxs)(`div`,{className:`onboarding-item ${e.color}`,children:[(0,o.jsx)(Rk,{className:`onboarding-item-label`,children:e.label}),(0,o.jsx)(i.Statistic,{value:e.value,className:`onboarding-stat`}),(0,o.jsx)(`div`,{className:`onboarding-item-footer`,children:(0,o.jsx)(Rk,{className:`onboarding-item-sub`,children:e.sub})})]})},e.label))})})}var{Text:Vk,Title:Hk}=i.Typography,Uk=[{group:`Dashboard`,items:[{id:`dashboard`,label:`Admin Dashboard`,icon:(0,o.jsx)(a.DashboardOutlined,{})}]},{group:`Settings`,items:[{id:`org`,label:`Organization`,icon:(0,o.jsx)(a.BankOutlined,{}),heading:`Organization Settings`,desc:`Manage your company profile and location details`,cards:[{label:`Company Information`,icon:(0,o.jsx)(a.BankOutlined,{}),desc:`Manage company profile, address and business details.`},{label:`Location`,icon:(0,o.jsx)(a.BuildOutlined,{}),desc:`Manage office locations, branches and regions.`}]},{id:`users`,label:`Users`,icon:(0,o.jsx)(a.UserOutlined,{}),heading:`Users`,desc:`Manage platform users and configure their field views.`,component:`users`},{id:`teams`,label:`Teams`,icon:(0,o.jsx)(a.TeamOutlined,{}),heading:`Teams`,desc:`Organize users into teams and configure field visibility per team.`,component:`teams`},{id:`roles`,label:`Roles`,icon:(0,o.jsx)(a.SafetyOutlined,{}),heading:`Roles`,desc:`Control permissions and configure field visibility per role.`,component:`roles`},{id:`permissions`,label:`Permissions`,icon:(0,o.jsx)(a.LockOutlined,{}),heading:`Permissions`,desc:`Manage module-wise action permissions (view, add, edit, delete, and more) per role.`,component:`permissions`},{id:`templates`,label:`Templates`,icon:(0,o.jsx)(a.FileTextOutlined,{}),heading:`Templates`,desc:`Email and signature templates for communications`,component:`templates`},{id:`ai-services`,label:`AI Services`,icon:(0,o.jsx)(a.ThunderboltOutlined,{}),heading:`AI Services`,desc:`Register the AI/automation backends (base URL + auth) that admin-configured AI Actions call.`,component:`ai-services`},{id:`bgc-integration`,label:`Integrations`,icon:(0,o.jsx)(a.SafetyOutlined,{}),heading:`Integrations`,desc:`Manage manual and API integrations used across application workflows.`,component:`bgc-integration`}]},{group:`Clients`,items:[{id:`clients`,label:`Clients`,icon:(0,o.jsx)(a.BankOutlined,{}),heading:`Clients`,desc:`Manage client accounts and settings`,cards:[{label:`Clients`,icon:(0,o.jsx)(a.BankOutlined,{}),desc:`Manage client companies and account details.`}]}]},{group:`Forms`,items:[{id:`form-groups`,label:`Form Groups`,icon:(0,o.jsx)(a.AppstoreAddOutlined,{}),heading:`Form Groups`,desc:`Define field groups for module add/edit forms with validations and dropdown sources.`,component:`form-groups`},{id:`detail-groups`,label:`Detail Groups`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),heading:`Detail Groups`,desc:`Customize the detail view per module: labels, prefix/suffix, colour, capitalization, reference lookups and merged fields.`,component:`detail-groups`},{id:`row-actions`,label:`Actions`,icon:(0,o.jsx)(a.ToolOutlined,{}),heading:`Actions`,desc:`Configure which action buttons appear per row in each module's list view, scoped per role.`,component:`row-actions`}]},{group:`Master`,items:[{id:`jobs`,label:`Jobs`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),heading:`Jobs Master`,desc:`Configure job sources and status types`,cards:[{label:`Sources`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),desc:`Manage job source master values.`},{label:`Job Status`,icon:(0,o.jsx)(a.CheckCircleOutlined,{}),desc:`Configure job workflow status.`}]},{id:`candidates`,label:`Candidates`,icon:(0,o.jsx)(a.UserOutlined,{}),heading:`Candidates Master`,desc:`Skills, sources and work authorization settings`,cards:[{label:`Sources`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),desc:`Manage candidate source values.`},{label:`Skills`,icon:(0,o.jsx)(a.SettingOutlined,{}),desc:`Manage skill master data.`},{label:`Work Authorization`,icon:(0,o.jsx)(a.SafetyOutlined,{}),desc:`Manage visa and authorization types.`}]},{id:`submissions`,label:`Submissions`,icon:(0,o.jsx)(a.FileTextOutlined,{}),heading:`Submissions Master`,desc:`Rejection reasons and submission status configuration`,cards:[{label:`Rejection Reasons`,icon:(0,o.jsx)(a.FileTextOutlined,{}),desc:`Manage common rejection reasons.`},{label:`Client Submission Status`,icon:(0,o.jsx)(a.CheckCircleOutlined,{}),desc:`Manage client submission statuses.`}]},{id:`clientmaster`,label:`Client Master`,icon:(0,o.jsx)(a.BankOutlined,{}),heading:`Client Master`,desc:`Payment terms, client types and contact types`,cards:[{label:`Payment Terms`,icon:(0,o.jsx)(a.FileTextOutlined,{}),desc:`Manage billing and payment terms.`},{label:`Client Type`,icon:(0,o.jsx)(a.AppstoreOutlined,{}),desc:`Classify client business types.`},{label:`Client Contact Type`,icon:(0,o.jsx)(a.TeamOutlined,{}),desc:`Manage client contact categories.`}]}]}],Wk=[{label:`Sourced`,count:312,color:`#378ADD`,pct:35},{label:`Screened`,count:223,color:`#7F77DD`,pct:25},{label:`Interview`,count:161,color:`#1D9E75`,pct:18},{label:`Offered`,count:107,color:`#EF9F27`,pct:12},{label:`Rejected`,count:89,color:`#E24B4A`,pct:10}],Gk=[{name:`Tcs`,jobs:14,candidates:86},{name:`Empasis`,jobs:9,candidates:64},{name:`NovaSystems`,jobs:7,candidates:51},{name:`Brightwave`,jobs:5,candidates:38}],Kk=[{text:`New candidate Ravi Kumar added to Java Developer role`,time:`2 min ago`,color:`#378ADD`},{text:`Submission approved by Acme Corp for Sr. React Dev`,time:`18 min ago`,color:`#1D9E75`},{text:`User Priya S. added to Recruiters team`,time:`1 hr ago`,color:`#7F77DD`},{text:`Job Data Analyst — TechFlow moved to archived`,time:`3 hr ago`,color:`#EF9F27`},{text:`Candidate rejected — work authorization mismatch`,time:`5 hr ago`,color:`#E24B4A`}];function qk(){return(0,o.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:16},children:[(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.DashboardOutlined,{}),title:`Admin Dashboard`,children:[(0,o.jsx)(`div`,{className:`admin-accent-bar`}),(0,o.jsx)(Hk,{level:5,children:`Admin Dashboard`}),(0,o.jsx)(Vk,{type:`secondary`,children:`Overview of jobs, candidates, onboarding and recent activity`})]}),(0,o.jsx)(`div`,{className:`admin-dashboard-stats`,children:(0,o.jsx)(tk,{stats:[{label:`Total Jobs`,value:1697,icon:`fileText`},{label:`Active Jobs`,value:1685,icon:`checkCircle`},{label:`My Jobs`,value:600,icon:`user`},{label:`Total Candidates`,value:4320,icon:`team`},{label:`Submissions`,value:892,icon:`fileText`}]})}),(0,o.jsxs)(`div`,{className:`admin-dashboard-mid-row`,children:[(0,o.jsx)(Bk,{}),(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.AppstoreOutlined,{}),title:`Candidate Pipeline`,children:[(0,o.jsx)(Vk,{type:`secondary`,style:{fontSize:12},children:`By stage (892 total)`}),(0,o.jsx)(`div`,{className:`admin-pipeline-bar`,children:Wk.map(e=>(0,o.jsx)(`div`,{className:`admin-pipeline-seg`,style:{width:`${e.pct}%`,background:e.color}},e.label))}),(0,o.jsx)(`div`,{className:`admin-pipeline-legend`,children:Wk.map(e=>(0,o.jsxs)(`div`,{className:`admin-pipeline-legend-item`,children:[(0,o.jsx)(`span`,{className:`admin-pipeline-dot`,style:{background:e.color}}),e.label,` `,e.count]},e.label))}),(0,o.jsx)(`div`,{className:`admin-divider`}),(0,o.jsx)(Vk,{strong:!0,style:{fontSize:12},children:`Submission status`}),(0,o.jsxs)(`div`,{className:`admin-sub-status-list`,style:{marginTop:6},children:[(0,o.jsxs)(`div`,{className:`admin-sub-status-item`,children:[(0,o.jsx)(Vk,{style:{fontSize:13},children:`Pending client review`}),(0,o.jsx)(`span`,{className:`admin-badge warn`,children:`312`})]}),(0,o.jsxs)(`div`,{className:`admin-sub-status-item`,children:[(0,o.jsx)(Vk,{style:{fontSize:13},children:`Client approved`}),(0,o.jsx)(`span`,{className:`admin-badge success`,children:`248`})]}),(0,o.jsxs)(`div`,{className:`admin-sub-status-item`,children:[(0,o.jsx)(Vk,{style:{fontSize:13},children:`Rejected`}),(0,o.jsx)(`span`,{className:`admin-badge danger`,children:`89`})]})]})]})]}),(0,o.jsxs)(`div`,{className:`admin-dashboard-bottom-row`,children:[(0,o.jsx)(Z,{icon:(0,o.jsx)(a.BankOutlined,{}),title:`Top Clients`,extra:(0,o.jsx)(i.Button,{type:`link`,size:`small`,children:`View all`}),children:Gk.map(e=>(0,o.jsxs)(`div`,{className:`admin-client-row`,children:[(0,o.jsxs)(`div`,{className:`admin-client-left`,children:[(0,o.jsx)(`div`,{className:`admin-client-icon`,children:(0,o.jsx)(a.BankOutlined,{})}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{className:`admin-client-name`,children:e.name}),(0,o.jsxs)(`div`,{className:`admin-client-sub`,children:[e.jobs,` open jobs`]})]})]}),(0,o.jsxs)(`div`,{className:`admin-client-right`,children:[(0,o.jsx)(`div`,{className:`admin-client-val`,children:e.candidates}),(0,o.jsx)(`div`,{className:`admin-client-sub`,children:`candidates`})]})]},e.name))}),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.BellOutlined,{}),title:`Recent Activity`,children:Kk.map((e,t)=>(0,o.jsxs)(`div`,{className:`admin-activity-row`,children:[(0,o.jsx)(`div`,{className:`admin-activity-dot`,style:{background:e.color}}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`div`,{className:`admin-activity-text`,children:e.text}),(0,o.jsx)(`div`,{className:`admin-activity-time`,children:e.time})]})]},t))})]}),(0,o.jsx)(Z,{icon:(0,o.jsx)(a.SettingOutlined,{}),title:`Admin Configuration Overview`,extra:(0,o.jsx)(i.Button,{type:`link`,size:`small`,children:`Manage`}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsxs)(i.Col,{span:8,children:[(0,o.jsx)(Vk,{type:`secondary`,style:{fontSize:12,fontWeight:500},children:`Settings`}),[[`Organization`,2],[`User Settings`,4],[`Templates`,2]].map(([e,t])=>(0,o.jsxs)(`div`,{className:`admin-cfg-overview-row`,children:[(0,o.jsx)(Vk,{style:{fontSize:12},children:e}),(0,o.jsxs)(`span`,{className:`admin-badge info`,children:[t,` items`]})]},e))]}),(0,o.jsxs)(i.Col,{span:8,children:[(0,o.jsx)(Vk,{type:`secondary`,style:{fontSize:12,fontWeight:500},children:`Master`}),[[`Jobs`,2],[`Candidates`,3],[`Submissions`,2]].map(([e,t])=>(0,o.jsxs)(`div`,{className:`admin-cfg-overview-row`,children:[(0,o.jsx)(Vk,{style:{fontSize:12},children:e}),(0,o.jsxs)(`span`,{className:`admin-badge info`,children:[t,` items`]})]},e))]}),(0,o.jsxs)(i.Col,{span:8,children:[(0,o.jsx)(Vk,{type:`secondary`,style:{fontSize:12,fontWeight:500},children:`System`}),[[`Total Groups`,4],[`Total Modules`,9],[`Config Items`,19]].map(([e,t])=>(0,o.jsxs)(`div`,{className:`admin-cfg-overview-row`,children:[(0,o.jsx)(Vk,{style:{fontSize:12},children:e}),(0,o.jsx)(Vk,{strong:!0,style:{fontSize:12},children:t})]},e))]})]})})]})}function Jk({activeSection:e,activeGroup:t,filteredCards:n,searchText:r,setSearchText:s,allItems:c,handleNav:l}){return(0,o.jsxs)(i.Row,{gutter:[16,16],children:[(0,o.jsx)(i.Col,{span:24,children:(0,o.jsxs)(Z,{icon:e?.icon,title:e?.heading,extra:(0,o.jsx)(i.Input,{className:`admin-search`,prefix:(0,o.jsx)(a.SearchOutlined,{}),placeholder:`Search settings…`,allowClear:!0,value:r,onChange:e=>s(e.target.value)}),children:[(0,o.jsx)(`div`,{className:`admin-accent-bar`}),(0,o.jsx)(Hk,{level:5,children:e?.heading}),(0,o.jsx)(Vk,{type:`secondary`,children:e?.desc})]})}),(0,o.jsx)(i.Col,{xs:24,xl:16,style:{alignSelf:`flex-start`},children:(0,o.jsx)(Z,{icon:(0,o.jsx)(a.AppstoreOutlined,{}),title:`Configuration Items`,extra:(0,o.jsxs)(Vk,{type:`secondary`,children:[n.length,` item`,n.length===1?``:`s`]}),children:(0,o.jsx)(i.Row,{gutter:[14,14],children:n.length>0?n.map(e=>(0,o.jsx)(i.Col,{xs:24,sm:12,xl:8,children:(0,o.jsxs)(`div`,{className:`admin-config-item`,children:[(0,o.jsx)(`div`,{className:`admin-config-top-bar`}),(0,o.jsxs)(`div`,{className:`admin-config-body`,children:[(0,o.jsx)(`div`,{className:`admin-config-icon`,children:e.icon}),(0,o.jsxs)(`div`,{className:`admin-config-text`,children:[(0,o.jsx)(`span`,{className:`admin-config-label`,children:e.label}),(0,o.jsx)(`span`,{className:`admin-config-desc`,children:e.desc})]})]}),(0,o.jsx)(`div`,{className:`admin-config-divider`}),(0,o.jsx)(i.Button,{type:`link`,size:`small`,className:`admin-config-manage`,icon:(0,o.jsx)(a.RightOutlined,{}),iconPosition:`end`,children:`Manage`})]})},e.label)):(0,o.jsx)(i.Col,{span:24,children:(0,o.jsx)(`div`,{className:`admin-config-empty`,children:(0,o.jsx)(i.Empty,{description:`No settings found`,image:i.Empty.PRESENTED_IMAGE_SIMPLE})})})})})}),(0,o.jsx)(i.Col,{xs:24,xl:8,style:{alignSelf:`flex-start`},children:(0,o.jsxs)(Z,{icon:(0,o.jsx)(a.FileTextOutlined,{}),title:`Section Overview`,children:[(0,o.jsx)(`div`,{className:`admin-overview-list`,children:Uk.filter(e=>e.group!==`Dashboard`).map(e=>{let n=e.group===t?.group;return(0,o.jsxs)(`div`,{className:`admin-overview-item${n?` active`:``}`,onClick:()=>{let t=e.items[0];t&&l(t.id)},children:[(0,o.jsxs)(`div`,{className:`admin-overview-left`,children:[(0,o.jsx)(`div`,{className:`admin-overview-icon`,children:e.items[0]?.icon}),(0,o.jsxs)(`div`,{className:`admin-overview-text`,children:[(0,o.jsx)(`span`,{className:`admin-overview-name`,children:e.group}),(0,o.jsxs)(`span`,{className:`admin-overview-sub`,children:[e.items.length,` module`,e.items.length===1?``:`s`]})]})]}),(0,o.jsx)(`span`,{className:`admin-overview-count${n?` active`:``}`,children:e.items.length})]},e.group)})}),(0,o.jsxs)(`div`,{className:`admin-overview-footer`,children:[(0,o.jsx)(`span`,{className:`admin-overview-footer-label`,children:`Total configuration items`}),(0,o.jsx)(`span`,{className:`admin-overview-footer-value`,children:c.filter(e=>e.cards).reduce((e,t)=>e+t.cards.length,0)})]})]})})]})}function Yk(){let[e,t]=(0,r.useState)(`dashboard`),[n,s]=(0,r.useState)(``),c=(0,r.useMemo)(()=>Uk.flatMap(e=>e.items),[]),l=(0,r.useMemo)(()=>c.find(t=>t.id===e),[c,e]),u=(0,r.useMemo)(()=>Uk.find(t=>t.items.some(t=>t.id===e)),[e]),d=(0,r.useMemo)(()=>{if(!l?.cards)return[];let e=n.trim().toLowerCase();return e?l.cards.filter(t=>t.label.toLowerCase().includes(e)||t.desc.toLowerCase().includes(e)):l.cards},[l,n]),f=(0,r.useMemo)(()=>Uk.map(e=>({key:e.group,type:`group`,label:e.group,children:e.items.map(e=>({key:e.id,icon:e.icon,label:e.label}))})),[]),p=e=>{t(e),s(``)};return e===`dashboard`||l?.heading,(0,o.jsxs)(`main`,{className:`admin-page`,children:[(0,o.jsx)(`div`,{className:`admin-breadcrumb`,children:(0,o.jsx)(i.Breadcrumb,{items:[{title:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.HomeOutlined,{}),` Home`]})},{title:`Admin`}]})}),(0,o.jsxs)(i.Row,{gutter:[16,16],className:`admin-wrapper`,children:[(0,o.jsx)(i.Col,{xs:24,lg:6,xl:5,children:(0,o.jsxs)(Z,{title:`Admin Console`,icon:(0,o.jsx)(a.SettingOutlined,{}),children:[(0,o.jsxs)(`div`,{className:`admin-sidebar-banner`,children:[(0,o.jsx)(`span`,{className:`admin-sidebar-banner-title`,children:`Admin Panel`}),(0,o.jsx)(`span`,{className:`admin-sidebar-banner-sub`,children:`Configuration Center`}),(0,o.jsxs)(i.Row,{gutter:[8,0],children:[(0,o.jsx)(i.Col,{span:12,children:(0,o.jsxs)(`div`,{className:`admin-sidebar-pill`,children:[(0,o.jsx)(`span`,{className:`admin-sidebar-pill-label`,children:`Groups`}),(0,o.jsx)(`span`,{className:`admin-sidebar-pill-value`,children:Uk.length})]})}),(0,o.jsx)(i.Col,{span:12,children:(0,o.jsxs)(`div`,{className:`admin-sidebar-pill`,children:[(0,o.jsx)(`span`,{className:`admin-sidebar-pill-label`,children:`Modules`}),(0,o.jsx)(`span`,{className:`admin-sidebar-pill-value`,children:c.length})]})})]})]}),(0,o.jsx)(i.Menu,{mode:`inline`,selectedKeys:[e],items:f,onClick:({key:e})=>p(e),className:`admin-sidebar-menu`})]})}),(0,o.jsx)(i.Col,{xs:24,lg:18,xl:19,children:e===`dashboard`?(0,o.jsx)(qk,{}):l?.component===`form-groups`?(0,o.jsx)(Fx,{}):l?.component===`detail-groups`?(0,o.jsx)(cS,{}):l?.component===`row-actions`?(0,o.jsx)(ZS,{}):l?.component===`users`?(0,o.jsx)(ak,{}):l?.component===`teams`?(0,o.jsx)(dk,{}):l?.component===`roles`?(0,o.jsx)(kk,{}):l?.component===`permissions`?(0,o.jsx)(Ik,{}):l?.component===`templates`?(0,o.jsx)(sC,{}):l?.component===`ai-services`?(0,o.jsx)(dC,{}):l?.component===`bgc-integration`?(0,o.jsx)(_C,{}):(0,o.jsx)(Jk,{activeSection:l,activeGroup:u,filteredCards:d,searchText:n,setSearchText:s,allItems:c,handleNav:p})})]})]})}var{Title:Xk}=i.Typography;function Zk(){let e=(0,c.useNavigate)(),{state:t}=(0,c.useLocation)(),n=t?.moduleName||`stickyNotes`,r=t?.title||`Sticky Notes`,s={...t?.request,params:{...t?.request?.params,limit:200,offset:0}};return(0,o.jsxs)(`div`,{children:[(0,o.jsx)(i.Button,{type:`text`,icon:(0,o.jsx)(a.ArrowLeftOutlined,{}),onClick:()=>e(-1),style:{marginBottom:12},children:`Back`}),(0,o.jsx)(Dt,{moduleName:n,title:r,columns:4,request:s,viewAll:!1})]})}var{Text:Qk,Title:$k}=i.Typography,eA=10*1024*1024,tA=`/templates/test_cases_flow_template.base64.txt`,nA=`test_cases_flow_template.xlsx`,rA=`module | subModule | step_order | description | actions | key | value | expected | scenario`,iA={idle:0,module_set:1,encoding:1,validating:2,preview:3,inserting:3,done:4,error:1},aA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Bulk upload`,href:`/bulk-upload`}];function oA(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result).split(`,`)[1]),r.onerror=n,r.readAsDataURL(e)})}function sA(e){return e.filter(e=>e.row_status===`valid`).map(e=>{let t={...e};return delete t.row_status,delete t.errors,t})}function cA(e){return e.flatMap(e=>(e.errors??[]).map(t=>({id:e.id,...t})))}function lA({errors:e}){return(0,o.jsx)(`div`,{className:`bulk-tooltip-errors`,children:(e??[]).map((e,t)=>(0,o.jsx)(`div`,{children:e.message},`${e.field}-${t}`))})}function uA({errors:e,expanded:t,onToggle:n,onSummaryClick:r}){return e.length===0?null:(0,o.jsxs)(`div`,{className:`bulk-error-banner`,children:[(0,o.jsxs)(`div`,{className:`bulk-error-summary`,children:[(0,o.jsxs)(`button`,{type:`button`,className:`bulk-error-summary-main`,onClick:r,"aria-label":`Scroll to first invalid row`,children:[(0,o.jsx)(a.ExclamationCircleOutlined,{className:`bulk-error-icon`}),(0,o.jsxs)(`span`,{children:[e.length,` validation error(s) found`]})]}),(0,o.jsx)(i.Button,{type:`link`,onClick:n,"aria-expanded":t,children:t?`Hide Errors`:`View Errors`})]}),t&&(0,o.jsx)(`div`,{className:`bulk-error-list`,role:`region`,"aria-label":`Validation error details`,children:e.map((e,t)=>(0,o.jsxs)(`div`,{className:`bulk-error-line`,children:[(0,o.jsxs)(`span`,{className:`bulk-row-chip`,children:[`Row `,e.id]}),(0,o.jsx)(`span`,{children:e.message})]},`${e.id}-${e.field}-${t}`))})]})}function dA({rows:e,view:t,onViewChange:n,onConfirm:r,onReset:s,saving:c,firstInvalidRowId:l,firstInvalidRowRef:u}){let d=e.filter(e=>e.row_status===`invalid`),f=t===`errors`?d:e,p=d.length>0||c;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(i.Row,{justify:`space-between`,align:`middle`,gutter:[16,16],className:`bulk-table-toolbar`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space.Compact,{children:[(0,o.jsx)(i.Button,{type:t===`all`?`primary`:`default`,onClick:()=>n(`all`),children:`All rows`}),(0,o.jsx)(i.Button,{type:t===`errors`?`primary`:`default`,onClick:()=>n(`errors`),children:`Errors only`})]})}),(0,o.jsx)(i.Col,{children:(0,o.jsxs)(Qk,{type:`secondary`,children:[e.length,` row(s)`]})})]}),(0,o.jsx)(`div`,{className:`bulk-table-wrap`,children:(0,o.jsxs)(`table`,{className:`bulk-preview-table`,children:[(0,o.jsx)(`thead`,{children:(0,o.jsxs)(`tr`,{children:[(0,o.jsx)(`th`,{className:`bulk-col-row`,children:`Row`}),(0,o.jsx)(`th`,{className:`bulk-col-flow`,children:`Submodule`}),(0,o.jsx)(`th`,{className:`bulk-col-description`,children:`Description`}),(0,o.jsx)(`th`,{className:`bulk-col-keyword`,children:`Action`}),(0,o.jsx)(`th`,{className:`bulk-col-target`,children:`Key`}),(0,o.jsx)(`th`,{className:`bulk-col-status`,children:`Status`}),(0,o.jsx)(`th`,{className:`bulk-col-error`,children:`Error`})]})}),(0,o.jsx)(`tbody`,{children:f.map(e=>{let t=e.errors??[],n=e.row_status===`invalid`;return(0,o.jsxs)(`tr`,{ref:n&&e.id===l?u:null,className:n?`bulk-row-invalid`:``,children:[(0,o.jsx)(`td`,{children:e.id}),(0,o.jsx)(`td`,{title:e.submodule,children:e.submodule}),(0,o.jsx)(`td`,{title:e.description,children:e.description?e.description:(0,o.jsx)(`span`,{className:`bulk-empty-text`,children:`-empty-`})}),(0,o.jsx)(`td`,{children:(0,o.jsx)(`code`,{className:`bulk-code-chip`,children:e.actions})}),(0,o.jsx)(`td`,{title:e.key,children:e.key}),(0,o.jsx)(`td`,{children:n?(0,o.jsx)(i.Tag,{color:`red`,children:`Error`}):(0,o.jsx)(i.Tag,{color:`green`,children:`Valid`})}),(0,o.jsx)(`td`,{children:n?(0,o.jsx)(i.Tooltip,{title:(0,o.jsx)(lA,{errors:t}),placement:`left`,children:(0,o.jsxs)(`button`,{type:`button`,className:`bulk-error-info`,"aria-label":`View ${t.length} error(s) for row ${e.id}`,children:[(0,o.jsx)(a.InfoCircleOutlined,{}),(0,o.jsx)(i.Badge,{count:t.length,size:`small`})]})}):(0,o.jsx)(`span`,{className:`bulk-error-none`,children:`-`})})]},`${e.id}-${e.step_order}`)})})]})}),(0,o.jsxs)(i.Space,{className:`bulk-actions`,children:[(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.ReloadOutlined,{}),onClick:s,children:`Reset`}),(0,o.jsx)(i.Button,{type:`primary`,icon:(0,o.jsx)(a.SaveOutlined,{}),loading:c,disabled:p,onClick:r,children:d.length>0?`Fix ${d.length} error(s) to proceed`:`Save to database`})]})]})}function fA(){let n=(0,c.useNavigate)(),s=(0,r.useMemo)(()=>t.c(),[]),l=(0,r.useRef)(null),u=(0,r.useRef)(null),[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(``),[h,g]=(0,r.useState)(`idle`),[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)([]),[C,w]=(0,r.useState)(`all`),[T,E]=(0,r.useState)(null),[D,O]=(0,r.useState)(null),[k,A]=(0,r.useState)(!1),j=d.map(e=>({value:e.modulename,label:e.modulename})),M=cA(x),N=h===`encoding`||h===`validating`,P=!!p&&!N,F=iA[h]??0,I=x.find(e=>e.row_status===`invalid`)?.id,L=(0,r.useCallback)(()=>{m(``),g(`idle`),v(!1),b(null),S([]),w(`all`),E(null),O(null),l.current&&(l.current.value=``)},[]);(0,r.useEffect)(()=>{async function e(){try{f((await Lv({project:s?.name??``,activeOnly:!0}))?.items??[])}catch(e){console.error(e),i.message.error(`Unable to load modules.`)}}e()},[s?.name]);let R=e=>{m(e??``),S([]),O(null),E(null),b(null),A(!1),g(e?`module_set`:`idle`)},z=async e=>{if(!e||!P)return;let t=e.name.split(`.`).pop()?.toLowerCase();if(![`xlsx`,`csv`].includes(t)){g(`module_set`),E({message:`Invalid file type. Please upload an Excel .xlsx or CSV .csv file.`});return}if(e.size>eA){g(`module_set`),E({message:`File must be 10 MB or smaller.`});return}E(null),S([]),O(null),b({name:e.name,size:e.size}),g(`encoding`);try{let n=await oA(e);g(`validating`),S((await Mv({filename:e.name,project:s?.name??``,module:p,file_base64:n,file_type:t}))?.rows??[]),w(`all`),g(`preview`)}catch(e){console.error(e),E(e.payload??{code:`NETWORK_ERROR`,message:e.message||`Could not reach the server.`}),g(`error`)}},B=async()=>{try{let e=await fetch(tA);if(!e.ok)throw Error(`Template file not found (${e.status})`);let t=(await e.text()).trim(),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);let a=new Blob([r],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),o=URL.createObjectURL(a),s=document.createElement(`a`);s.href=o,s.download=nA,document.body.appendChild(s),s.click(),s.remove(),URL.revokeObjectURL(o),i.message.success(`Sample template downloaded.`)}catch(e){console.error(e),i.message.error(`Unable to download sample template.`)}},ee=async()=>{g(`inserting`),E(null);try{O(await Nv({project:s?.name??``,module:p,uploaded_by:localStorage.getItem(`user_Email`)??``,rows:sA(x)})),g(`done`),i.message.success(`Bulk upload saved. Redirecting to view test cases...`),window.setTimeout(()=>n(`/viewTestCase`),900)}catch(e){console.error(e),E(e.payload??{code:`NETWORK_ERROR`,message:e.message||`Could not reach the server.`}),g(`preview`)}},V=(0,r.useCallback)(()=>{u.current?.scrollIntoView({behavior:`smooth`,block:`center`})},[]),H=[`bulk-dropzone`,_?`bulk-dropzone-dragging`:``,y?`bulk-dropzone-has-file`:``,T&&h!==`preview`?`bulk-dropzone-error`:``,p?``:`bulk-dropzone-disabled`].filter(Boolean).join(` `);return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:aA})}),s?.name&&(0,o.jsx)(i.Col,{children:(0,o.jsx)(Qk,{strong:!0,children:s.name})})]}),(0,o.jsxs)(`div`,{className:`zt-page zt-page-wide bulk-page`,children:[(0,o.jsxs)(`div`,{className:`bulk-header`,children:[(0,o.jsx)($k,{level:3,children:`Bulk upload test cases`}),(0,o.jsxs)(i.Space,{direction:`vertical`,size:4,children:[(0,o.jsx)(Qk,{type:`secondary`,children:rA}),(0,o.jsx)(Qk,{type:`secondary`,children:`Use the sample template for the required columns. Uploaded rows are saved as Active by default.`})]})]}),(0,o.jsx)(`div`,{className:`bulk-stepbar`,children:[`Select`,`Upload`,`Validate`,`Save`].map((e,t)=>(0,o.jsxs)(`span`,{className:t<F?`bulk-step-active`:``,children:[t+1,` `,e]},e))}),(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:`1. Module selector`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,className:`bulk-module-select`,placeholder:`Choose a module`,options:j,value:p||void 0,onChange:R})}),p&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:`2. File upload`,extra:(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.DownloadOutlined,{}),onClick:B,children:`Download Sample Template`}),children:[(0,o.jsx)(i.Alert,{type:`info`,showIcon:!0,message:`First time uploading?`,description:`Download the sample template, keep the column names unchanged, fill your test steps, and upload either .xlsx or .csv.`,className:`bulk-inline-alert`}),(0,o.jsxs)(`button`,{type:`button`,className:H,disabled:!P,onClick:()=>l.current?.click(),onDragOver:e=>{e.preventDefault(),P&&v(!0)},onDragLeave:()=>v(!1),onDrop:e=>{e.preventDefault(),v(!1),z(e.dataTransfer.files?.[0])},children:[(0,o.jsx)(a.CloudUploadOutlined,{className:`bulk-upload-icon`}),y?(0,o.jsxs)(`span`,{className:`bulk-file-chip`,children:[y.name,` - `,Math.ceil(y.size/1024),` KB`]}):(0,o.jsx)(`span`,{children:`Drag & drop here, or click to browse`})]}),(0,o.jsx)(`input`,{ref:l,hidden:!0,type:`file`,accept:`.xlsx,.csv`,onChange:e=>z(e.target.files?.[0])}),N&&(0,o.jsx)(i.Progress,{percent:h===`encoding`?45:82,showInfo:!1,size:`small`}),T&&h!==`preview`&&(0,o.jsx)(i.Alert,{type:`error`,showIcon:!0,message:T.message,className:`bulk-inline-alert`})]}),x.length>0&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:`3. Validation result`,children:[(0,o.jsx)(uA,{errors:M,expanded:k,onToggle:()=>A(e=>!e),onSummaryClick:V}),T&&h===`preview`&&(0,o.jsx)(i.Alert,{type:`error`,showIcon:!0,message:T.message,className:`bulk-inline-alert`}),(0,o.jsx)(dA,{rows:x,view:C,onViewChange:w,onConfirm:ee,onReset:L,saving:h===`inserting`,firstInvalidRowId:I,firstInvalidRowRef:u})]}),D&&h===`done`&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:`4. Upload complete`,children:[(0,o.jsxs)(i.Row,{gutter:[16,16],className:`bulk-metrics`,children:[(0,o.jsx)(i.Col,{xs:24,md:8,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)(Qk,{children:`Total`}),(0,o.jsx)(`strong`,{children:x.length})]})}),(0,o.jsx)(i.Col,{xs:24,md:8,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)(Qk,{children:`Inserted`}),(0,o.jsx)(`strong`,{children:D.inserted??0})]})}),(0,o.jsx)(i.Col,{xs:24,md:8,children:(0,o.jsxs)(`div`,{children:[(0,o.jsx)(Qk,{children:`Failed`}),(0,o.jsx)(`strong`,{children:D.failed??0})]})})]}),(0,o.jsx)(i.Alert,{type:`success`,showIcon:!0,icon:(0,o.jsx)(a.CheckCircleOutlined,{}),message:`${D.inserted??0} test cases saved to database - module: ${p}`,className:`bulk-inline-alert`}),(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.ReloadOutlined,{}),onClick:L,children:`Upload another file`})]})]})]})}var pA=[{value:`navigate`,label:`Navigate`},{value:`fill`,label:`Fill`},{value:`click`,label:`Click`},{value:`select`,label:`Select`},{value:`press_key`,label:`Press Key`},{value:`type_and_select`,label:`Type and Select`},{value:`type_and_select_modal`,label:`Type and Select (Modal)`},{value:`upload_file`,label:`Upload File`},{value:`check_checkbox`,label:`Check Checkbox`},{value:`check_filter_checkbox`,label:`Check Filter Checkbox`},{value:`select_page_size`,label:`Select Page Size`},{value:`check_n_checkboxes`,label:`Check N Checkboxes`},{value:`store_text`,label:`Store Text`},{value:`reset_session`,label:`Reset Session`},{value:`switch_to_new_tab`,label:`Switch To New Tab`},{value:`close_tab`,label:`Close Tab`},{value:`assert_visible`,label:`Assert Visible`},{value:`assert_hidden`,label:`Assert Hidden`},{value:`assert_text`,label:`Assert Text`},{value:`assert_url`,label:`Assert URL`},{value:`assert_body_contains`,label:`Assert Body Contains`},{value:`assert_button_disabled`,label:`Assert Button Disabled`},{value:`assert_field_error`,label:`Assert Field Error`},{value:`assert_field_accepted`,label:`Assert Field Accepted`},{value:`assert_children_disabled`,label:`Assert Children Disabled`},{value:`assert_children_visible`,label:`Assert Children Visible`},{value:`assert_element_count`,label:`Assert Element Count`},{value:`assert_toast`,label:`Assert Toast`},{value:`assert_toast_success`,label:`Assert Toast Success`},{value:`assert_toast_error`,label:`Assert Toast Error`},{value:`wait_for_visible`,label:`Wait For Visible`},{value:`wait_for_hidden`,label:`Wait For Hidden`},{value:`wait_for_text`,label:`Wait For Text`}],{Text:mA}=i.Typography,hA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/test-cases`}],gA={tags:`regression`,active:1},_A={module:{dbName:`Modules`,formField:`module`,label:`Module`}};function vA(e=[]){return e.map(e=>({value:e,label:e}))}function yA(e=``){return String(e??``).trim()}function bA(e=``){return yA(e).toLowerCase()}function xA(e=[]){let t=new Map;return e.forEach(e=>{let n=yA(e?.flow),r=n.toLowerCase();n&&!t.has(r)&&t.set(r,n)}),Array.from(t.values()).map(e=>({value:e,label:e}))}function SA(e=[],t,n){let r=yA(t).toLowerCase(),i=yA(n).toLowerCase();return e.reduce((e,t)=>{let n=yA(t?.module).toLowerCase(),a=yA(t?.flow).toLowerCase();if(n!==r||a!==i)return e;let o=Number(t?.step_order)||0;return Math.max(e,o)},0)+1}function CA({icon:e,title:t}){return(0,o.jsxs)(i.Space,{size:10,align:`center`,children:[(0,o.jsx)(`div`,{className:`v1-section-icon-box`,children:e}),(0,o.jsx)(mA,{strong:!0,className:`v1-section-label`,children:t})]})}function wA(){let[t]=i.Form.useForm(),[n]=i.Form.useForm(),[s,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]),[f,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(!1),[g,_]=(0,r.useState)(!1),[v,y]=(0,r.useState)({open:!1,typeKey:`module`}),[b,x]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!1),[w,T]=(0,r.useState)(!1),E=(0,c.useNavigate)(),D=_A[v.typeKey],O=(0,r.useMemo)(()=>vA(s),[s]),k=i.Form.useWatch(`module`,t),A=i.Form.useWatch(`flow`,t),j=!!yA(k),M=!!yA(A),N=!j,P=!j||!M,F=(e,t=[])=>{e===`module`&&l(t)},I=async()=>{h(!0);try{l((await Dv(_A.module.dbName))?.items??[])}catch(e){console.error(`Unable to load testing options:`,e),i.message.error(`Unable to load testing options.`)}finally{h(!1)}},L=(0,r.useCallback)(async e=>{let n=yA(e);if(d([]),p([]),t.setFieldsValue({step_order:void 0}),n){_(!0);try{let e=await jv({limit:1e4,offset:0,module:n}),t=Array.isArray(e?.items)?e.items:[];d(t),p(xA(t))}catch(e){console.error(`Unable to load flows:`,e),i.message.error(`Unable to load flows.`)}finally{_(!1)}}},[t]),R=(0,r.useCallback)(async(e,n,r)=>{let a=yA(e),o=yA(n);if(!a||!o){t.setFieldsValue({step_order:void 0});return}C(!0);try{t.setFieldsValue({step_order:SA(r,a,o)})}catch(e){console.error(`Unable to load step order:`,e),i.message.error(`Unable to load step order.`)}finally{C(!1)}},[t]);(0,r.useEffect)(()=>{Promise.resolve().then(I)},[]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>L(k))},[L,k]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>R(k,A,u))},[u,R,A,k]);let z=async e=>{let n={module:yA(e.module),flow:yA(e.flow),step_order:Number(e.step_order),description:yA(e.description),keyword:bA(e.keyword),target:yA(e.target),value:yA(e.value),expected:yA(e.expected),tags:e.tags?yA(e.tags):gA.tags,active:Number(e.active)};T(!0);try{await Av(n),i.message.success(`Test case details saved successfully.`),t.resetFields(),d([]),p([])}catch(e){console.error(`Unable to save test case:`,e),i.message.error(`Unable to save test case.`)}finally{T(!1)}},B=(e,n)=>{t.setFieldsValue({[e]:yA(n)})},ee=e=>{t.setFieldsValue({module:yA(e),flow:void 0,step_order:void 0,keyword:void 0,description:void 0,target:void 0,tags:gA.tags,value:void 0,expected:void 0})},V=e=>{t.setFieldsValue({flow:yA(e),step_order:void 0})},H=e=>{let t=_A[e];y({open:!0,typeKey:e}),n.setFieldsValue({name:``,type:t.label})},U=()=>{y(e=>({...e,open:!1})),n.resetFields()},te=async()=>{try{let e=yA((await n.validateFields()).name),r=await Ov({name:e,type:D.dbName});F(v.typeKey,r?.items??[]),t.setFieldsValue({[D.formField]:e}),i.message.success(`${D.label} added successfully.`),U()}catch(e){if(e?.errorFields)return;console.error(`Unable to save testing option:`,e),i.message.error(`Unable to add ${D.label.toLowerCase()}.`)}finally{x(!1)}};return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:hA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>E(`/zinnext-home`),children:`View Table`})})]}),(0,o.jsx)(`div`,{className:`v1-page`,children:(0,o.jsxs)(`div`,{className:`v1-page-inner`,children:[(0,o.jsx)(`div`,{className:`v1-page-header`,children:(0,o.jsxs)(i.Space,{align:`center`,size:10,children:[(0,o.jsx)(a.ProfileOutlined,{className:`v1-outer-icon`}),(0,o.jsx)(`div`,{children:(0,o.jsx)(mA,{strong:!0,style:{fontSize:16},children:`Add Test Case`})})]})}),(0,o.jsx)(Z,{children:(0,o.jsxs)(i.Form,{form:t,className:`v1-form`,layout:`vertical`,colon:!1,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),initialValues:gA,onFinish:z,autoComplete:`off`,children:[(0,o.jsx)(i.Card,{className:`v1-card`,title:(0,o.jsx)(CA,{icon:(0,o.jsx)(a.FileTextOutlined,{}),title:`Test Case Details`}),extra:(0,o.jsx)(mA,{type:`secondary`,className:`v1-card-subtitle`,children:`Module, flow, step order and execution data`}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsxs)(i.Space.Compact,{style:{width:`100%`},children:[(0,o.jsx)(i.Form.Item,{label:`Module`,name:`module`,style:{flex:1},children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,loading:m,optionFilterProp:`label`,placeholder:`Select module`,options:O,onChange:ee})}),(0,o.jsx)(i.Button,{"aria-label":`Add module`,icon:(0,o.jsx)(a.PlusOutlined,{}),style:{marginTop:30},onClick:()=>H(`module`)})]})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Flow`,name:`flow`,children:(0,o.jsx)(i.AutoComplete,{maxLength:100,allowClear:!0,disabled:N,options:f,placeholder:g?`Loading flows`:`Enter flow`,onChange:V,filterOption:(e,t)=>t?.value?.toLowerCase().includes(e.toLowerCase())})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Step Order`,name:`step_order`,validateTrigger:[`onBlur`,`onChange`],children:(0,o.jsx)(i.Input,{maxLength:10,disabled:!0,placeholder:S?`Loading step order`:`Step order`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Action`,name:`keyword`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,disabled:P,optionFilterProp:`label`,placeholder:`Select action`,options:pA,onChange:e=>t.setFieldsValue({keyword:bA(e)})})})}),(0,o.jsx)(i.Col,{xs:24,children:(0,o.jsx)(i.Form.Item,{label:`Description`,name:`description`,children:(0,o.jsx)(i.Input.TextArea,{rows:3,maxLength:255,disabled:P,placeholder:`Enter description`,showCount:!0,onBlur:e=>B(`description`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Key`,name:`target`,children:(0,o.jsx)(i.Input,{maxLength:255,disabled:P,placeholder:`Enter target`,onBlur:e=>B(`target`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Tags`,name:`tags`,children:(0,o.jsx)(i.Input,{maxLength:200,disabled:P,placeholder:`Enter tags`,prefix:(0,o.jsx)(a.TagsOutlined,{className:`v1-input-icon`}),onBlur:e=>B(`tags`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Value`,name:`value`,children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:P,placeholder:`Enter value`,onBlur:e=>B(`value`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Expected`,name:`expected`,children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:P,placeholder:`Enter expected result`,onBlur:e=>B(`expected`,e.target.value)})})})]})}),(0,o.jsx)(`div`,{className:`v1-form-actions`,children:(0,o.jsx)(i.Form.Item,{children:(0,o.jsxs)(i.Space,{children:[(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,loading:w,disabled:P,children:`Submit`}),(0,o.jsx)(i.Button,{onClick:()=>{t.resetFields(),d([]),p([])},children:`Reset`})]})})})]})}),(0,o.jsx)(i.Modal,{title:`Add ${D.label}`,open:v.open,confirmLoading:b,okText:`Add`,onCancel:U,onOk:()=>{x(!0),te()},destroyOnHidden:!0,children:(0,o.jsxs)(i.Form,{form:n,layout:`vertical`,colon:!1,className:`v1-form`,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),children:[(0,o.jsx)(i.Form.Item,{label:`Name`,name:`name`,children:(0,o.jsx)(i.Input,{maxLength:100,placeholder:`Enter ${D.label.toLowerCase()} name`,onBlur:e=>{n.setFieldsValue({name:yA(e.target.value)})}})}),(0,o.jsx)(i.Form.Item,{label:`Type`,name:`type`,children:(0,o.jsx)(i.Input,{disabled:!0})})]})})]})})]})}var{Text:TA}=i.Typography,EA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`}];function DA(e=``){return String(e??``).trim()}function OA(e=[],t){return e.map(e=>({value:e.id,label:e[t]}))}var kA=[{label:`Step`,value:`step_order`,width:70},{label:`Action`,value:`actions`,width:140},{label:`Key`,value:`key`,width:160,ellipsis:!0},{label:`Value`,value:`value`,ellipsis:!0},{label:`Description`,value:`description`,ellipsis:!0},{label:`Scenario`,value:`scenario`,width:110,render:e=>e===1?(0,o.jsx)(i.Tag,{color:`green`,children:`Positive`}):(0,o.jsx)(i.Tag,{color:`red`,children:`Negative`})}],AA={key:!1,value:!1,expected:!1};function jA(e,t){return t?e[t]??AA:AA}function MA(e,t){e.setFields(t.map(e=>({name:e,errors:[]})))}function NA(){let[n]=i.Form.useForm(),s=(0,c.useNavigate)(),[l]=(0,c.useSearchParams)(),u=l.get(`edit`),d=!!u,f=(0,r.useMemo)(()=>t.c(),[]),[p,m]=(0,r.useState)([]),[h,g]=(0,r.useState)([]),[_,v]=(0,r.useState)([]),[y,b]=(0,r.useState)(pA),[x,S]=(0,r.useState)({}),[C,w]=(0,r.useState)(!1),[T,E]=(0,r.useState)(!1),[D,O]=(0,r.useState)(!1),[k,A]=(0,r.useState)(!1),[j,M]=(0,r.useState)(!1),N=i.Form.useWatch(`module`,n),P=i.Form.useWatch(`submodule`,n),F=i.Form.useWatch(`actions`,n),I=!!N,L=!!P,R=(0,r.useMemo)(()=>jA(x,F),[x,F]),z=(0,r.useMemo)(()=>OA(p,`modulename`),[p]),B=(0,r.useMemo)(()=>OA(h,`submodulename`),[h]),ee=(0,r.useMemo)(()=>p.find(e=>e.id===N)?.modulename??``,[p,N]),V=(0,r.useMemo)(()=>h.find(e=>e.id===P)?.submodulename??``,[P,h]),H=(0,r.useCallback)(async()=>{try{let e=await kv();Array.isArray(e?.options)&&e.options.length>0&&b(e.options),e?.rules&&typeof e.rules==`object`&&S(e.rules)}catch(e){console.error(`Unable to load action field rules:`,e),i.message.error(`Unable to load action validation rules.`)}},[]),U=(0,r.useCallback)(async e=>{if(!e){m([]);return}w(!0);try{m((await Lv({project:e,activeOnly:!0}))?.items??[])}catch(e){console.error(`Unable to load modules:`,e),i.message.error(`Unable to load modules.`)}finally{w(!1)}},[]),te=(0,r.useCallback)(async(e,t)=>{if(!e||!t){g([]);return}E(!0);try{g((await Bv({project:e,module:t,activeOnly:!0}))?.items??[])}catch(e){console.error(`Unable to load submodules:`,e),i.message.error(`Unable to load submodules.`)}finally{E(!1)}},[]),ne=(0,r.useCallback)(async(e,t,r,a=``)=>{if(!e||!t||!r){v([]),n.setFieldsValue({step_order:void 0});return}O(!0);try{let[i,o]=await Promise.all([Uv({product_parent_ID:e,module_parent_ID:t,submodule_parent_ID:r,actions:a,limit:1e3}),Kv({product_parent_ID:e,module_parent_ID:t,submodule_parent_ID:r})]);v(i?.items??[]),n.setFieldsValue({step_order:o?.step_order??1})}catch(e){console.error(`Unable to load flows:`,e),i.message.error(`Unable to load flows.`)}finally{O(!1)}},[n]),W=(0,r.useCallback)(async(e=``)=>{if(!(!f?.id||!N||!P)){O(!0);try{v((await Uv({product_parent_ID:f.id,module_parent_ID:N,submodule_parent_ID:P,actions:e,limit:1e3}))?.items??[])}catch(e){console.error(`Unable to load action flows:`,e),i.message.error(`Unable to load action steps.`)}finally{O(!1)}}},[f?.id,N,P]),re=(0,r.useCallback)(async()=>{if(!(!u||!f?.name)){M(!0);try{let e=await Gv(u);await te(f.name,e.module),v((await Uv({product_parent_ID:e.product_parent_ID,module_parent_ID:e.module_parent_ID,submodule_parent_ID:e.submodule_parent_ID,limit:1e3}))?.items??[]),n.setFieldsValue({module:e.module_parent_ID,submodule:e.submodule_parent_ID,step_order:e.step_order,actions:e.actions,key:e.key,value:e.value,expected:e.expected,description:e.description,scenario:e.scenario===1,active:Number(e.active)!==0})}catch(e){console.error(`Unable to load test flow:`,e),i.message.error(`Unable to load test flow for edit.`),s(`/viewTestCase`)}finally{M(!1)}}},[u,n,te,s,f?.name]);return(0,r.useEffect)(()=>{if(!f){s(`/select-project`,{replace:!0});return}Promise.resolve().then(async()=>{await H(),await U(f.name),u&&await re()})},[f,s,H,U,u,re]),f?(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:EA})}),(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.ProjectOutlined,{}),(0,o.jsx)(TA,{strong:!0,children:f.name})]})})]}),(0,o.jsx)(`div`,{className:`zt-page`,children:(0,o.jsxs)(i.Form,{form:n,layout:`vertical`,colon:!1,className:`v1-form`,initialValues:{scenario:!0,active:!0},onFinish:async e=>{let t={product_parent_ID:Number(f?.id),module_parent_ID:Number(e.module),submodule_parent_ID:Number(e.submodule),description:DA(e.description),actions:DA(e.actions),key:DA(e.key),value:DA(e.value),expected:DA(e.expected),scenario:+!!e.scenario,active:+!!e.active};A(!0);try{if(d){await qv(u,{...t,step_order:Number(e.step_order)}),i.message.success(`Test case updated successfully.`),s(`/viewTestCase`);return}await Wv(t),i.message.success(`Step saved (#${e.step_order}).`),n.setFieldsValue({actions:void 0,key:void 0,value:void 0,expected:void 0,description:void 0}),await ne(t.product_parent_ID,t.module_parent_ID,t.submodule_parent_ID)}catch(e){console.error(`Unable to save test case:`,e),i.message.error(d?`Unable to update test case.`:`Unable to save step.`)}finally{A(!1)}},autoComplete:`off`,disabled:j,children:[(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:8,className:`zt-section-title`,children:[(0,o.jsx)(`span`,{className:`zt-step-tag`,children:`1`}),(0,o.jsx)(`span`,{children:`Module & Submodule`})]}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],align:`bottom`,children:[(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Module`,name:`module`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,loading:C,placeholder:`Select module`,options:z,onChange:e=>{let t=p.find(t=>t.id===e)?.modulename??``;n.setFieldsValue({module:e,submodule:void 0,step_order:void 0,actions:void 0,key:void 0,value:void 0,expected:void 0}),MA(n,[`actions`,`key`,`value`,`expected`]),g([]),v([]),te(f?.name,t)}})})}),(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Submodule`,name:`submodule`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,disabled:!I,loading:T,placeholder:I?`Select submodule`:`Select module first`,options:B,onChange:e=>{n.setFieldsValue({submodule:e,actions:void 0,key:void 0,value:void 0,expected:void 0}),MA(n,[`actions`,`key`,`value`,`expected`]),ne(f?.id,N,e)}})})}),(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Scenario`,name:`scenario`,valuePropName:`checked`,children:(0,o.jsx)(i.Switch,{disabled:!L,checkedChildren:`Positive`,unCheckedChildren:`Negative`})})}),(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Active`,name:`active`,valuePropName:`checked`,children:(0,o.jsx)(i.Switch,{checkedChildren:`Active`,unCheckedChildren:`Inactive`})})})]})}),L&&(0,o.jsxs)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:8,className:`zt-section-title`,children:[(0,o.jsx)(`span`,{className:`zt-step-tag`,children:`2`}),(0,o.jsx)(a.FileTextOutlined,{}),(0,o.jsx)(`span`,{children:`Step Details`})]}),extra:(0,o.jsxs)(TA,{type:`secondary`,children:[ee,` / `,V]}),children:[(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsx)(i.Col,{xs:24,md:6,children:(0,o.jsx)(i.Form.Item,{label:`Step Order`,name:`step_order`,children:(0,o.jsx)(i.Input,{disabled:!0,placeholder:D?`Loading…`:`Auto`})})}),(0,o.jsx)(i.Col,{xs:24,md:18,children:(0,o.jsx)(i.Form.Item,{label:`Action`,name:`actions`,rules:[{required:!0,message:`Mandatory Field`}],children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,optionFilterProp:`label`,placeholder:`Select action`,options:y,onChange:e=>{let t=jA(x,e);n.setFieldsValue({actions:e,key:t.key?n.getFieldValue(`key`):void 0,value:t.value?n.getFieldValue(`value`):void 0,expected:t.expected?n.getFieldValue(`expected`):void 0}),MA(n,[`key`,`value`,`expected`]),W(e||``)}})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Key`,name:`key`,rules:[{required:R.key,message:`Key is required for this action`}],children:(0,o.jsx)(i.Input,{maxLength:255,disabled:F&&!R.key,placeholder:F?R.key?`Required — Enter selector / locator`:`Not needed for this action`:`Select an action first`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Value`,name:`value`,rules:[{required:R.value,message:`Value is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:1,autoSize:{minRows:1,maxRows:4},disabled:F&&!R.value,placeholder:F?R.value?`Required — Enter value`:`Not needed for this action`:`Select an action first`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Expected`,name:`expected`,rules:[{required:R.expected,message:`Expected result is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:2,disabled:F&&!R.expected,placeholder:F?R.expected?`Required — Enter expected result`:`Not needed for this action`:`Select an action first`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Description`,name:`description`,children:(0,o.jsx)(i.Input.TextArea,{rows:2,maxLength:255,showCount:!0,placeholder:`Enter description`})})})]}),(0,o.jsxs)(i.Space,{className:`zt-actions`,children:[(0,o.jsx)(i.Button,{onClick:()=>{if(d){s(`/viewTestCase`);return}n.resetFields(),g([]),v([]),E(!1),O(!1)},children:`Cancel`}),(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,loading:k||j,children:d?`Update Test Case`:`Save & Continue`})]})]},`${N}-${P}`),L&&(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.TableOutlined,{}),(0,o.jsx)(`span`,{children:`Added Steps`})]}),extra:(0,o.jsx)(i.Tag,{children:F?`${_.length} ${F} step(s)`:`${_.length} step(s)`}),children:(0,o.jsx)(im,{listName:`Added Steps`,loading:D,fields:kA,dataSource:_,current:1,pageSize:Math.max(_.length,1),total:_.length,rowSelection:!1,className:`zt-list-plain zt-list-static`})})]})})]}):null}var{Text:PA}=i.Typography,FA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Manage Modules`,href:`/manageModules`}];function IA(){let n=(0,c.useNavigate)(),s=(0,r.useMemo)(()=>t.c(),[]),[l,u]=(0,r.useState)([]),[d,f]=(0,r.useState)({}),[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(``),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(1),[C,w]=(0,r.useState)(10),T=(0,r.useCallback)(async e=>{if(!e){u([]);return}m(!0);try{let[t,n]=await Promise.all([Lv({project:e}),Bv({project:e})]);u(t?.items??[]);let r={};(n?.items??[]).forEach(e=>{let t=e.modulename;r[t]=(r[t]??0)+1}),f(r)}catch(e){console.error(e),i.message.error(`Unable to load modules.`)}finally{m(!1)}},[]);(0,r.useEffect)(()=>{if(!s){n(`/select-project`,{replace:!0});return}Promise.resolve().then(()=>T(s.name))},[s,n,T]);let E=async(e,t)=>{try{await zv(e.id,+!!t),u(n=>n.map(n=>n.id===e.id?{...n,active:+!!t}:n)),i.message.success(`Module ${t?`activated`:`deactivated`}.`)}catch(e){console.error(e),i.message.error(`Unable to update module status.`)}},D=async()=>{let e=_.trim();if(!e){i.message.warning(`Enter a module name.`);return}b(!0);try{await Rv({project:s.name,modulename:e}),i.message.success(`Module added.`),g(!1),v(``),S(1),T(s.name)}catch(e){console.error(e),i.message.error(`Unable to add module (maybe it already exists).`)}finally{b(!1)}},O=e=>{n(`/test-cases/zinnext/submodules?module=${encodeURIComponent(e.modulename)}`)};return s?(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:FA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>n(`/addTestCase`),children:`Back to Form`})})]}),(0,o.jsxs)(`div`,{className:`zt-page`,children:[(0,o.jsx)(i.Card,{className:`v1-card zt-bar`,children:(0,o.jsxs)(i.Row,{gutter:[16,16],align:`middle`,justify:`space-between`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.ProjectOutlined,{}),(0,o.jsx)(`span`,{children:`Project:`}),(0,o.jsx)(PA,{strong:!0,children:s.name})]})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`primary`,icon:(0,o.jsx)(a.PlusOutlined,{}),onClick:()=>g(!0),children:`Add Module`})})]})}),(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.AppstoreOutlined,{}),(0,o.jsx)(`span`,{children:`Modules`})]}),children:(0,o.jsx)(im,{listName:`Modules`,loading:p,fields:[{label:`Module`,value:`modulename`},{label:`Submodules`,value:`submoduleCount`,width:140,render:(e,t)=>(0,o.jsxs)(i.Button,{type:`link`,className:`zt-count-link`,onClick:()=>O(t),children:[d[t.modulename]??0,` submodule(s)`]})},{label:`Active`,value:`active`,width:120,render:(e,t)=>(0,o.jsx)(i.Switch,{checked:e===1,checkedChildren:`On`,unCheckedChildren:`Off`,onChange:e=>E(t,e)})}],dataSource:l,current:x,pageSize:C,total:l.length,onPageChange:S,onPageSizeChange:e=>{S(1),w(e)},rowSelection:!1,className:`zt-list-plain`})})]}),(0,o.jsx)(i.Modal,{title:`Add Module`,open:h,confirmLoading:y,okText:`Add`,onOk:D,onCancel:()=>{g(!1),v(``)},destroyOnHidden:!0,children:(0,o.jsxs)(i.Space,{direction:`vertical`,className:`zt-modal-stack`,children:[(0,o.jsxs)(PA,{type:`secondary`,children:[`Project: `,(0,o.jsx)(`b`,{children:s.name})]}),(0,o.jsx)(i.Input,{placeholder:`Enter module name`,maxLength:100,value:_,onChange:e=>v(e.target.value),onPressEnter:D})]})})]}):null}var{Text:LA}=i.Typography,RA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Manage Modules`,href:`/manageModules`},{label:`Manage Submodules`,href:`/test-cases/zinnext/submodules`}];function zA(){let n=(0,c.useNavigate)(),[s]=(0,c.useSearchParams)(),l=(0,r.useMemo)(()=>t.c(),[]),u=s.get(`module`)??``,[d,f]=(0,r.useState)([]),[p,m]=(0,r.useState)(!1),[h,g]=(0,r.useState)(!1),[_,v]=(0,r.useState)(``),[y,b]=(0,r.useState)(!1),[x,S]=(0,r.useState)(1),[C,w]=(0,r.useState)(10),T=(0,r.useCallback)(async(e,t)=>{if(!e||!t){f([]);return}m(!0);try{f((await Bv({project:e,module:t}))?.items??[])}catch(e){console.error(e),i.message.error(`Unable to load submodules.`)}finally{m(!1)}},[]);(0,r.useEffect)(()=>{if(!l){n(`/select-project`,{replace:!0});return}if(!u){n(`/manageModules`,{replace:!0});return}Promise.resolve().then(()=>T(l.name,u))},[l,u,n,T]);let E=async(e,t)=>{try{await Hv(e.id,+!!t),f(n=>n.map(n=>n.id===e.id?{...n,active:+!!t}:n)),i.message.success(`Submodule ${t?`activated`:`deactivated`}.`)}catch(e){console.error(e),i.message.error(`Unable to update submodule status.`)}},D=async()=>{let e=_.trim();if(!e){i.message.warning(`Enter a submodule name.`);return}b(!0);try{await Vv({project:l.name,modulename:u,submodulename:e}),i.message.success(`Submodule added.`),g(!1),v(``),S(1),T(l.name,u)}catch(e){console.error(e),i.message.error(`Unable to add submodule (maybe it already exists).`)}finally{b(!1)}};return!l||!u?null:(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:RA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>n(`/manageModules`),children:`Back to Modules`})})]}),(0,o.jsxs)(`div`,{className:`zt-page`,children:[(0,o.jsx)(i.Card,{className:`v1-card zt-bar`,children:(0,o.jsxs)(i.Row,{gutter:[16,16],align:`middle`,justify:`space-between`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsxs)(i.Space,{size:16,wrap:!0,className:`zt-section-title`,children:[(0,o.jsxs)(i.Space,{size:6,children:[(0,o.jsx)(a.ProjectOutlined,{}),(0,o.jsx)(`span`,{children:`Project:`}),(0,o.jsx)(LA,{strong:!0,children:l.name})]}),(0,o.jsxs)(i.Space,{size:6,children:[(0,o.jsx)(a.AppstoreOutlined,{}),(0,o.jsx)(`span`,{children:`Module:`}),(0,o.jsx)(LA,{strong:!0,children:u})]})]})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`primary`,icon:(0,o.jsx)(a.PlusOutlined,{}),onClick:()=>g(!0),children:`Add Submodule`})})]})}),(0,o.jsx)(i.Card,{className:`v1-card zt-fall`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.AppstoreOutlined,{}),(0,o.jsx)(`span`,{children:`Submodules`})]}),children:(0,o.jsx)(im,{listName:`Submodules`,loading:p,fields:[{label:`Submodule`,value:`submodulename`},{label:`Active`,value:`active`,width:120,render:(e,t)=>(0,o.jsx)(i.Switch,{checked:e===1,checkedChildren:`On`,unCheckedChildren:`Off`,onChange:e=>E(t,e)})}],dataSource:d,current:x,pageSize:C,total:d.length,onPageChange:S,onPageSizeChange:e=>{S(1),w(e)},rowSelection:!1,className:`zt-list-plain`})})]}),(0,o.jsx)(i.Modal,{title:`Add Submodule`,open:h,confirmLoading:y,okText:`Add`,onOk:D,onCancel:()=>{g(!1),v(``)},destroyOnHidden:!0,children:(0,o.jsxs)(i.Space,{direction:`vertical`,className:`zt-modal-stack`,children:[(0,o.jsxs)(LA,{type:`secondary`,children:[`Project: `,(0,o.jsx)(`b`,{children:l.name}),` \xA0|\xA0 Module: `,(0,o.jsx)(`b`,{children:u})]}),(0,o.jsx)(i.Input,{placeholder:`Enter submodule name`,maxLength:100,value:_,onChange:e=>v(e.target.value),onPressEnter:D})]})})]})}var{Text:BA}=i.Typography,VA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/addTestCase`},{label:`Table`,href:`/viewTestCase`}];function HA(){let n=(0,c.useNavigate)(),[s,l]=(0,r.useState)([]),[u,d]=(0,r.useState)(0),[f,p]=(0,r.useState)(!1),m=(0,r.useMemo)(()=>t.c(),[]),[h,g]=(0,r.useState)(``),[_,v]=(0,r.useState)(1),[y,b]=(0,r.useState)(20),[x,S]=(0,r.useState)(null),C=(0,r.useCallback)(async(e={})=>{p(!0);try{let t=await Uv({product_parent_ID:e.project??m?.id??``,search:e.search??h??``,limit:e.pageSize??y,offset:((e.page??_)-1)*(e.pageSize??y)});l(t?.items??[]),d(t?.total??0)}catch(e){console.error(e),i.message.error(`Unable to load test flows.`)}finally{p(!1)}},[m?.id,h,_,y]),w=e=>{i.Modal.confirm({title:`Delete Test Case`,icon:(0,o.jsx)(a.ExclamationCircleOutlined,{}),content:`Are you sure you want to delete this test case?`,okText:`Delete`,okButtonProps:{danger:!0,loading:x===e.id},cancelText:`Cancel`,async onOk(){S(e.id);try{await Jv(e.id),i.message.success(`Test case deleted successfully.`);let t=s.length===1&&_>1?_-1:_;v(t),await C({page:t})}catch(e){throw console.error(`Unable to delete test flow:`,e),i.message.error(`Unable to delete test case.`),e}finally{S(null)}}})};return(0,r.useEffect)(()=>{Promise.resolve().then(()=>{if(!m?.id){n(`/select-project`,{replace:!0});return}C({page:1})})},[]),(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:VA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>n(`/addTestCase`),children:`Back to Form`})})]}),(0,o.jsx)(`div`,{className:`zt-page zt-page-wide`,children:(0,o.jsxs)(i.Card,{className:`v1-card`,title:(0,o.jsxs)(i.Space,{size:6,className:`zt-section-title`,children:[(0,o.jsx)(a.TableOutlined,{}),(0,o.jsx)(`span`,{children:`Test Flows`})]}),extra:(0,o.jsxs)(BA,{type:`secondary`,children:[u,` row(s)`]}),children:[(0,o.jsxs)(i.Space,{wrap:!0,className:`zt-toolbar`,children:[(0,o.jsx)(i.Input.Search,{allowClear:!0,className:`zt-search-filter`,placeholder:`Search module / key / description`,value:h,onChange:e=>g(e.target.value),onSearch:()=>{v(1),C({page:1})}}),(0,o.jsx)(i.Button,{icon:(0,o.jsx)(a.ReloadOutlined,{}),onClick:()=>C(),children:`Refresh`})]}),(0,o.jsx)(im,{listName:`Test Flows`,loading:f,fields:[{label:`Actions`,value:`rowActions`,width:112,fixed:`left`,sorter:!1,render:(e,t)=>(0,o.jsxs)(i.Space,{size:4,className:`zt-row-actions`,children:[(0,o.jsx)(i.Tooltip,{title:`Edit`,children:(0,o.jsx)(i.Button,{type:`text`,size:`small`,icon:(0,o.jsx)(a.EditOutlined,{}),onClick:()=>n(`/addTestCase?edit=${t.id}`)})}),(0,o.jsx)(i.Tooltip,{title:`Delete`,children:(0,o.jsx)(i.Button,{danger:!0,type:`text`,size:`small`,icon:(0,o.jsx)(a.DeleteOutlined,{}),loading:x===t.id,onClick:()=>w(t)})})]})},{label:`ID`,value:`id`,width:70,fixed:`left`},{label:`Project`,value:`project`,width:130},{label:`Module`,value:`module`,width:130},{label:`Submodule`,value:`submodule`,width:140},{label:`Step`,value:`step_order`,width:70},{label:`Action`,value:`actions`,width:140},{label:`Key`,value:`key`,width:160,ellipsis:!0},{label:`Value`,value:`value`,width:200,ellipsis:!0},{label:`Expected`,value:`expected`,width:180,ellipsis:!0},{label:`Description`,value:`description`,width:180,ellipsis:!0},{label:`Scenario`,value:`scenario`,width:110,render:e=>e===1?(0,o.jsx)(i.Tag,{color:`green`,children:`Positive`}):(0,o.jsx)(i.Tag,{color:`red`,children:`Negative`})},{label:`Active`,value:`active`,width:90,render:e=>e===1?(0,o.jsx)(i.Tag,{color:`blue`,children:`Active`}):(0,o.jsx)(i.Tag,{children:`Inactive`})}],dataSource:s,current:_,pageSize:y,total:u,onPageChange:e=>{v(e),C({page:e})},onPageSizeChange:e=>{v(1),b(e),C({page:1,pageSize:e})},rowSelection:!1,className:`zt-list-plain`})]})})]})}var UA=[{label:`Home`,href:`/`},{label:`Test Cases`,href:`/test-cases`}];function WA(){return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsx)(e.t,{items:UA}),(0,o.jsx)(To,{moduleName:`test-flows`,rowKey:`id`})]})}var{Text:GA}=i.Typography,KA=[{label:`Home`,href:`/`},{label:`LMS Cases`,href:`/lms-cases`}],qA={tags:`regression`,active:1},JA={module:{dbName:`Modules`,formField:`module`,label:`Module`}},YA={key:!1,value:!1,expected:!1};function XA(e,t){return t?e[t]??YA:YA}function ZA(e,t){e.setFields(t.map(e=>({name:e,errors:[]})))}function QA(e=[]){return e.map(e=>({value:e,label:e}))}function $A(e=``){return String(e??``).trim()}function ej(e=[]){let t=new Map;return e.forEach(e=>{let n=$A(e?.flow),r=n.toLowerCase();n&&!t.has(r)&&t.set(r,n)}),Array.from(t.values()).map(e=>({value:e,label:e}))}function tj(e=[],t,n){let r=$A(t).toLowerCase(),i=$A(n).toLowerCase();return e.reduce((e,t)=>{let n=$A(t?.module).toLowerCase(),a=$A(t?.flow).toLowerCase();if(n!==r||a!==i)return e;let o=Number(t?.step_order)||0;return Math.max(e,o)},0)+1}function nj({icon:e,title:t}){return(0,o.jsxs)(i.Space,{size:10,align:`center`,children:[(0,o.jsx)(`div`,{className:`v1-section-icon-box`,children:e}),(0,o.jsx)(GA,{strong:!0,className:`v1-section-label`,children:t})]})}function rj(){let[t]=i.Form.useForm(),[n]=i.Form.useForm(),[s,l]=(0,r.useState)([]),[u,d]=(0,r.useState)([]),[f,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(pA),[g,_]=(0,r.useState)({}),[v,y]=(0,r.useState)(!1),[b,x]=(0,r.useState)(!1),[S,C]=(0,r.useState)({open:!1,typeKey:`module`}),[w,T]=(0,r.useState)(!1),[E,D]=(0,r.useState)(!1),[O,k]=(0,r.useState)(!1),A=(0,c.useNavigate)(),j=JA[S.typeKey],M=(0,r.useMemo)(()=>QA(s),[s]),N=i.Form.useWatch(`module`,t),P=i.Form.useWatch(`flow`,t),F=i.Form.useWatch(`keyword`,t),I=!!$A(N),L=!!$A(P),R=!I,z=!I||!L,B=(0,r.useMemo)(()=>XA(g,F),[g,F]),ee=(e,t=[])=>{e===`module`&&l(t)},V=async()=>{y(!0);try{l((await Dv(JA.module.dbName))?.items??[])}catch(e){console.error(`Unable to load testing options:`,e),i.message.error(`Unable to load testing options.`)}finally{y(!1)}},H=async()=>{try{let e=await kv();Array.isArray(e?.options)&&e.options.length>0&&h(e.options),e?.rules&&typeof e.rules==`object`&&_(e.rules)}catch(e){console.error(`Unable to load action field rules:`,e),i.message.error(`Unable to load action validation rules.`)}},U=(0,r.useCallback)(async e=>{let n=$A(e);if(d([]),p([]),t.setFieldsValue({step_order:void 0}),n){x(!0);try{let e=await Fv({limit:1e4,offset:0,module:n}),t=Array.isArray(e?.items)?e.items:[];d(t),p(ej(t))}catch(e){console.error(`Unable to load flows:`,e),i.message.error(`Unable to load flows.`)}finally{x(!1)}}},[t]),te=(0,r.useCallback)(async(e,n,r)=>{let a=$A(e),o=$A(n);if(!a||!o){t.setFieldsValue({step_order:void 0});return}D(!0);try{t.setFieldsValue({step_order:tj(r,a,o)})}catch(e){console.error(`Unable to load step order:`,e),i.message.error(`Unable to load step order.`)}finally{D(!1)}},[t]);(0,r.useEffect)(()=>{Promise.resolve().then(async()=>{await Promise.all([V(),H()])})},[]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>U(N))},[U,N]),(0,r.useEffect)(()=>{Promise.resolve().then(()=>te(N,P,u))},[u,te,P,N]);let ne=async e=>{let n={module:$A(e.module),flow:$A(e.flow),step_order:Number(e.step_order),description:$A(e.description),keyword:$A(e.keyword),target:$A(e.target),value:$A(e.value),expected:$A(e.expected),tags:e.tags?$A(e.tags):qA.tags,active:Number(e.active)};k(!0);try{await Pv(n),i.message.success(`LMS case details saved successfully.`),t.resetFields(),d([]),p([])}catch(e){console.error(`Unable to save LMS case:`,e),i.message.error(`Unable to save LMS case.`)}finally{k(!1)}},W=(e,n)=>{t.setFieldsValue({[e]:$A(n)})},re=e=>{t.setFieldsValue({module:$A(e),flow:void 0,step_order:void 0,keyword:void 0,description:void 0,target:void 0,tags:qA.tags,value:void 0,expected:void 0}),ZA(t,[`keyword`,`target`,`value`,`expected`])},ie=e=>{t.setFieldsValue({flow:$A(e),step_order:void 0,keyword:void 0,target:void 0,value:void 0,expected:void 0}),ZA(t,[`keyword`,`target`,`value`,`expected`])},G=e=>{let n=XA(g,e);t.setFieldsValue({keyword:$A(e),target:n.key?t.getFieldValue(`target`):void 0,value:n.value?t.getFieldValue(`value`):void 0,expected:n.expected?t.getFieldValue(`expected`):void 0}),ZA(t,[`target`,`value`,`expected`])},ae=e=>{let t=JA[e];C({open:!0,typeKey:e}),n.setFieldsValue({name:``,type:t.label})},oe=()=>{C(e=>({...e,open:!1})),n.resetFields()},se=async()=>{try{let e=$A((await n.validateFields()).name),r=await Ov({name:e,type:j.dbName});ee(S.typeKey,r?.items??[]),t.setFieldsValue({[j.formField]:e}),i.message.success(`${j.label} added successfully.`),oe()}catch(e){if(e?.errorFields)return;console.error(`Unable to save testing option:`,e),i.message.error(`Unable to add ${j.label.toLowerCase()}.`)}finally{T(!1)}};return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsxs)(i.Row,{align:`middle`,justify:`space-between`,className:`breadcrumb-action-wrapper`,children:[(0,o.jsx)(i.Col,{children:(0,o.jsx)(e.t,{items:KA})}),(0,o.jsx)(i.Col,{children:(0,o.jsx)(i.Button,{type:`link`,onClick:()=>A(`/lms-home`),children:`View Table`})})]}),(0,o.jsx)(`div`,{className:`v1-page`,children:(0,o.jsxs)(`div`,{className:`v1-page-inner`,children:[(0,o.jsx)(`div`,{className:`v1-page-header`,children:(0,o.jsxs)(i.Space,{align:`center`,size:10,children:[(0,o.jsx)(a.ProfileOutlined,{className:`v1-outer-icon`}),(0,o.jsx)(`div`,{children:(0,o.jsx)(GA,{strong:!0,style:{fontSize:16},children:`Add LMS Case`})})]})}),(0,o.jsx)(Z,{children:(0,o.jsxs)(i.Form,{form:t,className:`v1-form`,layout:`vertical`,colon:!1,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),initialValues:qA,onFinish:ne,autoComplete:`off`,children:[(0,o.jsx)(i.Card,{className:`v1-card`,title:(0,o.jsx)(nj,{icon:(0,o.jsx)(a.FileTextOutlined,{}),title:`LMS Case Details`}),extra:(0,o.jsx)(GA,{type:`secondary`,className:`v1-card-subtitle`,children:`Module, flow, step order and execution data`}),children:(0,o.jsxs)(i.Row,{gutter:[24,0],children:[(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsxs)(i.Space.Compact,{style:{width:`100%`},children:[(0,o.jsx)(i.Form.Item,{label:`Module`,name:`module`,style:{flex:1},children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,loading:v,optionFilterProp:`label`,placeholder:`Select module`,options:M,onChange:re})}),(0,o.jsx)(i.Button,{"aria-label":`Add module`,icon:(0,o.jsx)(a.PlusOutlined,{}),style:{marginTop:30},onClick:()=>ae(`module`)})]})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Flow`,name:`flow`,children:(0,o.jsx)(i.AutoComplete,{maxLength:100,allowClear:!0,disabled:R,options:f,placeholder:b?`Loading flows`:`Enter flow`,onChange:ie,filterOption:(e,t)=>t?.value?.toLowerCase().includes(e.toLowerCase())})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Step Order`,name:`step_order`,validateTrigger:[`onBlur`,`onChange`],children:(0,o.jsx)(i.Input,{maxLength:10,disabled:!0,placeholder:E?`Loading step order`:`Step order`})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Action`,name:`keyword`,children:(0,o.jsx)(i.Select,{allowClear:!0,showSearch:!0,disabled:z,optionFilterProp:`label`,placeholder:`Select action`,options:m,onChange:G})})}),(0,o.jsx)(i.Col,{xs:24,children:(0,o.jsx)(i.Form.Item,{label:`Description`,name:`description`,children:(0,o.jsx)(i.Input.TextArea,{rows:3,maxLength:255,disabled:z,placeholder:`Enter description`,showCount:!0,onBlur:e=>W(`description`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Key`,name:`target`,rules:[{required:B.key,message:`Key is required for this action`}],children:(0,o.jsx)(i.Input,{maxLength:255,disabled:z||!!F&&!B.key,placeholder:z?`Select module and flow first`:F?B.key?`Required — Enter selector / locator`:`Not needed for this action`:`Select an action first`,onBlur:e=>W(`target`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Tags`,name:`tags`,children:(0,o.jsx)(i.Input,{maxLength:200,disabled:z,placeholder:`Enter tags`,prefix:(0,o.jsx)(a.TagsOutlined,{className:`v1-input-icon`}),onBlur:e=>W(`tags`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Value`,name:`value`,rules:[{required:B.value,message:`Value is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:z||!!F&&!B.value,placeholder:z?`Select module and flow first`:F?B.value?`Required — Enter value`:`Not needed for this action`:`Select an action first`,onBlur:e=>W(`value`,e.target.value)})})}),(0,o.jsx)(i.Col,{xs:24,md:12,children:(0,o.jsx)(i.Form.Item,{label:`Expected`,name:`expected`,rules:[{required:B.expected,message:`Expected result is required for this action`}],children:(0,o.jsx)(i.Input.TextArea,{rows:4,disabled:z||!!F&&!B.expected,placeholder:z?`Select module and flow first`:F?B.expected?`Required — Enter expected result`:`Not needed for this action`:`Select an action first`,onBlur:e=>W(`expected`,e.target.value)})})})]})}),(0,o.jsx)(`div`,{className:`v1-form-actions`,children:(0,o.jsx)(i.Form.Item,{children:(0,o.jsxs)(i.Space,{children:[(0,o.jsx)(i.Button,{type:`primary`,htmlType:`submit`,loading:O,disabled:z,children:`Submit`}),(0,o.jsx)(i.Button,{onClick:()=>{t.resetFields(),d([]),p([])},children:`Reset`})]})})})]})}),(0,o.jsx)(i.Modal,{title:`Add ${j.label}`,open:S.open,confirmLoading:w,okText:`Add`,onCancel:oe,onOk:()=>{T(!0),se()},destroyOnHidden:!0,children:(0,o.jsxs)(i.Form,{form:n,layout:`vertical`,colon:!1,className:`v1-form`,requiredMark:(e,{required:t})=>(0,o.jsxs)(o.Fragment,{children:[e,t&&(0,o.jsx)(`span`,{className:`v1-required-mark`,children:` *`})]}),children:[(0,o.jsx)(i.Form.Item,{label:`Name`,name:`name`,children:(0,o.jsx)(i.Input,{maxLength:100,placeholder:`Enter ${j.label.toLowerCase()} name`,onBlur:e=>{n.setFieldsValue({name:$A(e.target.value)})}})}),(0,o.jsx)(i.Form.Item,{label:`Type`,name:`type`,children:(0,o.jsx)(i.Input,{disabled:!0})})]})})]})})]})}var ij=[{label:`Home`,href:`/`},{label:`LMS Cases`,href:`/lms-cases`}];function aj(){return(0,o.jsxs)(`main`,{className:`jobs-list-page`,children:[(0,o.jsx)(e.t,{items:ij}),(0,o.jsx)(To,{moduleName:`lms-flows`,rowKey:`id`})]})}var oj=[`referenceId`,`ReferenceId`,`candidateId`,`CandidateId`,`entityId`,`EntityId`,`id`,`Id`,`_id`];function sj(e=oj){return function(t){if(!t||typeof t!=`object`)return``;for(let n of e){let e=t[n];if(e!=null&&e!==``)return String(e)}return``}}function cj(e,t=oj){if(!e||typeof e!=`object`)return[];let n=[];for(let r of t){let t=e[r];t!=null&&t!==``&&n.push(String(t))}return n}var lj=sj();function uj(e){return typeof e==`function`?e:typeof e==`string`?sj([e]):Array.isArray(e)?sj(e):lj}function dj(e,t,n){return!t||typeof t!=`object`?e:{...t,...e,id:e?.id??t?.id??n}}function fj(e,t,n={}){return{status:`success`,total:t,data:{data:e,...n}}}var pj=[`fields`,`fieldConfig`,`tabs`,`tabField`,`actionRules`,`actions`,`columnActions`];function mj(e){let t=e?.data??e,n={};for(let r of pj){let i=e?.[r]??t?.[r];i==null||Array.isArray(i)&&i.length===0||(n[r]=i)}return n}var hj=e=>String(e??``).replace(/[^a-zA-Z0-9]/g,``).toLowerCase();function gj(e,t,n){let r=(Array.isArray(n)?n:[n]).map(hj).filter(Boolean),i=r.length?e.findIndex(e=>r.includes(hj(e?.value))||r.includes(hj(e?.label))):-1;if(i===-1)return[...e,...t];let a=Number(e[i]?.order),o=Number.isFinite(a)?t.map((e,n)=>e.order==null||e.order===``?{...e,order:a+(n+1)/(t.length+1)}:e):t;return[...e.slice(0,i+1),...o,...e.slice(i+1)]}var _j=(e,t)=>Yr(e,t).rows,vj=(e,t)=>{let{rows:n,total:r}=Yr(e,t);return{rows:n,total:r}};function yj(e,t){return function(n,r,i,a={}){return e(t??n,r,i,a)}}function bj(e){return!e||typeof e!=`object`||typeof(e.fetchByKeys??e.fetch??e.function)!=`function`?null:{...e,fetchByKeys:typeof e.fetchByKeys==`function`?e.fetchByKeys:null,fetch:typeof e.fetch==`function`?e.fetch:null,function:typeof e.function==`function`?e.function:null,extractRows:typeof e.extractRows==`function`?e.extractRows:_j,mergeRow:typeof e.mergeRow==`function`?e.mergeRow:dj,fetchById:typeof e.fetchById==`function`?e.fetchById:null}}function xj({fetchSecondaryByKeys:e,fetchSecondary:t,extractSecondaryRows:n,fetchSecondaryById:r,secondaryKey:i,mergeRow:a,secondaryFetchLimit:o}){return!e&&!t&&!r?[]:[bj({key:i,fetchByKeys:e?(t,n,r)=>e(t,n,r):null,function:t?({moduleName:e,options:n})=>t(e,o,0,n):null,extractRows:n,fetchById:r,mergeRow:a})].filter(Boolean)}function Sj(e){if(typeof e==`function`)return t=>{let n=e(t);return n==null||n===``?[]:[String(n)]};let t=typeof e==`string`?[e]:Array.isArray(e)&&e.length?e:oj;return e=>cj(e,t)}function Cj(e,t){let n=new Map;return e.forEach(e=>{for(let r of t(e))n.has(r)||n.set(r,e)}),n}function wj({moduleName:e,limit:t,offset:n,options:r,keys:i,primaryResponse:a,primaryRows:o,pageRows:s,total:c,source:l}){return{moduleName:e,limit:t,offset:n,options:r,keys:i,primaryResponse:a,primaryRows:o,pageRows:s,total:c,source:l}}async function Tj(e,t){if(typeof e.args==`function`){let n=e.args(t);return(e.fetch??e.function??e.fetchByKeys)(...Array.isArray(n)?n:[n])}if(Array.isArray(e.args))return(e.fetch??e.function??e.fetchByKeys)(...e.args);if(e.fetchByKeys&&Array.isArray(t.keys))return e.fetchByKeys(t.moduleName,t.keys,t.options,t);let n=e.fetch??e.function;return typeof n==`function`?n(t):null}function Ej({fetchPrimaryPage:e,extractPrimaryPage:t=vj,fetchSecondaryByKeys:n,joinSources:r=[],fetchPrimary:i,extractPrimaryRows:a=_j,fetchSecondary:o,extractSecondaryRows:s=_j,fetchSecondaryById:c,primaryKey:l,secondaryKey:u,mergeRow:d=dj,secondaryFetchLimit:f=200,extraFields:p=[],extraFieldsAfter:m}){let h=Array.isArray(r)&&r.length?r.map(bj).filter(Boolean):xj({fetchSecondaryByKeys:n,fetchSecondary:o,extractSecondaryRows:s,fetchSecondaryById:c,secondaryKey:u,mergeRow:d,secondaryFetchLimit:f}),g=0;async function _(e,t,n,r){if(!e.fetchById||!r)return null;try{let i=await e.fetchById(n,r);return i&&t(i).includes(String(r))?i:null}catch(e){return console.error(`[mergedListApi] per-id join lookup failed for "${r}"`,e),null}}async function v(e,t,n,r,i){if(!n)return e;let a=t.extractRows(n,r)??[],o=uj(t.primaryKey??l),s=Sj(t.key),c=Cj(a,s);return Promise.all(e.map(async e=>{let n=o(e),a=c.get(n)??(i()?null:await _(t,s,r,n));return t.mergeRow(e,a,n)}))}async function y(e,t,n,r){let i=e;for(let e of t)i=await v(i,e.source,e.response,n,r);return i}function b(e,t,n){let r={};for(let e of n){if(!e)continue;let t=mj(e);for(let e of Object.keys(t))r[e]??(r[e]=t[e])}return p.length&&(r.fields=gj(r.fields??[],p,m)),fj(e,t,r)}async function x({moduleName:e,limit:t,offset:n,options:r,primaryResponse:i,primaryRows:a,pageRows:o,total:s}){return Promise.all(h.map(async c=>{try{let u=uj(c.primaryKey??l),d=[...new Set(o.map(u).filter(Boolean))];return c.fetchByKeys&&d.length===0?{source:c,response:null}:{source:c,response:await Tj(c,wj({moduleName:e,limit:t,offset:n,options:r,keys:d,primaryResponse:i,primaryRows:a,pageRows:o,total:s,source:c}))}}catch(e){return console.error(`[mergedListApi] join fetch failed — rendering page without that join`,e),{source:c,response:null}}}))}async function S(n,r,i,a,o){let s=await e(n,r,i,a),c=t(s,n)??{},l=Array.isArray(c.rows)?c.rows:[],u=Number.isFinite(Number(c.total))?Number(c.total):l.length,d=await x({moduleName:n,limit:r,offset:i,options:a,primaryResponse:s,primaryRows:l,pageRows:l,total:u});return b(await y(l,d,n,o),u,[s,...d.map(e=>e.response)])}async function C(e,t,n,r,o){let s=await i(e,t,n,r),c=a(s,e)??[],l=c.length,u=c.slice(n,n+t),d=await x({moduleName:e,limit:t,offset:n,options:r,primaryResponse:s,primaryRows:c,pageRows:u,total:l});return b(await y(u,d,e,o),l,[s,...d.map(e=>e.response)])}return async function(t,n=10,r=0,i={}){let a=++g,o=()=>a!==g;return e?S(t,n,r,i,o):C(t,n,r,i,o)}}function Dj(e,t,n={}){return Ej({fetchPrimary:()=>bD(e,t),extractPrimaryRows:vD,fetchSecondary:xn,fetchSecondaryById:xD,secondaryFetchLimit:n.moduleFetchLimit??200})}function Oj(e){let t=String(e??``).trim().split(/[^a-zA-Z0-9]+/).filter(Boolean);return t.length?`${t.map((e,t)=>t===0?e.toLowerCase():e[0].toUpperCase()+e.slice(1).toLowerCase()).join(``)}Count`:``}function kj(e){let t=Array.isArray(e?.stages)?e.stages:[];if(!t.length)return e;let n={};for(let e of t){let t=Oj(e?.stageName);t&&(n[t]=Number(e?.count)||0)}return{...n,...e}}var Aj=e=>{let t=Number(e?.targetSubmission??e?.targetSubmissions);return Number.isFinite(t)&&t>0?t:null};function jj({submittedCountField:e=`submittedCount`,progressField:t=`targetSubmissionProgress`}={}){return function(n,r,i){let a=dj(n,r,i),o=Aj(a);return o!=null&&(a[t]=`${Number(a?.[e])||0} of ${o}`),a}}function Mj(e={}){let t=jj();return Ej({primaryKey:`_id`,extraFields:e.extraFields,extraFieldsAfter:e.extraFieldsAfter,fetchPrimaryPage:xn,joinSources:[{key:`entityId`,fetchByKeys:(e,t,n,r)=>{let i=Math.max(1,Number(r?.limit)||10);return yD(Math.floor((Number(r?.offset)||0)/i)+1,i)},extractRows:e=>(e?.items??[]).map(kj),mergeRow:(e,n,r)=>{let i=t(e,n,r);return n?._id&&(i.workflowId=n._id),i}}]})}async function Nj(e,t=10,n=0,r={},i={}){return Yr(await Mj(i)(e,t,n,r),e)}async function Pj(e,t,n,r=10,i=0,a={}){return Yr(await Dj(e,t)(n,r,i,a),n)}var Fj=ZO,Ij=Zv(Yk),Lj=Zv(Zk),Rj=Zv(fA),zj=Zv(wA),Bj=Zv(NA),Vj=Zv(IA),Hj=Zv(zA),Uj=Zv(HA),Wj=Zv(WA),Gj=Zv(rj),Kj=Zv(aj);exports.ADMIN_API_URL=t._,exports.ADMIN_APP_ID=t.v,exports.APP_ID=t.y,exports.AUTH_URL=t.b,exports.ActivityNotesCard=vc,exports.ActivityTab=pc,exports.AddBatchCandidatePopup=MO,exports.AddFormV1=Xs,exports.AdminDashboard=ZO,exports.AdminDashboardContent=Ew,exports.AdminPage=Fj,exports.AppAlert=Zs,exports.AppButton=e.at,exports.AppShell=bv,exports.ApprovalActionBar=Hh,exports.AssigneeAvatars=yc,exports.AuthGuard=vv,exports.BILLING_STATUS_FLOW=Od,exports.BOOLEAN_API_KEYS=Lm,exports.BOOLEAN_PARSEABLE_API_KEYS=Mm,exports.BULK_UPLOAD_DEFAULT_ACCEPT=bc,exports.BULK_UPLOAD_DEFAULT_MAX_SIZE_MB=xc,exports.Breadcrumb=e.t,exports.BulkUploadPage=Rj,exports.BulkUploadPanel=kc,exports.CANDIDATES_URL=t.x,exports.CONTRACT_C2C=fg,exports.CONTRACT_W2=dg,exports.CURRENCY_SYMBOLS=Ll,exports.CalendarCard=D,exports.CoreThemeAdminApp=Aw,exports.CoreThemeAdminRoutes=kw,exports.CustomPagination=Ae,exports.DEFAULT_HOURS_POLICY=uh,exports.DayLogModal=Ph,exports.DescriptionBlock=Hc,exports.DetailHeaderCard=jf,exports.DetailViewPage=Rf,exports.DetailViewV1=Du,exports.DocumentViewer=e.vn,exports.DynamicCards=Dt,exports.DynamicPopup=AE,exports.DynamicPopupRoute=LO,exports.DynamicTabs=j,exports.EditFormV1=Ip,exports.FIELD_TYPE_REGISTRY=hm,exports.FINANCE_APPROVAL_CONFIG=rg,exports.FINANCE_TYPE_CFO=Xh,exports.FINANCE_TYPE_ONBOARDING_MANAGER=Yh,exports.FINANCE_TYPE_ONBOARDING_MANAGER_REAPPROVE=$h,exports.FINANCE_TYPE_ONLY_FINANCE=Zh,exports.FINANCE_TYPE_SUBMISSION_MANAGER=Jh,exports.FINANCE_TYPE_SUBMISSION_MANAGER_REAPPROVE=Qh,exports.FileListCard=__,exports.FinanceApprovalPanel=Xg,exports.FinanceAvatar=uf,exports.FinanceBadge=mf,exports.FinanceDayCell=Wh,exports.FinanceDivider=tf,exports.FinanceEmployeeCell=df,exports.FinanceEmptyState=Qd,exports.FinanceEquation=nf,exports.FinanceHistoryTimeline=sf,exports.FinanceHoursGrid=Zd,exports.FinanceKpiRow=Xd,exports.FinanceLine=ef,exports.FinanceListToolbar=lh,exports.FinanceMarginBadge=hf,exports.FinanceMoneyCell=pf,exports.FinanceRecordsTable=vf,exports.FinanceRowChevron=gf,exports.FinanceSection=$d,exports.FinanceStatusPill=Yd,exports.FinanceTextCell=ff,exports.FinanceTimesheetAnalysis=Kh,exports.FinanceWorkflowSteps=rf,exports.HOURS_MESSAGES=dh,exports.Header=K_,exports.HierarchyUserFilter=Mt,exports.JOBS_URL=t.S,exports.LegacyAdminPage=Ij,exports.ListView=To,exports.LmsHomePage=Kj,exports.LmsTestForm=Gj,exports.Login=xv,exports.MailPopup=Yw,exports.ManageModules=Vj,exports.ManageSubmodules=Hj,exports.ModuleRowActions=Gp,exports.NotesPanel=Vh,exports.NotesTab=_c,exports.PAYROLL_STATUS_FLOW=kd,exports.POPUP_CONFIGS=CO,exports.ParamCardView=Qp,exports.ParamListView=im,exports.PeriodBadgeTag=Ch,exports.PreviewPopup=ET,exports.ProjectSelect=Xv,exports.ProofUploadPreview=Bh,exports.QuickLogBar=Lh,exports.QuickLogSelectionBar=Fh,exports.RejectionReasonModal=Ih,exports.SUBMISSIONS_URL=t.w,exports.SearchBuilderV1=eh,exports.Sidebar=mv,exports.StatusBadge=nh,exports.StatusBadgeTag=Sh,exports.StickyNotesFullPage=Lj,exports.StylishDynamicTabs=ih,exports.TemplateEditor=oh,exports.TestForm=zj,exports.TestingHomePage=Wj,exports.TimelineGroups=ac,exports.TimesheetDayCell=jh,exports.TipTapEditor=e.yn,exports.UserForm=XO,exports.VendorShareDrawer=VO,exports.ViewSummaryWidget=xi,exports.WizardPopup=MT,exports.ZinnextTableView=Uj,exports.ZinnextTestForm=Bj,exports.appNow=e.Cn,exports.applyIntegrationStatus=e.zn,exports.approveSubmission=pe,exports.buildAcceptAttr=Ec,exports.buildBooleanRequest=Hm,exports.buildCsv=Ud,exports.buildDailyRows=Ld,exports.buildDayGradient=kh,exports.buildRateHistoryEntries=Lg,exports.buildWeeklyRollup=Bd,exports.clearSelectedProject=t.r,exports.colors=e.Sn,exports.computeFinance=kg,exports.computeHoursPolicy=_h,exports.computeMarginBand=Vd,exports.conditionMatches=e.i,exports.configureCoreTheme=t.T,exports.configuredFieldLabel=e.a,exports.createAllWorkflowsListFetcher=Mj,exports.createMergedListFetcher=Ej,exports.createModuleListFetchAdapter=yj,exports.createWorkflowStageListFetcher=Dj,exports.currencySymbol=Rl,exports.defaultMergeRow=dj,exports.deleteIntegrationConfig=e.Xn,exports.deriveDayStats=Id,exports.describeCapacity=yh,exports.downloadCsv=qd,exports.evaluateShowIfWith=e.o,exports.findEmployerRow=Cg,exports.flattenGroups=xg,exports.formatAmount=Wl,exports.formatApp=e.wn,exports.formatAppDateTime=e.Tn,exports.formatFileSize=Tc,exports.formatFinanceMoney=Rg,exports.formatHours=yd,exports.formatMoney=Gl,exports.formatPercent=xd,exports.formatRate=Kl,exports.getActivity=e.rn,exports.getAllWorkflowsModuleList=Nj,exports.getAppTimeZone=e.En,exports.getApprovalDate=Td,exports.getBgcIntegrationConfig=e.pr,exports.getBgcIntegrationSummary=e.mr,exports.getBillingActionStates=Ad,exports.getBooleanEligibleTypes=ym,exports.getCurrentRoleName=t.s,exports.getFieldLabel=Gd,exports.getFieldType=_m,exports.getFileExtension=wc,exports.getFinanceApprovalConfig=cg,exports.getFormGroupsRaw=o_,exports.getIntegrationConfig=e.br,exports.getIntegrationConfigs=e.xr,exports.getIntegrationSummary=e.Sr,exports.getModuleConfig=De,exports.getModuleDataDetail=e.an,exports.getPayrollActionStates=jd,exports.getPeriodBadgeConfig=ke,exports.getSelectedProject=t.c,exports.getStoredToken=t.l,exports.getStoredUser=t.u,exports.getUserRoles=t.d,exports.getVMSApprove=me,exports.getValueStyle=Kd,exports.getWorkflowStageModuleList=Pj,exports.getWorkflowSteps=Md,exports.humanizeEvent=wd,Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Jo}}),exports.indexFieldConfig=Wd,exports.initialsOf=Sd,exports.insertTokenAtCursor=Im,exports.isBooleanEligible=vm,exports.isBooleanParsable=Pm,exports.isTester=t.f,exports.logout=t.m,exports.marginIncludesReferral=ug,exports.matchLocationTax=Og,Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Kf}}),exports.normalizeContract=Tg,Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Ac}}),exports.rateUnitLabel=Bl,exports.rateUnitShort=Hl,exports.reconcileHours=vh,exports.registerFieldType=gm,exports.rejectSubmission=ge,exports.resolveActivityMeta=uc,exports.resolveAndCompute=Ag,exports.resolveDayKind=hh,exports.resolveFinanceInputs=Dg,exports.resolveMergeKey=lj,exports.resolveMergedListKey=lj,exports.resolveRejectionReason=lg,exports.resolveSubmissionFinance=s_,exports.saveBgcIntegrationConfig=e.Wr,exports.saveIntegrationConfig=e.qr,exports.setSelectedProject=t.g,exports.showIfConditions=e.c,exports.stageCountKey=Oj,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Sv}}),exports.testIntegrationConnection=e.$r,exports.toApp=e.On,exports.toNumber=Ul,exports.tzLabel=e.kn,exports.tzShortLabel=e.An,exports.useDropdownFields=Ln,exports.useDropdownValues=Si,exports.useEditForm=v_,exports.useFieldConfig=Rn,exports.useFilterFields=zn,exports.useMenuPermission=Jn,exports.useModuleActions=Rp,exports.useRecordRefresh=Ff,exports.validateBooleanQuery=Fm,exports.validateBulkFile=Dc,exports.withAdminAppId=t.E,exports.withAppId=t.D,exports.withAuthGuard=Zv;
13
13
  //# sourceMappingURL=index.cjs.map