PageSourceSearch

https://marjan-voce.hr/_nuxt/Dnymxbz2.js

js marjan-voce.hr collected 2026-10-07 00:30:13 UTC 7,084 bytes, 1 lines download raw bytes

1import{p as O,q as U,j as p,s as W,x as Z,y as F,l as R,m as b,z as G,A as D,B as q,C as J,_ as K,c as Q,w as I,o as g,b as P,d as X,a as i,e as x,f as N,t as T,n as S,F as $,r as M,i as V}from"#entry";import{u as L}from"./D_Tx3MUO.js";import{_ as Y}from"./DKcmooq5.js";import{_ as ee}from"./BL84krbJ.js";import{_ as te}from"./B-5yRWnx.js";import"./B7QP7MIY.js";import"./CUiofvY4.js";import"./ClwWABGt.js";const ae={__name:"CompareSearch",props:O({item:Object,thumbPreset:String,limit:{type:Number,default:5}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(E){const y=U();L();const n=E,_=p([]),A=p(!1),u=W(E,"modelValue"),s=p(0),r=p(null),l=p(null),{loading:C}=Z("baseCatalogCompareData");let w;async function d(e){if(clearTimeout(w),!/^[a-zA-Z0-9 ]*$/.test(e.key)&&!["Backspace","ArrowDown","ArrowUp","Enter","Escape"].includes(e.key))return!1;if(e.key=="ArrowDown"||e.key=="ArrowUp")return _.value?.length?(e.key=="ArrowDown"&&(r.value=r.value==null?0:r.value+1,r.value>s.value-1&&(r.value=0),c()),e.key=="ArrowUp"&&(r.value--,r.value<0&&(r.value=s.value-1),c()),l.value=_.value[r.value],u.value=l.value?l.value.title:u.value,!1):void 0;e.key=="Enter"&&l.value&&h(l.value),(!u.value||e.key=="Escape")&&m(),w=setTimeout(B,300)}async function B(){if(!u.value||u.value.trim().length<2||/ {2,}/.test(u.value))return!1;s.value=0,r.value=null,A.value=!0;const e={search_q:u.value.trim(),limit:n.limit,mode:"search"},a=y.getComparedProducts();if(a?.length){const t=a.map(f=>f.id);e.id_exclude=t}const o=await y.fetchProducts(e);s.value=o?.data?.items?.length,_.value=o?.data?.items,A.value=!1}async function h(e){if(!e)return!1;C.value=!0,n.item&&await y.removeFromCompare({shopping_cart_code:n.item.shopping_cart_code}),await y.addToCompare({shopping_cart_code:e.shopping_cart_code}),await y.fetchComparedProducts({retry:"add",itemId:e.id}),m(),C.value=!1}let k;function v(){clearTimeout(k),k=setTimeout(()=>{m()},300)}function c(){const e=document.querySelector('li[data-compare-search-index="'+r.value+'"]');e&&e.scrollIntoView({block:"nearest",inline:"nearest"})}function m(){u.value="",_.value=null,s.value=0,r.value=null,l.value=null}return F(()=>{clearTimeout(w),clearTimeout(k)}),(e,a)=>R(e.$slots,"default",{items:b(_),loading:b(A),onAddToCompare:h,handleInput:d,onBlur:v,selectedIndex:b(r)})}},oe={__name:"Compare",props:{thumbPreset:String,syncRowHeight:{type:Boolean,default:!1}},emits:["loadProductsWidget","remove"],setup(E,{emit:y}){const n=U();L();const _=y,A=E,u=p(0),s=p(!1),r=p([]),l=p([]),C=p([]),w=p("all"),d=p([]);function B(e){w.value=e}let h;G(async()=>{d.value?.length||(s.value=!0,await n.fetchComparedProducts(),s.value=!1),A.syncRowHeight&&D(d,()=>{clearTimeout(h),h=setTimeout(()=>{v(),c()},200)},{immediate:!0}),D(()=>n.getComparedProducts(),async(e,a)=>{d.value=e?.length?k(e):[]},{immediate:!0}),_("loadProductsWidget",{items:d.value})});function k(e){const a=[...e];return u.value=a.length,l.value=[],r.value=[],C.value=[],a.length?(a.forEach(o=>{r.value.push(o),o.attributes?.length&&o.attributes.forEach(t=>{l.value.find(f=>f.attribute_code===t.attribute_code)||l.value.push(t)})}),a.forEach(o=>{let t=[];o.attributes?.length&&l.value.forEach(f=>{const z=o.attributes.find(H=>H.attribute_code===f.attribute_code);t.push({...f,title:z?z.title:""})}),o.attributes=t}),a.forEach(o=>{let t=[];o.attributes?.length&&o.attributes.forEach(f=>{t.includes(f.attribute_code)||a.find(H=>H.attributes.find(j=>j.attribute_code===f.attribute_code&&j.title!==f.title))&&t.push(f.attribute_code)}),C.value=t}),a):[]}function v(){l.value.length&&l.value.forEach(e=>{const a=document.querySelectorAll(`[data-compare-attribute="${e.attribute_code}"]`);if(!a.length){q('data-compare-attribute="..." property is missing for each attribute row!',"warn");return}let o=0;for(let t=0;t<a.length;t++)o=Math.max(o,a[t].offsetHeight);for(let t=0;t<a.length;t++)a[t].style.height=o+"px"})}function c(){if(r.value.length){let e=0;r.value.forEach(a=>{const o=document.querySelectorAll(`[data-compare-product="${a.id}"]`);for(let t=0;t<o.length;t++)e=Math.max(e,o[t].offsetHeight)}),r.value.forEach(a=>{const o=document.querySelectorAll(`[data-compare-product="${a.id}"]`);for(let t=0;t<o.length;t++)o[t].style.height=e+"px"})}}async function m(e){if(!e){if(!d.value?.length)return q("No items to remove","warn");s.value=!0;for(const a of d.value)a?.shopping_cart_code&&await n.removeFromCompare({shopping_cart_code:a.shopping_cart_code});d.value=[],n.comparedProducts.value=[],s.value=!1;return}if(!e?.shopping_cart_code||!e?.id)return q("Shopping cart code or ID is undefined","error");s.value=!0,await n.removeFromCompare({shopping_cart_code:e.shopping_cart_code}),await n.fetchComparedProducts({retry:"remove",itemId:e.id}),_("remove",{item:e,items:d.value}),s.value=!1}return F(()=>{clearTimeout(h)}),J("baseCatalogCompareData",{loading:s}),(e,a)=>R(e.$slots,"default",{items:b(d),counter:b(u),attributes:b(l),onRemove:m,loading:b(s),differentAttributes:b(C),onToggleMode:B,mode:b(w)})}},re={},ce={class:"base-compare-container"},le={class:"base-compare-col1"},se={class:"base-cp-compare-header"},ie=["onClick"],ne=["onClick"],ue=["data-compare-attribute"],de={class:"base-compare-col2"},me={class:"base-cp-compare-header"},pe=["onClick"],fe={class:"base-cp-compare-attributes"},_e=["data-compare-attribute"],he={class:"base-cp-compare"};function ve(E,y){const n=ae,_=Y,A=ee,u=oe,s=X,r=te;return g(),Q(r,null,{default:I(()=>[P(s,null,{default:I(()=>[P(u,null,{default:I(({items:l,onRemove:C,attributes:w,loading:d,counter:B,differentAttributes:h,onToggleMode:k,mode:v})=>
1[i("div",ce,[i("div",le,[i("div",se,[i("div",null,"Loading: "+T(d),1),i("div",null,"Mode: "+T(v),1),i("div",null,"Counter: "+T(B),1),i("div",{onClick:c=>k("all"),class:S(["base-compare-toggle-mode-btn",{active:v=="all"}])},"Prikaži sve",10,ie),i("div",{onClick:c=>k("difference"),class:S(["base-compare-toggle-mode-btn",{active:v=="difference"}])},"Prikaži samo razlike",10,ne)]),l?.length?(g(!0),x($,{key:0},M(w,c=>(g(),x("div",{key:c.id,class:S(["attribute-row",{difference:h.includes(c.attribute_code)&&v=="difference"}]),"data-compare-attribute":c.attribute_code},T(c.attribute_title),11,ue))),128)):N("",!0)]),i("div",de,[l?.length?(g(!0),x($,{key:0},M(l,c=>(g(),x("div",{class:"base-cp-compare",key:c.id},[i("div",me,[i("div",{onClick:m=>C(c.shopping_cart_code)},"Obriši iz usporedilice",8,pe),P(n,{placeholder:"Upiši naziv proizvoda",item:c},null,8,["item"]),i("div",null,[P(_,{to:c.url_without_domain},{default:I(()=>[V(T(c.title),1)]),_:2},1032,["to"])]),i("div",null,[P(A,{price:c.price_custom},null,8,["price"])])]),i("div",fe,[(g(!0),x($,null,M(c.attributes,m=>(g(),x("div",{key:m.id,class:S(["attribute-row",{difference:h.includes(m.attribute_code)&&v=="difference"}]),"data-compare-attribute":m.attribute_code},[m.title?(g(),x($,{key:0},[V(T(m.title),1)],64)):(g(),x($,{key:1},[V(" - ")],64))],10,_e))),128))])]))),128)):N("",!0),i("div",he,[P(n,{placeholder:"Upiši naziv proizvoda"})])])])]),_:1})]),_:1})]),_:1})}const Pe=K(re,[["render",ve]]);export{Pe 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.