PageSourceSearch

https://app.shieldworks.ai/assets/_id_-Bb00i_gf.js

js shieldworks.ai collected 2026-10-05 15:51:19 UTC 16,048 bytes, 1 lines download raw bytes

1import{J,ak as le,M as ae,e as N,f as O,P as K,a as e,F as R,at as se,Y as $,U as q,aa as ne,aD as oe,k as b,A as X,I as ie,d as E,a5 as re,o as c,b as C,w as l,m as s,s as w,t as g,l as t,a7 as L,a0 as j,a1 as D,c as h,a6 as M,v as U,a9 as Y,$ as B,V as ue,n as G,p as Z,X as de}from"./index-CU7nQjBQ.js";import{f as me}from"./filters-X1OkJQVU.js";import{_ as ce}from"./ApiAutocomplete.vue_vue_type_script_setup_true_lang-DKLIDysL.js";import{V as ee}from"./VDialog-DDJWbzr9.js";import{V as A,a as P,b as te,c as z}from"./VCard-DV5-Tgat.js";import{V as T,a as x}from"./VRow-C3OCzaCX.js";import{V as ve,a as fe}from"./VSelect-b1lLUfze.js";import{V as pe}from"./VTextField-CzoZdlJm.js";import{V as ye}from"./VTextarea-9UOu2evK.js";import{V as ge}from"./VTable-Bk_6hg2B.js";import{_ as xe}from"./InventoryItemForm.vue_vue_type_script_setup_true_lang-iTtWliGG.js";import{V as Q,m as be,a as H,b as Ve}from"./VWindowItem-CECCCK7F.js";import{V as ke}from"./VFileInput-iHHyPmyD.js";import{V as _e}from"./VSpacer-D2Kx36Jj.js";import{V as F,m as Ie}from"./VImg-CzgYNEpQ.js";import{_ as we}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./VAutocomplete-DZipuEZ6.js";import"./filter-CA3ZWM_A.js";import"./VMenu-fXsJZNzZ.js";import"./index-BwsEsF2K.js";import"./VAvatar-6wdiY4kC.js";/* empty css              */import"./qbSettings-BPiEobzm.js";import"./VForm-C8ywNvwT.js";import"./VAlert-tu9Rhjjm.js";import"./VSwitch-CxPBnxE8.js";const Ce=X({color:String,cycle:Boolean,delimiterIcon:{type:ie,default:"$delimiter"},height:{type:[Number,String],default:500},hideDelimiters:Boolean,hideDelimiterBackground:Boolean,interval:{type:[Number,String],default:6e3,validator:n=>Number(n)>0},progress:[Boolean,String],verticalDelimiters:[Boolean,String],...be({continuous:!0,mandatory:"force",showArrows:!0})},"VCarousel"),he=J()({name:"VCarousel",props:Ce(),emits:{"update:modelValue":n=>!0},setup(n,k){let{slots:f}=k;const u=le(n,"modelValue"),{t:r}=ae(),y=b();let m=-1;N(u,i),N(()=>n.interval,i),N(()=>n.cycle,o=>{o?i():window.clearTimeout(m)}),O(S);function S(){!n.cycle||!y.value||(m=window.setTimeout(y.value.group.next,+n.interval>0?+n.interval:6e3))}function i(){window.clearTimeout(m),window.requestAnimationFrame(S)}return K(()=>{const o=Q.filterProps(n);return e(Q,q({ref:y},o,{modelValue:u.value,"onUpdate:modelValue":_=>u.value=_,class:["v-carousel",{"v-carousel--hide-delimiter-background":n.hideDelimiterBackground,"v-carousel--vertical-delimiters":n.verticalDelimiters},n.class],style:[{height:oe(n.height)},n.style]}),{default:f.default,additional:_=>{let{group:p}=_;return e(R,null,[!n.hideDelimiters&&e("div",{class:"v-carousel__controls",style:{left:n.verticalDelimiters==="left"&&n.verticalDelimiters?0:"auto",right:n.verticalDelimiters==="right"?0:"auto"}},[p.items.value.length>0&&e(se,{defaults:{VBtn:{color:n.color,icon:n.delimiterIcon,size:"x-small",variant:"text"}},scoped:!0},{default:()=>[p.items.value.map((I,a)=>{const v={id:`carousel-item-${I.id}`,"aria-label":r("$vuetify.carousel.ariaLabel.delimiter",a+1,p.items.value.length),class:["v-carousel__controls__item",p.isSelected(I.id)&&"v-btn--active"],onClick:()=>p.select(I.id,!0)};return f.item?f.item({props:v,item:I}):e($,q(I,v),null)})]})]),n.progress&&e(ne,{class:"v-carousel__progress",color:typeof n.progress=="string"?n.progress:void 0,modelValue:(p.getItemIndex(u.value)+1)/p.items.value.length*100},null)])},prev:f.prev,next:f.next})}),{}}}),$e=X({...Ie(),...Ve()},"VCarouselItem"),Se=J()({name:"VCarouselItem",inheritAttrs:!1,props:$e(),setup(n,k){let{slots:f,attrs:u}=k;K(()=>{const r=F.filterProps(n),y=H.filterProps(n);return e(H,q({class:["v-carousel-item",n.class]},y),{default:()=>[e(F,q(u,r),f)]})})}}),Ue={class:"mb-4"},De=E({__name:"AdjustmentDialog",props:L({inventoryItemId:Number,currentStock:Number},{visible:{type:Boolean},visibleModifiers:{}}),emits:L(["saved"],["update:visible"]),setup(n,{emit:k}){const f=n,u=k,r=re(n,"visible"),y=b(!1),m=b({type:"increase",quantity:0,reason:"",notes:null,adjustment_account_id:null}),S=async()=>{if(!y.value){y.value=!0;try{await j.post(`/inventory-items/${f.inventoryItemId}/adjustments`,m.value),D().$patch({message:"Adjusted",type:"SUCCESS"}),r.value=!1,u("saved")}catch(i){const o=i?.response?.data?.message||i?.response?.data?.error||i?.message||"Unknown error";D().$patch({message:o,type:"ERROR"})}finally{y.value=!1}}};return(i,o)=>{const _=ce;return c(),C(ee,{modelValue:r.value,"onUpdate:modelValue":o[5]||(o[5]=p=>r.value=p),"max-width":"600px"},{default:l(()=>[e(A,{title:"Adjust Stock"},{default:l(()=>[e(P,null,{default:l(()=>[s("div",Ue,[o[6]||(o[6]=w(" Current Stock: ",-1)),s("b",null,g(n.currentStock),1)]),e(T,null,{default:l(()=>[e(x,{cols:"6"},{default:l(()=>[e(ve,{modelValue:t(m).type,"onUpdate:modelValue":o[0]||(o[0]=p=>t(m).type=p),items:[{title:"INCREASE",value:"increase"},{title:"DECREASE",value:"decrease"}],label:"Type"},null,8,["modelValue"])]),_:1}),e(x,{cols:"6"},{default:l(()=>[e(pe,{modelValue:t(m).quantity,"onUpdate:modelValue":o[1]||(o[1]=p=>t(m).quantity=p),type:"number",label:"Quantity"},null,8,["modelValue"])]),_:1}),e(x,{cols:"12"},{default:l(()=>[e(ye,{modelValue:t(m).reason,"onUpdate:modelValue":o[2]||(o[2]=p=>t(m).reason=p),label:"Reason",rows:"3","auto-grow":""},null,8,["modelValue"])]),_:1}),e(x,{cols:"12"},{default:l(()=>[e(_,{modelValue:t(m).adjustment_account_id,"onUpdate:modelValue":o[3]||(o[3]=p=>
1t(m).adjustment_account_id=p),"fetch-url":"/quickbooks/inventory-accounts","fetch-params":{type:"expense"},label:"Adjustment Account","item-title":"name","item-value":"id"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(te,null,{default:l(()=>[e($,{loading:t(y),onClick:S},{default:l(()=>[...o[7]||(o[7]=[w(" Save ",-1)])]),_:1},8,["loading"]),e($,{onClick:o[4]||(o[4]=p=>r.value=!1)},{default:l(()=>[...o[8]||(o[8]=[w(" Cancel ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}}}),Re={key:0},Ae=E({__name:"AdjustmentsTable",props:{items:Array},setup(n){const k=f=>f?new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"2-digit"}).format(new Date(f)):"";return(f,u)=>(c(),C(ge,null,{default:l(()=>[u[1]||(u[1]=s("thead",null,[s("tr",null,[s("th",null,"Type"),s("th",null,"Qty"),s("th",null,"Before"),s("th",null,"After"),s("th",null,"Reason"),s("th",null,"Date")])],-1)),s("tbody",null,[(c(!0),h(R,null,M(n.items,r=>(c(),h("tr",{key:r.id},[s("td",null,g(r.type?.charAt(0).toUpperCase()+r.type?.slice(1)),1),s("td",null,g(r.quantity),1),s("td",null,g(r.before_quantity),1),s("td",null,g(r.after_quantity),1),s("td",null,g(r.reason),1),s("td",null,g(k(r.created_at)),1)]))),128)),n.items?.length?U("",!0):(c(),h("tr",Re,[...u[0]||(u[0]=[s("td",{colspan:"6",class:"text-center"}," No adjustments ",-1)])]))])]),_:1}))}}),Pe={key:0,class:"d-flex justify-center align-center",style:{"block-size":"320px"}},Te={class:"position-relative"},je={key:0,class:"d-flex flex-wrap ga-2 mt-3"},Be={key:2,class:"d-flex flex-column align-center justify-center text-medium-emphasis",style:{"block-size":"320px"}},Ee=E({__name:"InventoryItemImageCarousel",props:{inventoryItemId:{},canManage:{type:Boolean}},setup(n,{expose:k}){const f=n,u=b([]),r=b(0),y=b(!1),m=b(!1),S=b(null),i=b(!1),o=b([]),_=async()=>{if(f.inventoryItemId){y.value=!0;try{const d=(await j.get(`/file-attachments/inventory-item/${f.inventoryItemId}`)).data?.data??[];u.value=d.filter(V=>V.file_type?.startsWith("image/")),r.value>u.value.length-1&&(r.value=0)}catch(v){D().$patch({message:v.response?.data?.message??"Unable to load images.",type:"ERROR"})}finally{y.value=!1}}},p=async()=>{if(!o.value.length)return;const v=new FormData;o.value.forEach(d=>v.append("attachments[]",d)),m.value=!0;try{await j.post(`/file-attachments/inventory-item/${f.inventoryItemId}`,v,{headers:{"Content-Type":"multipart/form-data"}}),D().$patch({message:"Images uploaded successfully.",type:"SUCCESS"}),i.value=!1,o.value=[],await _(),r.value=Math.max(u.value.length-1,0)}catch(d){D().$patch({message:d.response?.data?.message??"Upload failed.",type:"ERROR"})}finally{m.value=!1}},I=async v=>{S.value=v.id;try{await j.delete(`/file-attachments/${v.id}`),D().$patch({message:"Image deleted.",type:"SUCCESS"}),await _()}catch(d){D().$patch({message:d.response?.data?.message??"Delete failed.",type:"ERROR"})}finally{S.value=null}},a=()=>{o.value=[],i.value=!0};return O(_),N(()=>f.inventoryItemId,_),k({fetchImages:_}),(v,d)=>(c(),C(A,{variant:"tonal",color:"primary",rounded:"lg"},{default:l(()=>[e(z,{class:"d-flex align-center text-subtitle-2 pt-3 px-4 text-medium-emphasis"},{default:l(()=>[d[6]||(d[6]=s("span",{class:"flex-grow-1"},"Images",-1)),n.canManage?(c(),C($,{key:0,size:"small",variant:"tonal","prepend-icon":"bx-upload",onClick:a},{default:l(()=>[...d[5]||(d[5]=[w(" Upload ",-1)])]),_:1})):U("",!0)]),_:1}),e(P,null,{default:l(()=>[t(y)?(c(),h("div",Pe,[e(Y,{color:"primary",indeterminate:""})])):t(u).length?(c(),h(R,{key:1},[s("div",Te,[e(he,{modelValue:t(r),"onUpdate:modelValue":d[0]||(d[0]=V=>B(r)?r.value=V:null),height:"320","hide-delimiters":"","show-arrows":t(u).length>1?"hover":!1,continuous:!1,class:"rounded-lg"},{default:l(()=>[(c(!0),h(R,null,M(t(u),V=>(c(),C(Se,{key:V.id,src:V.url,cover:""},null,8,["src"]))),128))]),_:1},8,["modelValue","show-arrows"]),n.canManage&&t(u)[t(r)]?(c(),C($,{key:0,icon:"bx-trash",size:"small",color:"error",variant:"elevated",class:"position-absolute",style:{"inset-block-start":"8px","inset-inline-end":"8px"},loading:t(S)===t(u)[t(r)].id,onClick:d[1]||(d[1]=V=>I(t(u)[t(r)]))},null,8,["loading"])):U("",!0)]),t(u).length>1?(c(),h("div",je,[(c(!0),h(R,null,M(t(u),(V,W)=>(c(),C(F,{key:V.id,src:V.url,width:"56",height:"56",cover:"",rounded:"lg",class:G(["cursor-pointer thumb",{"thumb
1--active":W===t(r)}]),onClick:He=>r.value=W},null,8,["src","class","onClick"]))),128))])):U("",!0)],64)):(c(),h("div",Be,[e(ue,{icon:"bx-image",size:"48",class:"mb-2"}),d[8]||(d[8]=s("div",{class:"text-body-2"}," No images yet ",-1)),n.canManage?(c(),C($,{key:0,size:"small",variant:"tonal","prepend-icon":"bx-upload",class:"mt-3",onClick:a},{default:l(()=>[...d[7]||(d[7]=[w(" Upload Images ",-1)])]),_:1})):U("",!0)]))]),_:1}),e(ee,{modelValue:t(i),"onUpdate:modelValue":d[4]||(d[4]=V=>B(i)?i.value=V:null),"max-width":"500px"},{default:l(()=>[e(A,{title:"Upload Images"},{default:l(()=>[e(P,null,{default:l(()=>[e(ke,{modelValue:t(o),"onUpdate:modelValue":d[2]||(d[2]=V=>B(o)?o.value=V:null),label:"Choose images",accept:"image/*","prepend-icon":"bx-image",multiple:"","show-size":""},null,8,["modelValue"])]),_:1}),e(te,null,{default:l(()=>[e(_e),e($,{variant:"elevated",color:"primary",disabled:!t(o).length||t(m),loading:t(m),onClick:p},{default:l(()=>[...d[9]||(d[9]=[w(" Upload ",-1)])]),_:1},8,["disabled","loading"]),e($,{variant:"text",disabled:t(m),onClick:d[3]||(d[3]=V=>i.value=!1)},{default:l(()=>[...d[10]||(d[10]=[w(" Cancel ",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),Ne=we(Ee,[["__scopeId","data-v-423a6702"]]),qe={class:"d-flex flex-column"},Me={class:"d-flex justify-space-between mb-6"},ze={key:0,class:"text-subtitle-1 text-medium-emphasis"},Fe={class:"d-flex ga-2"},Oe={class:"text-h6 font-weight-bold"},We={class:"text-h6 font-weight-bold"},Le={class:"d-flex align-center mb-3"},Qe=E({__name:"InventoryItemPage",setup(n){const k=Z(),f=de(),u=b(!1),r=b(!1),y=b(!1),m=b(!1),S=b(void 0),i=b(null),o=async(I=!1)=>{const a=Number(k.params.id);if(a){I?r.value=!0:u.value=!0;try{const v=await j.get(`/inventory-items/${a}`);i.value=v.data.data}catch(v){D().$patch({message:v.response?.data?.message??"Unable to load inventory item.",type:"ERROR"})}finally{u.value=!1,r.value=!1}}};O(()=>{o()});const _=()=>{S.value={...i.value},m.value=!0},p=()=>{o()};return(I,a)=>(c(),h("div",qe,[s("div",Me,[s("div",null,[s("h1",null,g(t(i)?.part_number||"Inventory Item"),1),t(i)?.name?(c(),h("span",ze,g(t(i).name),1)):U("",!0)]),s("div",Fe,[e($,{color:"primary","prepend-icon":"bx-arrow-back",onClick:a[0]||(a[0]=v=>t(f).push("/inventory-items"))},{default:l(()=>[...a[5]||(a[5]=[w(" Back ",-1)])]),_:1}),I.$account.can("manage-inventory-item")?(c(),C($,{key:0,"prepend-icon":"bx-pencil",onClick:_},{default:l(()=>[...a[6]||(a[6]=[w(" Edit ",-1)])]),_:1})):U("",!0),e($,{icon:"bx-refresh",variant:"text",loading:t(r),onClick:a[1]||(a[1]=v=>o(!0))},null,8,["loading"])])]),t(u)?(c(),C(Y,{key:0,color:"primary",indeterminate:"",class:"align-self-center"})):U("",!0),!t(u)&&t(i)?(c(),h(R,{key:1},[e(A,{elevation:"0",rounded:"0",class:"mb-4"},{default:l(()=>[e(P,null,{default:l(()=>[e(T,null,{default:l(()=>[e(x,{cols:"12",md:"4"},{default:l(()=>[e(Ne,{"inventory-item-id":t(i).id,"can-manage":I.$account.can("manage-inventory-item")},null,8,["inventory-item-id","can-manage"])]),_:1}),e(x,{cols:"12",md:"8"},{default:l(()=>[e(T,null,{default:l(()=>[e(x,{cols:"12"},{default:l(()=>[e(A,{variant:"tonal",color:"primary",rounded:"lg"},{default:l(()=>[e(z,{class:"text-subtitle-2 pt-3 px-4 text-medium-emphasis"},{default:l(()=>[...a[7]||(a[7]=[w(" Item Details ",-1)])]),_:1}),e(P,null,{default:l(()=>[e(T,null,{default:l(()=>[e(x,{cols:"6",sm:"4"},{default:l(()=>[a[8]||(a[8]=s("div",{class:"text-caption text-medium-emphasis"}," Part Number ",-1)),s("div",null,g(t(i).part_number||"—"),1)]),_:1}),e(x,{cols:"6",sm:"4"},{default:l(()=>[a[9]||(a[9]=s("div",{class:"text-caption text-medium-emphasis"}," Name ",-1)),s("div",null,g(t(i).name||"—"),1)]),_:1}),e(x,{cols:"6",sm:"4"},{default:l(()=>[a[10]||(a[10]=s("div",{class:"text-caption text-medium-emphasis"}," SKU ",-1)),s("div",null,g(t(i).sku||"—"),1)]),_:1}),e(x,{cols:"6",sm:"4"},{default:l(()=>[a[11]||(a[11]=s("div",{class:"text-caption text-medium-emphasis"}," Model ",-1)),s("div",null,g(t(i).model?.model_number||t(i).model_number||"—"),1)]),_:1}),e(x,{cols:"6",sm:"4"},{default:l(()=>[a[12]||(a[12]=s("div",{class:"text-caption text-medium-emphasis"}," Unit Cost ",-1)),s("div",null,g(t(me).currency(t(i).unit_cost??0)),1)]),_:1}),e(x,{cols:"6",sm:"4"},{default:l(()=>[a[13]||(a[13]=s("div",{class:"text-caption text-medium-emphasis"}," Status ",-1)),e(fe,{color:t(i).is_active?"success":"error",size:"small"},{default:l(()=>[w(g(t(i).is_active?"Active":"Inactive"),1)]),_:1},8,["color"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),e(x,{cols:"12"},{default:l(()=>[e(A,{variant:"tonal",color:"success",rounded:"lg"},{default:l(()=>[e(z,{class:"text-subtitle-2 pt-3 px-4 text-medium-emphasis"},{default:l(()=>[...a[14]||(a[14]=[w(" Stock ",-1)])]),_:1}),e(P,null,{default:l(()=>[e(T,null,{default:l(()=>[e(x,{cols:"4"},{default:l(()=>[a[15]||(a[15]=s("div",{class:"text-caption text-medium-emphasis"}
1," On Hand ",-1)),s("div",Oe,g(t(i).quantity_on_hand??0),1)]),_:1}),e(x,{cols:"4"},{default:l(()=>[a[16]||(a[16]=s("div",{class:"text-caption text-medium-emphasis"}," Reserved ",-1)),s("div",We,g(t(i).reserved_quantity??0),1)]),_:1}),e(x,{cols:"4"},{default:l(()=>[a[17]||(a[17]=s("div",{class:"text-caption text-medium-emphasis"}," Available ",-1)),s("div",{class:G(["text-h6 font-weight-bold",(t(i).available_quantity??0)===0?"text-error":"text-success"])},g(t(i).available_quantity??0),3)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),s("div",Le,[a[19]||(a[19]=s("h3",{class:"flex-grow-1"}," Adjustment Transactions ",-1)),I.$account.can("manage-inventory-item")?(c(),C($,{key:0,color:"primary",size:"small","prepend-icon":"bx-plus",onClick:a[2]||(a[2]=v=>y.value=!0)},{default:l(()=>[...a[18]||(a[18]=[w(" Adjust Stock ",-1)])]),_:1})):U("",!0)]),e(Ae,{items:t(i).adjustments||[]},null,8,["items"])],64)):U("",!0),e(De,{visible:t(y),"onUpdate:visible":a[3]||(a[3]=v=>B(y)?y.value=v:null),"inventory-item-id":Number(t(k).params.id),"current-stock":t(i)?.quantity_on_hand,onSaved:o},null,8,["visible","inventory-item-id","current-stock"]),e(xe,{visible:t(m),"onUpdate:visible":a[4]||(a[4]=v=>B(m)?m.value=v:null),item:t(S),onSave:p},null,8,["visible","item"])]))}}),Vt=E({__name:"[id]",setup(n){const f=Z().params.id;return(u,r)=>{const y=Qe;return c(),C(y,{id:t(f)},null,8,["id"])}}});export{Vt 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.