PageSourceSearch

https://app.romuten.jp/_next/static/chunks/4248.3b031e4bbe3330ea.js

js romuten.jp collected 2026-09-25 02:58:30 UTC 7,369 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4248],{12524:(e,r,a)=>{a.d(r,{Hr:()=>t,m_:()=>n,sP:()=>s});let n=e=>({imageFront:e.imageFront,imageBack:e.imageBack,isChecked:e.isChecked}),t=e=>({imageFront:e.imageFront,imageBack:e.imageBack,isChecked:e.isChecked}),s=e=>({...e,startDate:new Date(e.createdAt),endDate:new Date(e.createdAt)})},27696:(e,r,a)=>{a.d(r,{P:()=>c});var n=a(79748),t=a(62024),s=a(66101),i=a(74944),o=a(26454),l=a(12524);let c=(e,{skip:r=!1,onDone:a}={})=>{let c=(0,n.useRouter)(),{data:d,refetch:u}=(0,t.I)(o.hf,{variables:{workerId:e},skip:r}),[m,{loading:h}]=(0,s.n)(o.B7),[p,{loading:g}]=(0,s.n)(o.AT),f=d?.workerResume.current,x=d?.workerResume.pending,k=x?(0,l.Hr)(x):void 0,j=async r=>{if(x){try{await m({variables:{workerId:e,id:x.id,input:(0,l.m_)(r)}})}catch{throw i.c.error("履歴書の確認に失敗しました。もう一度お試しください。"),Error("Failed to confirm worker resume")}i.c.success("履歴書を承認しました"),await u(),c.refresh(),a?.()}},w=async()=>{if(x){try{await p({variables:{workerId:e,id:x.id}})}catch{throw i.c.error("履歴書の差し戻しに失敗しました。もう一度お試しください。"),Error("Failed to reject worker resume")}i.c.success("履歴書を差し戻しました"),await u(),c.refresh(),a?.()}};return{current:f,pending:x,pendingFormValues:k,isConfirmPending:h,isRejectPending:g,refetch:u,handleConfirm:j,handleReject:w}}},48067:(e,r,a)=>{a.r(r),a.d(r,{WorkerResumeFormDialog:()=>p});var n=a(54568),t=a(7620),s=a(42584),i=a(50063),o=a(49610),l=a(83049),c=a(38072),d=a(28465),u=a(66005);let m="worker",h="validation failed",p=({open:e,onOpenChange:r,onSave:a,onReject:p,initialValues:g,uploadType:f=m,workerId:x,title:k="履歴書 アップロード",cancelLabel:j="キャンセル",confirmLabel:w,isChecking:v=!1})=>{let C=w??(v?"確認して登録":"登録する"),b=(0,s.mN)({resolver:(0,i.u)(u.AX),defaultValues:g,mode:"onChange"});(0,t.useEffect)(()=>{e&&b.reset(g)},[e,g,b]);let[y,F]=(0,t.useState)(!1),[D,P]=(0,t.useState)(!1),[R,N]=(0,t.useState)(null);(0,t.useEffect)(()=>{e&&(F(!1),P(!1),N(null))},[e]);let O=()=>new Promise((e,r)=>{b.handleSubmit(e=>{N(e),F(!0),r(Error(h))},()=>r(Error(h)))()}),E=async()=>{R&&(await a({...R,isChecked:!0}),F(!1),r(!1))},S=async()=>{p&&(await p(),P(!1),r(!1))};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.q,{open:e,onOpenChange:r,title:k,description:"履歴書の表面・裏面画像を入力してください。",cancelLabel:j,confirmLabel:v&&p?void 0:C,onConfirm:v&&p?void 0:O,footer:v&&p?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(d.$,{variant:"outline",onClick:()=>r(!1),children:j}),(0,n.jsx)(d.$,{variant:"destructive",onClick:()=>P(!0),children:"差し戻し"}),(0,n.jsx)(d.$,{onClick:()=>{O().catch(()=>{})},children:C})]}):void 0,children:(0,n.jsx)(s.Op,{...b,children:(0,n.jsxs)("form",{noValidate:!0,className:"flex flex-col gap-5",children:[(0,n.jsxs)(c.ef,{name:"imageFront",uploadType:f,workerId:x,children:[(0,n.jsx)(c.ef.Label,{required:!0,children:"表面画像"}),(0,n.jsx)(c.ef.Dropzone,{hint:"JPG / PNG / PDF"}),(0,n.jsx)(c.ef.Error,{})]}),(0,n.jsxs)(c.ef,{name:"imageBack",uploadType:f,workerId:x,children:[(0,n.jsx)(c.ef.Label,{required:!0,children:"裏面画像"}),(0,n.jsx)(c.ef.Dropzone,{hint:"JPG / PNG / PDF"}),(0,n.jsx)(c.ef.Error,{})]})]})})}),(0,n.jsx)(o.T,{open:y,onOpenChange:F,title:v?"書類を承認して登録しますか?":"書類を登録しますか?",confirmLabel:v?"承認して登録する":"登録する",onConfirm:E}),(0,n.jsx)(o.T,{open:D,onOpenChange:P,title:"書類を差し戻しますか?",confirmLabel:"差し戻す",onConfirm:S})]})}},64248:(e,r,a)=>{a.r(r),a.d(r,{WorkerResumeCardContainer:()=>R});var n=a(54568),t=a(7620),s=a(49610),i=a(2939),o=a(80603),l=a(61299),c=a(74211),d=a(59269),u=a(57466),m=a(65157);let h="worker",p="border-border bg-muted/20 aspect-[3/2] w-full max-w-[16rem] rounded border object-contain",g=({license:e})=>(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-x-4 gap-y-4",children:[(0,n.jsx)(u.B,{label:"表面写真",value:(0,n.jsx)(m.F,{fileName:e?.imageFront,uploadType:h,alt:"履歴書 表面",className:p})}),(0,n.jsx)(u.B,{label:"裏面写真",value:(0,n.jsx)(m.F,{fileName:e?.imageBack,uploadType:h,alt:"履歴書 裏面",className:p})})]}),f=({current:e,hasPending:r,onHistoryOpen:a,onPendingOpen:t,onUploadOpe
1n:s,onDelete:u})=>(0,n.jsx)(l.m,{title:(0,n.jsxs)("span",{className:"flex items-center gap-2",children:[(0,n.jsxs)(c._,{icon:i.A,children:["履歴書",e?"":"(登録無し)"]}),e?.isChecked?(0,n.jsx)(o.A,{className:"h-4 w-4 text-green-600","aria-label":"確認済み"}):null]}),actions:(0,n.jsx)(d.W,{onUpload:s,onHistory:a,onPending:t,hasPending:r,onDelete:u}),children:(0,n.jsx)(g,{license:e})});var x=a(48067),k=a(88305);let j=({open:e,onOpenChange:r,items:a,onDeleteItem:t})=>(0,n.jsx)(k.m,{open:e,onOpenChange:r,title:"履歴書 履歴",items:a,onDeleteItem:t});var w=a(79748),v=a(62024),C=a(66101),b=a(74944),y=a(26454),F=a(12524),D=a(27696),P=a(72648);let R=({workerId:e})=>{let{current:r,pendingFormValues:a,historyItems:i,hasPending:o,uploadOpen:l,pendingOpen:c,historyOpen:d,setUploadOpen:u,setPendingOpen:m,setHistoryOpen:h,handleSave:p,handleConfirm:g,handleReject:k,deleteResume:R}=(e=>{let[r,a]=(0,t.useState)(!1),[n,s]=(0,t.useState)(!1),[i,o]=(0,t.useState)(!1),l=(0,w.useRouter)(),{current:c,pending:d,pendingFormValues:u,refetch:m,handleConfirm:h,isConfirmPending:p,handleReject:g,isRejectPending:f}=(0,D.P)(e),{data:x}=(0,v.I)(y.WV,{variables:{workerId:e},skip:!i}),[k,{loading:j}]=(0,C.n)(y.Me),[P]=(0,C.n)(y.Ad,{refetchQueries:[y.WV],awaitRefetchQueries:!0});return{current:c,pending:d,pendingFormValues:u,historyItems:(0,t.useMemo)(()=>
1(x?.workerResumes.items??[]).map(F.sP),[x?.workerResumes.items]),hasPending:!!d,isPending:j,isConfirmPending:p,uploadOpen:r,pendingOpen:n,historyOpen:i,setUploadOpen:a,setPendingOpen:s,setHistoryOpen:o,handleSave:async r=>{let a=!1;try{let{data:n}=await k({variables:{workerId:e,input:(0,F.m_)(r)}});a=!!n?.uploadWorkerDocResume.id}catch{b.c.error("履歴書の保存に失敗しました。もう一度お試しください。")}if(!a)throw Error("Failed to upload worker resume");await m(),l.refresh()},handleConfirm:h,handleReject:g,isRejectPending:f,deleteResume:async r=>{try{let{data:a}=await P({variables:{workerId:e,id:r}});if(!a?.deleteWorkerDocResume)return!1;return b.c.success("履歴書を削除しました"),await m(),l.refresh(),!0}catch{return b.c.error("履歴書の削除に失敗しました"),!1}}}})(e),[N,O]=(0,t.useState)(null),E=async()=>{N&&(await R(N),O(null))};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(f,{current:r,hasPending:o,onUploadOpen:()=>u(!0),onPendingOpen:()=>m(!0),onHistoryOpen:()=>h(!0),onDelete:r?()=>O(r.id):void 0}),l&&(0,n.jsx)(x.WorkerResumeFormDialog,{open:l,workerId:e,onOpenChange:u,onSave:p}),d&&(0,n.jsx)(j,{open:d,onOpenChange:h,items:i,onDeleteItem:e=>O(e)}
1),c&&(0,n.jsx)(x.WorkerResumeFormDialog,{open:c,workerId:e,title:`${P.TV.docResume} 申請中の書類`,cancelLabel:"閉じる",isChecking:!0,initialValues:a,onOpenChange:m,onSave:g,onReject:k}),(0,n.jsx)(s.T,{open:null!==N,onOpenChange:e=>{e||O(null)},title:"履歴書を削除しますか?",description:"この操作は取り消せません。",confirmLabel:"削除",destructive:!0,onConfirm:E})]})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.