PageSourceSearch

https://dentalortholipe.vercel.app/_next/static/chunks/pages/ofertas-fd1e777c85dbc23b.js

js dentalortholipe.vercel.app collected 2026-10-03 06:42:22 UTC 11,291 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2833],{90090:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/ofertas",function(){return n(48160)}])},48160:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSP:function(){return C},default:function(){return A}});var r=n(85893),i=n(67294),l=n(12589),a=n(66193),s=n(78058),o=n(69283),u=n(49573),c=n(11163);let d=[{key:"10-20",min:10,max:20},{key:"20-30",min:20,max:30},{key:"30-50",min:30,max:50},{key:"50",min:50,max:1/0}],g=["relevance","best_sellers","price_asc","price_desc","az"],f={discount:"desconto",brands:"marcas",categories:"categorias",price:"preco",sortBy:"ordenar"},v=Object.freeze({discount:null,brands:[],categories:[],price:null,sortBy:null});function m(e){if(null==e||""===e)return null;let t=Number(e);return Number.isFinite(t)?t:null}function p(e){return(Array.isArray(e)&&(e=e.join(",")),"string"!=typeof e)?[]:[...new Set(e.split(",").map(e=>e.trim()).filter(Boolean))]}function h(e){return Array.isArray(e)?e[0]:e}function y(e){return d.find(t=>t.key===e)||null}function b(e,t){var n;if(!t)return!0;let r=null!==(n=m(null==e?void 0:e.discount))&&void 0!==n?n:0;return r>=t.min&&r<t.max}function k(){var e,t,n;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v,i={};return r.discount&&(i[f.discount]=r.discount),(null===(e=r.brands)||void 0===e?void 0:e.length)&&(i[f.brands]=r.brands.join(",")),(null===(t=r.categories)||void 0===t?void 0:t.length)&&(i[f.categories]=r.categories.join(",")),(null===(n=r.price)||void 0===n?void 0:n.length)===2&&(i[f.price]="".concat(r.price[0],"-").concat(r.price[1])),r.sortBy&&"relevance"!==r.sortBy&&(i[f.sortBy]=r.sortBy),i}function w(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v,{ignore:n}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r="discount"===n?null:y(t.discount),i="brands"===n?[]:t.brands,l="categories"===n?[]:t.categories,a="price"===n?null:t.price;return(e||[]).filter(e=>b(e,r)&&(null==i||!i.length||i.includes(null==e?void 0:e.brand))&&function(e,t){if(!(null==t?void 0:t.length))return!0;let n=Array.isArray(null==e?void 0:e.categories)?e.categories:[];return t.some(e=>n.includes(e))}(e,l)&&function(e,t){if(!t)return!0;let n=m(null==e?void 0:e.price);return null!==n&&n>=t[0]&&n<=t[1]}(e,a))}function E(e,t){return e.id<t.id?-1:e.id>t.id?1:0}function _(e,t){var n,r;return(null!==(n=m(t.discount))&&void 0!==n?n:0)-(null!==(r=m(e.discount))&&void 0!==r?r:0)}function P(e){return(t,n)=>{let r=m(t.price),i=m(n.price);return null===r&&null===i?0:null===r?1:null===i?-1:"desc"===e?i-r:r-i}}var S=n(51848);let M=[{value:"relevance",labelKey:"sortBiggestDiscount"},{value:"best_sellers",labelKey:"sortBestSellers"},{value:"price_asc",labelKey:"sortPriceAsc"},{value:"price_desc",labelKey:"sortPriceDesc"},{value:"az",labelKey:"sortAZ"}],B="offers";var C=!0,A=function(e){var t,n;let{initialProps:C,serverSideProps:A}=e,{content:x,rangePrice:R}=A||{},[T,O]=(0,i.useState)(!0),[j,N]=(0,i.useState)(null),[I,K]=(0,i.useState)(null),q=(0,i.useRef)(!1);(0,i.useEffect)(()=>{var e;async function t(){q.current=!0,O(!0);try{let e=x.items.map(e=>e.id).join(","),[t,n]=await Promise.all([fetch("/api/products-list-specific-data?productIds=".concat(e,"&nationalities=").concat(s.nationalities,"&v=2"),{method:"GET"}),(0,o.v)("".concat(l.Y,"/getRangePrice?dentalId=").concat(s.fixId,"&type=").concat(B),{method:"GET",requestedTokenType:"guest"})]);if(200===t.status){let e=await t.json(),n=x.items.map(t=>({...t,...e[t.id]||{}}));N({items:n,nextPage:x.nextPage})}else N(x);if(200===n.status){let e=await n.json();K(e||[])}else K(R||[])}catch(e){console.log("Erro ao buscar dados din\xe2micos:",e),N(x),K(R||[])}finally{O(!1)}}(null==x?void 0:null===(e=x.items)||void 0===e?void 0:e.length)&&!q.current&&t()},[x]);let G=j||x,z=null!==I?I:R,{t:D}=(0,u.$G)("common"),{listing:L}=function(e){let{enabled:t=!0,dentalId:n,initialItems:r,initialRangePrice:a,menuCategories:u,t:B,hidePrices:C=!1}=e,A=(0,c.useRouter)(),x=Number.parseInt(s.productsPerPage)||20,[R,T]=(0,i.useState)(null),[O,j]=(0,i.useState)("idle"),[N,I]=(0,i.useState)(0),[K,q]=(0,i.useState)(0),[G,z]=(0,i.useState)(!1),[D,L]=(0,i.useState)(!1),Y=(0,i.useRef)(new Map),F=(0,i.useRef)(new Set),X=(0,i.useRef)(new Set),Z=(0,i.useMemo)(()=>{let e=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=h(e[f.discount]),n=h(e[f.price]),r=h(e[f.sortBy]),i=null;if("string"==typeof n&&n.includes("-")){let[e,t]=n.split("-").map(m);null!==e&&null!==t&&e<=t&&(i=[e,t])}return{discount:y(t)?t:null,brands:p(e[f.brands]),categories:p(e[f.categories]),price:i,sortBy:g.includes(r)&&"relevance"!==r?r:null}}(A.query);return C?{...e,sortBy:(0,S.Ig)(e.sortBy,!0),price:null}:e},[A.query,C]),J=JSON.stringify(k(Z)),$=(0,i.useMemo)(()=>{var e;let t=((null==R?void 0:null===(e=R.rangePrice)||void 0===e?void 0:e.length)===2?R.rangePrice:function(e){let t=(e||[]).map(e=>m(null==e?void 0:e.price)).filter(e=>null!==e&&e>0);if(0===t.length)return null;let n=Math.floor(Math.min(...t)),r=Math.ceil(Math.max(...t));return[n,r>n?r:n+1]}(null==R?void 0:R.items))||((null==a?void 0:a.length)===2?a:null);return t?t[0]!==t[1]?t:[t[0],t[1]+1]:null},[R,a]),[H,Q]=(0,i.useState)(null);(0,i.useEffect)(()=>{Q(Z.price||$)},[$,Z.price]),(0,i.useEffect)(()=>
1{(r||[]).forEach(e=>{(null==e?void 0:e.id)&&Y.current.set(e.id,{...Y.current.get(e.id)||{},...e})}),q(e=>e+1)},[r]);let U=(0,i.useRef)(!1);(0,i.useEffect)(()=>{t&&n&&!U.current&&(U.current=!0,e());async function e(){j("loading");try{let e=await (0,o.v)("".concat(l.Y,"/getOffersListing?dentalId=").concat(n),{method:"GET",requestedTokenType:"guest"});if(200!==e.status)throw Error("getOffersListing ".concat(e.status));let t=await e.json();T({items:Array.isArray(null==t?void 0:t.items)?t.items:[],rangePrice:(null==t?void 0:t.rangePrice)||null}),j("ready")}catch(e){console.log("Erro ao carregar lista de ofertas:",e),j("error")}}},[t,n]),(0,i.useEffect)(()=>{I(0)},[J]);let V=(0,i.useMemo)(()=>R?function(e,t){let{page:n=0,perPage:r=20}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=function(e,t){let n=[...e||[]];if("az"===t)return n.sort((e,t)=>(e.slug<t.slug?-1:e.slug>t.slug?1:0)||E(e,t));let r="price_asc"===t?P("asc"):"price_desc"===t?P("desc"):"best_sellers"===t?(e,t)=>{var n,r;return(null!==(n=m(t.sales_90d))&&void 0!==n?n:0)-(null!==(r=m(e.sales_90d))&&void 0!==r?r:0)||_(e,t)}:_;return n.sort((e,t)=>(!!e.available==!!t.available?0:e.available?-1:1)||r(e,t)||E(e,t))}(w(e,t),null==t?void 0:t.sortBy),l=(Math.max(0,n)+1)*Math.max(1,Number(r)||20);return{total:i.length,visible:i.slice(0,l),hasMore:i.length>l}}(R.items,Z,{page:N,perPage:x}):{total:0,visible:[],hasMore:!1},[R,Z,N,x]),W=(0,i.useMemo)(()=>V.visible.map(e=>e.id).filter(e=>!Y.current.has(e)&&!F.current.has(e)&&!X.current.has(e)),[V,K]);(0,i.useEffect)(()=>{n&&0!==W.length&&(function(e,t){let n=[];for(let t=0;t<(e||[]).length;t+=50)n.push(e.slice(t,t+50));return n})(W,0).forEach(t=>e(t));async function e(e){e.forEach(e=>F.current.add(e));try{let t=await (0,o.v)("".concat(l.Y,"/getCategoryProducts?dentalId=").concat(n,"&type=offers&ids=").concat(e.join(","),"&nationalities=").concat(s.nationalities),{method:"GET",requestedTokenType:"guest"});if(200!==t.status)throw Error("getCategoryProducts ".concat(t.status));let r=await t.json();((null==r?void 0:r.items)||[]).forEach(e=>{(null==e?void 0:e.id)&&Y.current.set(e.id,e)})}catch(e){console.log("Erro ao hidratar ofertas:",e)}finally{e.forEach(e=>{F.current.delete(e),Y.current.has(e)||X.current.add(e)}),q(e=>e+1)}}},[n,W]);let ee=(0,i.useCallback)(e=>{let t=k(e);A.push({pathname:A.pathname,query:t},void 0,{shallow:!0,scroll:!1})},[A]),et=(0,i.useCallback)(e=>ee({...Z,discount:e||null}),[Z,ee]),en=(0,i.useCallback)(e=>{let t=Z.brands.includes(e)?Z.brands.filter(t=>t!==e):[...Z.brands,e];ee({...Z,brands:t})},[Z,ee]),er=(0,i.useCallback)(e=>{let t=Z.categories.includes(e)?Z.categories.filter(t=>t!==e):[...Z.categories,e];ee({...Z,categories:t})},[Z,ee]),ei=(0,i.useCallback)(e=>{let t=$&&e[0]===$[0]&&e[1]===$[1];ee({...Z,price:t?null:[e[0],e[1]]})},[Z,ee,$]),el=(0,i.useCallback)(e=>ee({...Z,sortBy:e||null}),[Z,ee]),ea=(0,i.useCallback)(()=>{Q($),ee({...Z,discount:null,brands:[],categories:[],price:null})},[Z,ee,$]),es=(0,i.useCallback)(()=>I(e=>e+1),[]),eo=(0,i.useMemo)(()=>R?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v,{menuCategories:n=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=e||[],i=w(r,t,{ignore:"discount"}),l=[{key:null,count:i.length},...d.map(e=>({key:e.key,min:e.min,max:e.max,count:i.filter(t=>b(t,e)).length}))],a=w(r,t,{ignore:"brands"}),s=new Map;a.forEach(e=>{e.brand&&s.set(e.brand,(s.get(e.brand)||0)+1)});let o=[...new Set(r.map(e=>e.brand).filter(Boolean))].sort((e,t)=>e.localeCompare(t)).map(e=>({key:e,count:s.get(e)||0})),u=w(r,t,{ignore:"categories"}),c=new Map;u.forEach(e=>{(Array.isArray(e.categories)?e.categories:[]).forEach(e=>{c.set(e,(c.get(e)||0)+1)})});let g=new Set(r.flatMap(e=>Array.isArray(e.categories)?e.categories:[]));return{discount:l,brands:o,categories:(n||[]).filter(e=>(null==e?void 0:e.id)&&g.has(e.id)).map(e=>({key:e.id,title:e.title,count:c.get(e.id)||0})).sort((e,t)=>e.title.localeCompare(t.title))}}(R.items,Z,{menuCategories:u}):null,[R,Z,u]),eu=(0,i.useMemo)(()=>V.visible.map(e=>Y.current.get(e.id)).filter(Boolean),[V,K]);if("ready"!==O||!R||!eo)return{isReady:!1,listing:null};let ec=V.visible.slice(0,x).some(e=>F.current.has(e.id)),ed=V.visible.some(e=>F.current.has(e.id));return{isReady:!0,listing:{items:eu,total:V.total,isLoading:ec,isPagining:!ec&&ed,hasMore:V.hasMore,onLoadMore:es,sortBy:Z.sortBy,sortOptions:(0,S.is)(M.map(e=>({value:e.value,label:B(e.labelKey)})),C),onChangeSort:el,filters:{pinActiveOptions:!0,hasActiveFilters:function(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v;return!!(n.discount||(null===(e=n.brands)||void 0===e?void 0:e.length)||(null===(t=n.categories)||void 0===t?void 0:t.length)||n.price)}(Z),onClearFilters:ea,discountOptions:eo.discount.map(e=>({...e,label:e.key?e.max===1/0?B("discountRangeOrMore",{min:e.min}):B("discountRange",{min:e.min,max:e.max}):B("discountAll")})),activeDiscount:Z.discount,onChangeDiscount:et,categoryOptions:eo.categories.filter(e=>e.count>
10||Z.categories.includes(e.key)),activeCategories:Z.categories,onToggleCategory:er,showAllCategories:G,onShowAllCategories:()=>z(!0),brands:eo.brands.filter(e=>e.count>0||Z.brands.includes(e.key)).map(e=>e.key),brandCounts:new Map(eo.brands.map(e=>[e.key,e.count])),activeBrand:Z.brands,onToggleBrand:en,showAllBrands:D,onShowAllBrands:()=>L(!0),rangePrice:$,priceToShow:H||$,onPriceChange:e=>Q(e),onPriceFinalChange:ei}},discountRanges:d}}({enabled:!T,dentalId:null==C?void 0:null===(t=C.dental)||void 0===t?void 0:t.id,initialItems:null==G?void 0:G.items,initialRangePrice:z,menuCategories:null==C?void 0:null===(n=C.categories)||void 0===n?void 0:n.categories,t:D,hidePrices:(0,S.eC)(null==C?void 0:C.dental)});return(0,r.jsx)(a.Z,{initialProps:C,serverSideProps:{data:{id:B,title:"Ofertas"},...A,content:G,rangePrice:z,isLoadingDynamicData:T,listing:L}})}}},function(e){e.O(0,[3714,3996,7795,9655,2923,4517,5239,571,953,7644,24,2888,9774,179],function(){return e(e.s=90090)}),_N_E=e.O()}]);

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.