PageSourceSearch

https://get.checkfront.com/lib/vite/ProductClosures-7ee8e0e9.js

js checkfront.com collected 2026-10-02 02:17:32 UTC 8,216 bytes, 1 lines download raw bytes

1import{e as ge,j as e,c as P,F as De,P as s}from"./componentLoader.jsx-2026.10.01-3d77ab87.js";import{r,l as ye}from"./logger-3e1e3eff.js";import{i as we}from"./isEqual-8f2d02ec.js";import{E as Se}from"./Edit-1d071c82.js";import{B as Te}from"./Button-daed7707.js";import{G as C}from"./Grid-95575dae.js";import{I as Ee}from"./Icon-7e7c4bf4.js";import{M as z}from"./Modal-ad90e94a.js";import{P as Fe,a as He}from"./Page-6cd9626c.js";import{T as O}from"./TableCell-bc13db52.js";import{T as u}from"./TableHeader-146e1398.js";import{T as Pe}from"./Text-db1ebb07.js";import{T as N}from"./Title-9de200f3.js";import{T as Re}from"./Toggle-0534da6a.js";import{D as ke}from"./DropdownMultiFilter-4d637f54.js";import{u as M}from"./filterParamsToQueryString-45819f69.js";import{H as Ie}from"./HelpButton-7bf06877.js";import{C as Be}from"./ClosuresModalContainer-e182f120.js";import{P as _e}from"./PagedTable-82d94991.js";import{D as Oe}from"./DateFilter-c37baa56.js";import{D as Me}from"./DropdownFilter-3307d2a1.js";import{S as Ae,bh as J,bi as ve,aw as je}from"./constants-9e5fc5e0.js";import{c as xe}from"./createAxiosInstance-650ff559.js";import"./index-e642497c.js";import{f as Le,t as We}from"./TimeslotDropdown-6e41a041.js";import{F as Ue}from"./FilterRow-d083834f.js";import"./vendor-21ae10b1.js";import"./brand-387037d2.js";import"./universe.js-2026.10.01-3d77ab87.js";import"./index-213dd4d3.js";import"./_baseIsEqual-8f542891.js";import"./_Uint8Array-4a201bc7.js";import"./eq-9168d086.js";import"./_equalByTag-f809a93d.js";import"./_getAllKeys-a79fe303.js";import"./_isIndex-1f105582.js";import"./flatten-a652afe7.js";import"./DropDown2-e3cea584.js";import"./index-6a18cc6d.js";import"./index-b6a278bc.js";import"./HelpCircle-0303da15.js";import"./index-2089c6e8.js";import"./MinusCircle-a5f04f63.js";import"./Products-9cf42cda.js";import"./DateRangePicker-86f5a8c5.js";import"./moment-3238fc2d.js";import"./EmptyState-cc61b9d7.js";import"./FieldLabel-b7622dd4.js";import"./TextField-9054bcd3.js";import"./TextStyle-4fbf16a4.js";import"./ApplicableDays-bc43fd15.js";import"./ButtonGroup-23aaa3d9.js";import"./SelectableProducts-c4f5314b.js";import"./CollapsibleRow-744668c6.js";import"./Checkbox-d2bb405c.js";import"./index-2506ba77.js";import"./Link-bec2c870.js";import"./Table-78d06123.js";import"./hooks-70a7028d.js";import"./tokens-95b521bf.js";import"./customColumns-1c693f03.js";import"./useQuery-b047c4c2.js";import"./orderBy-697545e4.js";import"./_baseOrderBy-8b0fc0ae.js";import"./toString-4b4600cf.js";import"./isSymbol-34885b27.js";import"./_baseIteratee-2da5a91f.js";import"./_baseMap-d2567cee.js";import"./_baseEach-5996395c.js";import"./debounce-a96a8bf6.js";import"./toNumber-8f88376b.js";import"./Tooltip-9af70d1f.js";import"./Columns-7dbee6ce.js";const Ge="/inventory/product-closures/";function K(i,a){return(i||[]).map(l=>{const b=(l.productIds||[]).map(p=>{var g,f,t;return(t=(g=a.get(Number(p)))==null?void 0:g.name)!=null?t:(f=a.get(p))==null?void 0:f.name}).filter(Boolean);return{...l,products:b.join(", ")}})}function qe(i){const a=je.find(l=>we(l.value,i));return a?a.label:"Custom"}function Q(i){return(i||[]).map(a=>{var l,b,p;return{...a,applicableBookingDays:(b=a.applicableBookingDays)!=null?b:qe((l=a.applicableDaysOfWeek)!=null?l:{}),timeslots:We((p=a.timeslots)!=null?p:[])}})}function V(i){const a=new Map;for(const l of i||[])a.set(l.productId,l);return a}$e.propTypes={csrfToken:s.string,rows:s.array,count:s.number,reportId:s.string,customColumns:s.array,products:s.array,categories:s.array,translations:s.object,dateFormat:s.string,dateOptions:s.arrayOf(s.shape({label:s.string.isRequired,value:s.any.isRequired})),startDate:s.string,endDate:s.string};function $e({csrfToken:i,rows:a=[],count:l,reportId:b="product-closures",customColumns:p=[],categories:g,products:f,translations:t,dateFormat:X,dateOptions:Y=[],startDate:Z="",endDate:ee=""}){const te=ge(),[oe,A]=r.useState(null),[re,v]=r.useState(!1),[ae,R]=r.useState(!1),[j,y]=r.useState(!1),[w,se]=M("date","F*"),[k,le]=M("closure_status",J),[D,ie]=M("category_id",[]),[I,x]=r.useState(Z),[B,L]=r.useState(ee),[W,ce]=r.useState(()=>p||[]),[ne,U]=r.useState(""),G=r.useMemo(()=>V(f),[f]),[de,_]=r.useState(()=>({cachedRows:Q(K(a||[],V(f))),tally:{},count:l})),me=r.useMemo(()=>({date:w,start_date:w==="C"?I:null,end_date:w==="C"?B:null,closure_status:k,
1category_id:D!=null&&D.length?D:null}),[D,k,w,B,I]),ue=r.useCallback((o,{page:c,pageSize:d}={})=>{if(!o)return;const h=Q(K(o.rows||[],G)),m=o.count;_(S=>{if(c===void 0||d===void 0)return{cachedRows:[...Array(m)].map((E,n)=>{var F;return(F=h[n])!=null?F:S.cachedRows[n]}),count:m,tally:o.tally||{}};const T=c*d;return{cachedRows:[...Array(m)].map((E,n)=>n>=T&&n<T+h.length?h[n-T]:S.cachedRows[n]),count:m,tally:o.tally||{}}})},[G]),pe=[{value:Ae,label:t.all},{value:J,label:t.enabled},{value:ve,label:t.disabled}],fe=r.useMemo(()=>(g||[]).map(({id:o,name:c})=>({value:o,label:c})),[g]),q=r.useCallback(async({startDate:o,endDate:c,name:d,enabled:h,productIds:m,closureId:S,applicableDaysOfWeek:T})=>{try{const E=xe(i),n=!h;await E.patch(`/closures/${S}`,{startDate:o,endDate:c,name:d,productIds:m,enabled:n,applicableDaysOfWeek:T}),_(F=>({...F,cachedRows:F.cachedRows.map(H=>(H==null?void 0:H.closureId)===S?{...H,enabled:n}:H)}))}catch(E){ye.error({subject:"There was an error deleting product closures",context:E}),v(!0)}},[i]),$=r.useCallback(async o=>{await A(o),await R(!0),y(!0)},[]);function he(){U(`${Date.now()}`)}function Ce(){U(`${Date.now()}`)}const be=r.useMemo(()=>[{Header:e(u,{children:t.id}),id:"closureId",accessor:"closureId",Cell:({original:o})=>P(O,{onClick:()=>{$(o)},children:[o.closureId,e(Ee,{size:"md",color:"neutral-dark",description:"Edit",children:e(Se,{})})]})},{Header:e(u,{children:t.productApplied}),id:"products",accessor:"products",sortable:!1},{Header:e(u,{children:t.name}),id:"name",accessor:"name"},{Header:e(u,{children:t.startDate}),id:"startDate",accessor:"startDate"},{Header:e(u,{children:t.endDate}),id:"endDate",accessor:"endDate"},{Header:e(u,{children:t.applicableBookingDays}),id:"applicableBookingDays",accessor:"applicableBookingDays",sortable:!1},{Header:e(u,{children:t.timeslots}),id:"timeslots",accessor:"timeslots",sortable:!1,Cell:({original:o})=>{let c="",d="";return(o.timeslots||[]).forEach(({startTime:h,endTime:m})=>{d=Le({startTime:h,endTime:m},"hh:mm a"),c===""?c+=d:c+=", "+d}),e(O,{children:c})}},{Header:e(u,{children:t.status}),id:"enabled",accessor:"enabled",Cell:({original:o})=>e(O,{children:e(Re,{on:o.enabled,id:o.closureId,label:"Disable Toggle",labelHidden:!0,onToggle:()=>{q(o)}})})}],[$,q,t]);return P(Fe,{pageHeader:e(He.PageHeader,{content:P(C.Row,{noGutters:!0,justify:"between",spacingTop:"xs",spacingBottom:"xs",children:[P(C.Col,{col:"auto",alignSelf:"start",children:[e(C.Row,{noColumns:!0,children:e(N,{size:"lg",weight:"bolder",children:t.productClosures})}),e(C.Row,{noColumns:!0,children:e(Pe,{element:"p",children:t.productClosedForDates})})]}),e(C.Col,{col:"auto",children:e(Te,{onClick:()=>{R(!1),y(!0)},primary:!0,children:t.createClosure})})]}),secondaryActions:te.isHighlander?e(De,{}):e(Ie,{helpUrl:"https://support.checkfront.com/hc/en-us/articles/4409262634267"})}),children:[P(Ue,{customColumnId:b,customColumns:W,setCustomColumns:ce,children:[e(Me,{id:"closure_status",label:t.status,options:pe,selected:k,setSelected:le}),e(ke,{id:"category_id",label:t.category,options:fe,selected:D,setSelected:ie}),e(Oe,{dateOptions:Y,datetype:w,setDatetype:se,startDate:I,setStartDate:x,endDate:B,setEndDate:L})]}),e(C.Row,{children:e(C.Col,{children:e(_e,{url:Ge,filters:me,tableData:de,setTableData:_,setStartDate:x,setEndDate:L,columns:be,customColumns:W,refetchOnColumnChange:!0,fetchCacheBust:ne,handleFetchedData:ue,defaultPageSize:20,defaultSorted:{id:"closureId",desc:!1}})})}),e(z,{heading:t.error,actions:[{content:t.close,onClick:()=>{v(!1)}}],active:re,children:e(z.Section,{children:e(N,{children:t.toggleError})})}),j&&e(Be,{isEditingClosure:ae,csrfToken:i,active:j,categories:g,products:f,companyDateFormat:X,editedClosure:oe,handleCancel:()=>{y(!1),R(!1),A(null)},handleAddClosure:()=>{y(!1),he()},handleUpdateClosure:()=>{R(!1),y(!1),Ce()}})]})}export{$e 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.