PageSourceSearch

https://daily-tohoku.news/_nuxt/Bj8p_Pwv.js

js daily-tohoku.news collected 2026-09-24 18:19:15 UTC 9,072 bytes, 1 lines download raw bytes

1import{_ as X}from"./BXCSZbS7.js";import{a0 as K,u as Y,w as J,e as m,f as F,hb as Q,hv as D,gj as N,h as R,r as E,U as P,i7 as $,c as w,o as u,a as h,E as g,q as a,s as I,aM as Z,aB as B,M as H,K as G,v as ee,D as te,t as W,n as C,L as ae,y as se,C as M,l as O,m as re,R as z,a3 as ne,X as oe,k as de,a7 as le,aS as ce}from"./BTeorgPV.js";import{_ as ie}from"./COezZxy9.js";import{_ as ue,u as me}from"./BRIxGcKU.js";import{a as j,i as A}from"./DxuKA5E1.js";import{u as pe,a as ye}from"./D3PdyVPg.js";import{u as fe}from"./UlZxZPHJ.js";const _e=async({perPage:p})=>{const e=K(),n=pe(),{handleAsyncDataError:r}=F(),y=`viewer-search-${[e.query.code??"",e.query.keywords??"",e.query.startdate??"",e.query.enddate??""].join("|")}`,{data:d,error:o,refresh:f,pending:l}=await Y(y,async()=>{const _=await n.getCodeList(),V=e.query.code?String(e.query.code).split(","):[],q=e.query.keywords?String(e.query.keywords).split(","):void 0,s=e.query.startdate?String(e.query.startdate):void 0,t=e.query.enddate?String(e.query.enddate):void 0,i={code:V,keywords:q,startdate:s,enddate:t,start:1,count:p},c=await n.searchList(i);return{codeList:_,searchList:c}},{server:!0,lazy:!1});J(o,_=>{_&&r(o)},{immediate:!0});const S=m(()=>d.value?.codeList.details.find(_=>_.code===String(e.query.code))??void 0),x=m(()=>d.value?.searchList.details?d.value.searchList.details:[]),b=m(()=>d.value?.codeList.details?d.value.codeList.details:[]);return{codeItem:S,searchList:x,codeList:b,refresh:f,pending:l}},T=Q({keywords:N(D()).optional(),code:N(D()),startdate:D().optional(),enddate:D().optional()}).superRefine((p,e)=>{const n=(p.startdate??"").trim()!=="",r=(p.enddate??"").trim()!=="",y=p.keywords&&p.keywords.length>0&&p.keywords.some(o=>o.trim()!=="");if(n&&!r){e.addIssue({code:"custom",message:"終了日を入力してください",path:["enddate"]});return}if(r&&!n){e.addIssue({code:"custom",message:"開始日を入力してください",path:["startdate"]});return}!y&&!(n&&r)&&e.addIssue({code:"custom",message:"掲載期間またはキーワードのいずれかを入力してください",path:["keywords"]})}),ve={class:"flex w-full flex-col"},he={class:"flex flex-row items-start space-x-2 md:space-x-4"},ge={class:"flex-center mt-4"},we=R({__name:"index",props:{code:{},params:{}},emits:["click:search"],setup(p,{emit:e}){const n=p,r=e,y=s=>s.substring(0,4)+"-"+s.substring(4,6)+"-"+s.substring(6,8),d=E(n.params?.keywords?.join(" ")??""),o=E(P(n.params?.startdate)?"":y(n.params.startdate)),f=E(P(n.params?.enddate)?"":y(n.params.enddate)),l=E({keywords:n.params?.keywords??[""],code:[n.code],startdate:n.params?.startdate??"",enddate:n.params?.enddate??""}),{handleValidationError:S}=me(),x=m(()=>j(l.value.keywords??[])&&$(l.value.startdate??"")&&$(l.value.enddate??"")),b=s=>{const t=s.target;t instanceof HTMLInputElement&&(d.value=t.value,l.value.keywords=t.value.split(" "))},_=s=>{const t=s.target;t instanceof HTMLInputElement&&(o.value=t.value,l.value.startdate=t.value.replace(/-/g,""))},V=s=>{const t=s.target;t instanceof HTMLInputElement&&(f.value=t.value,l.value.enddate=t.value.replace(/-/g,""))},q=s=>{try{const t=T.parse(s.data),i=Object.entries(t).map(([L,v])=>[L,v]).filter(([L,v])=>{switch(L){case"code":case"keywords":return!(!(v instanceof Array)||j(v)||v.every(k=>$(k)));case"startdate":case"enddate":return v!=="";default:return!0}}),c=Object.fromEntries(i);r("click:search",c)}catch{return}};return(s,t)=>{const i=Z,c=ie,L=G,v=ue;return u(),w("div",ve,[t[5]||(t[5]=h("div",{class:"text-md pb-4"}," 紙面の検索を行う場合は、日付と検索キーワードを入れて検索してください。 ",-1)),g(v,{schema:a(T),state:a(l),onSubmit:q,onError:a(S),class:"flex w-full flex-col space-y-4","validate-on":["input","blur"]},{default:I(()=>[h("div",he,[g(c,{name:"startdate",label:"掲載期間"},{default:I(()=>[g(i,{modelValue:a(o),"onUpdate:modelValue":t[0]||(t[0]=k=>B(o)?o.value=k:null),class:"w-[120px] md:w-[150px]",type:"date",onChange:_},null,8,["modelValue"])]),_:1}),t[3]||(t[3]=h("div",{class:"text-md pt-13.5"},"から",-1)),g(c,{name:"enddate",label:" "},{default:I(()=>[g(i,{modelValue:a(f),"onUpdate:modelValue":t[1]||(t[1]=k=>B(f)?f.value=k:null),class:"w-[120px] md:w-[150px]",type:"date",onCh
1ange:V},null,8,["modelValue"])]),_:1}),t[4]||(t[4]=h("div",{class:"text-md pt-13.5"},[H("まで"),h("span",{class:"hidden md:inline"},"の期間")],-1))]),g(c,{name:"keywords",label:"検索キーワード"},{default:I(()=>[g(i,{modelValue:a(d),"onUpdate:modelValue":t[2]||(t[2]=k=>B(d)?d.value=k:null),class:"w-full",type:"text",onChange:b},null,8,["modelValue"])]),_:1}),h("div",ge,[g(L,{buttonStyle:"primary",type:"submit",label:"検索",disabled:a(x)},null,8,["disabled"])])]),_:1},8,["schema","state","onError"])])}}}),xe={class:"text-lg font-semibold"},be={class:"mt-4 flex flex-col items-center rounded-sm border-1 border-gray-200 px-5 py-5"},ke={key:0,class:"flex aspect-[3/4] w-full items-center justify-center bg-gray-100 text-sm text-gray-400"},Ee=R({__name:"Item",props:{data:{}},setup(p){const e=p,{formatDate:n}=ee(),r=m(()=>n(e.data.K_keisaibi,te.DATE)),y=m(()=>e.data.S_gazou_samuneiru_m),{launchViewer:d}=ye({code:e.data.K_memo,id:e.data.S_shimen_id,date:e.data.K_keisaibi,page:e.data.page}),o=E(!1);return(f,l)=>{const S=ae;return u(),w("button",{type:"button",onClick:l[1]||(l[1]=(...x)=>a(d)&&a(d)(...x)),class:"flex w-full cursor-pointer flex-col"},[h("div",xe,W(a(r)),1),h("div",be,[a(o)||!a(y)?(u(),w("div",ke," 画像を表示できません ")):(u(),C(S,{key:1,src:a(y),alt:a(r),class:"w-full",onError:l[0]||(l[0]=x=>o.value=!0)},null,8,["src","alt"]))])])}}}),Se={class:"flex w-full flex-col px-5"},Le={class:"w-full pt-5 md:pt-10"},Ve={key:0,class:"mx-auto grid w-full max-w-full grid-cols-2 gap-5 pt-5 md:grid-cols-3 md:gap-10 md:pt-10"},qe={key:1,class:"mx-auto w-full max-w-full pt-5 md:pt-10"},Ie={key:2,class:"mt-10 flex justify-center"},De={key:1,class:"mx-auto w-full max-w-full pt-5 md:pt-10"},Ce=R({__name:"List",props:{codeItem:{},params:{},items:{},perPage:{},hasRetriedOnEmpty:{type:Boolean,default:!1}},setup(p){const e=p,n=se(),{getSearchList:r}=fe(),{handleError:y}=F(),d=E(1),o=E(e.items),f=E(!1),l=m(()=>"検索結果一覧"),S=m(()=>A(e.items)),x=m(()=>A(o.value)),b=m(()=>o.value.length>=e.perPage*d.value),_=m(()=>f.value),V=async s=>{const t=new URLSearchParams;Object.entries(s).forEach(([i,c])=>{c instanceof Array?t.append(i,c.join(",")):t.append(i,String(c))}),n.push({name:z.VIEWERS_SEARCH,query:{...Object.fromEntries(t.entries())}})},q=async()=>{try{f.value=!0;const s={code:[e.codeItem.code],keywords:e.params.keywords??[],startdate:e.params.startdate??"",enddate:e.params.enddate??"",start:d.value*e.perPage+1,count:e.perPage},i=(await r(s)).details;A(i)&&(o.value=[...o.value,...i]),d.value++}catch(s){y(s)}finally{f.value=!1}};return(s,t)=>{const i=X,c=we,L=Ee,v=G;return u(),w("div",Se,[g(i,null,{default:I(()=>[H(W(a(l)),1)]),_:1}),h("div",Le,[g(c,{code:s.codeItem.code,params:s.params,"onClick:search":V},null,8,["code","params"])]),a(S)?(u(),w(O,{key:0},[a(x)?(u(),w("div",Ve,[(u(!0),w(O,null,re(a(o),k=>(u(),C(L,{key:k.S_shimen_id,data:k},null,8,["data"]))),128))])):(u(),w("div",qe,t[0]||(t[0]=[h("div",{class:"text-center text-sm text-gray-500"},"検索結果がありません。",-1)]))),a(b)?(u(),w("div",Ie,[g(v,{disabled:a(_),buttonStyle:"primary",label:"もっと見る",type:"button",onClick:q},null,8,["disabled"])])):M("",!0)],64)):s.hasRetriedOnEmpty?(u(),w("div",De,t[1]||(t[1]=[h("div",{class:"text-center text-sm text-gray-500"},"紙面がありません。",-1)]))):M("",!0)])}}}),Re={key:1,class:"mx-auto w-full max-w-full pt-5 md:pt-10"},U=6,je=R({__name:"index",async setup(p){let e,n;const r=K(),y=m(()=>r.query.code?String(r.query.code).split(","):void 0);if(P(y.value))throw ne({statusCode:404,statusMessage:"Not Found",message:"紙面コードが指定されていません"});const d=m(()=>({code:y.value??[],keywords:r.query.keywords?String(r.query.keywords).split(","):void 0,startdate:r.query.startdate?String(r.query.startdate):void 0,enddate:r.query.enddate?String(r.query.enddate):void 0})),{codeItem:o,searchList:f,codeList:l,refresh:S,pending:x}=([e,n]=oe(()=>_e({perPage:U})),e=await e,n(),e),b=E(!1),_=E(!1),V=m(()=>!o.value||!f.value.length),q=async()=>{if(!(b.value||_.value||!V.value||x.value)){_.value=!0;try{await S()}finally{b.value=!0,_.value=!1}}};de(()=>{q()});const{generateBreadcrumbPaths:s}=ce(),t=m(()=>({text:l.value.find(c=>c.code===String(r.query.code))?.name??"",routeName:z.VIEWERS_INDEX,routeParam
1s:{code:String(r.query.code)}}));return(i,c)=>{const L=Ce,v=le;return u(),C(v,{breadcrumbPaths:a(s)({route:a(r),additional:a(t)}),showGeneralSideBar:!1},{default:I(()=>[a(o)?(u(),C(L,{key:0,codeItem:a(o),params:a(d),items:a(f),perPage:U,hasRetriedOnEmpty:a(b)},null,8,["codeItem","params","items","hasRetriedOnEmpty"])):a(b)&&!a(_)?(u(),w("div",Re,c[0]||(c[0]=[h("div",{class:"text-center text-sm text-gray-500"},"紙面がありません。",-1)]))):M("",!0)]),_:1},8,["breadcrumbPaths"])}}});export{je as default};

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.