1import{a as re,b as ae,c as le}from"./chunk-H7CDQPD7.js";import{d as me}from"./chunk-PCYGTWI4.js";import{a as ne,b as oe}from"./chunk-4EWSVLPD.js";import{a as ee,b as te}from"./chunk-WHITNU3Z.js";import"./chunk-CSCX7XX7.js";import"./chunk-TA4CGIW5.js";import"./chunk-DSUZVMNK.js";import{b as Y,c as Z}from"./chunk-WKH5W2V2.js";import{a as X}from"./chunk-IBZUQYXW.js";import{b as Q,e as J,i as K}from"./chunk-7B5TRSS4.js";import{b as D,g as W,j as B,l as z,p as L,u as N}from"./chunk-4T2PTKQJ.js";import{a as ie}from"./chunk-QG57Z74K.js";import{a as U}from"./chunk-6AO5R6CW.js";import"./chunk-JCQ33YRD.js";import{S as A,U as q,V as G}from"./chunk-2GKCQ5UO.js";import{e as R}from"./chunk-KBT7HGMR.js";import{a as j,b as $}from"./chunk-AZMSRLP2.js";import{j as F,k as V}from"./chunk-J32AD3W7.js";import{Ab as _,Cb as u,Cc as E,Ec as k,Fb as H,Gb as I,Hb as S,Ib as o,Jb as r,Kb as O,Rb as M,Va as v,Vb as p,Xa as d,Xb as s,ba as b,ha as c,ia as g,jc as l,kb as w,kc as P,lc as T,pc as f,qc as C,rc as x,ua as h}from"./chunk-YOAD7BVF.js";import"./chunk-55GY6K5S.js";var se=(a,n)=>n.id;function pe(a,n){a&1&&(o(0,"div",15),O(1,"mat-spinner",18),r())}function ce(a,n){a&1&&(o(0,"p",16),l(1,"Select a restaurant first."),r())}function ge(a,n){a&1&&(o(0,"p",16),l(1,"No items match the current filter."),r())}function _e(a,n){a&1&&(o(0,"span",20),l(1,"Meal"),r())}function ue(a,n){if(a&1&&(o(0,"span",26),l(1),r()),a&2){let e=s(3);d(),P(e.appState.selectedRestaurant==null?null:e.appState.selectedRestaurant.currency)}}function fe(a,n){if(a&1){let e=M();o(0,"mat-form-field",29)(1,"mat-label"),l(2,"Order"),r(),o(3,"input",30),x("ngModelChange",function(i){c(e);let m=s().$implicit;return C(m.inSlider,i)||(m.inSlider=i),g(i)}),p("blur",function(){c(e);let i=s().$implicit,m=s(2);return g(m.onOrderBlur(i))}),r()()}if(a&2){let e=s().$implicit;d(3),f("ngModel",e.inSlider)}}function Ce(a,n){if(a&1){let e=M();o(0,"mat-form-field",29)(1,"mat-label"),l(2,"Order"),r(),o(3,"input",30),x("ngModelChange",function(i){c(e);let m=s().$implicit;return C(m.inHomePage,i)||(m.inHomePage=i),g(i)}),p("blur",function(){c(e);let i=s().$implicit,m=s(2);return g(m.onOrderBlur(i))}),r()()}if(a&2){let e=s().$implicit;d(3),f("ngModel",e.inHomePage)}}function xe(a,n){if(a&1){let e=M();o(0,"div",19),_(1,_e,2,0,"span",20),o(2,"div",21)(3,"img",22),p("error",function(i){return i.target.style.display="none"}),r()(),o(4,"div",23)(5,"h3",24),l(6),r(),o(7,"p",25),l(8),E(9,"number"),_(10,ue,2,1,"span",26),r(),o(11,"div",27)(12,"mat-slide-toggle",28),p("change",function(i){let m=c(e).$implicit,y=s(2);return g(y.onSliderToggle(i.checked,m,!1))}),l(13," In slider "),r(),_(14,fe,4,1,"mat-form-field",29),r(),o(15,"div",27)(16,"mat-slide-toggle",28),p("change",function(i){let m=c(e).$implicit,y=s(2);return g(y.onSliderToggle(i.checked,m,!0))}),l(17," Home page "),r(),_(18,Ce,4,1,"mat-form-field",29),r()()()}if(a&2){let e=n.$implicit,t=s(2);d(),u(e.itemDesc!=null&&e.itemDesc.isMeal?1:-1),d(2),S("src",t.imageUrl(e),v),d(3),P(e.itemDesc==null?null:e.itemDesc.name1),d(2),T(" ",k(9,9,e.lprice,"1.2-2")," "),d(2),u(t.appState.selectedRestaurant!=null&&t.appState.selectedRestaurant.currency?10:-1),d(2),S("checked",e.inSlider>0),d(2),u(e.inSlider>0?14:-1),d(2),S("checked",e.inHomePage>0),d(2),u(e.inHomePage>0?18:-1)}}function he(a,n){if(a&1&&(o(0,"div",17),H(1,xe,19,12,"div",19,se),r()),a&2){let e=s();d(),I(e.filteredItems())}}var de=class a{api=b(ie);appState=b(U);loading=h(!0);menuItems=h([]);filteredItems=h([]);filter="all";searchTerm="";ngOnInit(){this.loadItems()}loadItems(){let n=this.appState.selectedRestaurantId;if(!n){this.loading.set(!1);return}this.loading.set(!0),this.api.getHomePageItems(n).subscribe({next:e=>{this.menuItems.set(e??[]),this.filterItems(),this.loading.set(!1)},error:()=>{this.menuItems.set([]),this.filteredItems.set([]),this.loading.set(!1)}})}orderItems(){let n=this.filter==="inHomePage"?"inHomePage":"inSlider",e=[...this.filteredItems()];n==="inSlider"?e.sort((t,i)=>t.inSlider===0&&i.inSlider!==0?1:t.inSlider!==0&&i.inSlider===0?-1:t.inSlider-i.inSlider):e.sort((t,i)=>t.inHomePage===0&&i.inHomePage!==0?1:t.inHomePage!==0&&i.inHomePage===0?-1:t.inH
1omePage-i.inHomePage),this.filteredItems.set(e)}filterItems(){let n=this.menuItems(),e=[];switch(this.filter){case"all":e=[...n];break;case"inSlider":e=n.filter(i=>i.inSlider>0);break;case"inHomePage":e=n.filter(i=>i.inHomePage>0);break}let t=(this.searchTerm??"").trim().toLowerCase();t&&(e=e.filter(i=>i.itemDesc?.name1?.toLowerCase().includes(t))),this.filteredItems.set(e),this.orderItems()}imageUrl(n){let e=n?.itemDesc?.id;return me(A.apiUrl,e)}persistRow(n){let e=this.appState.selectedRestaurantId;e&&this.api.updateHomeItem(e,{id:n.id,inSlider:n.inSlider,inHomePage:n.inHomePage}).subscribe()}onSliderToggle(n,e,t){n?(t&&e.inHomePage<=0&&(e.inHomePage=1),!t&&e.inSlider<=0&&(e.inSlider=1),this.persistRow(e)):(t?e.inHomePage=0:e.inSlider=0,this.persistRow(e))}onOrderBlur(n){this.persistRow(n)}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=w({type:a,selectors:[["app-home-slider"]],decls:37,vars:3,consts:[[1,"breadcrumb"],["routerLink","/r/menu/categories"],[1,"breadcrumb-separator"],[1,"page-header"],[1,"page-subtitle"],["mat-stroked-button","","type","button",3,"click"],["appearance","outline",1,"search-field"],["matInput","",3,"ngModelChange","ngModel"],["matPrefix",""],[1,"filters"],[1,"filters-label"],[1,"radio-row",3,"ngModelChange","ngModel"],["value","all"],["value","inSlider"],["value","inHomePage"],[1,"loading-center"],[1,"muted"],[1,"card-grid"],["diameter","40"],[1,"home-card"],[1,"meal-chip"],[1,"thumb"],["alt","",3,"error","src"],[1,"body"],[1,"title"],[1,"price"],[1,"cur"],[1,"toggle-row"],[3,"change","checked"],["appearance","outline","subscriptSizing","dynamic",1,"order-field"],["matInput","","type","number","min","1",3,"ngModelChange","blur","ngModel"]],template:function(e,t){e&1&&(o(0,"div",0)(1,"a",1),l(2,"Categories"),r(),o(3,"mat-icon",2),l(4,"chevron_right"),r(),o(5,"span"),l(6,"Home & slider"),r()(),o(7,"div",3)(8,"div")(9,"h2"),l(10,"Home page & slider"),r(),o(11,"p",4),l(12," Choose which menu items appear in the app slider and on the home page (same data as RestoHQ). "),r()(),o(13,"button",5),p("click",function(){return t.orderItems()}),o(14,"mat-icon"),l(15,"sort"),r(),l(16," Reorder list "),r()(),o(17,"mat-form-field",6)(18,"mat-label"),l(19,"Search items"),r(),o(20,"input",7),x("ngModelChange",function(m){return C(t.searchTerm,m)||(t.searchTerm=m),m}),p("ngModelChange",function(){return t.filterItems()}),r(),o(21,"mat-icon",8),l(22,"search"),r()(),o(23,"div",9)(24,"span",10),l(25,"Show:"),r(),o(26,"mat-radio-group",11),x("ngModelChange",function(m){return C(t.filter,m)||(t.filter=m),m}),p("ngModelChange",function(){return t.filterItems()}),o(27,"mat-radio-button",12),l(28,"All items"),r(),o(29,"mat-radio-button",13),l(30,"In slider only"),r(),o(31,"mat-radio-button",14),l(32,"On home page only"),r()()(),_(33,pe,2,0,"div",15)(34,ce,2,0,"p",16)(35,ge,2,0,"p",16)(36,he,3,0,"div",17)),e&2&&(d(20),f("ngModel",t.searchTerm),d(6),f("ngModel",t.filter),d(7),u(t.loading()?33:t.appState.selectedRestaurantId?t.filteredItems().length===0?35:36:34))},dependencies:[V,N,D,z,W,L,B,R,G,q,X,K,Q,J,$,j,Z,Y,le,re,ae,oe,ne,te,ee,F],styles:[".breadcrumb[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;margin-bottom:16px;font-size:14px;color:var(--mat-sys-on-surface-variant)}.breadcrumb[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--mat-sys-primary);text-decoration:none}
1.breadcrumb[_ngcontent-%COMP%] .breadcrumb-separator[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.page-header[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.page-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-weight:600}.page-header[_ngcontent-%COMP%] .page-subtitle[_ngcontent-%COMP%]{margin:8px 0 0;font-size:14px;color:var(--mat-sys-on-surface-variant);max-width:560px}.search-field[_ngcontent-%COMP%]{width:100%;max-width:420px;margin-bottom:16px}.filters[_ngcontent-%COMP%]{margin-bottom:20px}.filters[_ngcontent-%COMP%] .filters-label[_ngcontent-%COMP%]{font-size:14px;font-weight:500;margin-right:12px}.filters[_ngcontent-%COMP%] .radio-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:8px}.loading-center[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:48px}.muted[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant)}.card-grid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:16px}.home-card[_ngcontent-%COMP%]{width:220px;border-radius:12px;border:1px solid var(--rp-border-accent, var(--mat-sys-outline-variant));background:var(--rp-surface-elevated, var(--mat-sys-surface-container-low));overflow:hidden;position:relative}.meal-chip[_ngcontent-%COMP%]{position:absolute;top:8px;left:8px;z-index:1;font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px;background:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container)}.thumb[_ngcontent-%COMP%]{height:120px;background:var(--mat-sys-surface-container)}.thumb[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;display:block}.body[_ngcontent-%COMP%]{padding:12px}.title[_ngcontent-%COMP%]{margin:0 0 4px;font-size:15px;font-weight:600;line-height:1.25}.price[_ngcontent-%COMP%]{margin:0 0 12px;font-size:14px;color:var(--mat-sys-on-surface-variant)}.price[_ngcontent-%COMP%] .cur[_ngcontent-%COMP%]{margin-left:4px}.toggle-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.order-field[_ngcontent-%COMP%]{width:88px}"]})};export{de as HomeSliderComponent};
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.