PageSourceSearch

https://stellar.shop/2926.08a2fd41.chunk.js

js stellar.shop collected 2026-10-05 21:27:32 UTC 25,110 bytes, 2 lines download raw bytes

1/*! For license information please see 2926.08a2fd41.chunk.js.LICENSE.txt */
2(self.webpackChunkxinghe_supply_chain=self.webpackChunkxinghe_supply_chain||[]).push([[2317,2926],{5570(e,t,r){"use strict";r.d(t,{A:()=>l});var n=r(6906),a=r(9667),i=r(6069),o=r(7767),s=r(528),c=r(4848);function l(e){var t=e.id,r=e.name,l=e.location,u=e.image,d=e.certifications,m=void 0===d?[]:d,f=e.mainProducts,h=void 0===f?[]:f,p=e.index,x=void 0===p?0:p,g=e.loading,y=void 0!==g&&g,v=(0,o.Zp)(),b=(0,s.o)().language;return y?(0,c.jsxs)("div",{className:"bg-white rounded-xl overflow-hidden shadow-sm border border-gray-100",children:[(0,c.jsx)("div",{className:"relative h-48 bg-gray-200 animate-pulse"}),(0,c.jsxs)("div",{className:"p-5 space-y-3",children:[(0,c.jsx)("div",{className:"h-5 bg-gray-200 rounded animate-pulse w-3/4"}),(0,c.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse w-1/2"}),(0,c.jsx)("div",{className:"h-4 bg-gray-200 rounded animate-pulse w-2/3"}),(0,c.jsxs)("div",{className:"flex gap-2 pt-2",children:[(0,c.jsx)("div",{className:"flex-1 h-9 bg-gray-200 rounded-lg animate-pulse"}),(0,c.jsx)("div",{className:"flex-1 h-9 bg-gray-200 rounded-lg animate-pulse"})]})]})]}):(0,c.jsxs)(n.P.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:.1*x},onClick:function(){return v("/factories/".concat(t))},className:"bg-white rounded-xl overflow-hidden shadow-sm card-hover border border-gray-100 cursor-pointer",children:[(0,c.jsxs)("div",{className:"relative h-48 overflow-hidden",children:[(0,c.jsx)("img",{src:u,alt:r,className:"w-full h-full object-cover transition-transform duration-500 hover:scale-105"}),(null==m?void 0:m.length)>0&&(0,c.jsx)("div",{className:"absolute top-3 left-3 flex gap-2",children:m.slice(0,1).map(function(e){return(0,c.jsx)("span",{className:"px-2 py-1 bg-[#FFD700] text-[#B02A2A] text-xs font-semibold rounded-full",children:e},e)})})]}),(0,c.jsxs)("div",{className:"p-4 sm:p-5",children:[(0,c.jsx)("h3",{className:"text-base sm:text-lg font-semibold text-[#B02A2A] mb-2 line-clamp-1",children:r}),(0,c.jsxs)("div",{className:"flex items-center gap-1 text-xs sm:text-sm text-gray-500 mb-3",children:[(0,c.jsx)(i.A,{className:"w-3 h-3 sm:w-4 sm:h-4"}),(0,c.jsx)("span",{className:"line-clamp-1",children:l})]}),(null==h?void 0:h.length)>0&&(0,c.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,c.jsx)(a.A,{className:"w-3 h-3 sm:w-4 sm:h-4 text-[#FFD700]"}),(0,c.jsx)("span",{className:"text-xs sm:text-sm text-gray-600 line-clamp-1",children:h.join(", ")})]}),(0,c.jsxs)("div",{className:"flex gap-2",children:[(0,c.jsx)("button",{onClick:function(e){e.stopPropagation(),v("/factories/".concat(t))},className:"flex-1 py-2 px-3 sm:px-4 border border-[#B02A2A] text-[#B02A2A] rounded-lg text-xs sm:text-sm font-medium hover:bg-[#B02A2A] hover:text-white transition-colors",children:"zh"===b?"查看详情":"View profile"}),(0,c.jsx)("button",{onClick:function(e){e.stopPropagation(),v("/factories/".concat(t))},className:"flex-1 py-2 px-3 sm:px-4 bg-[#FFD700] text-[#B02A2A] rounded-lg text-xs sm:text-sm font-medium hover:bg-[#FFD700]/90 transition-colors",children:"zh"===b?"发送询盘":"Contact"})]})]})]})}},8905(e,t,r){"use strict";r.d(t,{A:()=>l});var n=r(6906),a=r(7767),i=r(768),o=r(528),s=r(2189),c=r(4848);function l(e){var t=e.id,r=e.name,l=e.category,u=e.price,d=void 0===u?0:u,m=e.maxPrice,f=void 0===m?null:m,h=e.retailPrice,p=void 0===h?null:h,x=e.retailPriceSource,g=void 0===x?null:x,y=e.moq,v=void 0===y?0:y,b=e.moq_unit,w=void 0===b?"pcs":b,j=e.image,N=e.factory,A=e.certifications,_=void 0===A?[]:A,k=e.loading,S=void 0!==k&&k,P=(0,a.Zp)(),M=(0,o.o)().language;if(S)return(0,c.jsxs)("div",{className:"bg-white rounded-xl overflow-hidden shadow-sm border border-gray-100",children:[(0,c.jsx)("div",{className:"relative aspect-[4/3] bg-gray-200 animate-pulse"}),(0,c.jsxs)("div",{className:"p-5 space-y-3",children:[(0,c.jsx)("div",{className:"h-5 bg-gray-200 rounded animate-pulse"}),(0,c.jsx)("div",{className:"h-4 bg-gray-200 rounded w-2/3 animate-pulse"}),(0,c.jsxs)("div",{className:"flex justify-between items-center",children:[(0,c.jsx)("div",{className:"h-6 bg-gray-200 rounded w-1/2 animate-pulse"}),(0,c.jsx)("div",{className:"h-8 bg-gray-200 rounded w-20 animate-pulse"})]})]})]});var z=d&&0!==d?(0,s.formatProcurementPrice)(d,f):"zh"===M?"询价":"Request price",C="verified"===g,O=p&&C?(0,s.retailSavingsRange)(d,f,p):null,F=O?O.lower===O.upper?"".concat(O.lower,"%"):"".concat(O.lower,"%–").concat(O.upper,"%"):"";return(0,c.jsxs)(n.P.div,{whileHover:{y:-4},onClick:function(){return P("/products/".concat(t))},className:"bg-white rounded-xl overflow-hidden shadow-sm hover:shadow-xl transition-all duration-300 cursor-pointer",children:[(0,c.jsxs)("div",{className:"relative aspect-[4/3] overflow-hidden",children:[(0,c.jsx)("img",{src:j,alt:r,className:"w-full h-full object-cover hover:scale-105 transition-transform duration-500",loading:"lazy"}),(0,c.jsx)("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 bg-[#FFD700] text-[#B02A2A] px-2 py-0.5 
2sm:px-3 sm:py-1 rounded-full text-xs font-semibold",children:l}),(null==_?void 0:_.length)>0&&(0,c.jsx)("div",{className:"absolute top-2 left-2 sm:top-3 sm:left-3 flex gap-1",children:_.slice(0,2).map(function(e){return(0,c.jsx)("span",{className:"px-2 py-0.5 sm:px-2 sm:py-1 bg-white/90 text-[#B02A2A] text-xs font-medium rounded",children:e},e)})})]}),(0,c.jsxs)("div",{className:"p-3 sm:p-5",children:[(0,c.jsx)("h3",{className:"font-semibold text-slate-900 mb-1 line-clamp-1 text-sm sm:text-base",children:r}),(0,c.jsx)("p",{className:"text-xs sm:text-sm text-slate-500 mb-2 sm:mb-3 line-clamp-1",children:N}),(0,c.jsxs)("div",{className:"flex items-end justify-between gap-2",children:[(0,c.jsxs)("div",{className:"flex-1 min-w-0",children:[p&&p>0&&(0,c.jsxs)("p",{className:"mb-0.5 text-xs text-slate-500",children:[C?"zh"===M?"网络零售价":"Online retail":"zh"===M?"系统估算参考价":"Estimated reference price"," ",(0,s.formatUsdPrice)(p)]}),(0,c.jsx)("p",{className:"text-[11px] font-medium text-slate-500",children:"zh"===M?"平台采购价":"Platform sourcing price"}),(0,c.jsx)("span",{className:"text-[#B02A2A] font-bold text-base sm:text-lg",children:z}),v>0&&(0,c.jsx)("span",{className:"text-slate-400 text-xs sm:text-sm ml-1 sm:ml-2",children:(0,i.formatMoq)(v,w)}),F&&(0,c.jsx)("p",{className:"mt-1 text-xs font-semibold text-amber-700",children:"zh"===M?"平台采购价较网络零售价低约 ".concat(F):"Platform sourcing price is about ".concat(F," below online retail")})]}),(0,c.jsx)("button",{onClick:function(e){e.stopPropagation(),P("/products/".concat(t))},className:"bg-[#B02A2A] text-[#FFD700] px-3 py-1.5 sm:px-4 sm:py-2 rounded-lg text-xs sm:text-sm font-medium hover:bg-[#8B2020] transition-colors whitespace-nowrap",children:"zh"===M?"查看详情":"View details"})]})]})]})}},2926(e,t,r){"use strict";r.r(t),r.d(t,{default:()=>P});var n=r(6540),a=r(6906),i=r(4976),o=r(7767),s=r(232),c=r(250),l=r(7677),u=r(3345),d=r(7133),m=r(2708),f=r(2317),h=r(528),p=r(946),x=r(8569),g=r(8905),y=r(5570),v=r(4848);function b(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=k(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw i}}}}function w(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",a=r.toStringTag||"@@toStringTag";function i(r,n,a,i){var c=n&&n.prototype instanceof s?n:s,l=Object.create(c.prototype);return j(l,"_invoke",function(r,n,a){var i,s,c,l=0,u=a||[],d=!1,m={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,r){return i=t,s=0,c=e,m.n=r,o}};function f(r,n){for(s=r,c=n,t=0;!d&&l&&!a&&t<u.length;t++){var a,i=u[t],f=m.p,h=i[2];r>3?(a=h===n)&&(c=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=f&&((a=r<2&&f<i[1])?(s=0,m.v=n,m.n=i[1]):f<h&&(a=r<3||i[0]>n||n>h)&&(i[4]=r,i[5]=n,m.n=h,s=0))}if(a||r>1)return o;throw d=!0,n}return function(a,u,h){if(l>1)throw TypeError("Generator is already running");for(d&&1===u&&f(u,h),s=u,c=h;(t=s<2?e:c)||!d;){i||(s?s<3?(s>1&&(m.n=-1),f(s,c)):m.n=c:m.v=c);try{if(l=2,i){if(s||(a="next"),t=i[a]){if(!(t=t.call(i,c)))throw TypeError("iterator result is not an object");if(!t.done)return t;c=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(c=TypeError("The iterator does not provide a '"+a+"' method"),s=1);i=e}else if((t=(d=m.n<0)?c:r.call(n,m))!==o)break}catch(t){i=e,s=1,c=t}finally{l=1}}return{value:t,done:d}}}(r,a,i),!0),l}var o={};function s(){}function c(){}function l(){}t=Object.getPrototypeOf;var u=[][n]?t(t([][n]())):(j(t={},n,function(){return this}),t),d=l.prototype=s.prototype=Object.create(u);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,j(e,a,"GeneratorFunction")),e.prototype=Object.create(d),e}return c.prototype=l,j(d,"constructor",l),j(l,"constructor",c),c.displayName="GeneratorFunction",j(l,a,"GeneratorFunction"),j(d),j(d,a,"Generator"),j(d,n,function(){return this}),j(d,"toString",function(){return"[object Generator]"}),(w=function(){return{w:i,m}})()}function j(e,t,r,n){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}j=function(e,t,r,n){function i(t,r){j(e,t,function(e){return this._invoke(t,r,e)})}t?a?a(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))},j(e,t,r,n)}function N(e,t,r,n,a,i,o){try{var s=e[i](o),c=s.value}catch(e){return void r(e)}s.done?t(c):Promise.resolve(c).then(n,a)}function A(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var i=e.apply(t,r);function o(e){N(i,n,a,o,s,"next",e)}function s(e){N(i,n,a,o,s,"throw",e)}o(void 0)})}}function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,o,s=[],c=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){l=!0,a=e}
2finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(l)throw a}}return s}}(e,t)||k(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function k(e,t){if(e){if("string"==typeof e)return S(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?S(e,t):void 0}}function S(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function P(){var e=(0,h.o)().language,t=(0,o.Zp)(),r=_((0,n.useState)([]),2),j=r[0],N=r[1],k=_((0,n.useState)(!0),2),S=k[0],P=k[1],M=_((0,n.useState)("all"),2),z=M[0],C=M[1],O=_((0,n.useState)(1),2),F=O[0],B=O[1],E=_((0,n.useState)(0),2),I=E[0],q=E[1],R=_((0,n.useState)(""),2),T=R[0],U=R[1];(0,n.useEffect)(function(){D()},[]),(0,n.useEffect)(function(){T&&(B(1),J(T,z,1))},[z]);var D=function(){var e=A(w().m(function e(){var r,n;return w().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,f.supabase.auth.getSession();case 1:if(r=e.v,n=r.data.session){e.n=2;break}return t("/login"),e.a(2);case 2:return U(n.user.id),e.n=3,J(n.user.id,z,1);case 3:return e.a(2)}},e)}));return function(){return e.apply(this,arguments)}}(),J=function(){var e=A(w().m(function e(t,r,n){var a,i,o,s,c,l,u,d,m,h,p,x,g,y,v,j,A,_,k;return w().w(function(e){for(;;)switch(e.p=e.n){case 0:return P(!0),i=9+(a=9*(n-1))-1,o=f.supabase.from("user_favorites").select("*",{count:"exact"}).eq("user_id",t).order("created_at",{ascending:!1}).range(a,i),"all"!==r&&(o=o.eq("item_type",r)),e.n=1,o;case 1:if(s=e.v,c=s.data,l=s.error,u=s.count,!l){e.n=2;break}return console.error("Failed to load favorites:",l),P(!1),e.a(2);case 2:q(u||0),d=[],m=b(c||[]),e.p=3,m.s();case 4:if((h=m.n()).done){e.n=10;break}if(p=h.value,x=null,"product"!==p.item_type){e.n=6;break}return e.n=5,f.supabase.from("products").select("*").eq("id",p.item_id).single();case 5:g=e.v,y=g.data,x=y,e.n=8;break;case 6:if("factory"!==p.item_type){e.n=8;break}return e.n=7,f.supabase.from("factories").select("*").eq("id",p.item_id).single();case 7:v=e.v,j=v.data,x=j;case 8:"product"===p.item_type?d.push({id:p.id,item_type:"product",item_id:p.item_id,created_at:null!==(A=p.created_at)&&void 0!==A?A:"",product:x}):"factory"===p.item_type&&d.push({id:p.id,item_type:"factory",item_id:p.item_id,created_at:null!==(_=p.created_at)&&void 0!==_?_:"",factory:x});case 9:e.n=4;break;case 10:e.n=12;break;case 11:e.p=11,k=e.v,m.e(k);case 12:return e.p=12,m.f(),e.f(12);case 13:N(d),P(!1);case 14:return e.a(2)}},e,null,[[3,11,12,13]])}));return function(t,r,n){return e.apply(this,arguments)}}(),V=function(e){B(e),T&&J(T,z,e)},G=function(){var e=A(w().m(function e(t){return w().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,f.supabase.from("user_favorites").delete().eq("id",t);case 1:e.v.error||T&&J(T,z,F);case 2:return e.a(2)}},e)}));return function(t){return e.apply(this,arguments)}}(),Q=Math.ceil(I/9),Z=j.filter(function(e){return"all"===z||e.item_type===z});return S?(0,v.jsx)("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:(0,v.jsx)("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-[#B02A2A]"})}):(0,v.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,v.jsx)(p.A,{}),(0,v.jsx)("main",{className:"pt-18 pb-16",children:(0,v.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8",children:[(0,v.jsxs)("div",{className:"flex items-center gap-4 mb-8",children:[(0,v.jsx)(i.N_,{to:"/dashboard",className:"p-2 hover:bg-gray-200 rounded-lg transition-colors",children:(0,v.jsx)(s.A,{className:"w-6 h-6 text-gray-600"})}),(0,v.jsxs)("div",{children:[(0,v.jsx)("h1",{className:"text-2xl font-bold text-gray-900",children:"zh"===e?"我的收藏":"My Favorites"}),(0,v.jsxs)("p",{className:"text-gray-500 text-sm mt-1",children:[Z.length," ","zh"===e?"个收藏项":"items"]})]})]}),(0,v.jsxs)("div",{className:"flex gap-2 mb-6",children:[(0,v.jsxs)("button",{onClick:function(){return C("all")},className:"px-4 py-2 rounded-lg text-sm font-medium transition-colors ".concat("all"===z?"bg-[#B02A2A] text-white":"bg-white text-gray-600 hover:bg-gray-100"),children:["zh"===e?"全部":"All"," (",j.length,")"]}),(0,v.jsxs)("button",{onClick:function(){return C("product")},className:"px-4 py-2 rounded-lg text-sm font-medium transition-colors ".concat("product"===z?"bg-[#B02A2A] text-white":"bg-white text-gray-600 hover:bg-gray-100"),children:["zh"===e?"产品":"Products"," (",j.filter(function(e){return"product"===e.item_type}).length,")"]}),(0,v.jsxs)("button",{onClick:function(){return C("factory")}
2,className:"px-4 py-2 rounded-lg text-sm font-medium transition-colors ".concat("factory"===z?"bg-[#B02A2A] text-white":"bg-white text-gray-600 hover:bg-gray-100"),children:["zh"===e?"工厂":"Factories"," (",j.filter(function(e){return"factory"===e.item_type}).length,")"]})]}),0===Z.length?(0,v.jsxs)(a.P.div,{initial:{opacity:0},animate:{opacity:1},className:"text-center py-16",children:[(0,v.jsx)("div",{className:"w-20 h-20 rounded-full bg-gray-100 flex items-center justify-center mx-auto mb-4",children:(0,v.jsx)(u.A,{className:"w-10 h-10 text-gray-400"})}),(0,v.jsx)("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"zh"===e?"暂无收藏":"No favorites yet"}),(0,v.jsx)("p",{className:"text-gray-500 mb-6",children:"zh"===e?"浏览产品和工厂,点击心形图标添加收藏":"Browse products and factories, click the heart icon to add favorites"}),(0,v.jsxs)(i.N_,{to:"/products",className:"inline-flex items-center gap-2 px-6 py-3 bg-[#B02A2A] text-white rounded-lg hover:bg-[#8B2020] transition-colors",children:[(0,v.jsx)(d.A,{className:"w-5 h-5"}),(0,v.jsx)("span",{children:"zh"===e?"浏览产品":"Browse Products"})]})]}):(0,v.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:Z.map(function(e,t){return(0,v.jsx)(a.P.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.05*t},className:"relative group",children:"product"===e.item_type&&e.product?(0,v.jsxs)("div",{className:"bg-white rounded-xl shadow-sm border border-gray-200 overflow-hidden hover:shadow-md transition-shadow",children:[(0,v.jsx)(g.A,{id:e.product.id,name:e.product.name,category:e.product.category||"",price:e.product.price||0,maxPrice:e.product.max_price,retailPrice:e.product.retail_price,retailPriceSource:e.product.retail_price_source,moq:e.product.moq||0,moq_unit:e.product.moq_unit,image:e.product.image_url||e.product.thumbnail_url||"",factory:e.product.factory_id||"",certifications:e.product.certifications||[]}),(0,v.jsx)("button",{onClick:function(){return G(e.id)},className:"absolute top-3 right-3 p-2 bg-white/90 hover:bg-red-50 rounded-full shadow-sm transition-colors opacity-0 group-hover:opacity-100",children:(0,v.jsx)(m.A,{className:"w-4 h-4 text-red-600"})})]}):"factory"===e.item_type&&e.factory?(0,v.jsxs)("div",{className:"bg-white rounded-xl shadow-sm border border-gray-200 overflow-hidden hover:shadow-md transition-shadow",children:[(0,v.jsx)(y.A,{id:e.factory.id,name:e.factory.name,location:e.factory.location||"",image:e.factory.image_url||"",certifications:e.factory.certifications||[],mainProducts:e.factory.main_products||[]}),(0,v.jsx)("button",{onClick:function(){return G(e.id)},className:"absolute top-3 right-3 p-2 bg-white/90 hover:bg-red-50 rounded-full shadow-sm transition-colors opacity-0 group-hover:opacity-100",children:(0,v.jsx)(m.A,{className:"w-4 h-4 text-red-600"})})]}):null},e.id)})}),Q>1&&(0,v.jsxs)("div",{className:"flex items-center justify-center gap-2 mt-8",children:[(0,v.jsx)("button",{onClick:function(){return V(F-1)},disabled:1===F,className:"p-2 rounded-lg bg-white border border-gray-200 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:(0,v.jsx)(c.A,{className:"w-5 h-5 text-gray-600"})}),(0,v.jsx)("div",{className:"flex items-center gap-1",children:Array.from({length:Q},function(e,t){return t+1}).map(function(e){return(0,v.jsx)("button",{onClick:function(){return V(e)},className:"px-3 py-2 rounded-lg text-sm font-medium transition-colors ".concat(F===e?"bg-[#B02A2A] text-white":"bg-white border border-gray-200 text-gray-600 hover:bg-gray-50"),children:e},e)})}),(0,v.jsx)("button",{onClick:function(){return V(F+1)},disabled:F===Q,className:"p-2 rounded-lg bg-white border border-gray-200 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:(0,v.jsx)(l.A,{className:"w-5 h-5 text-gray-600"})})]}),I>0&&(0,v.jsx)("p",{className:"text-center text-sm text-gray-500 mt-4",children:"zh"===e?"第 ".concat(F," 页,共 ").concat(Q," 页(").concat(I," 个收藏)"):"Page ".concat(F," of ").concat(Q," (").concat(I," favorites)")})]})}),(0,v.jsx)(x.A,{})]})}},2317(e,t,r){"use strict";r.r(t),r.d(t,{getSupabaseUrl:()=>a,supabase:()=>s,supabaseAnonKey:()=>o,supabaseUrl:()=>i});var n=r(919);function a(){return"undefined"!=typeof window?window.location.origin+"/api":"http://178.128.209.41/api"}var i=a(),o="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJhbm9uIiwiaWF0IjoxNzc4MDk1MjE3LCJleHAiOjEzMjg4NzM1MjE3fQ.S0DkbdgSbrJ044i4M4ZaWCo0X_fhg7yXogKEclsDQ_M",s=(0,n.U)(i,o,{auth:{persistSession:!0,autoRefreshToken:!0}})},768(e){function t(e){if(null==e)return"pcs";if("string"!=typeof e)throw new TypeError("MOQ unit must be a string");var t=e.trim()||"pcs";if(Array.from(t).length>20)throw new RangeError("MOQ unit must be 20 characters or fewer");return t}e.exports={MOQ_UNIT_SHORTCUTS:["pcs","sets","kg","m","m²","cm","件","箱"],normalizeMoqUnit:t,formatMoq:function(e,r){return"MOQ: ".concat(e," ").concat(t(r))}}},2189(e){function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function r(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).optional,r=void 0!==t&&t;if(null==e||""===String(e).trim())return r?null:0;var n=String(e).trim();if(!/^\d+(?:\.\d{1,2})?$/.test(n))throw new RangeError("Product price must be a non-negative number with at most two decimal places");var a=Number(n);if(!Number.isFinite(a))throw new RangeError("Product price must be a finite number");return a}var n=new Set(["estimated","verified"]);function a(e,t){var n=r(e),a=r(t,{optional:!0});return{minimum:n,maximum:null!==a&&a>n?a:n}}function i(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:120,a=Math.round(r),i=Math.round(n);if(!Number.isSafeInteger(a)||!Number.isSafeInteger(i)||a<0||i<a)throw new RangeError("Retail uplift range is invali
2d");var o,s=2166136261,c=function(e,r){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,r){if(e){if("string"==typeof e)return t(e,r);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){n&&(e=n);var a=0,i=function(){};return{s:i,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw o}}}}(String(e||"stellar-product"));try{for(c.s();!(o=c.n()).done;)s^=o.value.charCodeAt(0),s=Math.imul(s,16777619)>>>0}catch(e){c.e(e)}finally{c.f()}return a+s%(i-a+1)}function o(e){return r(e).toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:2})}function s(e){return"US$".concat(o(e))}e.exports={estimateRetailPrice:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minimum,n=void 0===r?50:r,o=t.maximum,s=void 0===o?120:o,c=a(e&&e.price,e&&e.max_price);if(c.maximum<=0)return null;var l=i(e&&e.id,n,s);return Math.round(c.maximum*(1+l/100)*100)/100},formatProcurementPrice:function(e,t){var r=a(e,t),n=s(r.minimum);return r.maximum>r.minimum?"".concat(n,"–").concat(o(r.maximum)):n},formatUsdPrice:s,normalizeProductPrice:r,normalizeRetailPriceSource:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).optional,r=void 0===t||t;if(null==e||""===String(e).trim())return r?null:"estimated";var a=String(e).trim().toLowerCase();if(!n.has(a))throw new RangeError("Retail price source must be estimated or verified");return a},procurementPriceBounds:a,retailSavingsRange:function(e,t,n){var i=r(n,{optional:!0});if(null===i||i<=0)return null;var o=a(e,t);if(o.minimum<=0||i<=o.maximum)return null;var s=Math.max(0,Math.round((i-o.maximum)/i*100));return{lower:s,upper:Math.max(s,Math.round((i-o.minimum)/i*100))}},stableRetailUplift:i}},232(e,t,r){"use strict";const n=(0,r(4207).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);r.d(t,["A",0,n])},250(e,t,r){"use strict";const n=(0,r(4207).A)("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);r.d(t,["A",0,n])},7677(e,t,r){"use strict";const n=(0,r(4207).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);r.d(t,["A",0,n])},9667(e,t,r){"use strict";const n=(0,r(4207).A)("Factory",[["path",{d:"M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"159hny"}],["path",{d:"M17 18h1",key:"uldtlt"}],["path",{d:"M12 18h1",key:"s9uhes"}],["path",{d:"M7 18h1",key:"1neino"}]]);r.d(t,["A",0,n])},7133(e,t,r){"use strict";const n=(0,r(4207).A)("Package",[["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);r.d(t,["A",0,n])},2708(e,t,r){"use strict";const n=(0,r(4207).A)("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);r.d(t,["A",0,n])}}]);

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.