UNPKG

mira-app-server

Version:

Mira Server - standalone server application using mira-app-core

2 lines (1 loc) 3.21 kB
import{d1 as d,cW as C,d7 as w,cL as g}from"./index-OOzZz4T6.js";const m={id:"files",title:"services.searchServices.files.title",desc:"services.searchServices.files.desc",icon:"description",getTotal:()=>C().files,search:async e=>{const o=C(),t=e.toLowerCase().trim();return t?o.files.filter(r=>{const s=r.name.toLowerCase().includes(t),i=r.metadata?.extension?.toLowerCase().includes(t),n=r.mimeType?.toLowerCase().includes(t),a=Array.isArray(r.tags)&&r.tags.some(l=>l.toLowerCase().includes(t)),c=r.path?.toLowerCase().includes(t);return s||i||n||a||c}).sort((r,s)=>{const i=r.name.toLowerCase()===t,n=s.name.toLowerCase()===t;if(i&&!n)return-1;if(!i&&n)return 1;const a=r.name.toLowerCase().startsWith(t),c=s.name.toLowerCase().startsWith(t);return a&&!c?-1:!a&&c?1:r.name.length-s.name.length}):[]},itemClick:e=>{const o=d();if(!e||!e.id){console.warn("Invalid file item:",e);return}const t=e.mimeType||"";t.startsWith("image/")?o.push(`/image-preview/${e.id}`):t.startsWith("video/")?o.push(`/video-preview/${e.id}`):t.startsWith("audio/")?o.push(`/audio-preview/${e.id}`):o.push(`/file-preview/${e.id}`)},template:null},v={id:"tags",title:"services.searchServices.tags.title",desc:"services.searchServices.tags.desc",icon:"label",getTotal:()=>w().tags,search:async e=>{const o=w(),t=e.toLowerCase().trim();return t?o.tags.filter(r=>{const s=r.title.toLowerCase().includes(t),i=r.description?.toLowerCase().includes(t);return s||i}).sort((r,s)=>{const i=r.title.toLowerCase()===t,n=s.title.toLowerCase()===t;if(i&&!n)return-1;if(!i&&n)return 1;const a=r.title.toLowerCase().startsWith(t),c=s.title.toLowerCase().startsWith(t);if(a&&!c)return-1;if(!a&&c)return 1;const l=r.fileCount||0,u=s.fileCount||0;return l!==u?u-l:r.title.length-s.title.length}):[]},itemClick:e=>{const o=d();if(!e||!e.id){console.warn("Invalid tag item:",e);return}o.push({path:"/",query:{tag:e.id.toString(),tagName:e.title}})},template:null},L={id:"folders",title:"services.searchServices.folders.title",desc:"services.searchServices.folders.desc",icon:"folder",getTotal:()=>g().folders,search:async e=>{const o=g(),t=e.toLowerCase().trim();return t?o.folders.filter(r=>{const s=r.title.toLowerCase().includes(t),i=r.path?.toLowerCase().includes(t),n=r.description?.toLowerCase().includes(t);return s||i||n}).sort((r,s)=>{const i=r.title.toLowerCase()===t,n=s.title.toLowerCase()===t;if(i&&!n)return-1;if(!i&&n)return 1;const a=r.title.toLowerCase().startsWith(t),c=s.title.toLowerCase().startsWith(t);if(a&&!c)return-1;if(!a&&c)return 1;const l=!r.parent_id||r.parent_id===0,u=!s.parent_id||s.parent_id===0;if(l&&!u)return-1;if(!l&&u)return 1;const f=r.fileCount||0,S=s.fileCount||0;return f!==S?S-f:r.title.length-s.title.length}):[]},itemClick:e=>{const o=d();if(!e||!e.id){console.warn("Invalid folder item:",e);return}o.push({path:"/",query:{folder:e.id.toString(),folderName:e.title}})},template:null},p=[m,v,L];function T(e){return p.find(o=>o.id===e)}function M(e){p.forEach(o=>{try{e(o)}catch(t){console.error(`❌ Failed to register search service "${o.title}":`,t)}})}export{m as fileSearchService,L as folderSearchService,T as getSearchServiceById,M as registerAllSearchServices,p as searchServices,v as tagSearchService};