PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.6.5
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.6.5
1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 1.3.19 trunk All 48 releases
fluent-cart / assets / chunks / galleryTabs.js

galleryTabs.js in FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler 1.6.5, at assets/chunks/galleryTabs.js

2 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 const p="fluent_cart_product_gallery_tabs",i=e=>typeof e=="function",u=(e,a,n)=>{console.error(`[FluentCart] Product gallery tab "${a}": ${e} failed`,n)};function h(e,a={}){let n=[];try{n=e&&i(e.applyFilters)?e.applyFilters(p,[],a):[]}catch(o){return u("filter",p,o),[]}if(!Array.isArray(n))return[];const r=new Set,t=[];return n.forEach(o=>{if(!o||typeof o!="object")return;const{name:s,label:l,component:c}=o;typeof s!="string"||!s.trim()||typeof l!="string"||!c||r.has(s)||(r.add(s),t.push({name:s,label:l,component:c,props:o.props&&typeof o.props=="object"?o.props:{},seed:i(o.seed)?o.seed:null,commit:i(o.commit)?o.commit:null,badge:i(o.badge)?o.badge:null,previews:i(o.previews)?o.previews:null,items:i(o.items)?o.items:null,applyOrder:i(o.applyOrder)?o.applyOrder:null,removeItem:i(o.removeItem)?o.removeItem:null}))}),t}function g(e,a){const n={};return e.forEach(r=>{if(n[r.name]=null,!!r.seed)try{n[r.name]=r.seed(a)}catch(t){u("seed",r.name,t)}}),n}function v(e,a,n){e.forEach(r=>{if(r.commit)try{r.commit(a?a[r.name]:null,n)}catch(t){u("commit",r.name,t)}})}function f(e){const a=Number(e);return e==null||e===""||!Number.isFinite(a)||a<0?null:Math.floor(a)}const y=e=>!e||typeof e!="object"||typeof e.url!="string"||!e.url?null:{id:e.id??e.url,url:e.url,title:typeof e.title=="string"?e.title:"",kind:typeof e.kind=="string"&&e.kind?e.kind:"image",position:f(e.position)};function A(e,a){const n=e.map(r=>r.previews?Promise.resolve().then(()=>r.previews(a)).then(t=>Array.isArray(t)?t.map(y).filter(Boolean):[]).catch(t=>(u("previews",r.name,t),[])):Promise.resolve([]));return Promise.all(n).then(r=>r.flat())}function G(e,a){const n=e.map(r=>r.items?Promise.resolve().then(()=>r.items(a?a[r.name]:null)).then(t=>Array.isArray(t)?t.map(y).filter(Boolean):[]).then(t=>t.map(o=>({...o,tab:r.name}))).catch(t=>(u("items",r.name,t),[])):Promise.resolve([]));return Promise.all(n).then(r=>r.flat())}function I(e,a,n){const r={...a||{}},t=Array.isArray(n)?n:[];return e.forEach(o=>{if(!o.applyOrder)return;const s=t.filter(l=>l&&l.tab===o.name).map(l=>({id:l.id,position:f(l.position)}));try{r[o.name]=o.applyOrder(r[o.name],s)}catch(l){u("applyOrder",o.name,l)}}),r}function b(e,a,n){if(!n||n.tab===void 0)return{...a||{}};const r=e.find(o=>o.name===n.tab);if(!r||!r.removeItem)return{...a||{}};const t={...a||{}};try{t[r.name]=r.removeItem(t[r.name],n.id)}catch(o){u("removeItem",r.name,o)}return t}function E(e,a){const n=Array.isArray(e)?e:[],r=(Array.isArray(a)?a:[]).filter(s=>s&&typeof s=="object"),t=[],o=s=>{for(let l=0;l<r.length;l++){const c=f(r[l].position);c!==null&&c<=s&&(t.push(r.splice(l,1)[0]),l--)}};return n.forEach((s,l)=>{o(l),t.push(s)}),r.forEach(s=>t.push(s)),t}function k(e){const a=[],n=[];return(Array.isArray(e)?e:[]).forEach(r=>{if(!(!r||typeof r!="object")){if(r.kind==="image"){a.push(r);return}n.push({...r,position:a.length})}}),{images:a,order:n}}const m=e=>`${e.tab||""}:${e.id}`;function w(e,a){const n=new Map((Array.isArray(a)?a:[]).filter(t=>t&&typeof t=="object").map(t=>[m(t),t])),r=[];return(Array.isArray(e)?e:[]).forEach(t=>{if(!t||typeof t!="object")return;if(t.kind==="image"){r.push(t);return}const o=m(t);n.has(o)&&(r.push({...n.get(o)}),n.delete(o))}),n.forEach(t=>d(r,{...t})),r}function P(e,a,n){if(!Array.isArray(e)||a===n||a<0||n<0||a>=e.length||n>=e.length)return!1;const[r]=e.splice(a,1);return e.splice(n,0,r),!0}function j(e,a){let n=-1;return(Array.isArray(e)?e:[]).forEach((r,t)=>{r&&r.kind==="image"&&(n=t)}),e.splice(n+1,0,a),e}function d(e,a){const n=f(a.position);if(n!==null){let r=0;for(let t=0;t<e.length;t++)if(e[t].kind==="image"){if(r===n)return e.splice(t,0,a),e;r++}}return e.push(a),e}function O(e,a,n){const r={...e||{}};return n?r[a]=!0:delete r[a],r}function T(e){return Object.keys(e||{}).length>0}function B(e,a){if(!e.badge)return"";let n;try{n=e.badge(a)}catch(r){return u("badge",e.name,r),""}return n===0||n===null||n===void 0||n===!1?"":String(n)}export{p as G,P as a,T as b,h as c,A as d,G as e,b as f,B as g,I as h,j as i,v as j,g as k,O as l,E as m,f as n,w as r,k as s};
2