PageSourceSearch

https://usasoftballofvirginia.com/chunk-AGJ2CMXK.js

js usasoftballofvirginia.com collected 2026-09-28 19:00:43 UTC 58,961 bytes, 11 lines download raw bytes

1import{a as ye}from"./chunk-VBT5CDSE.js";import{a as Se}from"./chunk-HYZF2J36.js";import{a as Me}from"./chunk-ILRUTWFH.js";import{a as _e,c as ue,d as he,f as fe,i as Ce}from"./chunk-4UVAF4ER.js";import{a as dt,b as me,c as ge}from"./chunk-TFHCQGNH.js";import{a as lt,b as ce}from"./chunk-DKZQI3JZ.js";import{a as le,c as de,d as pe,e as se}from"./chunk-UR5J6BCV.js";import{a as be}from"./chunk-AHP6CBJJ.js";import{b as xe,c as Pe}from"./chunk-6UVLSAJX.js";import{b as Jt,c as Kt,d as Gt,f as Yt,g as Xt,i as Zt,j as te,l as ee,m as ie,o as ne,p as oe,q as ae,r as re}from"./chunk-IRVXRWZD.js";import"./chunk-PVDG46DZ.js";import{a as Rt,b as At,c as Ht}from"./chunk-4UUEYAO2.js";import{a as rt}from"./chunk-MJHKSL2V.js";import"./chunk-AXS6ODHX.js";import"./chunk-5SBP4E5E.js";import{b as qt,c as $t,d as jt,i as Ut}from"./chunk-KBFDPR7N.js";import{b as Qt}from"./chunk-H3ZOHFO7.js";import"./chunk-CIKJJUSN.js";import"./chunk-RRZRS5BZ.js";import"./chunk-LY7WOQZN.js";import"./chunk-BEIBI4X5.js";import{b as at}from"./chunk-VG7OHNZN.js";import"./chunk-MS4AQ6UA.js";import{b as Ft,d as Lt}from"./chunk-N7NZ2FMU.js";import{f as zt}from"./chunk-F2TSTV3I.js";import"./chunk-XRMXGMS4.js";import"./chunk-Q4V6AKYI.js";import{a as Bt,b as Nt}from"./chunk-T3PLPHIG.js";import"./chunk-2JW6ZMWV.js";import"./chunk-NIP74ZKI.js";import"./chunk-QNUNLKYK.js";import{c as Wt,r as ot}from"./chunk-RE4JJFV5.js";import{d as Ot,e as Et,f as kt,g as Dt,i as Tt,j as Vt,k as j}from"./chunk-COEKBYWO.js";import"./chunk-E2K2LIS4.js";import{a as nt}from"./chunk-KJKRX6VS.js";import"./chunk-2CRWMDGS.js";import{a as et,b as it}from"./chunk-4WMDX4SQ.js";import"./chunk-IQLKO45Z.js";import"./chunk-V6KBZVCY.js";import"./chunk-6FQQM4CE.js";import{a as K,d as G,e as It,i as Y,j as X}from"./chunk-VTTO24NQ.js";import"./chunk-Y5VOXWTF.js";import{l as U,n as Q,q as J}from"./chunk-YWHNFDXQ.js";import"./chunk-FCTHY2PU.js";import"./chunk-DPVJW3LI.js";import{i as Mt,n as St}from"./chunk-GW33KQPR.js";import{T as Z,U as tt}from"./chunk-TUEKBDZZ.js";import"./chunk-RLPOKPIS.js";import"./chunk-TPES7EAS.js";import{G as $,c as A,h as H,m as q,o as yt,y as wt,z as vt}from"./chunk-QXJM3TTT.js";import{D as bt,F as R,k as Pt}from"./chunk-TMOIAHHX.js";import{$a as V,Db as ht,Fa as S,Fb as F,Ib as l,Jb as w,Kb as k,Lb as ft,Rb as u,Sa as E,Sb as h,Tb as f,Wa as C,Xa as x,Ya as pt,Yb as z,Za as ut,_a as T,aa as B,ab as _,bb as a,cb as r,cc as gt,db as M,ga as d,hb as I,ib as W,kb as b,mc as Ct,nc as xt,o as m,p as g,qb as P,sa as O,tb as s,xb as st,yb as ct,za as N,zb as mt}from"./chunk-DJNWGYMM.js";import{ea as v,f as L}from"./chunk-VOZAGDK7.js";import{d as _t}from"./chunk-E5QWB6YB.js";var Ne=(n,p)=>p._key,Re=(n,p)=>p.qty;function Ae(n,p){if(n&1&&(a(0,"mat-option",18),l(1),r()),n&2){let t=p.$implicit;_("value",t._key),d(),w(t.name)}}function He(n,p){n&1&&(a(0,"div",35)(1,"mat-icon",36),l(2,"error_outline"),r(),l(3," This date has already passed, so buyers no longer see the pre-sale notice. Pick a new date, or turn Pre-sale off. "),r())}function qe(n,p){if(n&1){let t=b();a(0,"mat-form-field",31)(1,"mat-label"),l(2,"Ship date"),r(),a(3,"input",32),f("ngModelChange",function(e){m(t);let o=s(2);return h(o.shipDateValue,e)||(o.shipDateValue=e),g(e)}),r(),M(4,"mat-datepicker-toggle",33)(5,"mat-datepicker",null,0),r(),a(7,"div",34),l(8," The day you expect to send these out. Buyers see it as an estimated shipping date. "),r(),C(9,He,4,0,"div",35)}if(n&2){let t=ht(6),i=s(2);d(3),_("matDatepicker",t),u("ngModel",i.shipDateValue),d(),_("for",t),d(5),x(i.shipDatePassed?9:-1)}}function $e(n,p){n&1&&(a(0,"span",39),l(1,"Main"),r())}function je(n,p){if(n&1){let t=b();a(0,"button",43),P("click",function(){m(t);let e=s().$index,o=s(2);return g(o.makePrimary(e))}),a(1,"mat-icon"),l(2,"star_outline"),r()()}}function Ue(n,p){if(n&1){let t=b();a(0,"div",37),M(1,"img",38),C(2,$e,2,0,"span",39),a(3,"div",40),C(4,je,3,0,"button",41),a(5,"button",42),P("click",function(){let e=m(t).$index,o=s(2);return g(o.removeImage(e))}),a(6,"mat-icon"),l(7,"delete_outline"),r()()()()}if(n&2){let t=p.$implicit,i=p.$index;F("is-main",i===0),d(),_("alt",z("Product photo ",i+1))("src",t,B),d(),x(i===0?2:-1),d(2),x(i>0?4:-1)}}function Qe(n,p){if(n&1){let t=b();a(0,"div",12)(1,"div",13)(2,"mat-form-field",14)(3,"mat-label"),l(4,"Product name"),r(),a(5,"input",15),f("ngModelChange",function(e){m(t);let o=s();return h(o.product.name,e)||(o.product.name=e),g(e)}),r()(),a(6,"mat-form-field",16)(7,"mat-label"),l(8,"Category"),r(),a(9,"mat-select",17),f("ngModelChange",function(e){m(t);let o=s();return h(o.product.categoryID,e)||(o.product.categoryID=e),g(e)}),a(10,"mat-option",18),l(11,"No category"),r(),T(12,Ae,2,2,"mat-option",18,Ne),r()()(),a(14,"div",19)(15,"mat-slide-toggle",20),f("ngModelChange",function(e){m(t);let o=s();return h(o.product.preSale,e)||(o.product.preSale=e),g(e)}),P("change",function(){m(t);let e=s();return g(e.onPreSaleChange())}),l(16,"Pre-sale"),r(),a(17,"div",21),l(18," Take orders now for stock that hasn't arrived yet. Buyers see a pre-sale notice on the product page with the date below. "),r(),C(19,qe,10,4),r(),a(20,"div",22)(21,"label",23),l(22,"Description"),r(),a(23,"editor",24),f("ngModelChange",function(e){m(t);let o=s();return h(o.descriptionHtml,e)||(o.descriptionHtml=e),g(e)}),r(),a(24,"div",25),l(25," Use the picture button to add photos \u2014 pictures copied from other websites will not show to buyers. Several pictures in a row appear centred together. "),r()(),a(26,"div",26),l(27,"Photos"),r(),a(28,"div",21),l(29,"The first photo is what buyers see in the shop list."),r(),a(30,"div",27),T(31,Ue,8,7,"div",28,ut),a(33,"label",29)(34,"mat-icon"),l(35),r(),a(36,"span"),l(37),r(),a(38,"input",30),P("change",function(e){m(t);let o=s();return g(o.uploadImage(e))}),r()()()()}if(n&2){let t=s();d(5),u("ngModel",t.product.name),d(4),u("ngModel",t.product.categoryID),d(),_("value",void 0),d(2),V(t.categories),d(3),u("ngModel",t.product.preSale),d(4),x(t.product.preSale?19:-1),d(4),_("init",t.editorConfig)("licenseKey","gpl"),u("ngModel",t.descriptionHtml),d(8),V(t.product.images),d(2),F("disabled",t.uploading),d(2),w(t.uploading?"hourglass_top":"add_photo_alternate"),d(2),w(t.uploading?"Uploading\u2026":"Add photo"),d(),_("disabled",t.uploading)}}function Je(n,p){if(n&1){let t=b();a(0,"div",44)(1,"span",51),l(2,"Buyers choose a"),r(),a(3,"mat-form-field",52)(4,"input",53),f("ngModelChange",function(e){m(t);let o=s(2);return h(o.product.optionName,e)||(o.product.optionName=e),g(e)}),r()()()}if(n&2){let t=s(2);d(4),u("ngModel",t.product.optionName)}}function Ke(n,p){n&1&&(a(0,"div",51),l(1,"Pricing & Stock"),r(),a(2,"div",21),l(3,"Add more than one option if this product comes in several sizes or versions."),r())}function Ge(n,p){n&1&&(a(0,"span",48),l(1,"Wt (oz)"),r())}function Ye(n,p){if(n&1){let t=b();a(0,"div",55)(1,"input",64),f("ngModelChange",function(e){m(t);let o=s().$implicit;return h(o.weightOz,e)||(o.weightOz=e),g(e)}),r()()}if(n&2){let t=s(),i=t.$implicit,e=t.$index;d(),_("name",z("vWeight",e)),u("ngModel",i.weightOz),E("aria-label","Weight override in ounces for "+(i.label||"this option"))}}function Xe(n,p){n&1&&(a(0,"div",63)(1,"mat-icon",36),l(2,"error_outline"),r(),l(3," Sold out \u2014 raise the stock above 0 to sell this option again. "),r())}function Ze(n,p){if(n&1){let t=b();a(0,"div",54)(1,"div",55)(2,"input",56),f("ngModelChange",function(e){let o=m(t).$implicit;return h(o.label,e)||(o.label=e),g(e)}),r()(),a(3,"div",55)(4,"input",57),f("ngModelChange",function(e){let o=m(t).$implicit;return h(o.sku,e)||(o.sku=e),g(e)}),r()(),a(5,"div",58)(6,"span",59),l(7,"$"),r(),a(8,"input",60),f("ngModelChange",function(e){let o=m(t).$implicit;return h(o.price,e)||(o.price=e),g(e)}),r()(),a(9,"div",55)(10,"input",61),f("ngModelChange",function(e){let o=m(t).$implicit;return h(o.stock,e)||(o.stock=e),g(e)}),r()(),C(11,Ye,2,4,"div",55),a(12,"button",62),P("click",function(){let e=m(t).$index,o=s(2);return g(o.removeVariant(e))}),a(13,"mat-icon"),l(14,"close"),r()(),C(15,Xe,4,0,"div",63),r()}if(n&2){let t=p.$implicit,i=p.$index,e=s(2);F("is-soldout",e.restockHint(t)),d(2),_("name",z("vLabel",i)),u("ngModel",t.label),_("placeholder",e.product.variants.length>1?'31" / 28oz':"optional"),d(2),_("name",z("vSku",i)),u("ngModel",t.sku),d(4),_("name",z("vPrice",i)),u("ngModel",t.price),d(2),_("name",z("vStock",i)),u("ngModel",t.stock),d(),x(e.product.easyPostShipping?11:-1),d(),_("disabled",e.product.variants.length===1),d(3),x(e.restockHint(t)?15:-1)}}function ti(n,p){if(n&1){let t=b();a(0,"div",12),C(1,Je,5,1,"div",44)(2,Ke,4,0),a(3,"div",45)(4,"div",46)(5,"div",47)(6,"span"),l(7),r(),a(8,"span"),l(9,"SKU"),r(),a(10,"span",48),l(11,"Price"),r(),a(12,"span",48),l(13,"Stock"),r(),C(14,Ge,2,0,"span",48),M(15,"span"),r(),T(16,Ze,16,18,"div",49,pt),r()(),a(18,"button",50),P("click",function(){m(t);let e=s();return g(e.addVariant())}),a(19,"mat-icon"),l(20,"add"),r(),l(21," Add another option "),r()()}if(n&2){let t=s();d(),x(t.product.variants.length>1?1:2),d(3),F("variant-grid--weights",t.product.easyPostShipping),d(3),w(t.product.variants.length>1?t.product.optionName||"Size":"Label"),d(7),x(t.product.easyPostShipping?14:-1),d(2),V(t.product.variants)}}function ei(n,p){if(n&1){let t=b();a(0,"mat-button-toggle-group",72),P("change",function(e){m(t);let o=s(2);return g(o.onShipModeChange(e.value))}),a(1,"mat-button-toggle",73),l(2,"Per item"),r(),a(3,"mat-button-toggle",74),l(4,"By quantity"),r()()}if(n&2){let t=s(2);_("value",t.shipMode)}}function ii(n,p){if(n&1){let t=b();a(0,"mat-form-field",75)(1,"mat-label"),l(2,"Shipping price"),r(),a(3,"span",76),l(4,"$\xA0"),r(),a(5,"input",77),f("ngModelChange",function(e){m(t);let o=s(3);return h(o.product.shipPrice,e)||(o.product.shipPrice=e),g(e)}),r(),a(6,"span",78),l(7,"per item"),r()()}if(n&2){let t=s(3);d(5),u("ngModel",t.product.shipPrice)}}function ni(n,p){if(n&1){let t=b();a(0,"button",86),P("click",function(){m(t);let e=s(5);return g(e.removeShipTier())}),a(1,"mat-icon"),l(2,"close"),r()()}if(n&2){let t=s().$index;E("aria-label","Remove the price for "+(t+2)+" items")}}function oi(n,p){n&1&&M(0,"span")}function ai(n,p){if(n&1){let t=b();a(0,"mat-form-field",81)(1,"mat-label"),l(2),r(),a(3,"span",76),l(4,"$\xA0"),r(),a(5,"input",84),f("ngModelChange",function(e){let o=m(t).$index,c=s(4);return h(c.shipTiers[o],e)||(c.shipTiers[o]=e),g(e)}),r()(),C(6,ni,3,1,"button",85)(7,oi,1,0,"span")}if(n&2){let t=p.$index,i=p.$index,e=p.$count,o=s(4);d(2),k("",t+2," items"),d(3),_("name","shipTier"+t),u("ngModel",o.shipTiers[t]),d(),x(i===e-1?6:7)}}function ri(n,p){if(n&1){let t=b();a(0,"div",79),l(1," Set the price for each quantity. Two bats fit one box? Charge $25 for 2. After your last row the pattern repeats. "),r(),a(2,"div",80)(3,"mat-form-field",81)(4,"mat-label"),l(5,"1 item"),r(),a(6,"span",76),l(7,"$\xA0"),r(),a(8,"input",77),f("ngModelChange",function(e){m(t);let o=s(3);return h(o.product.shipPrice,e)||(o.product.shipPrice=e),g(e)}),r()(),M(9,"span"),T(10,ai,8,4,null,null,pt),r(),a(12,"div",82)(13,"button",83),P("
1click",function(){m(t);let e=s(3);return g(e.addShipTier())}),a(14,"mat-icon"),l(15,"add"),r(),l(16),r()()}if(n&2){let t=s(3);d(8),u("ngModel",t.product.shipPrice),d(2),V(t.shipTiers),d(3),_("disabled",t.shipTiers.length>=9),d(3),k(" Add price for ",t.shipTiers.length+2," items ")}}function li(n,p){if(n&1&&(a(0,"span"),l(1),Ct(2,"currency"),r()),n&2){let t=p.$implicit;d(),ft("",t.qty," \u2192 ",xt(2,2,t.price))}}function di(n,p){if(n&1&&(a(0,"div",87)(1,"strong"),l(2,"Buyers pay:"),r(),a(3,"span",88),T(4,li,3,4,"span",null,Re),r()()),n&2){let t=s();d(4),V(t)}}function pi(n,p){n&1&&C(0,di,6,0,"div",87),n&2&&x(p.length?0:-1)}function si(n,p){if(n&1&&(C(0,ii,8,1,"mat-form-field",75)(1,ri,17,3),C(2,pi,1,1)),n&2){let t,i=s(2);x(i.shipMode==="perItem"?0:1),d(2),x((t=i.shipExample())?2:-1,t)}}function ci(n,p){if(n&1){let t=b();a(0,"div",89)(1,"mat-form-field",81)(2,"mat-label"),l(3,"Weight (oz)"),r(),a(4,"input",90),f("ngModelChange",function(e){m(t);let o=s(2);return h(o.product.shipParcel.weightOz,e)||(o.product.shipParcel.weightOz=e),g(e)}),r()(),a(5,"mat-form-field",81)(6,"mat-label"),l(7,"Length (in)"),r(),a(8,"input",91),f("ngModelChange",function(e){m(t);let o=s(2);return h(o.product.shipParcel.lengthIn,e)||(o.product.shipParcel.lengthIn=e),g(e)}),r()(),a(9,"mat-form-field",81)(10,"mat-label"),l(11,"Width (in)"),r(),a(12,"input",92),f("ngModelChange",function(e){m(t);let o=s(2);return h(o.product.shipParcel.widthIn,e)||(o.product.shipParcel.widthIn=e),g(e)}),r()(),a(13,"mat-form-field",81)(14,"mat-label"),l(15,"Height (in)"),r(),a(16,"input",93),f("ngModelChange",function(e){m(t);let o=s(2);return h(o.product.shipParcel.heightIn,e)||(o.product.shipParcel.heightIn=e),g(e)}),r()()(),a(17,"div",21),l(18," One box per item \u2014 a quantity of 3 ships as 3 of these parcels. If a size weighs differently, set its override in the Options tab. "),r()}if(n&2){let t=s(2);d(4),u("ngModel",t.product.shipParcel.weightOz),d(4),u("ngModel",t.product.shipParcel.lengthIn),d(4),u("ngModel",t.product.shipParcel.widthIn),d(4),u("ngModel",t.product.shipParcel.heightIn)}}function mi(n,p){if(n&1){let t=b();a(0,"div",12)(1,"div",65)(2,"div",66)(3,"div")(4,"div",51),l(5,"Shipping price"),r(),a(6,"div",21),l(7," What the buyer pays to ship this \u2014 you buy the postage and ship it yourself. "),r()(),C(8,ei,5,1,"mat-button-toggle-group",67),r(),C(9,si,3,2),a(10,"mat-slide-toggle",68),f("ngModelChange",function(e){m(t);let o=s();return h(o.product.freeShipping,e)||(o.product.freeShipping=e),g(e)}),P("change",function(){m(t);let e=s();return g(e.onFreeShippingChange())}),l(11,"Free shipping"),r(),a(12,"div",21),l(13," Buyers pay no shipping for this item \u2014 you cover the shipping cost. "),r()(),a(14,"div",19)(15,"mat-slide-toggle",69),f("ngModelChange",function(e){m(t);let o=s();return h(o.product.easyPostShipping,e)||(o.product.easyPostShipping=e),g(e)}),P("change",function(){m(t);let e=s();return g(e.onEasyPostChange())}),l(16,"Calculate shipping with EasyPost"),r(),a(17,"div",21),l(18," Buyers pay the live carrier rate; labels are bought through the platform. All four measurements are required. "),r(),C(19,ci,19,4),r(),a(20,"div",19)(21,"div",51),l(22,"In-person pickup"),r(),a(23,"div",21),l(24," Fill this in to let buyers skip shipping and collect the item from you. They'll see this text at checkout and on their order. "),r(),a(25,"mat-form-field",70)(26,"mat-label"),l(27,"Pickup details (optional)"),r(),a(28,"textarea",71),f("ngModelChange",function(e){m(t);let o=s();return h(o.product.pickupDetails,e)||(o.product.pickupDetails=e),g(e)}),r()()()()}if(n&2){let t=s();d(8),x(!t.product.freeShipping&&!t.product.easyPostShipping?8:-1),d(),x(!t.product.freeShipping&&!t.product.easyPostShipping?9:-1),d(),u("ngModel",t.product.freeShipping),_("disabled",t.product.easyPostShipping),d(5),u("ngModel",t.product.easyPostShipping),d(4),x(t.product.easyPostShipping&&t.product.shipParcel?19:-1),d(9),u("ngModel",t.product.pickupDetails)}}var we=(()=>{class n{dialogRef;api;notify;markdown;product;categories;uploading=!1;selectedTab=0;saving=!1;descriptionHtml="";shipDateValue=null;shipTiers=[];shipMode="perItem";static validElements="p,br,strong/b,em/i,s/strike/del,h2,h3,h4,ul,ol,li,blockquote,pre,code,a[href|title],img[src|alt|title],hr,table,thead,tbody,tr,th,td";editorConfig={};_unsubscribeAll=new L;constructor(t,i,e,o,c){this.dialogRef=i,this.api=e,this.notify=o,this.markdown=c,this.product=t.product,this.categories=t.categories,this.product.images=this.product.images||[],this.product.variants=this.product.variants||[],this.descriptionHtml=this.markdown.render(this.product.description||""),this.shipDateValue=this.parseDay(this.product.shipDate),this.shipTiers=[...this.product.shipPriceTiers||[]],this.shipMode=this.shipTiers.length?"byQuantity":"perItem",this.editorConfig=this.buildEditorConfig()}buildEditorConfig(){let t=getComputedStyle(document.documentElement),i=(D,Oe)=>t.getPropertyValue(D).trim()||Oe,e=i("--rp-text","#122033"),o=i("--rp-nav
1y-900","#10243f"),c=i("--rp-navy-700","#1a3668"),y=i("--rp-divider","#dce5ee");return{license_key:"gpl",plugins:"autolink lists link image autoresize",toolbar:"bold italic strikethrough | blocks | bullist numlist blockquote | link image | removeformat",block_formats:"Normal text=p;Heading=h3;Small heading=h4",menubar:!1,statusbar:!1,branding:!1,promotion:!1,min_height:260,max_height:520,autoresize_bottom_margin:16,placeholder:"What it is, sizing notes, materials \u2014 anything buyers should know.",valid_elements:n.validElements,block_unsupported_drop:!0,paste_data_images:!1,automatic_uploads:!0,images_file_types:"jpg,jpeg,png,gif,webp",file_picker_types:"image",images_upload_handler:D=>this.uploadEditorImage(D),file_picker_callback:D=>this.pickEditorImage(D),relative_urls:!1,convert_urls:!1,link_default_target:"_blank",content_style:`
2        body { font-family: Poppins, Roboto, Helvetica, Arial, sans-serif; font-size: 14px;
3               line-height: 1.6; color: ${e}; padding: 12px; }
4        strong { font-weight: 600; color: ${o}; }
5        h3, h4 { color: ${o}; font-weight: 700; line-height: 1.3; margin: 24px 0 8px; }
6        h3 { font-size: 16px; } h4 { font-size: 14px; }
7        ul, ol { padding-left: 24px; }
8        a { color: ${c}; }
9        blockquote { margin: 0 0 16px; padding: 8px 16px; border-left: 3px solid ${y}; }
10        img { max-width: 100%; height: auto; }
11      `}}uploadEditorImage(t){let i=new FormData;return i.append("file",t.blob(),t.filename()),new Promise((e,o)=>{this.api.post4Upload("Shop/admin/uploadImage",i).pipe(v(this._unsubscribeAll)).subscribe({next:c=>c?.url?e(c.url):o("The image could not be uploaded. Please try again."),error:c=>o(c?.error||"The image could not be uploaded. Please try again.")})})}pickEditorImage(t){let i=document.createElement("input");i.type="file",i.accept="image/*",i.onchange=()=>{let e=i.files&&i.files[0];if(!e)return;let o=new FormData;o.append("file",e,e.name),this.api.post4Upload("Shop/admin/uploadImage",o).pipe(v(this._unsubscribeAll)).subscribe({next:c=>c?.url&&t(c.url),error:c=>this.notify.openErrorModal(c.error?c.error:"The image could not be uploaded. Please try again.")})},i.click()}onPreSaleChange(){this.product.preSale||(this.shipDateValue=null,this.product.shipDate=void 0)}get shipDatePassed(){if(!this.product.preSale||!this.shipDateValue)return!1;let t=new Date;t.setHours(0,0,0,0);let i=new Date(this.shipDateValue);return i.setHours(0,0,0,0),i.getTime()<t.getTime()}formatDay(t){if(!t||isNaN(t.getTime()))return;let i=e=>String(e).padStart(2,"0");return t.getFullYear()+"-"+i(t.getMonth()+1)+"-"+i(t.getDate())}parseDay(t){let i=/^(\d{4})-(\d{2})-(\d{2})$/.exec((t||"").slice(0,10));if(!i)return null;let[,e,o,c]=i;return new Date(Number(e),Number(o)-1,Number(c))}onFreeShippingChange(){this.product.freeShipping&&(this.product.shipPrice=void 0,this.shipTiers=[],this.shipMode="perItem")}onShipModeChange(t){this.shipMode=t,t==="byQuantity"&&!this.shipTiers.length&&this.shipTiers.push(null)}addShipTier(){this.shipTiers.length<9&&this.shipTiers.push(null)}removeShipTier(){this.shipTiers.pop(),this.shipTiers.length||(this.shipMode="perItem")}shipExample(){let t=this.numOrNull(this.product.shipPrice);if(t==null||!this.isValidPrice(t))return[];let i=this.shipMode==="byQuantity"?this.shipTiers.map(y=>this.numOrNull(y)):[],e=t;for(let y of i){if(y==null||!this.isValidPrice(y)||y<e)return[];e=y}let o={shipPrice:t,shipPriceTiers:i},c=Math.min(i.length+3,10);return Array.from({length:c},(y,D)=>({qty:D+1,price:Se(o,D+1)/100}))}isValidPrice(t){return t>=0&&Math.abs(t*100-Math.round(t*100))<1e-6}numOrNull(t){return t==null||t===""||isNaN(Number(t))?null:Number(t)}onEasyPostChange(){this.product.easyPostShipping&&(this.product.shipPrice=void 0,this.shipTiers=[],this.shipMode="perItem",this.product.freeShipping=!1,this.product.shipParcel=this.product.shipParcel||{})}addVariant(){this.product.variants.push({label:"",sku:"",price:void 0,stock:void 0})}removeVariant(t){this.product.variants.splice(t,1)}uploadImage(t){let i=t.target,e=i.files&&i.files[0];if(i.value="",!e)return;this.uploading=!0;let o=new FormData;
11o.append("file",e,e.name),this.api.post4Upload("Shop/admin/uploadImage",o).pipe(v(this._unsubscribeAll)).subscribe({next:c=>{c?.url&&this.product.images.push(c.url),this.uploading=!1},error:c=>{this.uploading=!1,this.notify.openErrorModal(c.error?c.error:"The image could not be uploaded. Please try again.")}})}removeImage(t){this.product.images.splice(t,1)}makePrimary(t){let[i]=this.product.images.splice(t,1);this.product.images.unshift(i)}validation(){if(!this.product.name?.trim())return{message:"Please give the product a name.",tab:0};let t=this.markdown.offHostImages(this.product.description||"");if(t.length)return{message:t.length===1?"One picture in the description is linked from another website, so buyers will not see it. Delete it and add it again with the picture button.":t.length+" pictures in the description are linked from other websites, so buyers will not see them. Delete them and add them again with the picture button.",tab:0};if(this.product.preSale&&!this.formatDay(this.shipDateValue))return{message:"Please pick the date this pre-sale product will ship.",tab:0};if(!this.product.variants?.length)return{message:"Please add at least one option with a price and stock.",tab:1};for(let e of this.product.variants){if(e.price==null||e.price<0)return{message:"Every option needs a price of $0 or more.",tab:1};if(e.stock==null||e.stock<0)return{message:"Every option needs a stock count of 0 or more.",tab:1};if(this.product.variants.length>1&&!e.label?.trim())return{message:"Please label every option (for example a size) so buyers can tell them apart.",tab:1};if(this.product.easyPostShipping&&e.weightOz!=null&&!(e.weightOz>0))return{message:"A weight override must be greater than zero \u2014 leave it empty to use the product weight.",tab:1}}if(this.product.easyPostShipping){let e=this.product.shipParcel;if(!e||!(e.weightOz>0)||!(e.lengthIn>0)||!(e.widthIn>0)||!(e.heightIn>0))return{message:"EasyPost shipping needs the parcel's weight and all three dimensions, each greater than zero.",tab:2}}let i=this.product.shipPriceTiers;if(i?.length&&!this.product.easyPostShipping&&!this.product.freeShipping){if(this.product.shipPrice==null)return{message:"Set the shipping price for 1 item before adding prices for larger quantities.",tab:2};let e=this.product.shipPrice;for(let o=0;o<i.length;o++){let c=i[o];if(c==null||c<0)return{message:`Fill in the shipping price for ${o+2} items, or remove that row.`,tab:2};if(c<e)return{message:`Shipping for ${o+2} items can't be less than for ${o+1}.`,tab:2};e=c}}return null}storedTiers(){if(this.shipMode!=="byQuantity")return;let t=this.shipTiers.map(i=>this.numOrNull(i));return t.length?t:void 0}save(){if(this.saving)return;this.product.description=this.markdown.toMarkdown(this.descriptionHtml),this.product.shipDate=this.product.preSale?this.formatDay(this.shipDateValue):void 0,this.product.shipPriceTiers=this.storedTiers();let t=this.validation();if(t){this.selectedTab=t.tab,this.notify.openErrorModal(t.message);return}this.saving=!0,this.dialogRef.disableClose=!0,this.api.post("Shop/admin/saveProduct",this.product,!0).pipe(v(this._unsubscribeAll)).subscribe({next:()=>this.dialogRef.close(this.product),error:i=>{this.saving=!1,this.dialogRef.disableClose=!1,this.notify.openErrorModal(i.error?i.error:"The product could not be saved. Please try again.")}})}restockHint(t){return t.soldOut===!0&&(t.stock||0)===0}ngOnDestroy(){this._unsubscribeAll.next(!0),this._unsubscribeAll.complete()}static \u0275fac=function(i){return new(i||n)(O(Et),O(Ot),O(nt),O(ot),O(ye))};static \u0275cmp=N({type:n,selectors:[["shop-product-edit-dialog"]],decls:17,vars:7,consts:[["shipDatePicker",""],["t
11itleId","product-dialog-title",3,"closed","title","subtitle"],["animationDuration","150ms",3,"selectedIndexChange","selectedIndex"],["label","Product Details"],["matTabContent",""],["label","Options & Pricing"],["label","Shipping & Pickup"],[1,"rpui-dialog-actions"],["name","active",3,"ngModelChange","ngModel"],[1,"rpui-spacer"],["mat-button","",3,"mat-dialog-close","disabled"],["mat-flat-button","","color","primary",3,"click","disabled"],[1,"tab-body"],[1,"form-row"],["appearance","outline","subscriptSizing","dynamic",1,"f-name"],["matInput","","name","name","required","",3,"ngModelChange","ngModel"],["appearance","outline","subscriptSizing","dynamic",1,"f-category"],["name","categoryID",3,"ngModelChange","ngModel"],[3,"value"],[1,"choice-card","mt-16"],["name","preSale",3,"ngModelChange","change","ngModel"],[1,"block-hint","secondary-text"],[1,"md-field","mt-16"],["for","productDescription",1,"block-label"],["id","productDescription","name","description","aria-describedby","productDescriptionHint",3,"ngModelChange","init","licenseKey","ngModel"],["id","productDescriptionHint",1,"block-hint","secondary-text"],[1,"block-label","mt-24"],[1,"image-strip"],[1,"image-tile",3,"is-main"],[1,"image-add"],["type","file","accept","image/*","hidden","",3,"change","disabled"],["appearance","outline","subscriptSizing","dynamic",1,"f-shipdate","mt-12"],["matInput","","name","shipDate","required","","aria-describedby","shipDateHint",3,"ngModelChange","matDatepicker","ngModel"],["matSuffix","",3,"for"],["id","shipDateHint",1,"block-hint","secondary-text"],[1,"date-note"],[1,"note-icon"],[1,"image-tile"],[3,"src","alt"],[1,"main-chip"],[1,"tile-overlay"],["mat-icon-button","","matTooltip","Make main photo","aria-label","Make main photo"],["mat-icon-button","","matTooltip","Remove","aria-label","Remove photo",3,"click"],["mat-icon-button","","matTooltip","Make main photo","aria-label","Make main photo",3,"click"],[1,"option-name-row"],[1,"grid-scroll","mt-12"],[1,"variant-grid"],[1,"grid-head"],[1,"num"],[1,"grid-row",3,"is-soldout"],["mat-stroked-button","",1,"mt-16",3,"click"],[1,"block-label"],["appearance","outline","subscriptSizing","dynamic",1,"f-optionname"],["matInput","","name","optionName","placeholder","Size",3,"ngModelChange","ngModel"],[1,"grid-row"],[1,"cell"],["type","text",3,"ngModelChange","name","ngModel","placeholder"],["type","text","placeholder","optional",3,"ngModelChange","name","ngModel"],[1,"cell","affixed"],[1,"affix"],["type","number","min","0","step","0.01","placeholder","0.00",3,"ngModelChange","name","ngModel"],["type","number","min","0","step","1","placeholder","0",3,"ngModelChange","name","ngModel"],["mat-icon-button","","matTooltip","Remove option","aria-label","Remove option",1,"row-remove",3,"click","disabled"],[1,"row-note"],["type","number","min","0","step","0.1","placeholder","\u2014",3,"ngModelChange","name","ngModel"],[1,"choice-card"],[1,"ship-head"],["name","shipMode","aria-label","How shipping is priced","hideSingleSelectionIndicator","",1,"ship-mode",3,"value"],["name","freeShipping",1,"mt-8",3,"ngModelChange","change","ngModel","disabled"],["name","easyPostShipping",3,"ngModelChange","change","ngModel"],["appearance","outline","subscriptSizing","dynamic",1,"w-100-p","mt-12"],["matInput","","name","pickupDetails","rows","3","placeholder","Example: Pick up at the concession stand on game days, 9am\u20135pm.",3,"ngModelChange","ngModel"],["name","shipMode","aria-label","How shipping is priced","hideSingleSelectionIndicator","",1,"ship-mode",3,"change","value"],["value","perItem"],["value","byQuantity"],["appearance","outline","subscriptSizing","dynamic",1,"ship-single","mt-12"],["matTextPrefix",""],["matInput","","type","number","min","0","step","0.01","name","shipPrice","placeholder","0.00",3,"ngModelChange","ngModel"],["matTextSuffix",""],[1,"block-hint","secondary-text","mt-8"],[1,"ship-tier-rows","mt-12"],["appearance","outline","subscriptSizing","dynamic"],[1,"mt-8"],["mat-stroked-button","","type","button",3,"click","disabled"],["matInput","","type","number","min","0","step","0.01","required","",3,"ngModelChange","name","ngModel"],["mat-icon-button","","type","button","matTooltip","Remove row",1,"row-remove"],["mat-icon-button","","type","button","matTooltip","Remove row",1,"row-remove",3,"click"],["aria-live","polite",1,"ship-example","mt-12"],[1,"ship-example-chips"],[1,"parcel-grid","mt-12"],["matInput","","type","number","min","0","step","0.1","name","parcelWeight","required","",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","step","0.1","name","parcelLength","required","",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","step","0.1","name","parcelWidth","required","",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","step","0.1","name","parcelHeight","required","",3,"ngModelChange","ngModel"]],template:function(i,e){i&1&&(a(0,"rp-dialog-header",1),P("closed",function(){return e.dialogRef.close()}),r(),a(1,"mat-dialog-content")(2,"mat-tab-group",2),f("selectedIndexChange",function(c){return h(e.selectedTab,c)||(e.selectedTab=c),c}),a(3,"mat-tab",3),S(4,Qe,39,13,"ng-template",4),r(),a(5,"mat-tab",5),S(6,ti,22,5,"ng-template",4),r(),a(7,"mat-tab",6),S(8,mi,29,7,"ng-template",4),r()()(),a(9,"mat-dialog-actions",7)(10,"mat-slide-toggle",8),f("ngModelChange",function(c){return h(e.product.active,c)||(e.product.active=c),c}),l(11,"Visible in the shop"),r(),M(12,"span",9),a(13,"button",10),l(14,"Cancel"),r(),a(15,"button",11),P("click",function(){return e.save()}),l(16),r()()),i&2&&(_("title",e.product._key?"Edit Product":"New Product")("subtitle",e.product._key?e.product.name:""),d(2),u("selectedIndex",e.selectedTab),d(8),u("ngModel",e.product.active),d(3),_("disabled",e.saving),d(2),_("disabled",e.uploading||e.saving),d(),k(" ",e.saving?"Saving\u2026":"Save Product"," "))},dependencies:[R,$,A,yt,H,vt,wt,q,J,Q,U,Ht,Rt,At,Ut,qt,$t,jt,j,Dt,Vt,Tt,X,Y,K,G,It,tt,Z,it,et,Lt,Ft,zt,Nt,Bt,se,le,de,pe,rt,at,Pe,xe,Me,bt],styles:["[_ngcontent-%COMP%]:root{--rp-nav
11y-900: #10243f;--rp-navy-800: #143b67;--rp-navy-700: #1a3668;--rp-navy-600: #244f7e;--rp-text: #122033;--rp-text-muted: #64798c;--rp-text-subtle: #667085;--rp-divider: #dce5ee;--rp-divider-soft: #e8edf3;--rp-border-control: #8792a5;--rp-surface: #ffffff;--rp-surface-tint: #f2f7fc;--rp-surface-head: #eef2f6;--rp-surface-sunken: #f7f9fc;--rp-ok-bg: #eaf6ea;--rp-ok-border: #7fb583;--rp-ok-fg: #2e7d32;--rp-warn-bg: #fff3e0;--rp-warn-border: #c9922f;--rp-warn-fg: #9a4a00;--rp-danger-bg: #ffebee;--rp-danger-border: #d97b7b;--rp-danger-fg: #c62828;--rp-info-bg: #eef2fb;--rp-info-border: #8fa6cf;--rp-info-fg: #244f7e;--rp-neutral-bg: #f1f3f6;--rp-neutral-border: #9aa4b2;--rp-neutral-fg: #5a6b7d;--rp-gold-bg: #fdf6e3;--rp-gold-ring: #d4a531;--rp-gold-fg: #6b4700;--rp-silver-bg: #f1f3f6;--rp-silver-ring: #9ba5b1;--rp-silver-fg: #48535f;--rp-bronze-bg: #f8ede6;--rp-bronze-ring: #c4855f;--rp-bronze-fg: #6e3b1d;--rp-focus-ring: #244f7e;--rp-radius-control: 6px;--rp-radius-card: 8px;--rp-radius-row: 10px;--rp-radius-panel: 16px;--rp-shadow-card: 0 1px 3px rgba(15, 31, 53, .05);--rp-shadow-panel: 0 1px 3px rgba(15, 31, 53, .04), 0 8px 32px rgba(15, 31, 53, .07)}[_nghost-%COMP%]{display:block}[_nghost-%COMP%]   mat-dialog-content[_ngcontent-%COMP%]{max-height:72vh;padding:0 24px;overflow-x:hidden}[_nghost-%COMP%]   .tab-body[_ngcontent-%COMP%]{padding:24px 0 8px;min-height:360px}[_nghost-%COMP%]   .block-label[_ngcontent-%COMP%]{font-size:13px;font-weight:600;letter-spacing:.01em}[_nghost-%COMP%]   .block-hint[_ngcontent-%COMP%]{font-size:12px;line-height:1.5;margin-top:2px;max-width:640px}[_nghost-%COMP%]   .form-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:16px}[_nghost-%COMP%]   .form-row[_ngcontent-%COMP%]   .f-name[_ngcontent-%COMP%]{flex:2 1 320px}[_nghost-%COMP%]   .form-row[_ngcontent-%COMP%]   .f-category[_ngcontent-%COMP%]{flex:1 1 200px}[_nghost-%COMP%]   .f-shipdate[_ngcontent-%COMP%]{display:block;max-width:240px}[_nghost-%COMP%]   .date-note[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:6px;font-size:12px;line-height:1.5;color:#9a4a00;margin-top:8px;max-width:640px}[_nghost-%COMP%]   .date-note[_ngcontent-%COMP%]   .note-icon[_ngcontent-%COMP%]{flex:none;font-size:16px;width:16px;height:16px}[_nghost-%COMP%]   .md-field[_ngcontent-%COMP%]{display:block}[_nghost-%COMP%]   .md-field[_ngcontent-%COMP%]   .block-label[_ngcontent-%COMP%]{display:block;margin-bottom:4px}[_nghost-%COMP%]   .md-field[_ngcontent-%COMP%]   .tox-tinymce[_ngcontent-%COMP%]{border:1px solid #8792a5;border-radius:6px}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]{position:relative;width:104px;height:104px;border-radius:8px;overflow:hidden;border:1px solid #dce5ee}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile.is-main[_ngcontent-%COMP%]{border-color:#8792a5}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;display:block}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]   .main-chip[_ngcontent-%COMP%]{position:absolute;top:6px;left:6px;background:#000000b8;color:#fff;font-size:10px;font-weight:600;letter-spacing:.03em;padding:2px 7px;border-radius:10px}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]   .tile-overlay[_ngcontent-%COMP%]{position:absolute;inset:auto 0 0;display:flex;justify-content:center;gap:2px;padding:2px 0;background:linear-gradient(to top,#0000009e,#0000);opacity:0;transition:opacity .12s ease}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]   .tile-overlay[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{width:32px;height:32px;line-height:32px;color:#fff}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]   .tile-overlay[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]:hover   .tile-overlay[_ngcontent-%COMP%], [_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-tile[_ngcontent-%COMP%]:focus-within   .tile-overlay[_ngcontent-%COMP%]{opacity:1}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-add[_ngcontent-%COMP%]{width:104px;
11height:104px;border:1px dashed #8792a5;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-size:12px;color:#64798c;transition:border-color .12s ease,background-color .12s ease}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-add[_ngcontent-%COMP%]:hover{border-color:#00000080;background:#00000005}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-add.disabled[_ngcontent-%COMP%]{opacity:.55;cursor:default}[_nghost-%COMP%]   .image-strip[_ngcontent-%COMP%]   .image-add[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{color:#64798c}[_nghost-%COMP%]   .option-name-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px}[_nghost-%COMP%]   .option-name-row[_ngcontent-%COMP%]   .f-optionname[_ngcontent-%COMP%]{width:190px}[_nghost-%COMP%]   .grid-scroll[_ngcontent-%COMP%]{overflow-x:auto;padding-bottom:4px}[_nghost-%COMP%]   .variant-grid[_ngcontent-%COMP%]{min-width:520px;border:1px solid #dce5ee;border-radius:8px;overflow:hidden}[_nghost-%COMP%]   .variant-grid--weights[_ngcontent-%COMP%]{min-width:600px}[_nghost-%COMP%]   .variant-grid--weights[_ngcontent-%COMP%]   .grid-head[_ngcontent-%COMP%], [_nghost-%COMP%]   .variant-grid--weights[_ngcontent-%COMP%]   .grid-row[_ngcontent-%COMP%]{grid-template-columns:minmax(150px,2fr) minmax(104px,1fr) 92px 78px 78px 40px}[_nghost-%COMP%]   .grid-head[_ngcontent-%COMP%], [_nghost-%COMP%]   .grid-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(150px,2fr) minmax(104px,1fr) 92px 78px 40px;gap:8px;align-items:center;padding:0 10px}[_nghost-%COMP%]   .parcel-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:10px}@media(max-width:599px){[_nghost-%COMP%]   .parcel-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}[_nghost-%COMP%]   .grid-head[_ngcontent-%COMP%]{height:34px;background:#eef2f6;border-bottom:1px solid #dce5ee}[_nghost-%COMP%]   .grid-head[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#4a5568;padding:0 9px}[_nghost-%COMP%]   .grid-head[_ngcontent-%COMP%]   .num[_ngcontent-%COMP%]{text-align:right}[_nghost-%COMP%]   .grid-row[_ngcontent-%COMP%]{padding-top:8px;padding-bottom:8px}[_nghost-%COMP%]   .grid-row[_ngcontent-%COMP%] + .grid-row[_ngcontent-%COMP%]{border-top:1px solid #e8edf3}[_nghost-%COMP%]   .grid-row.is-soldout[_ngcontent-%COMP%]{background:#ffebee}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]{display:flex;align-items:center;height:36px;border:1px solid #dce5ee;border-radius:6px;background:#fff;padding:0 8px;transition:border-color .12s ease,box-shadow .12s ease}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]:focus-within{border-color:#244f7e;box-shadow:0 0 0 3px #244f7e29}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{width:100%;min-width:0;border:0;outline:none;background:transparent;font-size:13px;font-family:inherit;color:inherit;padding:0}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]::placeholder{color:#64798c}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]   input[type=number][_ngcontent-%COMP%]{-moz-appearance:textfield;text-align:right}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]   input[type=number][_ngcontent-%COMP%]::-webkit-outer-spin-button, [_nghost-%COMP%]   .cell[_ngcontent-%COMP%]   input[type=number][_ngcontent-%COMP%]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]   .affix[_ngcontent-%COMP%]{font-size:12px;color:#64798c;flex:0 0 auto}[_nghost-%COMP%]   .cell.affixed[_ngcontent-%COMP%]   .affix[_ngcontent-%COMP%]{margin-right:4px}[_nghost-%COMP%]   .cell.suffixed[_ngcontent-%COMP%]   .affix[_ngcontent-%COMP%]{margin-right:0;margin-left:4px}[_nghost-%COMP%]   .ship-head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}[_nghost-%COMP%]   .ship-mode[_ngcontent-%COMP%]{flex:none;font-size:13px}[_nghost-%COMP%]   .ship-single[_ngcontent-%COMP%]{display:block;width:100%;max-width:260px}[_nghost-%COMP%]   .ship-single[_ngcontent-%COMP%]   [matTextSuffix][_ngcontent-%COMP%]{white-space:nowrap}[_nghost-%COMP%]   .ship-tier-rows[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,220px) 36px;gap:10px 6px;align-items:center}[_nghost-%COMP%]   .ship-example[_ngcontent-%COMP%]{background:#f2f7fc;border-radius:6px;padding:8px 12px;font-size:13px}[_nghost-%COMP%]   .ship-example[_ngcontent-%COMP%]   .ship-example-chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px}[_nghost-%COMP%]   .ship-example[_ngcontent-%COMP%]   .ship-example-chips[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{white-space:nowrap}[_nghost-%COMP%]   .row-remove[_ngcontent-%COMP%]{width:36px;height:36px;line-height:36px;color:#00000073}[_nghost-%COMP%]   .row-remove[_ngcontent-%COMP%]   mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}[_nghost-%COMP%]   .row-remove[_ngcontent-%COMP%]:hover:not([disabled]){color:#c62828}[_nghost-%COMP%]   .row-note[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;align-items:center;gap:6px;font-size:12px;color:#c62828;padding-top:6px}[_nghost-%COMP%]   .row-note[_ngcontent-%COMP%]   .note-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}[_nghost-%COMP%]   .choice-card[_ngcontent-%COMP%]{border:1px solid #dce5ee;border-radius:8px;padding:16px}"]})}return n})();function ve(n){let p=JSON.parse(JSON.stringify(n));return delete p._key,delete p._rev,delete p.createdOn,delete p.updatedOn,p.name="Copy of "+(n.name||"").trim(),p.images=p.images||[],p.variants=(p.variants||[]).map(e=>{var o=e,{variantID:t}=o,i=_t(o,["variantID"]);return i}),p}var gi=()=>["/pages/shop-admin/settings"],_i=()=>[25,50,100],ui=(n,p)=>p.label;function hi(n,p){n&1&&(a(0,"div",2),M(1,"rp-state",3),r())}function fi(n,p){if(n&1){let t=b();a(0,"div",2)(1,"rp-state",4)(2,"button",5),P("click",function(){m(t);let e=s();return g(e.load())}),l(3,"Try again"),r()()()}if(n&2){let t=s();d(),_("body",t.errorMessage)}}function Ci(n,p){n&1&&(a(0,"div",6)(1,"mat-icon",13),l(2,"local_shipping"),r(),a(3,"div")(4,"div",14),l(5,"Add your ship-from address"),r(),a(6,"div",15),l(7," Buyers can't choose shipping at checkout until it's filled in. "),a(8,"a",16),l(9,"Open Shop Settings"),r()()()()),n&2&&(d(8),_("routerLink",gt(1,gi)))}function xi(n,p){if(n&1){let t=b();a(0,"rp-state",12)(1,"button",5),P("click",function(){m(t);let e=s(2);return g(e.openEdit())}),a(2,"mat-icon"),l(3,"add"),r(),l(4," New Product "),r()()}}function Pi(n,p){n&1&&(a(0,"th",43)(1,"span",44),l(2,"Order"),r()())}function bi(n,p){if(n&1){let t=b();a(0,"td",45)(1,"button",46),P("keydown.arrowUp",function(e){let o=m(t).$implicit,c=s(3);return g(c.nudge(o,-1,e))})("keydown.arrowDown",function(e){let o=m(t).$implicit,c=s(3);return g(c.nudge(o,1,e))}),a(2,"mat-icon"),l(3,"drag_indicator"),r()()()}if(n&2){let t=p.$implicit,i=s(3);d(),_("disabled",!i.canReorder)("matTooltip",i.canReorder?"Drag to reorder":"Clear search and s
11orting to reorder"),E("aria-label","Reorder "+t.name+": drag, or press the up and down arrow keys")}}function Mi(n,p){n&1&&(a(0,"th",47),l(1,"Product"),r())}function Si(n,p){if(n&1&&M(0,"img",50),n&2){let t=s().$implicit;_("src",t.images[0],B)}}function yi(n,p){n&1&&(a(0,"div",51)(1,"mat-icon"),l(2,"image_not_supported"),r()())}function wi(n,p){if(n&1&&l(0),n&2){let t=s().$implicit;k(" \xB7 ",t.variants[0].sku," ")}}function vi(n,p){if(n&1&&(a(0,"td",48)(1,"div",49),C(2,Si,1,1,"img",50)(3,yi,3,0,"div",51),a(4,"div",52)(5,"div",53),l(6),r(),a(7,"div",54),l(8),C(9,wi,1,1),r()()()()),n&2){let t=p.$implicit,i=s(3);d(2),x(t.images!=null&&t.images.length?2:3),d(4),w(t.name),d(2),k(" ",i.categoryName(t.categoryID)||"No category"," "),d(),x((t.variants==null?null:t.variants.length)===1&&t.variants[0].sku?9:-1)}}function Oi(n,p){n&1&&(a(0,"th",55),l(1,"Options"),r())}function Ei(n,p){if(n&1&&(a(0,"td",56),l(1),r()),n&2){let t=p.$implicit;d(),w((t.variants==null?null:t.variants.length)||0)}}function ki(n,p){n&1&&(a(0,"th",57),l(1,"Price"),r())}function Di(n,p){if(n&1&&(a(0,"td",58),l(1),r()),n&2){let t=p.$implicit,i=s(3);d(),w(i.priceLabel(t))}}function Ti(n,p){n&1&&(a(0,"th",55),l(1,"Stock"),r())}function Vi(n,p){if(n&1&&(a(0,"td",59),l(1),r()),n&2){let t=p.$implicit,i=s(3);d(),w(i.totalStock(t))}}function Ii(n,p){n&1&&(a(0,"th",60),l(1,"Status"),r())}function Wi(n,p){if(n&1&&(a(0,"mat-icon",64),l(1),r()),n&2){let t=s().$implicit;d(),w(t.icon)}}function zi(n,p){if(n&1&&(a(0,"span",63),C(1,Wi,2,1,"mat-icon",64),l(2),r()),n&2){let t=p.$implicit;_("ngClass","rpui-chip--"+t.kind),d(),x(t.icon?1:-1),d(),k(" ",t.label," ")}}function Fi(n,p){if(n&1&&(a(0,"td",61)(1,"div",62),T(2,zi,3,3,"span",63,ui),r()()),n&2){let t=p.$implicit,i=s(3);d(2),V(i.statusChips(t))}}function Li(n,p){n&1&&(a(0,"th",65),l(1,"Actions"),r())}function Bi(n,p){if(n&1){let t=b();a(0,"td",66)(1,"button",67),P("click",function(){let e=m(t).$implicit,o=s(3);return g(o.openEdit(e))}),a(2,"mat-icon"),l(3,"edit"),r()(),a(4,"button",67),P("click",function(){let e=m(t).$implicit,o=s(3);return g(o.duplicate(e))}),a(5,"mat-icon"),l(6,"content_copy"),r()(),a(7,"button",68),P("click",function(){let e=m(t).$implicit,o=s(3);return g(o.remove(e))}),a(8,"mat-icon"),l(9,"delete_outline"),r()()()}if(n&2){let t=p.$implicit,i=s(3);d(),_("disabled",i.orderSaving)("matTooltip","Edit "+t.name),E("aria-label","Edit "+t.name),d(3),_("disabled",i.orderSaving)("matTooltip","Duplicate "+t.name),E("aria-label","Duplicate "+t.name),d(3),_("matTooltip","Remove "+t.name),E("aria-label","Remove "+t.name)}}function Ni(n,p){n&1&&M(0,"tr",69)}function Ri(n,p){n&1&&M(0,"tr",70)}function Ai(n,p){if(n&1&&(a(0,"tr",71)(1,"td",72),l(2),r()()),n&2){let t=s(3);d(),E("colspan",t.displayedColumns.length),d(),k(" No products match \u201C",t.searchTerm,"\u201D. ")}}function Hi(n,p){if(n&1){let t=b();a(0,"div",17)(1,"table",18),P("cdkDropListDropped",function(e){m(t);let o=s(2);return g(o.drop(e))}),I(2,19),S(3,Pi,3,0,"th",20)(4,bi,4,3,"td",21),W(),I(5,22),S(6,Mi,2,0,"th",23)(7,vi,10,4,"td",24),W(),I(8,25),S(9,Oi,2,0,"th",26)(10,Ei,2,1,"td",27),W(),I(11,28),S(12,ki,2,0,"th",29)(13,Di,2,1,"td",30),W(),I(14,31),S(15,Ti,2,0,"th",26)(16,Vi,2,1,"td",32),W(),I(17,33),S(18,Ii,2,0,"th",34)(19,Fi,4,0,"td",35),W(),I(20,36),S(21,Li,2,0,"th",37)(22,Bi,10,8,"td",38),W(),S(23,Ni,1,0,"tr",39)(24,Ri,1,0,"tr",40)(25,Ai,3,2,"tr",41),r()(),M(26,"mat-paginator",42)}if(n&2){let t=s(2);d(),_("dataSource",t.dataSource)("cdkDropListDisabled",!t.canReorder),d(22),_("matHeaderRowDef",t.displayedColumns),d(),_("matRowDefColumns",t.displayedColumns),d(2),_("pageSizeOptions",gt(6,_i))("pageSize",25)}}function qi(n,p){if(n&1){let t=b();a(0,"div",2),C(1,Ci,10,2,"div",6),a(2,"div",7)(3,"mat-form-field",8)(4,"mat-label"),l(5,"Search products"),r(),a(6,"mat-icon",9),l(7,"search"),r(),a(8,"input",10),f("ngModelChange",function(e){m(t);let o=s();return h(o.searchTerm,e)||(o.searchTerm=e),g(e)}),P("ngModelChange",function(){m(t);let e=s();return g(e.applySearch())}),r()(),M(9,"span",11),a(10,"button",5),P("click",function(){m(t);let e=s();return g(e.openEdit())}),a(11,"mat-icon"),l(12,"add"),r(),l(13," New Product "),r()(),C(14,xi,5,0,"rp-state",12)(15,Hi,27,7),r()}if(n&2){let t=s();d(),x(t.hasShipFrom?-1:1),d(7),u("ngModel",t.searchTerm),d(6),x(t.dataSource.data.length===0?14:15)}}var Hn=(()=>{class n{api;notify;dialog;loading=!0;errorMessage="";hasShipFrom=!0;categories=[];dataSource=new re([]);displayedColumns=["order","product","options","price","stock","status","actions"];searchTerm="";orderSaving=!1;orderDirty=!1;destroyed=!1;set sort(t){t&&(this.dataSource.sort=t)}set paginator(t){t&&(this.dataSource.paginator=t)}_unsubscribeAll=new L;constructor(t,i,e){this.api=t,this.notify=i,this.dialog=e,this.dataSource.sortingDataAccessor=(o,c)=>{switch(c){case"product":return(o.name||"").toLowerCase();case"options":return o.variants?.length||0;case"price":return this.minPrice(o);case"stock":return this.totalStock(o);default:return""}},this.dataSource.filterPredicate=(o,c)=>(o.name||"").toLowerCase().includes(c)||this.categoryName(o.categoryID).toLowerCase().includes(c)||(o.variants||[]).some(y=>(y.sku||"").toLowerCase().includes(c))}ngOnInit(){this.load()}get canReorder(){return!this.dataSource.filter&&!this.dataSource.sort?.direction}pageOffset(){let t=this.dataSource.paginator;return t?t.pageIndex*t.pageSize:0}drop(t){if(!this.canReorder||t.previousIndex===t.currentIndex)return;let i=this.pageOffset();this.move(t.previousIndex+i,t.currentIndex+i)}nudge(t,i,e){if(e.preventDefault(),!this.canReorder)return;let o=this.dataSource.data.indexOf(t),c=o+i;o<0||c<0||c>=this.dataSource.data.length||this.move(o,c)}move(t,i){let e=[...this.dataSource.data];_e(e,t,i),this.dataSource.data=e,this.saveOrder()}saveOrder(){if(this.orderSaving){this.orderDirty=!0;return}this.orderSaving=!0,this.orderDirty=!1,this.api.post("Shop/admin/reorderProducts",this.dataSource.data.map(t=>t._key),!0).subscribe({next:t=>{let i=new Map((t||[]).map(e=>[e._key,e]));for(let e of this.dataSource.data){let o=i.get(e._key);o&&Object.assign(e,o)}this.orderSaving=!1,this.orderDirty?this.saveOrder():this.destroyed||this.notify.openToaster("Product order saved.","success")},error:t=>{this.orderSaving=!1,this.orderDirty=!1,this.notify.openErrorModal(t.error?t.error:"The product order could not be saved. Please try again."),this.destroyed||this.load()}})}load(){this.loading=!0,this.errorMessage="",this.api.get("Shop/admin/products",!0).pipe(v(this._unsubscribeAll)).subscribe({next:t=>{this.dataSource.data=t?.products||[],this.categories=t?.categories||[],this.hasShipFrom=t?.hasShipFrom!==!1,this.loading=!1},error:t=>{this.errorMessage=t.error?t.error:"The products could not be loaded. Please try again.",this.loading=!1}})}applySearch(){this.dataSource.filter=(this.searchTerm||"").trim().toLowerCase(),this.dataSource.paginator?.firstPage()}categoryName(t){return this.categories.find(i=>i._key===t)?.name||""}minPrice(t){let i=(t.variants||[]).map(e=>e.price??0);return i.length?Math.min(...i):0}priceLabel(t){let i=(t.variants||[]).map(c=>c.price??0);if(!i.length)return"\u2014";let e=Math.min(...i),o=Math.max(...i);return e===o?"$"+e.toFixed(2):"$"+e.toFixed(2)+" \u2013 $"+o.toFixed(2)}totalStock(t){return(t.variants||[]).reduce((i,e)=>i+(e.stock||0),0)}statusChips(t){let i=[],e=t.variants||[],o=e.filter(c=>c.soldOut);return t.active||i.push({label:"Hidden",kind:"neutral",icon:"visibility_off"}
11),o.length&&o.length===e.length?i.push({label:"Sold out",kind:"danger",icon:"error_outline"}):o.length&&i.push({label:o.length+" of "+e.length+" sold out",kind:"warn",icon:"error_outline"}),t.freeShipping&&i.push({label:"Free shipping",kind:"info"}),t.easyPostShipping&&i.push({label:"EasyPost",kind:"info",icon:"local_shipping"}),t.pickupDetails?.trim()&&i.push({label:"Pickup",kind:"info"}),!t.freeShipping&&!t.easyPostShipping&&(t.shipPrice==null||t.shipPrice<0)&&i.push({label:"No ship price",kind:"warn",icon:"local_shipping"}),i}openEdit(t){let i={product:t?JSON.parse(JSON.stringify(t)):{name:"",description:"",categoryID:void 0,images:[],optionName:"Size",variants:[{label:"",sku:"",price:void 0,stock:void 0}],freeShipping:!1,pickupDetails:"",active:!0},categories:this.categories};this.dialog.open(we,{data:i,width:"1180px",maxWidth:"94vw",autoFocus:"dialog"}).afterClosed().pipe(v(this._unsubscribeAll)).subscribe(e=>{e&&(this.notify.openToaster("Product saved.","success"),this.load())})}duplicate(t){this.openEdit(ve(t))}remove(t){let i=this.dialog.open(Wt,{disableClose:!1});i.componentInstance.confirmMessage='Remove "'+t.name+'" from the shop? Existing orders are kept.',i.afterClosed().pipe(v(this._unsubscribeAll)).subscribe(e=>{e&&this.api.post("Shop/admin/deleteProduct/"+t._key,{},!0).pipe(v(this._unsubscribeAll)).subscribe({next:()=>{this.notify.openToaster("Product removed.","success"),this.load()},error:o=>this.notify.openErrorModal(o.error?o.error:"The product could not be removed. Please try again.")})})}ngOnDestroy(){this.destroyed=!0,this._unsubscribeAll.next(!0),this._unsubscribeAll.complete()}static \u0275fac=function(i){return new(i||n)(O(nt),O(ot),O(kt))};static \u0275cmp=N({type:n,selectors:[["shop-products"]],viewQuery:function(i,e){if(i&1&&(st(dt,5),st(lt,5)),i&2){let o;ct(o=mt())&&(e.sort=o.first),ct(o=mt())&&(e.paginator=o.first)}},decls:5,vars:4,consts:[["id","ShopProductsPage",1,"page-layout","simple","fullwidth"],["title","Shop Products","matIcon","inventory_2",3,"hideBanner"],[1,"content","p-24"],["mode","loading","body","Loading products"],["mode","error","title","We couldn't load your products",3,"body"],["mat-flat-button","","color","primary",3,"click"],["role","status",1,"rpui-state","rpui-state--inline","mb-16"],[1,"toolbar"],["appearance","outline","subscriptSizing","dynamic",1,"search-field"],["matPrefix",""],["matInput","","placeholder","Name, category, or SKU",3,"ngModelChange","ngModel"],[1,"toolbar__spacer"],["mode","empty","icon","inventory_2","title","No products yet","body","Add your first product to open the shop. You can set sizes, prices and stock for each one."],[1,"rpui-state__icon"],[1,"rpui-state__title"],[1,"rpui-state__body"],[3,"routerLink"],[1,"rpui-table-wrap","rpui-table-stack"],["mat-table","","matSort","","cdkDropList","",3,"cdkDropListDropped","dataSource","cdkDropListDisabled"],["matColumnDef","order"],["mat-header-cell","","class","col-order",4,"matHeaderCellDef"],["mat-cell","","class","col-order",4,"matCellDef"],["matColumnDef","product"],["mat-header-cell","","mat-sort-header","","class","col-product",4,"matHeaderCellDef"],["mat-cell","","class","col-product",4,"matCellDef"],["matColumnDef","options"],["mat-header-cell","","mat-sort-header","","class","rpui-num col-narrow",4,"matHeaderCellDef"],["mat-cell","","class","rpui-num col-narrow","data-label","Options",4,"matCellDef"],["matColumnDef","price"],["mat-header-cell","","mat-sort-header","","class","rpui-num col-price",4,"matHeaderCellDef"],["mat-cell","","class","rpui-num col-price","data-label","Price",4,"matCellDef"],["matColumnDef","stock"],["mat-cell","","class","rpui-num col-narrow","data-label","Stock",4,"matCellDef"],["matColumnDef","status"],["mat-header-cell","","class","col-status",4,"matHeaderCellDef"],["mat-cell","","class","col-status",4,"matCellDef"],["matColumnDef","actions"],["mat-header-cell","","class","col-actions",4,"matHeaderCellDef"],["mat-cell","","class","col-actions",4,"matCellDef"],["mat-header-row","",4,"matHeaderRowDef"],["mat-row","","cdkDrag","",4,"matRowDef","matRowDefColumns"],["class","mat-row no-match-row",4,"matNoDataRow"],["showFirstLastButtons","","aria-label","Select page of products",3,"pageSizeOptions","pageSize"],["mat-header-cell","",1,"col-order"],[1,"cdk-visually-hidden"],["mat-cell","",1,"col-order"],["mat-icon-button","","cdkDragHandle","","type","button",1,"rpui-icon-target","drag-handle",3,"keydown.arrowUp","keydown.arrowDown","disabled","matTooltip"],["mat-header-cell","","mat-sort-header","",1,"col-product"],["mat-cell","",1,"col-product"],[1,"rpui-identity"],["alt","",1,"rpui-identity__thumb",3,"src"],["aria-hidden","true",1,"rpui-identity__thumb","thumb-placeholder"],[1,"rpui-identity__text"],[1,"rpui-identity__title"],[1,"rpui-identity__meta"],["mat-header-cell","","mat-sort-header","",1,"rpui-num","col-narrow"],["mat-cell","","data-label","Options",1,"rpui-num","col-narrow"],["mat-header-cell","","mat-sort-header","",1,"rpui-num","col-price"],["mat-cell","","data-label","Price",1,"rpui-num","col-price"],["mat-cell","","data-label","Stock",1,"rpui-num","col-narrow"],["mat-header-cell","",1,"col-status"],["mat-cell","",1,"col-status"],[1,"rpui-chip-set"],[1,"rpui-chip",3,"ngClass"],["aria-hidden","true"],["mat-header-cell","",1,"col-actions"],["mat-cell","",1,"col-actions"],["mat-icon-button","",1,"rpui-icon-target",3,"click","disabled","matTooltip"],["mat-icon-button","",1,"rpui-icon-target","act-remove",3,"click","matTooltip"],["mat-header-row",""],["mat-row","","cdkDrag",""],[1,"mat-row","no-match-row"],[1,"mat-cell"]],template:function(i,e){i&1&&(a(0,"div",0),M(1,"page-header",1),C(2,hi,2,0,"div",2),C(3,fi,4,1,"div",2),C(4,qi,16,3,"div",2),r()),i&2&&(d(),_("hideBanner",!0),d(),x(e.loading?2:-1),d(),x(!e.loading&&e.errorMessage?3:-1),d(),x(!e.loading&&!e.errorMessage?4:-1))},dependencies:[R,Pt,Ce,fe,he,ue,$,A,H,q,St,Mt,J,Q,U,j,X,Y,K,G,tt,Z,it,et,ce,lt,ge,dt,me,ae,Jt,Gt,te,Yt,Kt,ee,Xt,Zt,ie,ne,oe,rt,at,Qt,be],styles:["[_ngcontent-%COMP%]:root{--rp-nav
11y-900: #10243f;--rp-navy-800: #143b67;--rp-navy-700: #1a3668;--rp-navy-600: #244f7e;--rp-text: #122033;--rp-text-muted: #64798c;--rp-text-subtle: #667085;--rp-divider: #dce5ee;--rp-divider-soft: #e8edf3;--rp-border-control: #8792a5;--rp-surface: #ffffff;--rp-surface-tint: #f2f7fc;--rp-surface-head: #eef2f6;--rp-surface-sunken: #f7f9fc;--rp-ok-bg: #eaf6ea;--rp-ok-border: #7fb583;--rp-ok-fg: #2e7d32;--rp-warn-bg: #fff3e0;--rp-warn-border: #c9922f;--rp-warn-fg: #9a4a00;--rp-danger-bg: #ffebee;--rp-danger-border: #d97b7b;--rp-danger-fg: #c62828;--rp-info-bg: #eef2fb;--rp-info-border: #8fa6cf;--rp-info-fg: #244f7e;--rp-neutral-bg: #f1f3f6;--rp-neutral-border: #9aa4b2;--rp-neutral-fg: #5a6b7d;--rp-gold-bg: #fdf6e3;--rp-gold-ring: #d4a531;--rp-gold-fg: #6b4700;--rp-silver-bg: #f1f3f6;--rp-silver-ring: #9ba5b1;--rp-silver-fg: #48535f;--rp-bronze-bg: #f8ede6;--rp-bronze-ring: #c4855f;--rp-bronze-fg: #6e3b1d;--rp-focus-ring: #244f7e;--rp-radius-control: 6px;--rp-radius-card: 8px;--rp-radius-row: 10px;--rp-radius-panel: 16px;--rp-shadow-card: 0 1px 3px rgba(15, 31, 53, .05);--rp-shadow-panel: 0 1px 3px rgba(15, 31, 53, .04), 0 8px 32px rgba(15, 31, 53, .07)}#ShopProductsPage[_ngcontent-%COMP%]   .toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;margin-bottom:16px}#ShopProductsPage[_ngcontent-%COMP%]   .toolbar__spacer[_ngcontent-%COMP%]{flex:1 1 auto}#ShopProductsPage[_ngcontent-%COMP%]   .toolbar[_ngcontent-%COMP%]   .search-field[_ngcontent-%COMP%]{width:340px;max-width:100%}@media screen and (max-width:599px){#ShopProductsPage[_ngcontent-%COMP%]   .toolbar[_ngcontent-%COMP%]{flex-wrap:wrap}#ShopProductsPage[_ngcontent-%COMP%]   .toolbar[_ngcontent-%COMP%]   .search-field[_ngcontent-%COMP%]{width:100%}#ShopProductsPage[_ngcontent-%COMP%]   .toolbar__spacer[_ngcontent-%COMP%]{display:none}#ShopProductsPage[_ngcontent-%COMP%]   .toolbar[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{width:100%}}#ShopProductsPage[_ngcontent-%COMP%]   .col-product[_ngcontent-%COMP%]{width:auto;min-width:260px}#ShopProductsPage[_ngcontent-%COMP%]   .col-narrow[_ngcontent-%COMP%]{width:96px;white-space:nowrap}#ShopProductsPage[_ngcontent-%COMP%]   .col-price[_ngcontent-%COMP%]{width:160px;white-space:nowrap}#ShopProductsPage[_ngcontent-%COMP%]   .col-status[_ngcontent-%COMP%]{width:280px}#ShopProductsPage[_ngcontent-%COMP%]   .col-actions[_ngcontent-%COMP%]{width:152px;white-space:nowrap;text-align:right}#ShopProductsPage[_ngcontent-%COMP%]   .col-order[_ngcontent-%COMP%]{width:48px;padding-right:0}#ShopProductsPage[_ngcontent-%COMP%]   .drag-handle[_ngcontent-%COMP%]:not([disabled]){cursor:grab;color:#64798c}#ShopProductsPage[_ngcontent-%COMP%]   tr.cdk-drag-preview[_ngcontent-%COMP%]{display:table;table-layout:fixed;background:#fff;box-shadow:0 1px 3px #0f1f350a,0 8px 32px #0f1f3512;border-radius:8px}#ShopProductsPage[_ngcontent-%COMP%]   .cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:.35}#ShopProductsPage[_ngcontent-%COMP%]   .cdk-drag-animating[_ngcontent-%COMP%], #ShopProductsPage[_ngcontent-%COMP%]   .cdk-drop-list-dragging[_ngcontent-%COMP%]   tr.mat-mdc-row[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(0,0,.2,1)}#ShopProductsPage[_ngcontent-%COMP%]   .thumb-placeholder[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;color:#64798c}#ShopProductsPage[_ngcontent-%COMP%]   .act-remove[_ngcontent-%COMP%]:hover:not([disabled]){color:#c62828}#ShopProductsPage[_ngcontent-%COMP%]   .no-match-row[_ngcontent-%COMP%]   .mat-cell[_ngcontent-%COMP%]{padding:18px;color:#64798c;font-size:13px}@media screen and (max-width:599px){#ShopProductsPage[_ngcontent-%COMP%]   .col-order[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px;padding:0}#ShopProductsPage[_ngcontent-%COMP%]   td.col-product[_ngcontent-%COMP%]{padding-right:44px}#ShopProductsPage[_ngcontent-%COMP%]   td.col-actions[_ngcontent-%COMP%]{justify-content:flex-end}}"]})}return n})();export{Hn as ShopProductsComponent};

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.