1import{u as y,j as r,a as d}from"./@react-query-B7aWO4oz.js";import{bh as F,bi as B,bj as V,bk as D,bl as E,v as P,bm as g,bn as R,bo as _,bp as O,bq as N,br as x,bs as U,bt as A,bu as L,bv as T,bw as k,bx as I,by as v,bz as M,bA as w,bB as Q,bC as $}from"./main-D6lnA1fr.js";import{u as X,O as q}from"./@tanstack-router-C5q29I5r.js";import{S as z}from"./support-secrets-note-D3cAtLv4.js";import{u as J,a as Y,B as G,b as H}from"./use-support-actor-DEwBnegy.js";import{u as K,S as W}from"./use-file-export-BzV4Lsld.js";import"./index-8ntJgCKG.js";import"./@radix-ui-CWA3xdIh.js";import"./zod-FlNnpX36.js";import"./search-input-CysCaUGj.js";import"./input-group-B25bXJZ5.js";import"./textarea-BL_Sl69j.js";import"./error-fallback-DfN8XgK7.js";import"./suspended-query-error-boundary-BRCj4Kgc.js";import"./spinner-B-Mm0pDE.js";import"./badge-51NKKn01.js";import"./tooltip-B-boOwwp.js";import"./get-api-error-message-uyVq6Qd7.js";import"./download-file-D-S-vilZ.js";const j=1e4;function Z(){const e=J(),{sort_by:t,sort_dir:a}=F.useSearch(),i=t??E,h=a??D,p=y(B(e)),{run:S,isPending:f}=K(()=>V(P,e,{sort_by:i,sort_dir:h}),{successMessage:"Builds exported"}),n=p.data;let u;return p.isPending?u="Counting buildsâ¦":n===0?u="No builds match the current filters.":n!==void 0&&n>j&&(u=`Too many builds to export (${n.toLocaleString()}). Narrow the filters to ${j.toLocaleString()} or fewer.`),r.jsx(W,{label:"Export builds",onClick:S,isPending:f,disabledReason:u})}const ee=e=>{const t=[],a=I(v(e.grid));a.length>0&&t.push({id:"grid",values:a});const i=M(v(e.status),$);return i.length>0&&t.push({id:"status",values:i}),(e.duration_from!==void 0||e.duration_to!==void 0)&&t.push({id:"duration",values:{from:e.duration_from,to:e.duration_to}}),e.job_runner&&w(e.job_runner,Q)&&t.push({id:"job_runner",values:e.job_runner}),t};function ye(){const e=g.useSearch(),t=X({from:g.fullPath}),a=Y(),i=d.useMemo(()=>ee(e),[]),h=d.useMemo(()=>R(e),[]),p=e.search||"",S=d.useCallback(s=>{t({search:o=>{const l=_(s,"grid"),m=_(s,"status"),c=O(s,"duration"),b=N(s,"job_runner");return{...o,grid:x(l),status:x(m),duration_from:c.from,duration_to:c.to,job_runner:b}},replace:!0})},[t]),f=d.useCallback(s=>{const o=U(s),l=o===A.CUSTOM,m=l?s.from?.toISOString():void 0,c=l?s.to?.toISOString():void 0;L({preset:o,from:m,to:c}),t({search:b=>({...b,preset:l?void 0:o,from:m,to:c}),replace:!0})},[t]),n=d.useCallback(s=>{t({search:o=>({...o,search:s||void 0}),replace:!0})},[t]),u=d.useCallback(()=>{T(),t({search:s=>{const{from:o,to:l,preset:m,search:c,grid:b,status:te,duration_from:se,duration_to:re,job_runner:oe,...C}=s;return C},replace:!0})},[t]);return r.jsx(k,{initialFilters:i,onFiltersChange:S,children:r.jsxs(G,{initialDateRange:h,initialSearchValue:p,onDateRangeChange:f,onSearchChange:n,onClearFilters:u,children:[r.jsxs("div",{className:"px-4 py-2 border-b border-border flex items-center justify-between gap-2",children:[r.jsx(H,{}),a&&r.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[r.jsx(z,{text:"Contains secrets (command lines). Internal use only."}),r.jsx(Z,{})]})]}),r.jsx("div",{className:"flex-1 min-h-0",children:r.jsx(q,{})})]})})}export{ye as component};
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.