PageSourceSearch

https://app.0z.chat/_next/static/chunks/pages/admin/send-notification-2908d307ee98dd04.js

js 0z.chat collected 2026-10-02 14:52:49 UTC 25,914 bytes, 1 lines download raw bytes

1try{!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="2cdaa306-f94f-4584-9a79-53cfea2d4738",e._sentryDebugIdIdentifier="sentry-dbid-2cdaa306-f94f-4584-9a79-53cfea2d4738")}()}catch(e){}(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6238],{1006:(e,t,r)=>{"use strict";r.r(t),r.d(t,{__N_SSP:()=>P,default:()=>E});var s=r(23798),a=r(77277),l=r(42498),i=r(29714),n=r(60436),d=r(1018),o=r(53894),c=r(21462),m=r(73215),u=r(32384),h=r(11307),x=r(11377),f=r(58701),p=r(3540),g=r(37527),j=r(52841),b=r(4033),y=r(26194),N=r(4150),v=r(61602),w=r(85696),C=r(63045),S=r(15104),_=r(94775),I=r(23282),T=r(55162),A=r(34335),R=r(22964),U=function(e){return e.SEND_NOW="send_now",e.SEND_TEST="send_test",e.SCHEDULE="schedule",e}(U||{});let O=u.Ik({title:u.Yj().min(1,{message:"Title is required."}),body:u.Yj().min(1,{message:"Body is required."}),imageUrl:u.Yj().url({message:"Valid URL is required"}).optional().or(u.eu("")),data:u.Yj().refine(e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch(e){return!1}},{message:"Data must be a valid JSON object or empty."}).optional(),targetUserIds:u.Yj().optional(),sendToAll:u.zM().default(!1),scheduledAtDate:u.p6().optional(),scheduledAtTime:u.Yj().optional().refine(e=>!e||/^[0-2]\d:[0-5]\d$/.test(e),{message:"Invalid time format (HH:MM)"})}).refine(e=>e.sendToAll||e.targetUserIds&&e.targetUserIds.trim().length>0,{message:"Either 'Send to All' must be checked or 'Target User IDs' must be provided.",path:["targetUserIds"]}),D=u.Ik({scheduledAtDate:u.p6({required_error:"Schedule date is required."}),scheduledAtTime:u.Yj().min(1,{message:"Schedule time is required."}).regex(/^[0-2]\d:[0-5]\d$/,{message:"Invalid time format (HH:MM)."})});var P=!0;let E=()=>{var e,t;let[r,u]=(0,c.useState)("send_now"),[U,P]=(0,c.useState)(!1),[E,k]=(0,c.useState)(!1),z=e=>{let{variant:t,title:r,description:s}=e;return"destructive"===t?S.oR.error(r,{description:s}):S.oR.success(r,{description:s})},[J,M]=(0,c.useState)("UTC"),F=!!R.env.NEXT_PUBLIC_TEST_PUSH_TOKENS;(0,c.useEffect)(()=>{M(Intl.DateTimeFormat().resolvedOptions().timeZone)},[]);let L=(0,m.mN)({resolver:(0,l.u)(O),defaultValues:{title:"",body:"",imageUrl:"",data:"",targetUserIds:"",sendToAll:!1,scheduledAtDate:void 0,scheduledAtTime:""}}),B=L.watch(),V=(0,c.useMemo)(()=>{let{scheduledAtDate:e,scheduledAtTime:t}=B;if(!e||!t||!(0,i.f)(e))return{local:null,utc:null,utcISO:null,isValid:!1,isFuture:!1};try{let r=(0,n.qg)(t,"HH:mm",new Date);if(!(0,i.f)(r))return{local:null,utc:null,utcISO:null,isValid:!1,isFuture:!1};let s=new Date(e);s.setHours(r.getHours(),r.getMinutes(),0,0);let a=(0,o.uk)(s,J),l=(0,o.GP)(s,"PPP p zzzz",{timeZone:J}),d=(0,o.GP)(a,"PPP p",{timeZone:"UTC"}),c=a.toISOString(),m=a>new Date;return{local:l,utc:d,utcISO:c,isValid:!0,isFuture:m}}catch(e){return console.error("Error processing scheduled date/time:",e),{local:null,utc:null,utcISO:null,isValid:!1,isFuture:!1}}},[B.scheduledAtDate,B.scheduledAtTime,J]),H=async e=>{if("schedule"===r){let t=D.safeParse({scheduledAtDate:e.scheduledAtDate,scheduledAtTime:e.scheduledAtTime});if(!t.success){t.error.errors.forEach(e=>{L.setError(e.path[0],{type:"manual",message:e.message})}),z({variant:"destructive",title:"Validation Error",description:"Please fill in the schedule date and time."});return}if(!V.isFuture){L.setError("scheduledAtTime",{type:"manual",message:"Scheduled time must be in the future."}),z({variant:"destructive",title:"Validation Error",description:"Scheduled time must be in the future."});return}V.utcISO?await Z(e,V.utcISO):z({variant:"destructive",title:"Internal Error",description:"Could not generate UTC time."})}else"send_test"===r?await q(e):"send_now"===r&&P(!0)},q=(0,c.useCallback)(async e=>{k(!0);try{let{title:t,body:r,imageUrl:s,data:a}=e,l={};a&&a.trim()&&(l=JSON.parse(a));let i=await fetch("/api/push-notifications/send-test-push",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t,body:r,imageUrl:s,data:l})}),n=await i.json();if(!i.ok)throw Error(n.message||"Failed to send test notification");z({title:"Test Sent!",description:n.message})}catch(e){console.error("Failed to send test notification:",e),z({variant:"destructive",title:"Test Send Error",description:e.message})}finally{k(!1)}},[z]),Z=(0,c.useCallback)(async(e,t)=>{k(!0);try{let{title:r,body:s,data:a,targetUserIds:l,sendToAll:i}=e,n={};a&&a.trim()&&(n=JSON.parse(a));let d=i||!l?void 0:l.split(",").map(e=>e.trim()).filter(e=>e),c={title:r,body:s,imageUrl:e.imageUrl||void 0,data:Object.keys(n).length>0?n:void 0,targetUserIds:d,sendToAll:i,scheduledAt:t},m=await fetch("/api/push-notifications/schedule-push",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),u=await m.json();if(!m.ok)throw Error(u.message||"Failed to schedule notification");let h=(0,o.L_)(t,J);z({title:"Scheduled!",description:"Notification scheduled for ".concat((0,o.GP)(h,"PPP p",{timeZone:J}))}),L.reset()}catch(e){console.error("Failed to schedule notification:",e),z({variant:"destructive",title:"Scheduling Error",description:e.message})}finally{k(!1)}},[z,L,J]),$=(0,c.useCallback)(async()=>{k(!0),P(!1);let e=L.getValues();try{var t,r,s;let{title:a,body:l,data:i,targetUserIds:n,sendToAll:d}=e,o={};i&&i.trim()&&(o=JSON.parse(i));let c=d||!n?void 0:n.split(",").map(e=>e.trim()).filter(e=>
1e),m={title:a,body:l,imageUrl:e.imageUrl||void 0,data:Object.keys(o).length>0?o:void 0,targetUserIds:c,sendToAll:d},u=await fetch("/api/push-notifications/send-push",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(m)}),h=await u.json();if(!u.ok)throw Error(h.message||"HTTP error! status: ".concat(u.status));z({title:"成功",description:"通知の送信処理を開始しました。成功: ".concat(null!=(t=h.sentCount)?t:0,", エラー: ").concat(null!=(r=h.errorCount)?r:0,", スキップ: ").concat(null!=(s=h.invalidSkipped)?s:0)}),L.reset()}catch(e){console.error("Failed to send notification now:",e),z({variant:"destructive",title:"Uh oh! Something went wrong.",description:e.message||"An unexpected error occurred."})}finally{k(!1)}},[L,z]);return(0,s.jsxs)("div",{className:"container mx-auto max-w-2xl p-4 font-sans tracking-normal md:p-8",children:[(0,s.jsx)(a.zx,{className:"mb-4"}),(0,s.jsx)(S.l$,{position:"top-center"}),(0,s.jsxs)(f.Zp,{children:[(0,s.jsxs)(f.aR,{children:[(0,s.jsx)(f.ZB,{children:"プッシュ通知の送信・予約"}),(0,s.jsx)(f.BT,{children:"プッシュ通知を作成し、送信または予約します。"})]}),(0,s.jsxs)(f.Wu,{children:[(0,s.jsxs)("div",{className:"mb-4 text-sm text-muted-foreground",children:["現在のブラウザのタイムゾーン:",(0,s.jsx)("strong",{children:J})]}),(0,s.jsx)(j.lV,{...L,children:(0,s.jsxs)("form",{onSubmit:L.handleSubmit(H),className:"space-y-6",children:[(0,s.jsx)(j.zB,{control:L.control,name:"title",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{children:[(0,s.jsx)(j.lR,{children:"タイトル"}),(0,s.jsx)(j.MJ,{children:(0,s.jsx)(b.p,{placeholder:"通知のタイトル",...t})}),(0,s.jsx)(j.C5,{})]})}}),(0,s.jsx)(j.zB,{control:L.control,name:"body",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{children:[(0,s.jsx)(j.lR,{children:"本文"}),(0,s.jsx)(j.MJ,{children:(0,s.jsx)(C.T,{placeholder:"通知メッセージの本文",...t,rows:4})}),(0,s.jsx)(j.C5,{})]})}}),(0,s.jsx)(j.zB,{control:L.control,name:"imageUrl",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{children:[(0,s.jsx)(j.lR,{children:"画像URL (任意)"}),(0,s.jsx)(j.MJ,{children:(0,s.jsx)(b.p,{placeholder:"https://example.com/image.jpg",...t,type:"url"})}),(0,s.jsx)(j.Rr,{children:"通知に表示する画像のURL。AndroidとiOSで表示されます。"}),(0,s.jsx)(j.C5,{})]})}}),B.imageUrl&&(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(j.lR,{children:"画像プレビュー"}),(0,s.jsxs)("div",{className:"rounded-lg border bg-muted/50 p-4",children:[(0,s.jsx)("img",{src:B.imageUrl,alt:"通知画像プレビュー",className:"h-auto max-h-48 max-w-full rounded object-contain",onError:e=>{e.currentTarget.style.display="none",L.setError("imageUrl",{type:"manual",message:"画像を読み込めませんでした。"})}}),(0,s.jsx)("div",{className:"hidden text-sm text-muted-foreground",children:"画像を読み込めませんでした。URLを確認してください。"})]})]}),(0,s.jsx)(j.zB,{control:L.control,name:"data",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{children:[(0,s.jsx)(j.lR,{children:"データ (任意 JSON)"}),(0,s.jsx)(j.MJ,{children:(0,s.jsx)(C.T,{placeholder:'{ "screen": "お知らせ", "itemId": "123" }',...t,rows:3})}),(0,s.jsx)(j.Rr,{children:"通知と共に送信する追加データ (有効なJSON形式)。"}),(0,s.jsx)(j.C5,{})]})}}),(0,s.jsx)(w.w,{}),(0,s.jsx)(j.zB,{control:L.control,name:"sendToAll",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{className:"flex flex-row items-start space-x-3 space-y-0 rounded-md border p-4",children:[(0,s.jsx)(j.MJ,{children:(0,s.jsx)(p.S,{checked:t.value,onCheckedChange:t.onChange})}),(0,s.jsxs)("div",{className:"space-y-1 leading-none",children:[(0,s.jsx)(j.lR,{children:"全ユーザーに送信"}),(0,s.jsx)(j.Rr,{children:"登録されている全てのトークンに送信します。"})]})]})}}),!B.sendToAll&&(0,s.jsx)(j.zB,{control:L.control,name:"targetUserIds",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{children:[(0,s.jsx)(j.lR,{children:"対象ユーザーID"}),(0,s.jsx)(j.MJ,{children:(0,s.jsx)(b.p,{placeholder:"user_id_1, user_id_2, ...",...t,disabled:B.sendToAll})}),(0,s.jsx)(j.Rr,{children:"カンマ区切りのユーザーIDリスト。「全ユーザーに送信」でない場合は必須です。"}),(0,s.jsx)(j.C5,{})]})}}),(0,s.jsx)(w.w,{}),(0,s.jsxs)(j.eI,{className:"space-y-3",children:[(0,s.jsx)(j.lR,{children:"アクション"}),(0,s.jsx)(j.MJ,{children:(0,s.jsxs)(v.z,{onValueChange:e=>u(e),defaultValue:r,className:"flex flex-col space-y-1 md:flex-row md:space-x-4 md:space-y-0",children:[(0,s.jsxs)(j.eI,{className:"flex items-center space-x-3 space-y-0",children:[(0,s.jsx)(j.MJ,{children:(0,s.jsx)(v.C,{value:"send_now"})}),(0,s.jsx)(j.lR,{className:"font-normal",children:"今すぐ送信"})]}),(0,s.jsxs)(j.eI,{className:"flex items-center space-x-3 space-y-0",children:[(0,s.jsx)(j.MJ,{children:(0,s.jsx)(v.C,{value:"send_test",disabled:!F})}),(0,s.jsxs)(j.lR,{className:(0,_.cn)("font-normal",!F&&"text-muted-foreground"),children:["テスト送信 ",!F&&"(トークン未設定)"]})]}),(0,s.jsxs)(j.eI,{className:"flex items-center space-x-3 space-y-0",children:[(0,s.jsx)(j.MJ,{children:(0,s.jsx)(v.C,{value:"schedule"})}),(0,s.jsx)(j.lR,{className:"font-normal",children:"予約する"})]})]})}),(0,s.jsx)(j.C5,{})]}
1),"schedule"===r&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 rounded-md border p-4 md:grid-cols-2",children:[(0,s.jsx)(j.zB,{control:L.control,name:"scheduledAtDate",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{className:"flex flex-col",children:[(0,s.jsx)(j.lR,{children:"予約日"}),(0,s.jsxs)(N.AM,{children:[(0,s.jsx)(N.Wv,{asChild:!0,children:(0,s.jsx)(j.MJ,{children:(0,s.jsxs)(h.$,{variant:"outline",className:(0,_.cn)("w-full justify-start text-left font-normal",!t.value&&"text-muted-foreground"),children:[(0,s.jsx)(I.A,{className:"mr-2 size-4"}),t.value?(0,d.GP)(t.value,"PPP"):(0,s.jsx)("span",{children:"日付を選択"})]})})}),(0,s.jsx)(N.hl,{className:"w-auto p-0",align:"start",children:(0,s.jsx)(x.V,{mode:"single",selected:t.value,onSelect:t.onChange,disabled:e=>e<new Date(new Date().setDate(new Date().getDate()-1)),initialFocus:!0})})]}),(0,s.jsx)(j.C5,{})]})}}),(0,s.jsx)(j.zB,{control:L.control,name:"scheduledAtTime",render:e=>{let{field:t}=e;return(0,s.jsxs)(j.eI,{className:"flex flex-col",children:[(0,s.jsx)(j.lR,{children:"予約時刻 (HH:MM)"}),(0,s.jsx)(j.MJ,{children:(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsx)(T.A,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),(0,s.jsx)(b.p,{type:"time",...t,className:"pl-10"})]})}),(0,s.jsx)(j.C5,{})]})}})]}),V.isValid?(0,s.jsxs)("div",{className:"space-y-1 rounded-md bg-muted p-3 text-sm",children:[(0,s.jsxs)("p",{children:[(0,s.jsxs)("span",{className:"font-medium",children:["Selected (",J,"):"]}),null!=(e=V.local)?e:"N/A"]}),(0,s.jsxs)("p",{children:[(0,s.jsx)("span",{className:"font-medium",children:"Equivalent (UTC):"}),null!=(t=V.utc)?t:"N/A"]}),!V.isFuture&&(0,s.jsxs)("p",{className:"flex items-center font-medium text-destructive",children:[(0,s.jsx)(A.A,{className:"mr-1 size-4"})," Selected time is in the past."]})]}):B.scheduledAtDate||B.scheduledAtTime?(0,s.jsx)("div",{className:"rounded-md bg-muted p-3 text-sm text-destructive",children:"Please select a valid date and time."}):null]}),(0,s.jsxs)(h.$,{type:"submit",disabled:E,className:"w-full md:w-auto",children:[E&&"Processing...",!E&&"send_now"===r&&"Review & Confirm",!E&&"send_test"===r&&"Send Test Notification",!E&&"schedule"===r&&"Schedule Notification"]})]})})]})]}),(0,s.jsx)(g.lG,{open:U,onOpenChange:P,children:(0,s.jsxs)(g.Cf,{className:"sm:max-w-[425px]",children:[(0,s.jsxs)(g.c7,{children:[(0,s.jsx)(g.L3,{children:"通知内容の確認"}),(0,s.jsx)(g.rr,{children:"以下の内容で今すぐ送信します。よろしいですか?"})]}),(0,s.jsxs)("div",{className:"grid gap-4 py-4",children:[(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,s.jsx)(y.J,{htmlFor:"confirm-title",className:"text-right",children:"タイトル"}),(0,s.jsx)("p",{id:"confirm-title",className:"col-span-3 font-medium",children:B.title})]}),(0,s.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,s.jsx)(y.J,{htmlFor:"confirm-body",className:"pt-1 text-right",children:"本文"}),(0,s.jsx)("p",{id:"confirm-body",className:"col-span-3 whitespace-pre-wrap",children:B.body})]}),B.imageUrl&&(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,s.jsx)(y.J,{htmlFor:"confirm-image",className:"text-right",children:"画像"}),(0,s.jsx)("div",{className:"col-span-3",children:(0,s.jsx)("img",{src:B.imageUrl,alt:"通知画像",className:"h-auto max-w-32 rounded border"})})]}),B.data&&B.data.trim()&&(0,s.jsxs)("div",{className:"grid grid-cols-4 items-start gap-4",children:[(0,s.jsx)(y.J,{htmlFor:"confirm-data",className:"pt-1 text-right",children:"データ"}),(0,s.jsx)("pre",{id:"confirm-data",className:"col-span-3 overflow-x-auto rounded bg-muted p-2 text-xs",children:(0,s.jsx)("code",{children:(()=>{try{return JSON.stringify(JSON.parse(B.data),null,2)}catch(e){return"Invalid JSON"}})()})})]}),(0,s.jsxs)("div",{className:"grid grid-cols-4 items-center gap-4",children:[(0,s.jsx)(y.J,{htmlFor:"confirm-target",className:"text-right",children:"対象"}),(0,s.jsx)("p",{id:"confirm-target",className:"col-span-3",children:B.sendToAll?"全ユーザー":"指定ユーザー: ".concat(B.targetUserIds||"なし")})]})]}),(0,s.jsxs)(g.Es,{children:[(0,s.jsx)(g.HM,{asChild:!0,children:(0,s.jsx)(h.$,{variant:"outline",disabled:E,children:"キャンセル"})}),(0,s.jsx)(h.$,{onClick:$,disabled:E,children:E?"送信中...":"今すぐ送信"})]})]})})]})}},3540:(e,t,r)=>{"use strict";r.d(t,{S:()=>d});var s=r(23798),a=r(21462),l=r(5961),i=r(64856),n=r(94775);let d=a.forwardRef((e,t)=>
1{let{className:r,...a}=e;return(0,s.jsx)(l.bL,{ref:t,className:(0,n.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:(0,s.jsx)(l.C1,{className:(0,n.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(i.A,{className:"h-4 w-4"})})})});d.displayName=l.bL.displayName},4150:(e,t,r)=>{"use strict";r.d(t,{AM:()=>n,Wv:()=>d,dT:()=>o,hl:()=>c});var s=r(23798),a=r(21462),l=r(78175),i=r(94775);let n=l.bL,d=l.l9,o=l.Mz;l.i3;let c=a.forwardRef((e,t)=>{let{className:r,align:a="center",sideOffset:n=4,portal:d=!0,...o}=e,c=(0,s.jsx)(l.UC,{ref:t,align:a,sideOffset:n,className:(0,i.cn)("z-tooltip w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...o});return d?(0,s.jsx)(l.ZL,{children:c}):c});c.displayName=l.UC.displayName},11377:(e,t,r)=>{"use strict";r.d(t,{V:()=>m});var s=r(23798),a=r(70356),l=r(88471),i=r(42024);r(21462);var n=r(46772),d=r(11307),o=r(94775),c=r(1018);function m(e){let{className:t,classNames:r,showOutsideDays:m=!0,...u}=e;return(0,s.jsx)(n.hv,{locale:a.ja,formatters:{formatCaption:(e,t)=>{let r=(0,c.GP)(e,"yyyy"),s=(0,c.GP)(e,"M",{locale:null==t?void 0:t.locale});return"".concat(r,"年").concat(s,"月")}},showOutsideDays:m,className:(0,o.cn)("p-3",t),classNames:{months:"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",month:"space-y-4",caption:"flex justify-center pt-1 relative items-center",caption_label:"text-sm font-medium",nav:"space-x-1 flex items-center",nav_button:(0,o.cn)((0,d.r)({variant:"outline"}),"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-y-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",day:(0,o.cn)((0,d.r)({variant:"ghost"}),"h-9 w-9 p-0 font-normal aria-selected:opacity-100"),day_range_end:"day-range-end",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...r},components:{IconLeft:e=>{let{...t}=e;return(0,s.jsx)(l.A,{className:"size-4"})},IconRight:e=>{let{...t}=e;return(0,s.jsx)(i.A,{className:"size-4"})}},...u})}m.displayName="Calendar"},45244:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/send-notification",function(){return r(1006)}])},52841:(e,t,r)=>{"use strict";r.d(t,{C5:()=>j,MJ:()=>p,Rr:()=>g,eI:()=>x,lR:()=>f,lV:()=>o,zB:()=>m});var s=r(23798),a=r(21462),l=r(93089),i=r(73215),n=r(94775),d=r(26194);let o=i.Op,c=a.createContext({}),m=e=>{let{...t}=e;return(0,s.jsx)(c.Provider,{value:{name:t.name},children:(0,s.jsx)(i.xI,{...t})})},u=()=>{let e=a.useContext(c),t=a.useContext(h),{getFieldState:r,formState:s}=(0,i.xW)(),l=r(e.name,s);if(!e)throw Error("useFormField should be used within <FormField>");let{id:n}=t;return{id:n,name:e.name,formItemId:"".concat(n,"-form-item"),formDescriptionId:"".concat(n,"-form-item-description"),formMessageId:"".concat(n,"-form-item-message"),...l}},h=a.createContext({}),x=a.forwardRef((e,t)=>
1{let{className:r,...l}=e,i=a.useId();return(0,s.jsx)(h.Provider,{value:{id:i},children:(0,s.jsx)("div",{ref:t,className:(0,n.cn)("space-y-2",r),...l})})});x.displayName="FormItem";let f=a.forwardRef((e,t)=>{let{className:r,...a}=e,{error:l,formItemId:i}=u();return(0,s.jsx)(d.J,{ref:t,className:(0,n.cn)(l&&"text-destructive",r),htmlFor:i,...a})});f.displayName="FormLabel";let p=a.forwardRef((e,t)=>{let{...r}=e,{error:a,formItemId:i,formDescriptionId:n,formMessageId:d}=u();return(0,s.jsx)(l.DX,{ref:t,id:i,"aria-describedby":a?"".concat(n," ").concat(d):"".concat(n),"aria-invalid":!!a,...r})});p.displayName="FormControl";let g=a.forwardRef((e,t)=>{let{className:r,...a}=e,{formDescriptionId:l}=u();return(0,s.jsx)("p",{ref:t,id:l,className:(0,n.cn)("text-sm text-muted-foreground",r),...a})});g.displayName="FormDescription";let j=a.forwardRef((e,t)=>{let{className:r,children:a,...l}=e,{error:i,formMessageId:d}=u(),o=i?String(null==i?void 0:i.message):a;return o?(0,s.jsx)("p",{ref:t,id:d,className:(0,n.cn)("text-sm font-medium text-destructive",r),...l,children:o}):null});j.displayName="FormMessage"},58701:(e,t,r)=>{"use strict";r.d(t,{BT:()=>o,Wu:()=>c,ZB:()=>d,Zp:()=>i,aR:()=>n,wL:()=>m});var s=r(23798),a=r(21462),l=r(94775);let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("rounded-lg border border-border/60 bg-card text-card-foreground shadow-soft",r),...a})});i.displayName="Card";let n=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",r),...a})});n.displayName="CardHeader";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("h3",{ref:t,className:(0,l.cn)("text-xl font-extrabold tracking-tight",r),...a})});d.displayName="CardTitle";let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",r),...a})});o.displayName="CardDescription";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",r),...a})});c.displayName="CardContent";let m=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",r),...a})});m.displayName="CardFooter"},61602:(e,t,r)=>{"use strict";r.d(t,{C:()=>o,z:()=>d});var s=r(23798),a=r(21462),l=r(17945),i=r(39456),n=r(94775);let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.bL,{className:(0,n.cn)("grid gap-2",r),...a,ref:t})});d.displayName=l.bL.displayName;let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.q7,{ref:t,className:(0,n.cn)("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),...a,children:(0,s.jsx)(l.C1,{className:"flex items-center justify-center",children:(0,s.jsx)(i.A,{className:"h-2.5 w-2.5 fill-current text-current"})})})});o.displayName=l.q7.displayName},63045:(e,t,r)=>{"use strict";r.d(t,{T:()=>i});var s=r(23798),a=r(21462),l=r(94775);let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("textarea",{className:(0,l.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3.5 py-2.5 text-sm ring-offset-background transition-[border-color,box-shadow] duration-200 placeholder:text-muted-foreground focus-visible:border-primary/60 focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-primary/15 disabled:cursor-not-allowed disabled:opacity-50",r),ref:t,...a})});i.displayName="Textarea"},77277:(e,t,r)=>{"use strict";r.d(t,{wc:()=>N,zx:()=>y});var s=r(23798),a=r(12173),l=r(11307),i=r(94775),n=r(9468),d=r(57210),o=r(41042),c=r(41709),m=r(66810),u=r(93337),h=r(15998),x=r(21655),f=r(54714),p=r(62150),g=r.n(p),j=r(81131);let b=[{href:"/admin/support",label:"サポート",icon:n.A},{href:"/admin/reported-content",label:"通報・監査",icon:d.A},{href:"/admin/sensitive-content",label:"センシティブ",icon:o.A},{href:"/admin/image-generation-moderation",label:"生成画像チェック",icon:c.A},{href:"/admin/video-moderation",label:"生成動画チェック",icon:c.A},{href:"/admin/cms",label:"CMS",icon:m.A},{href:"/admin/dmm-card-listing",label:"DMM掲載カード",icon:u.A},{href:"/admin/send-notification",label:"通知配信",icon:h.A},{href:"/admin/broadcast-ranking",label:"配信ランキング",icon:x.A},{href:"/admin/show-planner",label:"Show Planner",icon:f.A}];function y(e){let{className:t}=e,r=(0,j.useRouter)(),{t:n}=(0,a.Bd)();return(0,s.jsx)("nav",{"aria-label":"管理メニュー",className:(0,i.cn)("-mx-1 flex gap-1 overflow-x-auto pb-1 sm:flex-wrap sm:overflow-visible",t),children:b.map(e=>{let t=r.pathname===e.href,a=e.icon;return(0,s.jsx)(l.$,{asChild:!0,size:"sm",variant:t?"secondary":"ghost",className:"flex-none",children:(0,s.jsxs)(g(),{href:e.href,"aria-current":t?"page":void 0,children:[(0,s.jsx)(a,{className:"mr-2 size-4"}),n(e.label)]})},e.href)})})}function N(e){let{title:t,description:r,actions:a}=e;return(0,s.jsxs)("header",{className:"space-y-3 border-b border-border pb-3",children:[(0,s.jsx)(y,{}),(0,s.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-2xl font-semibold",children:t}),r?(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:r}):null]}),a?(0,s.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:a}):null]})]})}},85696:(e,t,r)=>{"use strict";r.d(t,{w:()=>n});var s=r(23798),a=r(21462),l=r(98221),i=r(94775);let n=a.forwardRef((e,t)=>
1{let{className:r,orientation:a="horizontal",decorative:n=!0,...d}=e;return(0,s.jsx)(l.b,{ref:t,decorative:n,orientation:a,className:(0,i.cn)("shrink-0 bg-border","horizontal"===a?"h-[1px] w-full":"h-full w-[1px]",r),...d})});n.displayName=l.b.displayName}},e=>{e.O(0,[2150,2232,2572,3894,8408,9220,8213,6770,636,6593,8792],()=>e(e.s=45244)),_N_E=e.O()}]);

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.