1import{u as o}from"./query-DfKp04n6.js";import{K as s}from"./index-CD3Ytjl1.js";const l=()=>o({queryKey:["course_previews"],queryFn:async()=>{const{data:e}=await s.from("course_previews").select("*").order("sort_order");return e||[]}}),f=()=>o({queryKey:["course_outcomes"],queryFn:async()=>{const{data:e}=await s.from("course_outcomes").select("*").order("sort_order");return e||[]}}),g=()=>o({queryKey:["admin_course_previews"],queryFn:async()=>{const{data:e}=await s.from("course_previews").select("*").order("sort_order");return e||[]}}),_=()=>o({queryKey:["admin_course_outcomes"],queryFn:async()=>{const{data:e}=await s.from("course_outcomes").select("*").order("sort_order");return e||[]}}),i=["drive.google.com","docs.google.com","sheets.google.com","slides.google.com"];function c(e){if(!e)return!1;try{const r=new URL(e);return i.some(t=>r.hostname===t||r.hostname.endsWith("."+t))}catch{return/^[a-zA-Z0-9_-]{20,}$/.test(e)}}function n(e){if(!e)return null;if(/^[a-zA-Z0-9_-]{20,}$/.test(e))return e;if(!c(e))return null;let r=e.match(/\/file\/d\/([a-zA-Z0-9_-]+)/);return r||(r=e.match(/[?&]id=([a-zA-Z0-9_-]+)/),r)||(r=e.match(/\/d\/([a-zA-Z0-9_-]+)/),r)?r[1]:null}function u(e){const r=n(e);return r?`https://drive.google.com/file/d/${r}/preview`:null}function a(e,r="w800"){const t=n(e);return t?`https://drive.google.com/thumbnail?id=${t}&sz=${r}`:null}function y(e){const r=n(e);return r?`https://drive.google.com/thumbnail?id=${r}&sz=w800`:null}function h(e,r){return r==="video"?u(e):r==="image"?a(e):u(e)}export{u as a,f as b,a as c,_ as d,g as e,h as f,y as g,l as u};
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.