@win2win/shared-ui 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -13,5 +13,6 @@ export declare function useFetchPages<T = any>(pagination: MaybeRef<QTablePagina
|
|
|
13
13
|
prevPage: () => void;
|
|
14
14
|
nextPage: () => void;
|
|
15
15
|
isPlaceholderData: Ref<false, false> | Ref<true, true>;
|
|
16
|
+
rawData: Ref<undefined, undefined> | Ref<DataCollectionResponse<T> | null, DataCollectionResponse<T> | null>;
|
|
16
17
|
};
|
|
17
18
|
//# sourceMappingURL=useFetchPages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetchPages.d.ts","sourceRoot":"","sources":["../../../src/composables/fetching/useFetchPages.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAmB,QAAQ,EAAE,GAAG,EAAS,MAAM,KAAK,CAAC;AAG5D,OAAO,EACL,sBAAsB,EAEtB,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EACnC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACtC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,OAAO,CAAC,EAAE,YAAY
|
|
1
|
+
{"version":3,"file":"useFetchPages.d.ts","sourceRoot":"","sources":["../../../src/composables/fetching/useFetchPages.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,iBAAiB,EAGlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAmB,QAAQ,EAAE,GAAG,EAAS,MAAM,KAAK,CAAC;AAG5D,OAAO,EACL,sBAAsB,EAEtB,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,aAAa,CAAC,CAAC,GAAG,GAAG,EACnC,UAAU,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACtC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACpC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,OAAO,CAAC,EAAE,YAAY;;;;;;;;;;;;;EAwGvB"}
|
package/dist/w2w-shared-ui.js
CHANGED
|
@@ -21942,7 +21942,8 @@ function GJ(l, b, c, M) {
|
|
|
21942
21942
|
page: e,
|
|
21943
21943
|
prevPage: J,
|
|
21944
21944
|
nextPage: C,
|
|
21945
|
-
isPlaceholderData: G
|
|
21945
|
+
isPlaceholderData: G,
|
|
21946
|
+
rawData: O
|
|
21946
21947
|
};
|
|
21947
21948
|
}
|
|
21948
21949
|
function WS(l) {
|
|
@@ -40,7 +40,7 @@ Facilidad de instalación, se fija a la pared con tornillos de forma sencilla. M
|
|
|
40
40
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(s){return s instanceof this?s:new this(s)}static concat(s,...M){const u=new this(s);return M.forEach(z=>u.set(z)),u}static accessor(s){const u=(this[$internals]=this[$internals]={accessors:{}}).accessors,z=this.prototype;function Z(r){const N=normalizeHeader(r);u[N]||(buildAccessors(z,r),u[N]=!0)}return utils$1.isArray(s)?s.forEach(Z):Z(s),this}};AxiosHeaders$1.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),utils$1.reduceDescriptors(AxiosHeaders$1.prototype,({value:o},s)=>{let M=s[0].toUpperCase()+s.slice(1);return{get:()=>o,set(u){this[M]=u}}}),utils$1.freezeMethods(AxiosHeaders$1);function transformData(o,s){const M=this||defaults$1,u=s||M,z=AxiosHeaders$1.from(u.headers);let Z=u.data;return utils$1.forEach(o,function(N){Z=N.call(M,Z,z.normalize(),s?s.status:void 0)}),z.normalize(),Z}function isCancel$1(o){return!!(o&&o.__CANCEL__)}function CanceledError$1(o,s,M){AxiosError$1.call(this,o??"canceled",AxiosError$1.ERR_CANCELED,s,M),this.name="CanceledError"}utils$1.inherits(CanceledError$1,AxiosError$1,{__CANCEL__:!0});function settle(o,s,M){const u=M.config.validateStatus;!M.status||!u||u(M.status)?o(M):s(new AxiosError$1("Request failed with status code "+M.status,[AxiosError$1.ERR_BAD_REQUEST,AxiosError$1.ERR_BAD_RESPONSE][Math.floor(M.status/100)-4],M.config,M.request,M))}function parseProtocol(o){const s=/^([-+\w]{1,25})(:?\/\/|:)/.exec(o);return s&&s[1]||""}function speedometer(o,s){o=o||10;const M=new Array(o),u=new Array(o);let z=0,Z=0,r;return s=s!==void 0?s:1e3,function(X){const y=Date.now(),G=u[Z];r||(r=y),M[z]=X,u[z]=y;let V=Z,S=0;for(;V!==z;)S+=M[V++],V=V%o;if(z=(z+1)%o,z===Z&&(Z=(Z+1)%o),y-r<s)return;const R=G&&y-G;return R?Math.round(S*1e3/R):void 0}}function throttle(o,s){let M=0,u=1e3/s,z,Z;const r=(y,G=Date.now())=>{M=G,z=null,Z&&(clearTimeout(Z),Z=null),o.apply(null,y)};return[(...y)=>{const G=Date.now(),V=G-M;V>=u?r(y,G):(z=y,Z||(Z=setTimeout(()=>{Z=null,r(z)},u-V)))},()=>z&&r(z)]}const progressEventReducer=(o,s,M=3)=>{let u=0;const z=speedometer(50,250);return throttle(Z=>{const r=Z.loaded,N=Z.lengthComputable?Z.total:void 0,X=r-u,y=z(X),G=r<=N;u=r;const V={loaded:r,total:N,progress:N?r/N:void 0,bytes:X,rate:y||void 0,estimated:y&&N&&G?(N-r)/y:void 0,event:Z,lengthComputable:N!=null,[s?"download":"upload"]:!0};o(V)},M)},progressEventDecorator=(o,s)=>{const M=o!=null;return[u=>s[0]({lengthComputable:M,total:o,loaded:u}),s[1]]},asyncDecorator=o=>(...s)=>utils$1.asap(()=>o(...s)),isURLSameOrigin=platform.hasStandardBrowserEnv?((o,s)=>M=>(M=new URL(M,platform.origin),o.protocol===M.protocol&&o.host===M.host&&(s||o.port===M.port)))(new URL(platform.origin),platform.navigator&&/(msie|trident)/i.test(platform.navigator.userAgent)):()=>!0,cookies=platform.hasStandardBrowserEnv?{write(o,s,M,u,z,Z){const r=[o+"="+encodeURIComponent(s)];utils$1.isNumber(M)&&r.push("expires="+new Date(M).toGMTString()),utils$1.isString(u)&&r.push("path="+u),utils$1.isString(z)&&r.push("domain="+z),Z===!0&&r.push("secure"),document.cookie=r.join("; ")},read(o){const s=document.cookie.match(new RegExp("(^|;\\s*)("+o+")=([^;]*)"));return s?decodeURIComponent(s[3]):null},remove(o){this.write(o,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function isAbsoluteURL(o){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(o)}function combineURLs(o,s){return s?o.replace(/\/?\/$/,"")+"/"+s.replace(/^\/+/,""):o}function buildFullPath(o,s,M){let u=!isAbsoluteURL(s);return o&&(u||M==!1)?combineURLs(o,s):s}const headersToObject=o=>o instanceof AxiosHeaders$1?{...o}:o;function mergeConfig$1(o,s){s=s||{};const M={};function u(y,G,V,S){return utils$1.isPlainObject(y)&&utils$1.isPlainObject(G)?utils$1.merge.call({caseless:S},y,G):utils$1.isPlainObject(G)?utils$1.merge({},G):utils$1.isArray(G)?G.slice():G}function z(y,G,V,S){if(utils$1.isUndefined(G)){if(!utils$1.isUndefined(y))return u(void 0,y,V,S)}else return u(y,G,V,S)}function Z(y,G){if(!utils$1.isUndefined(G))return u(void 0,G)}function r(y,G){if(utils$1.isUndefined(G)){if(!utils$1.isUndefined(y))return u(void 0,y)}else return u(void 0,G)}function N(y,G,V){if(V in s)return u(y,G);if(V in o)return u(void 0,y)}const X={url:Z,method:Z,data:Z,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:N,headers:(y,G,V)=>z(headersToObject(y),headersToObject(G),V,!0)};return utils$1.forEach(Object.keys(Object.assign({},o,s)),function(G){const V=X[G]||z,S=V(o[G],s[G],G);utils$1.isUndefined(S)&&V!==N||(M[G]=S)}),M}const resolveConfig=o=>{const s=mergeConfig$1({},o);let{data:M,withXSRFToken:u,xsrfHeaderName:z,xsrfCookieName:Z,headers:r,auth:N}=s;s.headers=r=AxiosHeaders$1.from(r),s.url=buildURL(buildFullPath(s.baseURL,s.url,s.allowAbsoluteUrls),o.params,o.paramsSerializer),N&&r.set("Authorization","Basic "+btoa((N.username||"")+":"+(N.password?unescape(encodeURIComponent(N.password)):"")));let X;if(utils$1.isFormData(M)){if(platform.hasStandardBrowserEnv||platform.hasStandardBrowserWebWorkerEnv)r.setContentType(void 0);else if((X=r.getContentType())!==!1){const[y,...G]=X?X.split(";").map(V=>V.trim()).filter(Boolean):[];r.setContentType([y||"multipart/form-data",...G].join("; "))}}if(platform.hasStandardBrowserEnv&&(u&&utils$1.isFunction(u)&&(u=u(s)),u||u!==!1&&isURLSameOrigin(s.url))){const y=z&&Z&&cookies.read(Z);y&&r.set(z,y)}return s},isXHRAdapterSupported=typeof XMLHttpRequest<"u",xhrAdapter=isXHRAdapterSupported&&function(o){return new Promise(function(M,u){const z=resolveConfig(o);let Z=z.data;const r=AxiosHeaders$1.from(z.headers).normalize();let{responseType:N,onUploadProgress:X,onDownloadProgress:y}=z,G,V,S,R,D;function j(){R&&R(),D&&D(),z.cancelToken&&z.cancelToken.unsubscribe(G),z.signal&&z.signal.removeEventListener("abort",G)}let C=new XMLHttpRequest;C.open(z.method.toUpperCase(),z.url,!0),C.timeout=z.timeout;function B(){if(!C)return;const U=AxiosHeaders$1.from("getAllResponseHeaders"in C&&C.getAllResponseHeaders()),g={data:!N||N==="text"||N==="json"?C.responseText:C.response,status:C.status,statusText:C.statusText,headers:U,config:o,request:C};settle(function(q){M(q),j()},function(q){u(q),j()},g),C=null}"onloadend"in C?C.onloadend=B:C.onreadystatechange=function(){!C||C.readyState!==4||C.status===0&&!(C.responseURL&&C.responseURL.indexOf("file:")===0)||setTimeout(B)},C.onabort=function(){C&&(u(new AxiosError$1("Request aborted",AxiosError$1.ECONNABORTED,o,C)),C=null)},C.onerror=function(){u(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,o,C)),C=null},C.ontimeout=function(){let E=z.timeout?"timeout of "+z.timeout+"ms exceeded":"timeout exceeded";const g=z.transitional||transitionalDefaults;z.timeoutErrorMessage&&(E=z.timeoutErrorMessage),u(new AxiosError$1(E,g.clarifyTimeoutError?AxiosError$1.ETIMEDOUT:AxiosError$1.ECONNABORTED,o,C)),C=null},Z===void 0&&r.setContentType(null),"setRequestHeader"in C&&utils$1.forEach(r.toJSON(),function(E,g){C.setRequestHeader(g,E)}),utils$1.isUndefined(z.withCredentials)||(C.withCredentials=!!z.withCredentials),N&&N!=="json"&&(C.responseType=z.responseType),y&&([S,D]=progressEventReducer(y,!0),C.addEventListener("progress",S)),X&&C.upload&&([V,R]=progressEventReducer(X),C.upload.addEventListener("progress",V),C.upload.addEventListener("loadend",R)),(z.cancelToken||z.signal)&&(G=U=>{C&&(u(!U||U.type?new CanceledError$1(null,o,C):U),C.abort(),C=null)},z.cancelToken&&z.cancelToken.subscribe(G),z.signal&&(z.signal.aborted?G():z.signal.addEventListener("abort",G)));const F=parseProtocol(z.url);if(F&&platform.protocols.indexOf(F)===-1){u(new AxiosError$1("Unsupported protocol "+F+":",AxiosError$1.ERR_BAD_REQUEST,o));return}C.send(Z||null)})},composeSignals=(o,s)=>{const{length:M}=o=o?o.filter(Boolean):[];if(s||M){let u=new AbortController,z;const Z=function(y){if(!z){z=!0,N();const G=y instanceof Error?y:this.reason;u.abort(G instanceof AxiosError$1?G:new CanceledError$1(G instanceof Error?G.message:G))}};let r=s&&setTimeout(()=>{r=null,Z(new AxiosError$1(`timeout ${s} of ms exceeded`,AxiosError$1.ETIMEDOUT))},s);const N=()=>{o&&(r&&clearTimeout(r),r=null,o.forEach(y=>{y.unsubscribe?y.unsubscribe(Z):y.removeEventListener("abort",Z)}),o=null)};o.forEach(y=>y.addEventListener("abort",Z));const{signal:X}=u;return X.unsubscribe=()=>utils$1.asap(N),X}},streamChunk=function*(o,s){let M=o.byteLength;if(M<s){yield o;return}let u=0,z;for(;u<M;)z=u+s,yield o.slice(u,z),u=z},readBytes=async function*(o,s){for await(const M of readStream(o))yield*streamChunk(M,s)},readStream=async function*(o){if(o[Symbol.asyncIterator]){yield*o;return}const s=o.getReader();try{for(;;){const{done:M,value:u}=await s.read();if(M)break;yield u}}finally{await s.cancel()}},trackStream=(o,s,M,u)=>{const z=readBytes(o,s);let Z=0,r,N=X=>{r||(r=!0,u&&u(X))};return new ReadableStream({async pull(X){try{const{done:y,value:G}=await z.next();if(y){N(),X.close();return}let V=G.byteLength;if(M){let S=Z+=V;M(S)}X.enqueue(new Uint8Array(G))}catch(y){throw N(y),y}},cancel(X){return N(X),z.return()}},{highWaterMark:2})},isFetchSupported=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",isReadableStreamSupported=isFetchSupported&&typeof ReadableStream=="function",encodeText=isFetchSupported&&(typeof TextEncoder=="function"?(o=>s=>o.encode(s))(new TextEncoder):async o=>new Uint8Array(await new Response(o).arrayBuffer())),test=(o,...s)=>{try{return!!o(...s)}catch{return!1}},supportsRequestStream=isReadableStreamSupported&&test(()=>{let o=!1;const s=new Request(platform.origin,{body:new ReadableStream,method:"POST",get duplex(){return o=!0,"half"}}).headers.has("Content-Type");return o&&!s}),DEFAULT_CHUNK_SIZE=64*1024,supportsResponseStream=isReadableStreamSupported&&test(()=>utils$1.isReadableStream(new Response("").body)),resolvers={stream:supportsResponseStream&&(o=>o.body)};isFetchSupported&&(o=>{["text","arrayBuffer","blob","formData","stream"].forEach(s=>{!resolvers[s]&&(resolvers[s]=utils$1.isFunction(o[s])?M=>M[s]():(M,u)=>{throw new AxiosError$1(`Response type '${s}' is not supported`,AxiosError$1.ERR_NOT_SUPPORT,u)})})})(new Response);const getBodyLength=async o=>{if(o==null)return 0;if(utils$1.isBlob(o))return o.size;if(utils$1.isSpecCompliantForm(o))return(await new Request(platform.origin,{method:"POST",body:o}).arrayBuffer()).byteLength;if(utils$1.isArrayBufferView(o)||utils$1.isArrayBuffer(o))return o.byteLength;if(utils$1.isURLSearchParams(o)&&(o=o+""),utils$1.isString(o))return(await encodeText(o)).byteLength},resolveBodyLength=async(o,s)=>{const M=utils$1.toFiniteNumber(o.getContentLength());return M??getBodyLength(s)},fetchAdapter=isFetchSupported&&(async o=>{let{url:s,method:M,data:u,signal:z,cancelToken:Z,timeout:r,onDownloadProgress:N,onUploadProgress:X,responseType:y,headers:G,withCredentials:V="same-origin",fetchOptions:S}=resolveConfig(o);y=y?(y+"").toLowerCase():"text";let R=composeSignals([z,Z&&Z.toAbortSignal()],r),D;const j=R&&R.unsubscribe&&(()=>{R.unsubscribe()});let C;try{if(X&&supportsRequestStream&&M!=="get"&&M!=="head"&&(C=await resolveBodyLength(G,u))!==0){let g=new Request(s,{method:"POST",body:u,duplex:"half"}),f;if(utils$1.isFormData(u)&&(f=g.headers.get("content-type"))&&G.setContentType(f),g.body){const[q,o0]=progressEventDecorator(C,progressEventReducer(asyncDecorator(X)));u=trackStream(g.body,DEFAULT_CHUNK_SIZE,q,o0)}}utils$1.isString(V)||(V=V?"include":"omit");const B="credentials"in Request.prototype;D=new Request(s,{...S,signal:R,method:M.toUpperCase(),headers:G.normalize().toJSON(),body:u,duplex:"half",credentials:B?V:void 0});let F=await fetch(D);const U=supportsResponseStream&&(y==="stream"||y==="response");if(supportsResponseStream&&(N||U&&j)){const g={};["status","statusText","headers"].forEach(c0=>{g[c0]=F[c0]});const f=utils$1.toFiniteNumber(F.headers.get("content-length")),[q,o0]=N&&progressEventDecorator(f,progressEventReducer(asyncDecorator(N),!0))||[];F=new Response(trackStream(F.body,DEFAULT_CHUNK_SIZE,q,()=>{o0&&o0(),j&&j()}),g)}y=y||"text";let E=await resolvers[utils$1.findKey(resolvers,y)||"text"](F,o);return!U&&j&&j(),await new Promise((g,f)=>{settle(g,f,{data:E,headers:AxiosHeaders$1.from(F.headers),status:F.status,statusText:F.statusText,config:o,request:D})})}catch(B){throw j&&j(),B&&B.name==="TypeError"&&/Load failed|fetch/i.test(B.message)?Object.assign(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,o,D),{cause:B.cause||B}):AxiosError$1.from(B,B&&B.code,o,D)}}),knownAdapters={http:httpAdapter,xhr:xhrAdapter,fetch:fetchAdapter};utils$1.forEach(knownAdapters,(o,s)=>{if(o){try{Object.defineProperty(o,"name",{value:s})}catch{}Object.defineProperty(o,"adapterName",{value:s})}});const renderReason=o=>`- ${o}`,isResolvedHandle=o=>utils$1.isFunction(o)||o===null||o===!1,adapters={getAdapter:o=>{o=utils$1.isArray(o)?o:[o];const{length:s}=o;let M,u;const z={};for(let Z=0;Z<s;Z++){M=o[Z];let r;if(u=M,!isResolvedHandle(M)&&(u=knownAdapters[(r=String(M)).toLowerCase()],u===void 0))throw new AxiosError$1(`Unknown adapter '${r}'`);if(u)break;z[r||"#"+Z]=u}if(!u){const Z=Object.entries(z).map(([N,X])=>`adapter ${N} `+(X===!1?"is not supported by the environment":"is not available in the build"));let r=s?Z.length>1?`since :
|
|
41
41
|
`+Z.map(renderReason).join(`
|
|
42
42
|
`):" "+renderReason(Z[0]):"as no adapter specified";throw new AxiosError$1("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return u},adapters:knownAdapters};function throwIfCancellationRequested(o){if(o.cancelToken&&o.cancelToken.throwIfRequested(),o.signal&&o.signal.aborted)throw new CanceledError$1(null,o)}function dispatchRequest(o){return throwIfCancellationRequested(o),o.headers=AxiosHeaders$1.from(o.headers),o.data=transformData.call(o,o.transformRequest),["post","put","patch"].indexOf(o.method)!==-1&&o.headers.setContentType("application/x-www-form-urlencoded",!1),adapters.getAdapter(o.adapter||defaults$1.adapter)(o).then(function(u){return throwIfCancellationRequested(o),u.data=transformData.call(o,o.transformResponse,u),u.headers=AxiosHeaders$1.from(u.headers),u},function(u){return isCancel$1(u)||(throwIfCancellationRequested(o),u&&u.response&&(u.response.data=transformData.call(o,o.transformResponse,u.response),u.response.headers=AxiosHeaders$1.from(u.response.headers))),Promise.reject(u)})}const VERSION$1="1.9.0",validators$1={};["object","boolean","number","function","string","symbol"].forEach((o,s)=>{validators$1[o]=function(u){return typeof u===o||"a"+(s<1?"n ":" ")+o}});const deprecatedWarnings={};validators$1.transitional=function(s,M,u){function z(Z,r){return"[Axios v"+VERSION$1+"] Transitional option '"+Z+"'"+r+(u?". "+u:"")}return(Z,r,N)=>{if(s===!1)throw new AxiosError$1(z(r," has been removed"+(M?" in "+M:"")),AxiosError$1.ERR_DEPRECATED);return M&&!deprecatedWarnings[r]&&(deprecatedWarnings[r]=!0,console.warn(z(r," has been deprecated since v"+M+" and will be removed in the near future"))),s?s(Z,r,N):!0}},validators$1.spelling=function(s){return(M,u)=>(console.warn(`${u} is likely a misspelling of ${s}`),!0)};function assertOptions(o,s,M){if(typeof o!="object")throw new AxiosError$1("options must be an object",AxiosError$1.ERR_BAD_OPTION_VALUE);const u=Object.keys(o);let z=u.length;for(;z-- >0;){const Z=u[z],r=s[Z];if(r){const N=o[Z],X=N===void 0||r(N,Z,o);if(X!==!0)throw new AxiosError$1("option "+Z+" must be "+X,AxiosError$1.ERR_BAD_OPTION_VALUE);continue}if(M!==!0)throw new AxiosError$1("Unknown option "+Z,AxiosError$1.ERR_BAD_OPTION)}}const validator={assertOptions,validators:validators$1},validators=validator.validators;let Axios$1=class{constructor(s){this.defaults=s||{},this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(s,M){try{return await this._request(s,M)}catch(u){if(u instanceof Error){let z={};Error.captureStackTrace?Error.captureStackTrace(z):z=new Error;const Z=z.stack?z.stack.replace(/^.+\n/,""):"";try{u.stack?Z&&!String(u.stack).endsWith(Z.replace(/^.+\n.+\n/,""))&&(u.stack+=`
|
|
43
|
-
`+Z):u.stack=Z}catch{}}throw u}}_request(s,M){typeof s=="string"?(M=M||{},M.url=s):M=s||{},M=mergeConfig$1(this.defaults,M);const{transitional:u,paramsSerializer:z,headers:Z}=M;u!==void 0&&validator.assertOptions(u,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),z!=null&&(utils$1.isFunction(z)?M.paramsSerializer={serialize:z}:validator.assertOptions(z,{encode:validators.function,serialize:validators.function},!0)),M.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?M.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:M.allowAbsoluteUrls=!0),validator.assertOptions(M,{baseUrl:validators.spelling("baseURL"),withXsrfToken:validators.spelling("withXSRFToken")},!0),M.method=(M.method||this.defaults.method||"get").toLowerCase();let r=Z&&utils$1.merge(Z.common,Z[M.method]);Z&&utils$1.forEach(["delete","get","head","post","put","patch","common"],D=>{delete Z[D]}),M.headers=AxiosHeaders$1.concat(r,Z);const N=[];let X=!0;this.interceptors.request.forEach(function(j){typeof j.runWhen=="function"&&j.runWhen(M)===!1||(X=X&&j.synchronous,N.unshift(j.fulfilled,j.rejected))});const y=[];this.interceptors.response.forEach(function(j){y.push(j.fulfilled,j.rejected)});let G,V=0,S;if(!X){const D=[dispatchRequest.bind(this),void 0];for(D.unshift.apply(D,N),D.push.apply(D,y),S=D.length,G=Promise.resolve(M);V<S;)G=G.then(D[V++],D[V++]);return G}S=N.length;let R=M;for(V=0;V<S;){const D=N[V++],j=N[V++];try{R=D(R)}catch(C){j.call(this,C);break}}try{G=dispatchRequest.call(this,R)}catch(D){return Promise.reject(D)}for(V=0,S=y.length;V<S;)G=G.then(y[V++],y[V++]);return G}getUri(s){s=mergeConfig$1(this.defaults,s);const M=buildFullPath(s.baseURL,s.url,s.allowAbsoluteUrls);return buildURL(M,s.params,s.paramsSerializer)}};utils$1.forEach(["delete","get","head","options"],function(s){Axios$1.prototype[s]=function(M,u){return this.request(mergeConfig$1(u||{},{method:s,url:M,data:(u||{}).data}))}}),utils$1.forEach(["post","put","patch"],function(s){function M(u){return function(Z,r,N){return this.request(mergeConfig$1(N||{},{method:s,headers:u?{"Content-Type":"multipart/form-data"}:{},url:Z,data:r}))}}Axios$1.prototype[s]=M(),Axios$1.prototype[s+"Form"]=M(!0)});let CancelToken$1=class Zi{constructor(s){if(typeof s!="function")throw new TypeError("executor must be a function.");let M;this.promise=new Promise(function(Z){M=Z});const u=this;this.promise.then(z=>{if(!u._listeners)return;let Z=u._listeners.length;for(;Z-- >0;)u._listeners[Z](z);u._listeners=null}),this.promise.then=z=>{let Z;const r=new Promise(N=>{u.subscribe(N),Z=N}).then(z);return r.cancel=function(){u.unsubscribe(Z)},r},s(function(Z,r,N){u.reason||(u.reason=new CanceledError$1(Z,r,N),M(u.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(s){if(this.reason){s(this.reason);return}this._listeners?this._listeners.push(s):this._listeners=[s]}unsubscribe(s){if(!this._listeners)return;const M=this._listeners.indexOf(s);M!==-1&&this._listeners.splice(M,1)}toAbortSignal(){const s=new AbortController,M=u=>{s.abort(u)};return this.subscribe(M),s.signal.unsubscribe=()=>this.unsubscribe(M),s.signal}static source(){let s;return{token:new Zi(function(z){s=z}),cancel:s}}};function spread$1(o){return function(M){return o.apply(null,M)}}function isAxiosError$1(o){return utils$1.isObject(o)&&o.isAxiosError===!0}const HttpStatusCode$1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode$1).forEach(([o,s])=>{HttpStatusCode$1[s]=o});function createInstance(o){const s=new Axios$1(o),M=bind(Axios$1.prototype.request,s);return utils$1.extend(M,Axios$1.prototype,s,{allOwnKeys:!0}),utils$1.extend(M,s,null,{allOwnKeys:!0}),M.create=function(z){return createInstance(mergeConfig$1(o,z))},M}const axios=createInstance(defaults$1);axios.Axios=Axios$1,axios.CanceledError=CanceledError$1,axios.CancelToken=CancelToken$1,axios.isCancel=isCancel$1,axios.VERSION=VERSION$1,axios.toFormData=toFormData$1,axios.AxiosError=AxiosError$1,axios.Cancel=axios.CanceledError,axios.all=function(s){return Promise.all(s)},axios.spread=spread$1,axios.isAxiosError=isAxiosError$1,axios.mergeConfig=mergeConfig$1,axios.AxiosHeaders=AxiosHeaders$1,axios.formToJSON=o=>formDataToJSON(utils$1.isHTMLForm(o)?new FormData(o):o),axios.getAdapter=adapters.getAdapter,axios.HttpStatusCode=HttpStatusCode$1,axios.default=axios;const{Axios,AxiosError,CanceledError,isCancel,CancelToken,VERSION,all,Cancel,isAxiosError,spread,toFormData,AxiosHeaders,HttpStatusCode,formToJSON,getAdapter,mergeConfig}=axios,createCancelToken=()=>axios.CancelToken.source();function createFetchUniq(o){const s={};return async function(u,z,Z){const r=s[Z];r&&r.cancel("Solicitud reemplazada por una nueva");const N=createCancelToken();return s[Z]=N,u?o.get(u,{params:z,cancelToken:N.token}).then(X=>{const y=(X==null?void 0:X.data)||null;return lodashExports.isNil(y)?null:y}).catch(()=>null):Promise.resolve(null)}}let fetchUniqInstance=null;function setFetchUniq(o){fetchUniqInstance=o}function getFetchUniq(){if(!fetchUniqInstance)throw new Error("fetchUniq has not been set. Please call setFetchUniq() before using it.");return fetchUniqInstance}const DEFAULT_FETCH_OPTIONS={refetchType:"active",retry:1,refetchOnMount:!1,refetchOnWindowFocus:!1,staleTime:5*60*1e3,keepPreviousData:!0};var Subscribable=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(o){return this.listeners.add(o),this.onSubscribe(),()=>{this.listeners.delete(o),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},define_process_env_default$1={},isServer=typeof window>"u"||"Deno"in globalThis;function noop(){}function isValidTimeout(o){return typeof o=="number"&&o>=0&&o!==1/0}function timeUntilStale(o,s){return Math.max(o+(s||0)-Date.now(),0)}function resolveStaleTime(o,s){return typeof o=="function"?o(s):o}function resolveEnabled(o,s){return typeof o=="function"?o(s):o}function replaceEqualDeep(o,s){if(o===s)return o;const M=isPlainArray(o)&&isPlainArray(s);if(M||isPlainObject$1(o)&&isPlainObject$1(s)){const u=M?o:Object.keys(o),z=u.length,Z=M?s:Object.keys(s),r=Z.length,N=M?[]:{},X=new Set(u);let y=0;for(let G=0;G<r;G++){const V=M?G:Z[G];(!M&&X.has(V)||M)&&o[V]===void 0&&s[V]===void 0?(N[V]=void 0,y++):(N[V]=replaceEqualDeep(o[V],s[V]),N[V]===o[V]&&o[V]!==void 0&&y++)}return z===r&&y===z?o:N}return s}function shallowEqualObjects(o,s){if(!s||Object.keys(o).length!==Object.keys(s).length)return!1;for(const M in o)if(o[M]!==s[M])return!1;return!0}function isPlainArray(o){return Array.isArray(o)&&o.length===Object.keys(o).length}function isPlainObject$1(o){if(!hasObjectPrototype(o))return!1;const s=o.constructor;if(s===void 0)return!0;const M=s.prototype;return!(!hasObjectPrototype(M)||!M.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(o)!==Object.prototype)}function hasObjectPrototype(o){return Object.prototype.toString.call(o)==="[object Object]"}function replaceData(o,s,M){if(typeof M.structuralSharing=="function")return M.structuralSharing(o,s);if(M.structuralSharing!==!1){if(define_process_env_default$1.NODE_ENV!=="production")try{return replaceEqualDeep(o,s)}catch(u){throw console.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${M.queryHash}]: ${u}`),u}return replaceEqualDeep(o,s)}return s}function keepPreviousData(o){return o}function shouldThrowError(o,s){return typeof o=="function"?o(...s):!!o}var FocusManager=(ht=class extends Subscribable{constructor(){super();cl(this,x1);cl(this,E1);cl(this,sl);w1(this,sl,s=>{if(!isServer&&window.addEventListener){const M=()=>s();return window.addEventListener("visibilitychange",M,!1),()=>{window.removeEventListener("visibilitychange",M)}}})}onSubscribe(){H0(this,E1)||this.setEventListener(H0(this,sl))}onUnsubscribe(){var s;this.hasListeners()||((s=H0(this,E1))==null||s.call(this),w1(this,E1,void 0))}setEventListener(s){var M;w1(this,sl,s),(M=H0(this,E1))==null||M.call(this),w1(this,E1,s(u=>{typeof u=="boolean"?this.setFocused(u):this.onFocus()}))}setFocused(s){H0(this,x1)!==s&&(w1(this,x1,s),this.onFocus())}onFocus(){const s=this.isFocused();this.listeners.forEach(M=>{M(s)})}isFocused(){var s;return typeof H0(this,x1)=="boolean"?H0(this,x1):((s=globalThis.document)==null?void 0:s.visibilityState)!=="hidden"}},x1=new WeakMap,E1=new WeakMap,sl=new WeakMap,ht),focusManager=new FocusManager,OnlineManager=(f2=class extends Subscribable{constructor(){super();cl(this,He,!0);cl(this,he);cl(this,Qe);w1(this,Qe,s=>{if(!isServer&&window.addEventListener){const M=()=>s(!0),u=()=>s(!1);return window.addEventListener("online",M,!1),window.addEventListener("offline",u,!1),()=>{window.removeEventListener("online",M),window.removeEventListener("offline",u)}}})}onSubscribe(){H0(this,he)||this.setEventListener(H0(this,Qe))}onUnsubscribe(){var s;this.hasListeners()||((s=H0(this,he))==null||s.call(this),w1(this,he,void 0))}setEventListener(s){var M;w1(this,Qe,s),(M=H0(this,he))==null||M.call(this),w1(this,he,s(this.setOnline.bind(this)))}setOnline(s){H0(this,He)!==s&&(w1(this,He,s),this.listeners.forEach(u=>{u(s)}))}isOnline(){return H0(this,He)}},He=new WeakMap,he=new WeakMap,Qe=new WeakMap,f2),onlineManager=new OnlineManager;function pendingThenable(){let o,s;const M=new Promise((z,Z)=>{o=z,s=Z});M.status="pending",M.catch(()=>{});function u(z){Object.assign(M,z),delete M.resolve,delete M.reject}return M.resolve=z=>{u({status:"fulfilled",value:z}),o(z)},M.reject=z=>{u({status:"rejected",reason:z}),s(z)},M}function canFetch(o){return(o??"online")==="online"?onlineManager.isOnline():!0}var defaultScheduler=o=>setTimeout(o,0);function createNotifyManager(){let o=[],s=0,M=N=>{N()},u=N=>{N()},z=defaultScheduler;const Z=N=>{s?o.push(N):z(()=>{M(N)})},r=()=>{const N=o;o=[],N.length&&z(()=>{u(()=>{N.forEach(X=>{M(X)})})})};return{batch:N=>{let X;s++;try{X=N()}finally{s--,s||r()}return X},batchCalls:N=>(...X)=>{Z(()=>{N(...X)})},schedule:Z,setNotifyFunction:N=>{M=N},setBatchNotifyFunction:N=>{u=N},setScheduler:N=>{z=N}}}var notifyManager=createNotifyManager();function fetchState(o,s){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:canFetch(s.networkMode)?"fetching":"paused",...o===void 0&&{error:null,status:"pending"}}}var QueryObserver=(E2=class extends Subscribable{constructor(s,M){super();cl(this,g1);cl(this,Sl);cl(this,R1);cl(this,Nt);cl(this,Nl);cl(this,ge);cl(this,qe);cl(this,Ne);cl(this,Ge);cl(this,Gt);cl(this,$e);cl(this,lt);cl(this,ke);cl(this,Ce);cl(this,Xe);cl(this,tt,new Set);this.options=M,w1(this,Sl,s),w1(this,Ge,null),w1(this,Ne,pendingThenable()),this.options.experimental_prefetchInRender||H0(this,Ne).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(M)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(H0(this,R1).addObserver(this),shouldFetchOnMount(H0(this,R1),this.options)?ol(this,g1,jt).call(this):this.updateResult(),ol(this,g1,F2).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return shouldFetchOn(H0(this,R1),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return shouldFetchOn(H0(this,R1),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,ol(this,g1,U2).call(this),ol(this,g1,J2).call(this),H0(this,R1).removeObserver(this)}setOptions(s){const M=this.options,u=H0(this,R1);if(this.options=H0(this,Sl).defaultQueryOptions(s),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof resolveEnabled(this.options.enabled,H0(this,R1))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");ol(this,g1,v2).call(this),H0(this,R1).setOptions(this.options),M._defaulted&&!shallowEqualObjects(this.options,M)&&H0(this,Sl).getQueryCache().notify({type:"observerOptionsUpdated",query:H0(this,R1),observer:this});const z=this.hasListeners();z&&shouldFetchOptionally(H0(this,R1),u,this.options,M)&&ol(this,g1,jt).call(this),this.updateResult(),z&&(H0(this,R1)!==u||resolveEnabled(this.options.enabled,H0(this,R1))!==resolveEnabled(M.enabled,H0(this,R1))||resolveStaleTime(this.options.staleTime,H0(this,R1))!==resolveStaleTime(M.staleTime,H0(this,R1)))&&ol(this,g1,k2).call(this);const Z=ol(this,g1,C2).call(this);z&&(H0(this,R1)!==u||resolveEnabled(this.options.enabled,H0(this,R1))!==resolveEnabled(M.enabled,H0(this,R1))||Z!==H0(this,Xe))&&ol(this,g1,j2).call(this,Z)}getOptimisticResult(s){const M=H0(this,Sl).getQueryCache().build(H0(this,Sl),s),u=this.createResult(M,s);return shouldAssignObserverCurrentProperties(this,u)&&(w1(this,Nl,u),w1(this,qe,this.options),w1(this,ge,H0(this,R1).state)),u}getCurrentResult(){return H0(this,Nl)}trackResult(s,M){return new Proxy(s,{get:(u,z)=>(this.trackProp(z),M==null||M(z),Reflect.get(u,z))})}trackProp(s){H0(this,tt).add(s)}getCurrentQuery(){return H0(this,R1)}refetch({...s}={}){return this.fetch({...s})}fetchOptimistic(s){const M=H0(this,Sl).defaultQueryOptions(s),u=H0(this,Sl).getQueryCache().build(H0(this,Sl),M);return u.fetch().then(()=>this.createResult(u,M))}fetch(s){return ol(this,g1,jt).call(this,{...s,cancelRefetch:s.cancelRefetch??!0}).then(()=>(this.updateResult(),H0(this,Nl)))}createResult(s,M){var c0;const u=H0(this,R1),z=this.options,Z=H0(this,Nl),r=H0(this,ge),N=H0(this,qe),y=s!==u?s.state:H0(this,Nt),{state:G}=s;let V={...G},S=!1,R;if(M._optimisticResults){const P=this.hasListeners(),b0=!P&&shouldFetchOnMount(s,M),a0=P&&shouldFetchOptionally(s,u,M,z);(b0||a0)&&(V={...V,...fetchState(G.data,s.options)}),M._optimisticResults==="isRestoring"&&(V.fetchStatus="idle")}let{error:D,errorUpdatedAt:j,status:C}=V;R=V.data;let B=!1;if(M.placeholderData!==void 0&&R===void 0&&C==="pending"){let P;Z!=null&&Z.isPlaceholderData&&M.placeholderData===(N==null?void 0:N.placeholderData)?(P=Z.data,B=!0):P=typeof M.placeholderData=="function"?M.placeholderData((c0=H0(this,lt))==null?void 0:c0.state.data,H0(this,lt)):M.placeholderData,P!==void 0&&(C="success",R=replaceData(Z==null?void 0:Z.data,P,M),S=!0)}if(M.select&&R!==void 0&&!B)if(Z&&R===(r==null?void 0:r.data)&&M.select===H0(this,Gt))R=H0(this,$e);else try{w1(this,Gt,M.select),R=M.select(R),R=replaceData(Z==null?void 0:Z.data,R,M),w1(this,$e,R),w1(this,Ge,null)}catch(P){w1(this,Ge,P)}H0(this,Ge)&&(D=H0(this,Ge),R=H0(this,$e),j=Date.now(),C="error");const F=V.fetchStatus==="fetching",U=C==="pending",E=C==="error",g=U&&F,f=R!==void 0,o0={status:C,fetchStatus:V.fetchStatus,isPending:U,isSuccess:C==="success",isError:E,isInitialLoading:g,isLoading:g,data:R,dataUpdatedAt:V.dataUpdatedAt,error:D,errorUpdatedAt:j,failureCount:V.fetchFailureCount,failureReason:V.fetchFailureReason,errorUpdateCount:V.errorUpdateCount,isFetched:V.dataUpdateCount>0||V.errorUpdateCount>0,isFetchedAfterMount:V.dataUpdateCount>y.dataUpdateCount||V.errorUpdateCount>y.errorUpdateCount,isFetching:F,isRefetching:F&&!U,isLoadingError:E&&!f,isPaused:V.fetchStatus==="paused",isPlaceholderData:S,isRefetchError:E&&f,isStale:isStale(s,M),refetch:this.refetch,promise:H0(this,Ne)};if(this.options.experimental_prefetchInRender){const P=O0=>{o0.status==="error"?O0.reject(o0.error):o0.data!==void 0&&O0.resolve(o0.data)},b0=()=>{const O0=w1(this,Ne,o0.promise=pendingThenable());P(O0)},a0=H0(this,Ne);switch(a0.status){case"pending":s.queryHash===u.queryHash&&P(a0);break;case"fulfilled":(o0.status==="error"||o0.data!==a0.value)&&b0();break;case"rejected":(o0.status!=="error"||o0.error!==a0.reason)&&b0();break}}return o0}updateResult(){const s=H0(this,Nl),M=this.createResult(H0(this,R1),this.options);if(w1(this,ge,H0(this,R1).state),w1(this,qe,this.options),H0(this,ge).data!==void 0&&w1(this,lt,H0(this,R1)),shallowEqualObjects(M,s))return;w1(this,Nl,M);const u=()=>{if(!s)return!0;const{notifyOnChangeProps:z}=this.options,Z=typeof z=="function"?z():z;if(Z==="all"||!Z&&!H0(this,tt).size)return!0;const r=new Set(Z??H0(this,tt));return this.options.throwOnError&&r.add("error"),Object.keys(H0(this,Nl)).some(N=>{const X=N;return H0(this,Nl)[X]!==s[X]&&r.has(X)})};ol(this,g1,Wi).call(this,{listeners:u()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&ol(this,g1,F2).call(this)}},Sl=new WeakMap,R1=new WeakMap,Nt=new WeakMap,Nl=new WeakMap,ge=new WeakMap,qe=new WeakMap,Ne=new WeakMap,Ge=new WeakMap,Gt=new WeakMap,$e=new WeakMap,lt=new WeakMap,ke=new WeakMap,Ce=new WeakMap,Xe=new WeakMap,tt=new WeakMap,g1=new WeakSet,jt=function(s){ol(this,g1,v2).call(this);let M=H0(this,R1).fetch(this.options,s);return s!=null&&s.throwOnError||(M=M.catch(noop)),M},k2=function(){ol(this,g1,U2).call(this);const s=resolveStaleTime(this.options.staleTime,H0(this,R1));if(isServer||H0(this,Nl).isStale||!isValidTimeout(s))return;const u=timeUntilStale(H0(this,Nl).dataUpdatedAt,s)+1;w1(this,ke,setTimeout(()=>{H0(this,Nl).isStale||this.updateResult()},u))},C2=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(H0(this,R1)):this.options.refetchInterval)??!1},j2=function(s){ol(this,g1,J2).call(this),w1(this,Xe,s),!(isServer||resolveEnabled(this.options.enabled,H0(this,R1))===!1||!isValidTimeout(H0(this,Xe))||H0(this,Xe)===0)&&w1(this,Ce,setInterval(()=>{(this.options.refetchIntervalInBackground||focusManager.isFocused())&&ol(this,g1,jt).call(this)},H0(this,Xe)))},F2=function(){ol(this,g1,k2).call(this),ol(this,g1,j2).call(this,ol(this,g1,C2).call(this))},U2=function(){H0(this,ke)&&(clearTimeout(H0(this,ke)),w1(this,ke,void 0))},J2=function(){H0(this,Ce)&&(clearInterval(H0(this,Ce)),w1(this,Ce,void 0))},v2=function(){const s=H0(this,Sl).getQueryCache().build(H0(this,Sl),this.options);if(s===H0(this,R1))return;const M=H0(this,R1);w1(this,R1,s),w1(this,Nt,s.state),this.hasListeners()&&(M==null||M.removeObserver(this),s.addObserver(this))},Wi=function(s){notifyManager.batch(()=>{s.listeners&&this.listeners.forEach(M=>{M(H0(this,Nl))}),H0(this,Sl).getQueryCache().notify({query:H0(this,R1),type:"observerResultsUpdated"})})},E2);function shouldLoadOnMount(o,s){return resolveEnabled(s.enabled,o)!==!1&&o.state.data===void 0&&!(o.state.status==="error"&&s.retryOnMount===!1)}function shouldFetchOnMount(o,s){return shouldLoadOnMount(o,s)||o.state.data!==void 0&&shouldFetchOn(o,s,s.refetchOnMount)}function shouldFetchOn(o,s,M){if(resolveEnabled(s.enabled,o)!==!1&&resolveStaleTime(s.staleTime,o)!=="static"){const u=typeof M=="function"?M(o):M;return u==="always"||u!==!1&&isStale(o,s)}return!1}function shouldFetchOptionally(o,s,M,u){return(o!==s||resolveEnabled(u.enabled,o)===!1)&&(!M.suspense||o.state.status!=="error")&&isStale(o,M)}function isStale(o,s){return resolveEnabled(s.enabled,o)!==!1&&o.isStaleByTime(resolveStaleTime(s.staleTime,o))}function shouldAssignObserverCurrentProperties(o,s){return!shallowEqualObjects(o.getCurrentResult(),s)}var VUE_QUERY_CLIENT="VUE_QUERY_CLIENT";function getClientKey(o){const s=o?`:${o}`:"";return`${VUE_QUERY_CLIENT}${s}`}function updateState(o,s){Object.keys(o).forEach(M=>{o[M]=s[M]})}function _cloneDeep(o,s,M="",u=0){if(s){const z=s(o,M,u);if(z===void 0&&vue.isRef(o)||z!==void 0)return z}if(Array.isArray(o))return o.map((z,Z)=>_cloneDeep(z,s,String(Z),u+1));if(typeof o=="object"&&isPlainObject(o)){const z=Object.entries(o).map(([Z,r])=>[Z,_cloneDeep(r,s,Z,u+1)]);return Object.fromEntries(z)}return o}function cloneDeep(o,s){return _cloneDeep(o,s)}function cloneDeepUnref(o,s=!1){return cloneDeep(o,(M,u,z)=>{if(z===1&&u==="queryKey")return cloneDeepUnref(M,!0);if(s&&isFunction$1(M))return cloneDeepUnref(M(),s);if(vue.isRef(M))return cloneDeepUnref(vue.unref(M),s)})}function isPlainObject(o){if(Object.prototype.toString.call(o)!=="[object Object]")return!1;const s=Object.getPrototypeOf(o);return s===null||s===Object.prototype}function isFunction$1(o){return typeof o=="function"}function useQueryClient(o=""){if(!vue.hasInjectionContext())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const s=getClientKey(o),M=vue.inject(s);if(!M)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return M}var define_process_env_default={};function useBaseQuery(o,s,M){define_process_env_default.NODE_ENV==="development"&&(vue.getCurrentScope()||console.warn('vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.'));const u=useQueryClient(),z=vue.computed(()=>{var j;const R=cloneDeepUnref(s);typeof R.enabled=="function"&&(R.enabled=R.enabled());const D=u.defaultQueryOptions(R);return D._optimisticResults=(j=u.isRestoring)!=null&&j.value?"isRestoring":"optimistic",D}),Z=new o(u,z.value),r=z.value.shallow?vue.shallowReactive(Z.getCurrentResult()):vue.reactive(Z.getCurrentResult());let N=()=>{};u.isRestoring&&vue.watch(u.isRestoring,R=>{R||(N(),N=Z.subscribe(D=>{updateState(r,D)}))},{immediate:!0});const X=()=>{Z.setOptions(z.value),updateState(r,Z.getCurrentResult())};vue.watch(z,X),vue.onScopeDispose(()=>{N()});const y=(...R)=>(X(),r.refetch(...R)),G=()=>new Promise((R,D)=>{let j=()=>{};const C=()=>{if(z.value.enabled!==!1){Z.setOptions(z.value);const B=Z.getOptimisticResult(z.value);B.isStale?(j(),Z.fetchOptimistic(z.value).then(R,F=>{shouldThrowError(z.value.throwOnError,[F,Z.getCurrentQuery()])?D(F):R(Z.getCurrentResult())})):(j(),R(B))}};C(),j=vue.watch(z,C)});vue.watch(()=>r.error,R=>{if(r.isError&&!r.isFetching&&shouldThrowError(z.value.throwOnError,[R,Z.getCurrentQuery()]))throw R});const V=z.value.shallow?vue.shallowReadonly(r):vue.readonly(r),S=vue.toRefs(V);for(const R in r)typeof r[R]=="function"&&(S[R]=r[R]);return S.suspense=G,S.refetch=y,S}function useQuery(o,s){return useBaseQuery(QueryObserver,o)}const getValue=(o,s=null)=>{try{return(vue.isRef(o)?o==null?void 0:o.value:o)??s}catch{return s}};function useFetch(o,s,M,u,z){const Z=`${s}_${lodashExports.uniqueId()}`,r=useQueryClient(),N=async F=>{const U=getFetchUniq();if(!U)throw new Error("FetchUniq provider is not available");return F?U(F,getValue(M,{}),Z).then(E=>u?u(E):E):Promise.resolve(null)},X={...DEFAULT_FETCH_OPTIONS,...z},y=vue.computed(()=>[...getValue(o,[]),getValue(M,{})]),G=()=>useQuery({queryKey:y,queryFn:()=>N(getValue(s,"")),...X}),V=async()=>{r.invalidateQueries({queryKey:getValue(o),exact:!1,refetchType:X.refetchType})},{isFetching:S,isPending:R,data:D,refetch:j,error:C}=G(),B=vue.computed(()=>D.value??(z==null?void 0:z.defaultValue));return{pending:R,fetching:S,data:B,refetch:j,invalidate:V,error:C}}function useFetchPages(o,s,M,u){const z={...DEFAULT_FETCH_OPTIONS,...u},Z=`${M}_${lodashExports.uniqueId()}`,r=vue.computed(()=>{const g=formatPagination(getValue(o,{})),f=getValue(s,{});return lodashExports.cloneDeep({...f,...g})}),N=vue.computed({get(){var g;return((g=getValue(o))==null?void 0:g.page)||1},set(g){vue.isRef(o)?o.value.page=g:o.page=g}}),X=vue.computed({get(){var g;return((g=getValue(o))==null?void 0:g.rowsNumber)||0},set(g){vue.isRef(o)?o.value.rowsNumber=g:o.rowsNumber=g}}),y=(g,f)=>{const q=getFetchUniq();if(!q)throw new Error("FetchUniq provider is not available");return q(getValue(g,""),getValue(f),Z)},G=useQueryClient(),V=async()=>{G.invalidateQueries({queryKey:[getValue(M),r.value],exact:!1,refetchType:"active"})},{isFetching:S,isPending:R,data:D,refetch:j,isPlaceholderData:C,error:B}=useQuery({queryKey:[M,r],queryFn:()=>y(M,r),placeholderData:keepPreviousData,...z});vue.watch(D,g=>{X.value=(g==null?void 0:g.count)||0},{immediate:!0});const F=()=>{C.value||(N.value=Math.max(N.value-1,1))},U=()=>{C.value||(N.value=N.value+1)},E=vue.computed(()=>{var g;return((g=D.value)==null?void 0:g.items)||[]});return{pending:R,fetching:S,error:B,items:E,refetch:j,invalidate:V,count:X,page:N,prevPage:F,nextPage:U,isPlaceholderData:C}}function formatPagination(o){const s=(o.page-1)*o.rowsPerPage,M=o.rowsPerPage;return{startRow:s,fetchCount:M,sortBy:o.sortBy,descending:o.descending}}const ID_KEY="_id";function useDragAndDrop(o,s,M,u){const z=(u==null?void 0:u.idKey)??ID_KEY,Z=()=>{var S;(S=o.value)==null||S.forEach(R=>{let D=u!=null&&u.idKey?R[u.idKey]:null;D===null&&(D=lodashExports.uniqueId()),R[z]=String(D)})};vue.watch(()=>{var S;return(S=o.value)==null?void 0:S.length},()=>{Z()},{immediate:!0});function r(){return!0}function N(S){S.dataTransfer.setData("id",S.target.id),S.dataTransfer.dropEffect="move"}function X(S){if(S.preventDefault(),!S.target)return;const R=S.target.closest(s);R&&(R!=null&&R.contains(S.relatedTarget)||R.classList.remove("drag-enter"))}function y(S){if(S.preventDefault(),!S.target)return;const R=S.target.closest(s);R&&R.classList.add("drag-enter")}function G(S){S.preventDefault();const R=S.target.closest(s);if(V(R),!(R!=null&&R.draggable))return;const D=S.dataTransfer.getData("id");if(!R)return;const j=(R==null?void 0:R.id)??null;if(j===null)return;const C=lodashExports.cloneDeep(o.value),B=C.findIndex(E=>E[z]==D),F=C.findIndex(E=>E[z]==j);if(B===-1||F===-1)return;const[U]=C.splice(B,1);C.splice(F,0,U),o.value=C,M(C)}function V(S){const R=S==null?void 0:S.parentElement;if(!R)return;const D=R.children;for(let j=0;j<D.length;j++)D[j].classList.remove("drag-enter")}return{handler:r,onDragLeave:X,onDragStart:N,onDragOver:y,onDrop:G,idKey:z}}function useWidgetEvent(){const o=vue.inject("emit");return{emitEvent:(M,u)=>{o("on-event",{code:M,payload:u})}}}function useContext(){const o=vue.inject("context"),s=vue.computed(()=>o.product.value),M=o.slide,u=o.isPublic,z=o.images,Z=o.selectedPackProduct,r=vue.computed(()=>!u.value),N=vue.computed(()=>{var y;return((y=s.value)==null?void 0:y.detalle_pack)||[]}),X=vue.computed(()=>{var y;return((y=s.value)==null?void 0:y.props)||{}});return vue.watch(s,()=>{var G;const y=((G=s.value)==null?void 0:G.images)||[];z.value=y},{immediate:!0}),vue.watch(N,y=>{var G;y&&(Z.value=(G=y[0])==null?void 0:G.DETALLE)},{immediate:!0,deep:!0}),{product:s,isPublic:u,isPrivate:r,images:z,detallePack:N,productProps:X,selectedPackProduct:Z,slide:M,gamaProps:o.gamaProps,count:o.count}}const _hoisted_1$a=["id","draggable"],_hoisted_2$8=["onClick"],_hoisted_3$6={key:0,class:"row items-center justify-center bg-grey-2 media-card",style:{"border-radius":"8px",border:"1px dashed #c9c9c9"}},_hoisted_4$5={key:2,class:"media-card"},_hoisted_5$5=["src"],_hoisted_6$2={class:"video-icon"},_sfc_main$a=vue.defineComponent({__name:"ImagesMiniature",setup(o){const{images:s,slide:M,isPrivate:u}=useContext(),{emitEvent:z}=useWidgetEvent(),{handler:Z,onDragLeave:r,onDragOver:N,onDragStart:X,onDrop:y,idKey:G}=useDragAndDrop(s,".image-miniature",V=>z("update_images_position",{images:V}));return(V,S)=>vue.unref(s).length?vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{key:0,class:"images-miniature",onDragleave:S[1]||(S[1]=(...R)=>vue.unref(r)&&vue.unref(r)(...R)),onDragover:S[2]||(S[2]=(...R)=>vue.unref(N)&&vue.unref(N)(...R)),onDrop:S[3]||(S[3]=(...R)=>vue.unref(y)&&vue.unref(y)(...R))},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(s),(R,D)=>(vue.openBlock(),vue.createElementBlock("div",{class:"q-mb-md image-miniature",key:D,id:R[vue.unref(G)],onDragstart:S[0]||(S[0]=(...j)=>vue.unref(X)&&vue.unref(X)(...j)),draggable:vue.unref(u)},[R?(vue.openBlock(),vue.createElementBlock("div",{key:0,onClick:j=>M.value=D+1,style:vue.normalizeStyle({cursor:"pointer",borderWidth:"0.7px",borderStyle:"solid",borderRadius:"0.5rem",borderColor:D===vue.unref(M)-1?"#015979 ":"transparent"}),class:"q-py-sm q-px-sm win-card"},[R!=null&&R.location?R.tipo==="image"?(vue.openBlock(),vue.createBlock(QImg,{key:1,src:R.location,fit:"cover",class:"media-card"},null,8,["src"])):R.tipo==="video"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$5,[vue.createElementVNode("video",{src:R.location,style:{width:"100%",height:"100%",background:"black"}},null,8,_hoisted_5$5),vue.createElementVNode("div",_hoisted_6$2,[vue.createVNode(QIcon,{size:"lg",name:"o_play_circle",color:"white"})])])):vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$6,[vue.createVNode(QIcon,{name:"upload_file",color:"grey-5",size:"33px"})]))],12,_hoisted_2$8)):vue.createCommentVNode("",!0)],40,_hoisted_1$a))),128))],32)),[[Mutation,vue.unref(Z)]]):vue.createCommentVNode("",!0)}}),ImagesMiniature=_export_sfc(_sfc_main$a,[["__scopeId","data-v-e7d66c4a"]]),_hoisted_1$9={class:"text-weight-medium"},_hoisted_2$7={key:0,class:"row justify-end items-center"},_sfc_main$9=vue.defineComponent({__name:"ProductCustomizableIndicator",props:{label:{default:"A medida"}},setup(o){const{productProps:s,product:M}=useContext(),u=vue.computed(()=>{var z,Z;return!!((z=s.value)!=null&&z.a_medida)&&!((Z=M.value)!=null&&Z.pack)});return(z,Z)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$9,[u.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$7,[vue.createVNode(QChip,{color:"blue","text-color":"white",size:"12px"},{default:vue.withCtx(()=>Z[0]||(Z[0]=[vue.createTextVNode("A medida")])),_:1,__:[0]})])):vue.createCommentVNode("",!0)]))}}),_hoisted_1$8={class:"row q-mt-md q-pa-sm",style:{"overflow-x":"auto"}},_hoisted_2$6=["onClick"],_hoisted_3$5={class:"q-pa-sm"},_hoisted_4$4={class:"text-weight-medium ellipsis"},_hoisted_5$4={class:"text-caption"},_hoisted_6$1={key:0,class:"q-mt-md"},_hoisted_7$1={class:"text-h6"},_sfc_main$8=vue.defineComponent({__name:"ProductDetallePack",setup(o){const{detallePack:s,selectedPackProduct:M,gamaProps:u}=useContext(),z=r=>{M.value=r},Z=vue.computed(()=>{var r,N;return((r=M.value)==null?void 0:r.PROPS)||((N=M.value)==null?void 0:N.props)||{}});return(r,N)=>{var X;return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$8,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(s),(y,G)=>{var V,S,R,D;return vue.openBlock(),vue.createElementBlock("div",{key:G,class:vue.normalizeClass(`q-mr-md glass-card detalle-pack ${((V=vue.unref(M))==null?void 0:V.ID_PRODUCTO)==y.ID_PRODUCTO_DETALLE?"selected":""}`),onClick:j=>z(y.DETALLE)},[(R=(S=y==null?void 0:y.DETALLE)==null?void 0:S.ARCHIVOS)!=null&&R.length?(vue.openBlock(),vue.createBlock(QImg,{key:0,src:y.DETALLE.ARCHIVOS[0].LOCATION||"placeholder.webp",style:{height:"120px","border-radius":"8px"},fit:"contain"},null,8,["src"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$5,[vue.createElementVNode("div",_hoisted_4$4,vue.toDisplayString((D=y==null?void 0:y.DETALLE)==null?void 0:D.NOMBRE),1),vue.createElementVNode("div",_hoisted_5$4,vue.toDisplayString(y==null?void 0:y.CANTIDAD)+"X",1)])],10,_hoisted_2$6)}),128))]),vue.unref(M)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$1,[vue.createElementVNode("div",_hoisted_7$1,vue.toDisplayString(vue.unref(M).NOMBRE),1),vue.createElementVNode("div",null,"SKU: "+vue.toDisplayString((X=vue.unref(M).PROPS)==null?void 0:X.sku),1),vue.createVNode(_sfc_main$e,{class:"q-mt-md","product-props":Z.value,"gama-props":vue.unref(u)},null,8,["product-props","gama-props"])])):vue.createCommentVNode("",!0)],64)}}}),ProductDetallePack=_export_sfc(_sfc_main$8,[["__scopeId","data-v-f898c9ff"]]),_hoisted_1$7={class:"product-image-header"},_hoisted_2$5={class:"product-code"},_hoisted_3$4={class:"media-count"},_sfc_main$7=vue.defineComponent({__name:"ProductImageHeader",setup(o){const{product:s,images:M,slide:u,isPrivate:z}=useContext(),Z=vue.computed(()=>{var y,G;return(((G=(y=s.value)==null?void 0:y.tags)==null?void 0:G.split(","))||[]).filter(Boolean)}),r=vue.computed(()=>{var y;return(y=s.value)==null?void 0:y.codigo}),{emitEvent:N}=useWidgetEvent(),X=()=>{var y;return N("edit_tags",{id:(y=s.value)==null?void 0:y.id})};return(y,G)=>{var V,S;return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$7,[vue.createElementVNode("div",_hoisted_2$5,vue.toDisplayString(r.value),1),vue.createElementVNode("div",{onClick:X,class:"tags",style:vue.normalizeStyle({overflowX:"auto",cursor:vue.unref(z)?"pointer":"default"})},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Z.value,R=>(vue.openBlock(),vue.createBlock(ProductTag,{tag:R},null,8,["tag"]))),256)),!Z.value.length&&vue.unref(z)?(vue.openBlock(),vue.createBlock(QChip,{key:0,class:"tag",size:"12px"},{default:vue.withCtx(()=>G[0]||(G[0]=[vue.createTextVNode("Editar etiquetas")])),_:1,__:[0]})):vue.createCommentVNode("",!0)],4),vue.createElementVNode("div",_hoisted_3$4,[vue.createTextVNode(vue.toDisplayString((V=vue.unref(M))!=null&&V.length?vue.unref(u):0)+"/"+vue.toDisplayString(((S=vue.unref(M))==null?void 0:S.length)||0)+" ",1),vue.createVNode(QIcon,{name:"sym_o_image",size:"sm",class:"q-ml-xs"})])])}}}),ProductImageHeader=_export_sfc(_sfc_main$7,[["__scopeId","data-v-86923709"]]),_hoisted_1$6={key:0,class:"q-mt-md text-black col-12"},_sfc_main$6=vue.defineComponent({__name:"ProductLongDescription",setup(o){const{selectedPackProduct:s,product:M}=useContext(),u=vue.computed(()=>{var z,Z;return((z=s.value)==null?void 0:z.DESCRIPCION)||((Z=M.value)==null?void 0:Z.descripcion)});return(z,Z)=>u.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$6,[Z[0]||(Z[0]=vue.createElementVNode("div",{class:"font-bold text-h6"},"Información del producto",-1)),vue.createElementVNode("div",null,vue.toDisplayString(u.value),1)])):vue.createCommentVNode("",!0)}}),_hoisted_1$5={class:"full-width simple-grid"},_hoisted_2$4={class:"bg-grey-2 values"},_hoisted_3$3={class:"text-bold"},_hoisted_4$3={class:"text-bold"},_hoisted_5$3={class:"text-bold"},convertToMeters=(o,s)=>{switch(s){case"m":return o;case"cm":return o/100;case"mm":return o/1e3;default:throw new Error(`Unidad no soportada: ${s}`)}},getPanelesFn=o=>{const s=Number(o.ancho)||0,M=Number(o.alto)||0,u=o.unidad_de_medida||"cm",z=convertToMeters(s,u),Z=convertToMeters(M,u);let r=z*Z;return r<=0&&(r=1),N=>{const X=1/r,y=getSquareMeters(N);return Math.ceil(y*X)}},getSquareMeters=o=>{const s=Number((o==null?void 0:o.ancho)||0),M=Number((o==null?void 0:o.alto)||0);return s*M},_sfc_main$5=vue.defineComponent({__name:"ProductConfiguration",props:vue.mergeModels({product:{}},{quantity:{required:!0,default:1},quantityModifiers:{},detail:{required:!0},detailModifiers:{}}),emits:["update:quantity","update:detail"],setup(o){const s=o,M=vue.useModel(o,"quantity"),u=vue.useModel(o,"detail"),z=vue.computed(()=>lodashExports.mapKeys(s.product||{},(j,C)=>C.toUpperCase())),Z=vue.computed(()=>{var j;return((j=z.value)==null?void 0:j.PROPS)||{}}),r=vue.computed(()=>Z.value.unidad_de_medida||"cm"),N=vue.computed(()=>getPanelesFn(Z.value||{}));vue.watch(u,j=>{M.value=N.value(u.value)},{immediate:!0,deep:!0});const X=j=>j.toLocaleString("es-ES",{minimumFractionDigits:2,maximumFractionDigits:2}),y=vue.computed(()=>{var C;return(Number((C=z.value)==null?void 0:C.PRECIO)||0)*M.value}),G=vue.computed(()=>getSquareMeters(u.value)),V=vue.computed(()=>{var j;return convertToMeters(Number((j=Z.value)==null?void 0:j.ancho)||0,r.value)}),S=vue.computed(()=>{var j;return convertToMeters(Number((j=Z.value)==null?void 0:j.alto)||0,r.value)}),R=vue.computed(()=>V.value*S.value),D=vue.computed(()=>{var C;const j=((C=z.value)==null?void 0:C.PRECIO)||0;return!j||!R.value?0:toCurrency(j/R.value)});return vue.watch(()=>u.value.ancho,j=>{j%V.value!==0&&(u.value.ancho=Math.ceil(j/V.value)*V.value)}),vue.watch(()=>u.value.alto,j=>{j%S.value!==0&&(u.value.alto=Math.ceil(j/S.value)*S.value)}),(j,C)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[C[6]||(C[6]=vue.createElementVNode("div",{class:"prices text-bold q-mb-md"}," Define la configuración para este producto ",-1)),vue.createElementVNode("div",_hoisted_1$5,[vue.createElementVNode("div",null,[vue.createVNode(QInput,{type:"number",outlined:"",class:"q-mb-md",modelValue:u.value.ancho,"onUpdate:modelValue":C[0]||(C[0]=B=>u.value.ancho=B),modelModifiers:{number:!0},label:"Ancho",suffix:"metros",step:V.value,min:"0"},null,8,["modelValue","step"]),vue.createVNode(QInput,{type:"number",outlined:"",modelValue:u.value.alto,"onUpdate:modelValue":C[1]||(C[1]=B=>u.value.alto=B),modelModifiers:{number:!0},label:"Alto",suffix:"metros",step:S.value,min:"0"},null,8,["modelValue","step"])]),vue.createElementVNode("div",_hoisted_2$4,[vue.createElementVNode("div",null,[vue.createTextVNode(" Área panel: "+vue.toDisplayString(X(R.value))+" m",1),C[2]||(C[2]=vue.createElementVNode("sup",null,"2",-1))]),vue.createElementVNode("div",null,[C[3]||(C[3]=vue.createTextVNode(" Importe m")),C[4]||(C[4]=vue.createElementVNode("sup",null,"2",-1)),vue.createTextVNode(": "+vue.toDisplayString(D.value),1)]),vue.createElementVNode("div",_hoisted_3$3,[vue.createTextVNode("Área total: "+vue.toDisplayString(X(G.value))+" m",1),C[5]||(C[5]=vue.createElementVNode("sup",null,"2",-1))]),vue.createElementVNode("div",_hoisted_4$3,"Paneles: "+vue.toDisplayString(M.value),1),vue.createElementVNode("div",_hoisted_5$3,"Importe total: "+vue.toDisplayString(vue.unref(toCurrency)(y.value)),1)])])],64))}}),ProductConfiguration=_export_sfc(_sfc_main$5,[["__scopeId","data-v-7f5231c6"]]),_hoisted_1$4={key:0,class:"q-mt-lg"},_hoisted_2$3={class:"row justify-between q-mt-md"},_hoisted_3$2={key:0,class:"counter q-mr-lg"},_hoisted_4$2={class:"quantity"},_hoisted_5$2={key:1},_sfc_main$4=vue.defineComponent({__name:"ProductShopcartActions",setup(o){const{product:s,productProps:M}=useContext(),{emitEvent:u}=useWidgetEvent(),z=vue.computed(()=>{var V;return!!((V=M.value)!=null&&V.a_medida)}),Z=vue.ref(z.value?0:1),r=vue.ref({}),N=vue.computed(()=>z.value&&Z.value<=0),X=()=>{Z.value=Math.max(1,Z.value-1)},y=()=>{Z.value++},G=()=>{const V=lodashExports.omit(s.value,"images","table_estado");u("add_to_shopcart",{product:lodashExports.mapKeys({...V,id_producto:V.id},(S,R)=>R.toUpperCase()),quantity:Z.value,props:r.value||{}})};return(V,S)=>vue.unref(s)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$4,[z.value?(vue.openBlock(),vue.createBlock(ProductConfiguration,{key:0,product:vue.unref(s),quantity:Z.value,"onUpdate:quantity":S[0]||(S[0]=R=>Z.value=R),detail:r.value,"onUpdate:detail":S[1]||(S[1]=R=>r.value=R)},null,8,["product","quantity","detail"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$3,[z.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$2)):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$2,[vue.createVNode(IconButton,{outline:"",size:"sm",onClick:X,icon:"remove"}),vue.createElementVNode("span",_hoisted_4$2,vue.toDisplayString(Z.value),1),vue.createVNode(IconButton,{outline:"",size:"sm",custom:"",onClick:y,icon:"add"})])),vue.createVNode(_sfc_main$Q,{onClick:G,disable:N.value,main:"",label:"Agregar al carrito"},null,8,["disable"])])])):vue.createCommentVNode("",!0)}}),ProductShopcartActions=_export_sfc(_sfc_main$4,[["__scopeId","data-v-42882252"]]),_hoisted_1$3={style:{"font-size":"16px","max-height":"300px","overflow-y":"auto"}},_hoisted_2$2={key:0,class:"text-black"},_sfc_main$3=vue.defineComponent({__name:"ProductShortDescription",setup(o){const{product:s}=useContext(),M=vue.computed(()=>{var u;return((u=s.value)==null?void 0:u.descripcion_corta)||""});return(u,z)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$3,[M.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$2,vue.toDisplayString(M.value),1)):vue.createCommentVNode("",!0)]))}}),_hoisted_1$2={key:0,class:"visibility-icon-container top-right"},_sfc_main$2=vue.defineComponent({__name:"PublicImageButton",setup(o){const{images:s,slide:M,isPrivate:u}=useContext(),z=vue.computed(()=>{var X;return(X=s.value[M.value-1])==null?void 0:X.id}),Z=vue.computed(()=>{var X;return(X=s.value[M.value-1])==null?void 0:X.public}),{emitEvent:r}=useWidgetEvent(),N=()=>r("change_image_visibility",{ID_ARCHIVO:z.value,PUBLICO:!Z.value});return(X,y)=>{var G;return(G=vue.unref(s))!=null&&G.length&&vue.unref(u)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$2,[vue.createVNode(QBtn,{onClick:vue.withModifiers(N,["stop"]),size:"12px",icon:Z.value?"public":"public_off","text-color":Z.value?"green":"red",color:"white",padding:"4px",round:""},{default:vue.withCtx(()=>[vue.createVNode(QTooltip,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Z.value?"Visible al público":"Privado"),1)]),_:1})]),_:1},8,["icon","text-color"])])):vue.createCommentVNode("",!0)}}}),PublicImageButton=_export_sfc(_sfc_main$2,[["__scopeId","data-v-3a4b0b68"]]),_hoisted_1$1={class:"row justify-end"},_hoisted_2$1={class:"grid"},_hoisted_3$1={class:"images-container"},_hoisted_4$1={class:"carousel-container"},_hoisted_5$1={class:"text-h5 text-bold"},_hoisted_6={class:"row justify-between"},_hoisted_7={key:0},_hoisted_8={class:"row items-center justify-between"},_hoisted_9={class:"text-weight-medium"},_hoisted_10={class:"row"},_sfc_main$1=vue.defineComponent({__name:"LinvermediaProductDetail",props:{isPublic:{type:Boolean},fetching:{type:Boolean},scale:{},count:{},view:{default:"detail"},title:{},data:{},gamaProps:{}},emits:["on-event"],setup(o,{emit:s}){const M=vue.computed(()=>Screen.lt.md),u=s;vue.provide("emit",u);const z=o,Z=vue.ref(1),{data:r,isPublic:N,gamaProps:X,count:y}=vue.toRefs(z),G=vue.computed(()=>toProductLite(r.value)),V=vue.ref(null),S=vue.ref([]),R={product:G,slide:Z,isPublic:N,selectedPackProduct:V,images:S,count:y,gamaProps:X};vue.provide("context",R);const D=vue.computed(()=>{var C;return!!((C=G.value)!=null&&C.pack)}),j=()=>{var C;return u("on-event",{code:"edit_product",payload:{id:(C=G.value)==null?void 0:C.id}})};return(C,B)=>{var E,g,f,q,o0,c0,P;const F=vue.resolveComponent("v-else"),U=vue.resolveComponent("ProductAvailableColors");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$1,[vue.unref(N)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(IconButton,{key:0,action:"edit",sm:"",onClick:j}))]),vue.createElementVNode("div",_hoisted_2$1,[vue.createElementVNode("div",_hoisted_3$1,[vue.createVNode(ImagesMiniature,{class:"gt-sm"}),vue.createElementVNode("div",_hoisted_4$1,[vue.createVNode(ProductImageHeader),vue.createVNode(_sfc_main$L,{style:{"border-radius":"8px"},items:S.value,modelValue:Z.value,"onUpdate:modelValue":B[0]||(B[0]=b0=>Z.value=b0),height:M.value?"450px":"600px"},null,8,["items","modelValue","height"]),vue.createVNode(PublicImageButton)]),vue.createVNode(ImagesMiniature,{class:"lt-md"})]),vue.createElementVNode("div",null,[vue.createElementVNode("div",_hoisted_5$1,vue.toDisplayString(vue.unref(capitalize)(((E=G.value)==null?void 0:E.nombre)||"")),1),vue.createElementVNode("div",_hoisted_6,[vue.unref(N)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_7,"SKU: "+vue.toDisplayString((f=(g=G.value)==null?void 0:g.props)==null?void 0:f.sku),1)),vue.createVNode(F,{div:""}),!vue.unref(N)&&((q=G.value)!=null&&q.estado)?(vue.openBlock(),vue.createBlock(StateIndicator,{key:1,label:G.value.estado.name,color:G.value.estado.color},null,8,["label","color"])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_8,[vue.createVNode(ProductPrice,{product:G.value},null,8,["product"]),vue.createElementVNode("div",_hoisted_9,vue.toDisplayString(vue.unref(capitalize)(((c0=(o0=G.value)==null?void 0:o0.props)==null?void 0:c0.ubicacion)||"")),1),vue.createVNode(_sfc_main$9)]),vue.createVNode(U),vue.createVNode(_sfc_main$3),D.value?(vue.openBlock(),vue.createBlock(ProductDetallePack,{key:0})):(vue.openBlock(),vue.createBlock(_sfc_main$e,{key:1,"product-props":(P=G.value)==null?void 0:P.props,"gama-props":vue.unref(X)},null,8,["product-props","gama-props"])),vue.unref(N)?(vue.openBlock(),vue.createBlock(ProductShopcartActions,{key:2})):vue.createCommentVNode("",!0)])]),vue.createElementVNode("div",_hoisted_10,[vue.createVNode(_sfc_main$6)])],64)}}}),LinvermediaProductDetail=_export_sfc(_sfc_main$1,[["__scopeId","data-v-9f8ac4f9"]]),LINVERMEDIA_PRODUCT_DETAIL_MOCK_DATA=Object.freeze([{id:151,nombre:"Pantalla LED 3x2 P2.9 Escaparate",precio:21879.5,tipo_iva:"exento",descripcion:"Potente solución para escaparates grandes o interiores espaciosos. Con su formato cuadrado y gran superficie, es perfecta para videowalls que transmitan una imagen de marca sólida y profesional. La controladora Novastar Taurus TB50 garantiza un rendimiento óptimo y una gestión avanzada de contenidos complejos y en tiempo real.",descripcion_corta:"Pantalla LED 3x2m (6m²) 24 cabinets",estado:1,props:{sku:"LED-P29-FS",alto:"50",gama:"pantallas_led_modulares",ancho:"50",pitch:"2_9_mm",brillo:"4000_nits",peso_kg:"7",subgama:"led",a_medida:!0,material:"aluminio_fundido",ubicacion:"exterior",tipo_montaje:"matriz",proteccion_ip:"ip_65_ip_43",tasa_refresco:"3840",tipo_servicio:"full_front",consumo_maximo:"160W",consumo_medio_w:"80",usos_habituales:["eventos_estadios_mobiliario_urbano"],consumo_maximo_w:"160",tipo_instalacion:"estructura_exterior_soporte_metalico",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],controladoras_compatibles:["novastar_vx_600","novastar_vx_1000","taurus_tb_40"]},tags:null,codigo:"00000073",fecha_creado:"2025-06-07T00:38:46.071Z",id_captacion:null,id_estado:"c241a8a9-51a6-4274-831c-d11503726458",id_gama:23,id_proveedor:null,paquete:0,pack:1,fecha_alta:"2025-06-06T04:00:00.000Z",documentos:[{id:909,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/c39831025394e8f0_Pantalla%20LED%20Exterior%20Mantenimiento%20Frontal%20Completo.png",public:1,tipo:"image",firmable:0,tags:null,posicion:2},{id:910,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/7eec48aa4f7a0d9d_Pantalla%20LED%20Exterior%20de%20Gran%20Brillo%20y%20Visibilidad%20500%20mmm.png",public:1,tipo:"image",firmable:0,tags:null,posicion:1},{id:911,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/51f4d42fb93178e3_to%20LED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida.png",public:1,tipo:"image",firmable:0,tags:null,posicion:3},{id:912,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/48deda3825a497a9_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",public:1,tipo:"image",firmable:0,tags:null,posicion:4},{id:913,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/eaea5eb4e9899055_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",public:1,tipo:"image",firmable:0,tags:null,posicion:5}],detalle_pack:[{ID_PRODUCTO_DETALLE_PACK:15,ID_PRODUCTO_PACK:151,ID_PRODUCTO_DETALLE:122,CANTIDAD:24,DESCUENTO:"10.00",PROPS:{alto:"2",ancho:"3"},PRINCIPAL:!0,DETALLE:{ID_PRODUCTO:122,ID_EMPRESA:1,COD_ART_MVX:"00000045",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,NOMBRE:"Panel Modular LED P2.9 Exterior Frontal de Alto Brillo",DESCRIPCION:"La Pantalla LED P2.9 Exterior Frontal de Alto Brillo está diseñada para ofrecer un rendimiento impecable en los entornos más exigentes. Su pixel pitch de 2.9mm ofrece una excelente resolución para vallas publicitarias, eventos deportivos y grandes escenarios al aire libre, con un brillo de 4000 nits que garantiza visibilidad incluso bajo el sol más intenso. Fabricada en aluminio fundido, es resistente y cuenta con mantenimiento frontal, facilitando el servicio en instalaciones de pared o estructuras fijas. Con un consumo máximo de 160W y medio de 80W, para eficiencia energética. Su clasificación IP65/IP43 asegura protección contra el polvo y el agua. Tus mensaje brillarán con la máxima potencia y fiabilidad en exteriores.",DESCRIPCION_CORTA:"Robusta y brillante, la pantalla LED P2.9 Exterior con mantenimiento frontal es ideal para publicidad y eventos al aire libre bajo cualquier condición.",ID_CAPTACION:null,ID_PROVEEDOR:null,ID_PRODUCTO_REF:null,TIPO:"1",ESTADO:"1",ID_GAMA:23,ID_TIE_DEF:null,TAGS:null,PROPS:{sku:"LED-P29-FS",alto:"50",gama:"pantallas_led_modulares",ancho:"50",pitch:"2_9_mm",brillo:"4000_nits",peso_kg:"7",subgama:"led",a_medida:!0,material:"aluminio_fundido",ubicacion:"exterior",tipo_montaje:"matriz",proteccion_ip:"ip_65_ip_43",tasa_refresco:"3840",tipo_servicio:"full_front",consumo_maximo:"160W",consumo_medio_w:"80",usos_habituales:["eventos_estadios_mobiliario_urbano"],consumo_maximo_w:"160",tipo_instalacion:"estructura_exterior_soporte_metalico",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],controladoras_compatibles:["novastar_vx_600","novastar_vx_1000","taurus_tb_40"]},PUBLICO:!0,PACK:!1,CONFIGURABLE:!1,GRUPO:null,PAQUETE:!1,ID_PRODUCTOS_PAQUETE:null,PRECIO:"1000.00",PRECIOS:null,ID_ESTADO:"c241a8a9-51a6-4274-831c-d11503726458",ID_SEGMENTOS:null,TIPO_IVA:"exento",FECHA_ALTA:"2025-06-01",FECHA_UPD:"2025-06-26T03:59:54.090Z",FECHA_CREADO:"2025-05-29T16:24:25.545Z",ARCHIVOS:[{ID_ARCHIVO:883,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/c39831025394e8f0_Pantalla%20LED%20Exterior%20Mantenimiento%20Frontal%20Completo.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Pantalla LED Exterior Mantenimiento Frontal Completo.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:06:30.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:122,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1},{ID_ARCHIVO:884,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/7eec48aa4f7a0d9d_Pantalla%20LED%20Exterior%20de%20Gran%20Brillo%20y%20Visibilidad%20500%20mmm.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Pantalla LED Exterior de Gran Brillo y Visibilidad 500 mmm.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:06:42.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:122,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:2}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null}},{ID_PRODUCTO_DETALLE_PACK:16,ID_PRODUCTO_PACK:151,ID_PRODUCTO_DETALLE:144,CANTIDAD:1,DESCUENTO:"0.00",PROPS:{alto:"",ancho:""},PRINCIPAL:!1,DETALLE:{ID_PRODUCTO:144,ID_EMPRESA:1,COD_ART_MVX:"00000067",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,NOMBRE:"Controladora LED Novastar Taurus TB40 (Rendimiento Superior)",DESCRIPCION:"Esta controladora asíncrona de alto rendimiento está diseñada para los proyectos más exigentes, ofreciendo una potencia de procesamiento superior y una mayor capacidad de carga de pixels. Es ideal para pantallas LED de gran tamaño, aplicaciones interactivas o proyectos que requieren actualizaciones de contenido frecuentes y complejas. Con múltiples opciones de conectividad y una estabilidad excepcional, la TB40 garantiza una gestión remota fluida y fiable de tu contenido. Su robustez y eficiencia la convierten en la elección preferida para publicidad dinámica, información en tiempo real y experiencias visuales inmersivas.",DESCRIPCION_CORTA:"La Taurus TB40 de Novastar es una controladora asíncrona de alto rendimiento, diseñada para proyectos LED complejos que exigen máxima potencia y versatilida",ID_CAPTACION:null,ID_PROVEEDOR:null,ID_PRODUCTO_REF:null,TIPO:"1",ESTADO:"1",ID_GAMA:23,ID_TIE_DEF:null,TAGS:null,PROPS:{sku:"CTRL-TB40",gama:"controladoras",serie:"novastar_taurus",subgama:"controladoras_asincronas_reproductores_multimedia",ubicacion:"panel_led_modular",proteccion_ip:"ip_20_productos_de_interior",tipo_servicio:null,sistema_operativo:"android",compatibilidad_de_senal:["red_lan_wi_fi_4_g","usb"]},PUBLICO:!0,PACK:!1,CONFIGURABLE:!1,GRUPO:null,PAQUETE:!1,ID_PRODUCTOS_PAQUETE:null,PRECIO:"279.50",PRECIOS:null,ID_ESTADO:"c241a8a9-51a6-4274-831c-d11503726458",ID_SEGMENTOS:null,TIPO_IVA:"exento",FECHA_ALTA:null,FECHA_UPD:"2025-06-26T04:00:03.280Z",FECHA_CREADO:"2025-06-02T01:55:32.799Z",ARCHIVOS:[{ID_ARCHIVO:819,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/51f4d42fb93178e3_to%20LED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"1 Controladora LED Novastar Taurus TB40 (Rendimiento Superior) Controladora LED Novastar Taurus TB40, alto rendimiento LED, señalización digital compleja, controlador asíncrono premium, publicida.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-03T23:41:18.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:144,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:null},{ID_ARCHIVO:836,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/48deda3825a497a9_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"2 Controladora LED Novastar Taurus TB40 (Rendimiento Superior) Controladora LED Novastar Taurus TB40, alto rendimiento LED, señalización digital compleja, controlador asíncrono premium, publicida (1).png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-04T00:20:58.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:144,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:null},{ID_ARCHIVO:839,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/eaea5eb4e9899055_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"3 Controladora LED Novastar Taurus TB40 (Rendimiento Superior) Controladora LED Novastar Taurus TB40, alto rendimiento LED, señalización digital compleja, controlador asíncrono premium, publicida (1).png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-04T00:30:31.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:144,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:null}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null}}]},{ID_PRODUCTO:119,ID_EMPRESA:1,COD_ART_MVX:"00000042",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,nombre:"Panel Modular LED P2.5 Interior Versátil",NOMBRE:"Panel Modular LED P2.5 Interior Versátil",DESCRIPCION:"La Pantalla LED P2.5 Interior Versátil es la solución ideal para proyectos que buscan una excelente calidad de imagen con flexibilidad. Con un pixel pitch de 2.5mm, proporciona imágenes claras y brillantes para auditorios, centros comerciales, salas de conferencias y espacios de eventos. Su construcción en aluminio fundido garantiza ligereza y resistencia, facilitando la instalación y el mantenimiento (frontal y trasero). Con un brillo de 1000 nits y una frecuencia de refresco de 3840Hz, asegura una visualización óptima y fluida ya que evita el parpadeo visible tanto al ojo humano como para las cámaras de video. Es perfecta para publicidad digital, información en puntos de venta o fondos de escenario. Disfruta de un consumo energético eficiente (120W máximo / 60W medio) que reduce los costes operativos. Eleva la comunicación visual en tu negocio con esta pantalla LED de alto rendimiento.",DESCRIPCION_CORTA:"Pantalla LED P2.5 Interior ofrece un equilibrio perfecto entre alta definición y versatilidad para una amplia gama de aplicaciones en interiores.",ID_CAPTACION:null,ID_PROVEEDOR:null,ID_PRODUCTO_REF:null,TIPO:"1",ESTADO:"1",ID_GAMA:23,ID_TIE_DEF:null,TAGS:null,PUBLICO:!0,PACK:!1,CONFIGURABLE:!1,GRUPO:null,PAQUETE:!1,ID_PRODUCTOS_PAQUETE:null,PRECIO:"775.00",PRECIOS:null,ID_ESTADO:"c241a8a9-51a6-4274-831c-d11503726458",ID_SEGMENTOS:null,TIPO_IVA:"exento",FECHA_ALTA:"2025-06-01",FECHA_UPD:"2025-06-26T03:59:52.832Z",FECHA_CREADO:"2025-05-29T16:01:15.064Z",UBICACION:null,R_IMG:[{ID_ARCHIVO:885,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/3b331997a4a4555b_Panel%20Modular%20LED%20Pantalla%20LED%20Interior%20de%20Alta%20Resoluci%C3%B3n.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Panel Modular LED Pantalla LED Interior de Alta Resolución.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:11:00.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:119,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1},{ID_ARCHIVO:886,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/e777804b4bc63fd0_Panel%20Modular%20LED%20Pantalla%20LEDInterior%20de%20Alta%20Resoluci%C3%B3n.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Panel Modular LED Pantalla LEDInterior de Alta Resolución.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:11:09.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:119,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:2},{ID_ARCHIVO:903,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/0075bc2e598888e6_T%C3%B3tem%20LED%20P2.0%20Interior%20con%20GOB%20%282%29.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Tótem LED P2.0 Interior con GOB (2).png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-06T23:58:01.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:119,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:3}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null,PROPS:{sku:"LED-P25-IN",alto:"48 ",gama:"pantallas_led_modulares",ancho:"64",pitch:"2_5_mm",brillo:"800_nits",peso_kg:"7 ",subgama:"led",a_medida:!0,material:"aluminio_fundido",ubicacion:"interior",tipo_montaje:"matriz",proteccion_ip:"ip_20_productos_de_interior",tasa_refresco:"3840",tipo_servicio:"back",consumo_maximo:"120W",consumo_medio_w:"60W",usos_habituales:["salas_de_control_estudios_de_tv_salas_de_videoconferencia_auditorios","tiendas_recepciones_hall_salas_de_espera_showrooms_galerias"],consumo_maximo_w:"1",tipo_instalacion:"anclado_a_pared_o_estructura_interior",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_senaletica_informativo_decorativo_corporativo_contenido_comercial"],controladoras_compatibles:["novastar_vx_400","taurus_tb_2"]}},{id:371,nombre:'Pantalla LCD 65" Ultra Brillo 4K',precio:2227.5,tipo_iva:"exento",descripcion:'Eleva tu comunicación visual con la Pantalla LCD 65" 4K de Ultra Brillo. Esta impresionante pantalla, con su resolución 4K y un nivel de brillo excepcional (generalmente superior a 1500-2000 nits), es perfecta para entornos donde la visibilidad y el impacto son cruciales, como grandes escaparates, centros comerciales, aeropuertos o espacios de eventos. Su gran tamaño asegura que tu mensaje sea visible desde lejos, mientras que la claridad 4K garantiza que cada detalle se aprecie. Su diseño está optimizado para la eficiencia y la durabilidad en uso continuo. Una solución premium para proyectos que exigen la máxima calidad y presencia visual. ',descripcion_corta:'Gran formato y brillo extremo: la pantalla LCD 65" 4K de alta brillantez es ideal para espacios que demandan visibilidad impactante',estado:1,props:{sku:"LCD-65-HB",gama:"pantallas_lcd",brillo:"alta_brillantez_4_k_lcd",tamano:"65",peso_kg:">25-40",subgama:"lcd",material:"material_robusto_y_duradero",ubicacion:"escaparate",resolucion:"4_k",tipo_montaje:"mural",proteccion_ip:"ip_20_productos_de_interior",tasa_refresco:"60",tipo_servicio:null,usos_habituales:["escaparates_o_vitrinas_expuestas_al_sol","salas_de_control_estudios_de_tv_salas_de_videoconferencia_auditorios"],tipo_instalacion:"pared_o_soporte_vesa",colores_disponibles:[],propositos_generales:["publicidad_senaletica_informativo_decorativo_corporativo_contenido_comercial"],gran_formato_independiente:"si"},tags:"destacado,oferta",codigo:"T0000057",fecha_creado:"2025-05-30T04:02:19.415Z",id_captacion:null,id_estado:"c241a8a9-51a6-4274-831c-d11503726458",id_gama:23,id_proveedor:null,paquete:0,pack:0,fecha_alta:null,table_estado:{id:"c241a8a9-51a6-4274-831c-d11503726458",name:"No disponible",color:"#9c9c9c",code:"no_disponible",id_gama:23,enabled:1}},{id:167,nombre:"Pantalla LED",precio:2e4,tipo_iva:"general",descripcion:"Pantalla LED de alta calidad diseñada para aplicaciones interiores. Ofrece un brillo excepcional, resolución adaptable y un diseño ligero de aluminio, ideal para publicidad, videowalls y escaparates. Su doble cara y sistema operativo Android garantizan versatilidad y facilidad de uso.",descripcion_corta:"Pantalla LED interior de alta calidad, ligera y versátil.",estado:2,props:{gob:"si",sku:"TOT-LED-P18",alto:null,gama:"totems",ancho:null,marca:"Testing",pitch:"3_076_mm",brillo:"4500_nits",modelo:"Test",tamano:null,peso_kg:"3.5",subgama:"led",a_medida:!0,material:"aluminio",ubicacion:"interior",uso_final:"interior",doble_cara:!0,resolucion:null,subfamilia:"led",interactivo:null,profundidad:null,proteccion_ip:"ip_43_protegido_contra_objetos_de_mas_de_1_mm_y_agua_pulverizada",tipo_servicio:"front",consumo_medio_w:"200",tipo_de_montaje:"matriz",usos_habituales:[],consumo_maximo_w:"300",tipo_de_servicio:"full_front",tipo_instalacion:"montaje_interior_orientado_al_exterior",sistema_operativo:"android",colores_disponibles:["negro","blanco"],tasa_de_refresco_hz:"500",tipo_de_instalacion:"autoportante_de_suelo",propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],aplicacion_recomendada:["escaparates_o_vitrinas_expuestas_al_sol"],controladoras_compatibles:["novastar_vx_600","taurus_tb_30","novastar_vx_1000"]},tags:"destacado",codigo:"00000079",fecha_creado:"2025-06-11T03:04:21.800Z",id_captacion:null,id_estado:"c45eae87-d78c-4f2c-9f81-27eb87b5bc94",id_gama:23,id_proveedor:null,paquete:0,pack:1,fecha_alta:"2025-06-10T04:00:00.000Z",table_estado:{id:"c45eae87-d78c-4f2c-9f81-27eb87b5bc94",name:"Disponible",color:"#10c94b",code:"disponible",id_gama:23,enabled:1},images:[{id:840,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/dbd480ff0130270f_WhatsApp%20Image%202025-05-08%20at%2018.43.22%20%282%29.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:5},{id:841,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/c3416442188506c1_WhatsApp%20Image%202025-05-08%20at%2018.43.22.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:3},{id:842,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/69f7f669f37d3223_WhatsApp%20Image%202025-05-08%20at%2018.43.23.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:4},{id:843,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/08ffe62e7e731aa3_WhatsApp%20Image%202025-05-08%20at%2018.43.23%20%281%29.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:2}]},{id:379,nombre:"Controladora LED Novastar Taurus TB2 Avanzada",precio:227.5,tipo_iva:"exento",descripcion:"Esta unidad asíncrona ofrece una mayor capacidad de carga y un rendimiento mejorado respecto a la TB1, haciéndola perfecta para proyectos de señalización digital más ambiciosos. Permite la publicación de contenido de forma remota a través de múltiples opciones de conectividad (Gigabit Ethernet, Wi-Fi, 4G opcional), asegurando una actualización de mensajes fluida y fiable en cualquier momento y lugar. Su diseño robusto y estable garantiza un funcionamiento 24/7, crucial para aplicaciones comerciales, informativas o publicitarias. La TB2 es la solución robusta y eficiente para una gestión inteligente de tu señalización LED.",descripcion_corta:"Taurus TB2 es una controladora LED asíncrona potente, ideal para redes de señalización digital medianas que exigen estabilidad y gestión flexible de contenido.",estado:1,props:{sku:"CTRL-TB2",gama:"controladoras",serie:"novastar_taurus",subgama:"controladoras_asincronas_reproductores_multimedia",ubicacion:"led_modular",proteccion_ip:"ip_20_productos_de_interior",tipo_servicio:null,sistema_operativo:"android",compatibilidad_de_senal:["red_lan_wi_fi_4_g","usb"]},tags:null,codigo:"T0000065",fecha_creado:"2025-06-02T01:09:38.307Z",id_captacion:null,id_estado:"c241a8a9-51a6-4274-831c-d11503726458",id_gama:23,id_proveedor:null,paquete:0,pack:0,fecha_alta:null,table_estado:{id:"c241a8a9-51a6-4274-831c-d11503726458",name:"No disponible",color:"#9c9c9c",code:"no_disponible",id_gama:23,enabled:1}}]),LINVERMEDIA_PRODUCT_DETAIL_MOCK_PROPS={isPublic:!0,data:null,fetching:!1,scale:1,count:0,gamaProps:PROPS},LinvermediaProductDetailPropsSchema=WidgetPropsSchema.extend({view:enumType(["detail","summary"]).optional(),title:stringType().optional(),gamaProps:arrayType(recordType(stringType(),anyType()))});var momentTimezone$1={exports:{}},momentTimezone={exports:{}};//! moment.js
|
|
43
|
+
`+Z):u.stack=Z}catch{}}throw u}}_request(s,M){typeof s=="string"?(M=M||{},M.url=s):M=s||{},M=mergeConfig$1(this.defaults,M);const{transitional:u,paramsSerializer:z,headers:Z}=M;u!==void 0&&validator.assertOptions(u,{silentJSONParsing:validators.transitional(validators.boolean),forcedJSONParsing:validators.transitional(validators.boolean),clarifyTimeoutError:validators.transitional(validators.boolean)},!1),z!=null&&(utils$1.isFunction(z)?M.paramsSerializer={serialize:z}:validator.assertOptions(z,{encode:validators.function,serialize:validators.function},!0)),M.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?M.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:M.allowAbsoluteUrls=!0),validator.assertOptions(M,{baseUrl:validators.spelling("baseURL"),withXsrfToken:validators.spelling("withXSRFToken")},!0),M.method=(M.method||this.defaults.method||"get").toLowerCase();let r=Z&&utils$1.merge(Z.common,Z[M.method]);Z&&utils$1.forEach(["delete","get","head","post","put","patch","common"],D=>{delete Z[D]}),M.headers=AxiosHeaders$1.concat(r,Z);const N=[];let X=!0;this.interceptors.request.forEach(function(j){typeof j.runWhen=="function"&&j.runWhen(M)===!1||(X=X&&j.synchronous,N.unshift(j.fulfilled,j.rejected))});const y=[];this.interceptors.response.forEach(function(j){y.push(j.fulfilled,j.rejected)});let G,V=0,S;if(!X){const D=[dispatchRequest.bind(this),void 0];for(D.unshift.apply(D,N),D.push.apply(D,y),S=D.length,G=Promise.resolve(M);V<S;)G=G.then(D[V++],D[V++]);return G}S=N.length;let R=M;for(V=0;V<S;){const D=N[V++],j=N[V++];try{R=D(R)}catch(C){j.call(this,C);break}}try{G=dispatchRequest.call(this,R)}catch(D){return Promise.reject(D)}for(V=0,S=y.length;V<S;)G=G.then(y[V++],y[V++]);return G}getUri(s){s=mergeConfig$1(this.defaults,s);const M=buildFullPath(s.baseURL,s.url,s.allowAbsoluteUrls);return buildURL(M,s.params,s.paramsSerializer)}};utils$1.forEach(["delete","get","head","options"],function(s){Axios$1.prototype[s]=function(M,u){return this.request(mergeConfig$1(u||{},{method:s,url:M,data:(u||{}).data}))}}),utils$1.forEach(["post","put","patch"],function(s){function M(u){return function(Z,r,N){return this.request(mergeConfig$1(N||{},{method:s,headers:u?{"Content-Type":"multipart/form-data"}:{},url:Z,data:r}))}}Axios$1.prototype[s]=M(),Axios$1.prototype[s+"Form"]=M(!0)});let CancelToken$1=class Zi{constructor(s){if(typeof s!="function")throw new TypeError("executor must be a function.");let M;this.promise=new Promise(function(Z){M=Z});const u=this;this.promise.then(z=>{if(!u._listeners)return;let Z=u._listeners.length;for(;Z-- >0;)u._listeners[Z](z);u._listeners=null}),this.promise.then=z=>{let Z;const r=new Promise(N=>{u.subscribe(N),Z=N}).then(z);return r.cancel=function(){u.unsubscribe(Z)},r},s(function(Z,r,N){u.reason||(u.reason=new CanceledError$1(Z,r,N),M(u.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(s){if(this.reason){s(this.reason);return}this._listeners?this._listeners.push(s):this._listeners=[s]}unsubscribe(s){if(!this._listeners)return;const M=this._listeners.indexOf(s);M!==-1&&this._listeners.splice(M,1)}toAbortSignal(){const s=new AbortController,M=u=>{s.abort(u)};return this.subscribe(M),s.signal.unsubscribe=()=>this.unsubscribe(M),s.signal}static source(){let s;return{token:new Zi(function(z){s=z}),cancel:s}}};function spread$1(o){return function(M){return o.apply(null,M)}}function isAxiosError$1(o){return utils$1.isObject(o)&&o.isAxiosError===!0}const HttpStatusCode$1={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(HttpStatusCode$1).forEach(([o,s])=>{HttpStatusCode$1[s]=o});function createInstance(o){const s=new Axios$1(o),M=bind(Axios$1.prototype.request,s);return utils$1.extend(M,Axios$1.prototype,s,{allOwnKeys:!0}),utils$1.extend(M,s,null,{allOwnKeys:!0}),M.create=function(z){return createInstance(mergeConfig$1(o,z))},M}const axios=createInstance(defaults$1);axios.Axios=Axios$1,axios.CanceledError=CanceledError$1,axios.CancelToken=CancelToken$1,axios.isCancel=isCancel$1,axios.VERSION=VERSION$1,axios.toFormData=toFormData$1,axios.AxiosError=AxiosError$1,axios.Cancel=axios.CanceledError,axios.all=function(s){return Promise.all(s)},axios.spread=spread$1,axios.isAxiosError=isAxiosError$1,axios.mergeConfig=mergeConfig$1,axios.AxiosHeaders=AxiosHeaders$1,axios.formToJSON=o=>formDataToJSON(utils$1.isHTMLForm(o)?new FormData(o):o),axios.getAdapter=adapters.getAdapter,axios.HttpStatusCode=HttpStatusCode$1,axios.default=axios;const{Axios,AxiosError,CanceledError,isCancel,CancelToken,VERSION,all,Cancel,isAxiosError,spread,toFormData,AxiosHeaders,HttpStatusCode,formToJSON,getAdapter,mergeConfig}=axios,createCancelToken=()=>axios.CancelToken.source();function createFetchUniq(o){const s={};return async function(u,z,Z){const r=s[Z];r&&r.cancel("Solicitud reemplazada por una nueva");const N=createCancelToken();return s[Z]=N,u?o.get(u,{params:z,cancelToken:N.token}).then(X=>{const y=(X==null?void 0:X.data)||null;return lodashExports.isNil(y)?null:y}).catch(()=>null):Promise.resolve(null)}}let fetchUniqInstance=null;function setFetchUniq(o){fetchUniqInstance=o}function getFetchUniq(){if(!fetchUniqInstance)throw new Error("fetchUniq has not been set. Please call setFetchUniq() before using it.");return fetchUniqInstance}const DEFAULT_FETCH_OPTIONS={refetchType:"active",retry:1,refetchOnMount:!1,refetchOnWindowFocus:!1,staleTime:5*60*1e3,keepPreviousData:!0};var Subscribable=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(o){return this.listeners.add(o),this.onSubscribe(),()=>{this.listeners.delete(o),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},define_process_env_default$1={},isServer=typeof window>"u"||"Deno"in globalThis;function noop(){}function isValidTimeout(o){return typeof o=="number"&&o>=0&&o!==1/0}function timeUntilStale(o,s){return Math.max(o+(s||0)-Date.now(),0)}function resolveStaleTime(o,s){return typeof o=="function"?o(s):o}function resolveEnabled(o,s){return typeof o=="function"?o(s):o}function replaceEqualDeep(o,s){if(o===s)return o;const M=isPlainArray(o)&&isPlainArray(s);if(M||isPlainObject$1(o)&&isPlainObject$1(s)){const u=M?o:Object.keys(o),z=u.length,Z=M?s:Object.keys(s),r=Z.length,N=M?[]:{},X=new Set(u);let y=0;for(let G=0;G<r;G++){const V=M?G:Z[G];(!M&&X.has(V)||M)&&o[V]===void 0&&s[V]===void 0?(N[V]=void 0,y++):(N[V]=replaceEqualDeep(o[V],s[V]),N[V]===o[V]&&o[V]!==void 0&&y++)}return z===r&&y===z?o:N}return s}function shallowEqualObjects(o,s){if(!s||Object.keys(o).length!==Object.keys(s).length)return!1;for(const M in o)if(o[M]!==s[M])return!1;return!0}function isPlainArray(o){return Array.isArray(o)&&o.length===Object.keys(o).length}function isPlainObject$1(o){if(!hasObjectPrototype(o))return!1;const s=o.constructor;if(s===void 0)return!0;const M=s.prototype;return!(!hasObjectPrototype(M)||!M.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(o)!==Object.prototype)}function hasObjectPrototype(o){return Object.prototype.toString.call(o)==="[object Object]"}function replaceData(o,s,M){if(typeof M.structuralSharing=="function")return M.structuralSharing(o,s);if(M.structuralSharing!==!1){if(define_process_env_default$1.NODE_ENV!=="production")try{return replaceEqualDeep(o,s)}catch(u){throw console.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${M.queryHash}]: ${u}`),u}return replaceEqualDeep(o,s)}return s}function keepPreviousData(o){return o}function shouldThrowError(o,s){return typeof o=="function"?o(...s):!!o}var FocusManager=(ht=class extends Subscribable{constructor(){super();cl(this,x1);cl(this,E1);cl(this,sl);w1(this,sl,s=>{if(!isServer&&window.addEventListener){const M=()=>s();return window.addEventListener("visibilitychange",M,!1),()=>{window.removeEventListener("visibilitychange",M)}}})}onSubscribe(){H0(this,E1)||this.setEventListener(H0(this,sl))}onUnsubscribe(){var s;this.hasListeners()||((s=H0(this,E1))==null||s.call(this),w1(this,E1,void 0))}setEventListener(s){var M;w1(this,sl,s),(M=H0(this,E1))==null||M.call(this),w1(this,E1,s(u=>{typeof u=="boolean"?this.setFocused(u):this.onFocus()}))}setFocused(s){H0(this,x1)!==s&&(w1(this,x1,s),this.onFocus())}onFocus(){const s=this.isFocused();this.listeners.forEach(M=>{M(s)})}isFocused(){var s;return typeof H0(this,x1)=="boolean"?H0(this,x1):((s=globalThis.document)==null?void 0:s.visibilityState)!=="hidden"}},x1=new WeakMap,E1=new WeakMap,sl=new WeakMap,ht),focusManager=new FocusManager,OnlineManager=(f2=class extends Subscribable{constructor(){super();cl(this,He,!0);cl(this,he);cl(this,Qe);w1(this,Qe,s=>{if(!isServer&&window.addEventListener){const M=()=>s(!0),u=()=>s(!1);return window.addEventListener("online",M,!1),window.addEventListener("offline",u,!1),()=>{window.removeEventListener("online",M),window.removeEventListener("offline",u)}}})}onSubscribe(){H0(this,he)||this.setEventListener(H0(this,Qe))}onUnsubscribe(){var s;this.hasListeners()||((s=H0(this,he))==null||s.call(this),w1(this,he,void 0))}setEventListener(s){var M;w1(this,Qe,s),(M=H0(this,he))==null||M.call(this),w1(this,he,s(this.setOnline.bind(this)))}setOnline(s){H0(this,He)!==s&&(w1(this,He,s),this.listeners.forEach(u=>{u(s)}))}isOnline(){return H0(this,He)}},He=new WeakMap,he=new WeakMap,Qe=new WeakMap,f2),onlineManager=new OnlineManager;function pendingThenable(){let o,s;const M=new Promise((z,Z)=>{o=z,s=Z});M.status="pending",M.catch(()=>{});function u(z){Object.assign(M,z),delete M.resolve,delete M.reject}return M.resolve=z=>{u({status:"fulfilled",value:z}),o(z)},M.reject=z=>{u({status:"rejected",reason:z}),s(z)},M}function canFetch(o){return(o??"online")==="online"?onlineManager.isOnline():!0}var defaultScheduler=o=>setTimeout(o,0);function createNotifyManager(){let o=[],s=0,M=N=>{N()},u=N=>{N()},z=defaultScheduler;const Z=N=>{s?o.push(N):z(()=>{M(N)})},r=()=>{const N=o;o=[],N.length&&z(()=>{u(()=>{N.forEach(X=>{M(X)})})})};return{batch:N=>{let X;s++;try{X=N()}finally{s--,s||r()}return X},batchCalls:N=>(...X)=>{Z(()=>{N(...X)})},schedule:Z,setNotifyFunction:N=>{M=N},setBatchNotifyFunction:N=>{u=N},setScheduler:N=>{z=N}}}var notifyManager=createNotifyManager();function fetchState(o,s){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:canFetch(s.networkMode)?"fetching":"paused",...o===void 0&&{error:null,status:"pending"}}}var QueryObserver=(E2=class extends Subscribable{constructor(s,M){super();cl(this,g1);cl(this,Sl);cl(this,R1);cl(this,Nt);cl(this,Nl);cl(this,ge);cl(this,qe);cl(this,Ne);cl(this,Ge);cl(this,Gt);cl(this,$e);cl(this,lt);cl(this,ke);cl(this,Ce);cl(this,Xe);cl(this,tt,new Set);this.options=M,w1(this,Sl,s),w1(this,Ge,null),w1(this,Ne,pendingThenable()),this.options.experimental_prefetchInRender||H0(this,Ne).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(M)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(H0(this,R1).addObserver(this),shouldFetchOnMount(H0(this,R1),this.options)?ol(this,g1,jt).call(this):this.updateResult(),ol(this,g1,F2).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return shouldFetchOn(H0(this,R1),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return shouldFetchOn(H0(this,R1),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,ol(this,g1,U2).call(this),ol(this,g1,J2).call(this),H0(this,R1).removeObserver(this)}setOptions(s){const M=this.options,u=H0(this,R1);if(this.options=H0(this,Sl).defaultQueryOptions(s),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof resolveEnabled(this.options.enabled,H0(this,R1))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");ol(this,g1,v2).call(this),H0(this,R1).setOptions(this.options),M._defaulted&&!shallowEqualObjects(this.options,M)&&H0(this,Sl).getQueryCache().notify({type:"observerOptionsUpdated",query:H0(this,R1),observer:this});const z=this.hasListeners();z&&shouldFetchOptionally(H0(this,R1),u,this.options,M)&&ol(this,g1,jt).call(this),this.updateResult(),z&&(H0(this,R1)!==u||resolveEnabled(this.options.enabled,H0(this,R1))!==resolveEnabled(M.enabled,H0(this,R1))||resolveStaleTime(this.options.staleTime,H0(this,R1))!==resolveStaleTime(M.staleTime,H0(this,R1)))&&ol(this,g1,k2).call(this);const Z=ol(this,g1,C2).call(this);z&&(H0(this,R1)!==u||resolveEnabled(this.options.enabled,H0(this,R1))!==resolveEnabled(M.enabled,H0(this,R1))||Z!==H0(this,Xe))&&ol(this,g1,j2).call(this,Z)}getOptimisticResult(s){const M=H0(this,Sl).getQueryCache().build(H0(this,Sl),s),u=this.createResult(M,s);return shouldAssignObserverCurrentProperties(this,u)&&(w1(this,Nl,u),w1(this,qe,this.options),w1(this,ge,H0(this,R1).state)),u}getCurrentResult(){return H0(this,Nl)}trackResult(s,M){return new Proxy(s,{get:(u,z)=>(this.trackProp(z),M==null||M(z),Reflect.get(u,z))})}trackProp(s){H0(this,tt).add(s)}getCurrentQuery(){return H0(this,R1)}refetch({...s}={}){return this.fetch({...s})}fetchOptimistic(s){const M=H0(this,Sl).defaultQueryOptions(s),u=H0(this,Sl).getQueryCache().build(H0(this,Sl),M);return u.fetch().then(()=>this.createResult(u,M))}fetch(s){return ol(this,g1,jt).call(this,{...s,cancelRefetch:s.cancelRefetch??!0}).then(()=>(this.updateResult(),H0(this,Nl)))}createResult(s,M){var c0;const u=H0(this,R1),z=this.options,Z=H0(this,Nl),r=H0(this,ge),N=H0(this,qe),y=s!==u?s.state:H0(this,Nt),{state:G}=s;let V={...G},S=!1,R;if(M._optimisticResults){const P=this.hasListeners(),b0=!P&&shouldFetchOnMount(s,M),a0=P&&shouldFetchOptionally(s,u,M,z);(b0||a0)&&(V={...V,...fetchState(G.data,s.options)}),M._optimisticResults==="isRestoring"&&(V.fetchStatus="idle")}let{error:D,errorUpdatedAt:j,status:C}=V;R=V.data;let B=!1;if(M.placeholderData!==void 0&&R===void 0&&C==="pending"){let P;Z!=null&&Z.isPlaceholderData&&M.placeholderData===(N==null?void 0:N.placeholderData)?(P=Z.data,B=!0):P=typeof M.placeholderData=="function"?M.placeholderData((c0=H0(this,lt))==null?void 0:c0.state.data,H0(this,lt)):M.placeholderData,P!==void 0&&(C="success",R=replaceData(Z==null?void 0:Z.data,P,M),S=!0)}if(M.select&&R!==void 0&&!B)if(Z&&R===(r==null?void 0:r.data)&&M.select===H0(this,Gt))R=H0(this,$e);else try{w1(this,Gt,M.select),R=M.select(R),R=replaceData(Z==null?void 0:Z.data,R,M),w1(this,$e,R),w1(this,Ge,null)}catch(P){w1(this,Ge,P)}H0(this,Ge)&&(D=H0(this,Ge),R=H0(this,$e),j=Date.now(),C="error");const F=V.fetchStatus==="fetching",U=C==="pending",E=C==="error",g=U&&F,f=R!==void 0,o0={status:C,fetchStatus:V.fetchStatus,isPending:U,isSuccess:C==="success",isError:E,isInitialLoading:g,isLoading:g,data:R,dataUpdatedAt:V.dataUpdatedAt,error:D,errorUpdatedAt:j,failureCount:V.fetchFailureCount,failureReason:V.fetchFailureReason,errorUpdateCount:V.errorUpdateCount,isFetched:V.dataUpdateCount>0||V.errorUpdateCount>0,isFetchedAfterMount:V.dataUpdateCount>y.dataUpdateCount||V.errorUpdateCount>y.errorUpdateCount,isFetching:F,isRefetching:F&&!U,isLoadingError:E&&!f,isPaused:V.fetchStatus==="paused",isPlaceholderData:S,isRefetchError:E&&f,isStale:isStale(s,M),refetch:this.refetch,promise:H0(this,Ne)};if(this.options.experimental_prefetchInRender){const P=O0=>{o0.status==="error"?O0.reject(o0.error):o0.data!==void 0&&O0.resolve(o0.data)},b0=()=>{const O0=w1(this,Ne,o0.promise=pendingThenable());P(O0)},a0=H0(this,Ne);switch(a0.status){case"pending":s.queryHash===u.queryHash&&P(a0);break;case"fulfilled":(o0.status==="error"||o0.data!==a0.value)&&b0();break;case"rejected":(o0.status!=="error"||o0.error!==a0.reason)&&b0();break}}return o0}updateResult(){const s=H0(this,Nl),M=this.createResult(H0(this,R1),this.options);if(w1(this,ge,H0(this,R1).state),w1(this,qe,this.options),H0(this,ge).data!==void 0&&w1(this,lt,H0(this,R1)),shallowEqualObjects(M,s))return;w1(this,Nl,M);const u=()=>{if(!s)return!0;const{notifyOnChangeProps:z}=this.options,Z=typeof z=="function"?z():z;if(Z==="all"||!Z&&!H0(this,tt).size)return!0;const r=new Set(Z??H0(this,tt));return this.options.throwOnError&&r.add("error"),Object.keys(H0(this,Nl)).some(N=>{const X=N;return H0(this,Nl)[X]!==s[X]&&r.has(X)})};ol(this,g1,Wi).call(this,{listeners:u()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&ol(this,g1,F2).call(this)}},Sl=new WeakMap,R1=new WeakMap,Nt=new WeakMap,Nl=new WeakMap,ge=new WeakMap,qe=new WeakMap,Ne=new WeakMap,Ge=new WeakMap,Gt=new WeakMap,$e=new WeakMap,lt=new WeakMap,ke=new WeakMap,Ce=new WeakMap,Xe=new WeakMap,tt=new WeakMap,g1=new WeakSet,jt=function(s){ol(this,g1,v2).call(this);let M=H0(this,R1).fetch(this.options,s);return s!=null&&s.throwOnError||(M=M.catch(noop)),M},k2=function(){ol(this,g1,U2).call(this);const s=resolveStaleTime(this.options.staleTime,H0(this,R1));if(isServer||H0(this,Nl).isStale||!isValidTimeout(s))return;const u=timeUntilStale(H0(this,Nl).dataUpdatedAt,s)+1;w1(this,ke,setTimeout(()=>{H0(this,Nl).isStale||this.updateResult()},u))},C2=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(H0(this,R1)):this.options.refetchInterval)??!1},j2=function(s){ol(this,g1,J2).call(this),w1(this,Xe,s),!(isServer||resolveEnabled(this.options.enabled,H0(this,R1))===!1||!isValidTimeout(H0(this,Xe))||H0(this,Xe)===0)&&w1(this,Ce,setInterval(()=>{(this.options.refetchIntervalInBackground||focusManager.isFocused())&&ol(this,g1,jt).call(this)},H0(this,Xe)))},F2=function(){ol(this,g1,k2).call(this),ol(this,g1,j2).call(this,ol(this,g1,C2).call(this))},U2=function(){H0(this,ke)&&(clearTimeout(H0(this,ke)),w1(this,ke,void 0))},J2=function(){H0(this,Ce)&&(clearInterval(H0(this,Ce)),w1(this,Ce,void 0))},v2=function(){const s=H0(this,Sl).getQueryCache().build(H0(this,Sl),this.options);if(s===H0(this,R1))return;const M=H0(this,R1);w1(this,R1,s),w1(this,Nt,s.state),this.hasListeners()&&(M==null||M.removeObserver(this),s.addObserver(this))},Wi=function(s){notifyManager.batch(()=>{s.listeners&&this.listeners.forEach(M=>{M(H0(this,Nl))}),H0(this,Sl).getQueryCache().notify({query:H0(this,R1),type:"observerResultsUpdated"})})},E2);function shouldLoadOnMount(o,s){return resolveEnabled(s.enabled,o)!==!1&&o.state.data===void 0&&!(o.state.status==="error"&&s.retryOnMount===!1)}function shouldFetchOnMount(o,s){return shouldLoadOnMount(o,s)||o.state.data!==void 0&&shouldFetchOn(o,s,s.refetchOnMount)}function shouldFetchOn(o,s,M){if(resolveEnabled(s.enabled,o)!==!1&&resolveStaleTime(s.staleTime,o)!=="static"){const u=typeof M=="function"?M(o):M;return u==="always"||u!==!1&&isStale(o,s)}return!1}function shouldFetchOptionally(o,s,M,u){return(o!==s||resolveEnabled(u.enabled,o)===!1)&&(!M.suspense||o.state.status!=="error")&&isStale(o,M)}function isStale(o,s){return resolveEnabled(s.enabled,o)!==!1&&o.isStaleByTime(resolveStaleTime(s.staleTime,o))}function shouldAssignObserverCurrentProperties(o,s){return!shallowEqualObjects(o.getCurrentResult(),s)}var VUE_QUERY_CLIENT="VUE_QUERY_CLIENT";function getClientKey(o){const s=o?`:${o}`:"";return`${VUE_QUERY_CLIENT}${s}`}function updateState(o,s){Object.keys(o).forEach(M=>{o[M]=s[M]})}function _cloneDeep(o,s,M="",u=0){if(s){const z=s(o,M,u);if(z===void 0&&vue.isRef(o)||z!==void 0)return z}if(Array.isArray(o))return o.map((z,Z)=>_cloneDeep(z,s,String(Z),u+1));if(typeof o=="object"&&isPlainObject(o)){const z=Object.entries(o).map(([Z,r])=>[Z,_cloneDeep(r,s,Z,u+1)]);return Object.fromEntries(z)}return o}function cloneDeep(o,s){return _cloneDeep(o,s)}function cloneDeepUnref(o,s=!1){return cloneDeep(o,(M,u,z)=>{if(z===1&&u==="queryKey")return cloneDeepUnref(M,!0);if(s&&isFunction$1(M))return cloneDeepUnref(M(),s);if(vue.isRef(M))return cloneDeepUnref(vue.unref(M),s)})}function isPlainObject(o){if(Object.prototype.toString.call(o)!=="[object Object]")return!1;const s=Object.getPrototypeOf(o);return s===null||s===Object.prototype}function isFunction$1(o){return typeof o=="function"}function useQueryClient(o=""){if(!vue.hasInjectionContext())throw new Error("vue-query hooks can only be used inside setup() function or functions that support injection context.");const s=getClientKey(o),M=vue.inject(s);if(!M)throw new Error("No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.");return M}var define_process_env_default={};function useBaseQuery(o,s,M){define_process_env_default.NODE_ENV==="development"&&(vue.getCurrentScope()||console.warn('vue-query composable like "useQuery()" should only be used inside a "setup()" function or a running effect scope. They might otherwise lead to memory leaks.'));const u=useQueryClient(),z=vue.computed(()=>{var j;const R=cloneDeepUnref(s);typeof R.enabled=="function"&&(R.enabled=R.enabled());const D=u.defaultQueryOptions(R);return D._optimisticResults=(j=u.isRestoring)!=null&&j.value?"isRestoring":"optimistic",D}),Z=new o(u,z.value),r=z.value.shallow?vue.shallowReactive(Z.getCurrentResult()):vue.reactive(Z.getCurrentResult());let N=()=>{};u.isRestoring&&vue.watch(u.isRestoring,R=>{R||(N(),N=Z.subscribe(D=>{updateState(r,D)}))},{immediate:!0});const X=()=>{Z.setOptions(z.value),updateState(r,Z.getCurrentResult())};vue.watch(z,X),vue.onScopeDispose(()=>{N()});const y=(...R)=>(X(),r.refetch(...R)),G=()=>new Promise((R,D)=>{let j=()=>{};const C=()=>{if(z.value.enabled!==!1){Z.setOptions(z.value);const B=Z.getOptimisticResult(z.value);B.isStale?(j(),Z.fetchOptimistic(z.value).then(R,F=>{shouldThrowError(z.value.throwOnError,[F,Z.getCurrentQuery()])?D(F):R(Z.getCurrentResult())})):(j(),R(B))}};C(),j=vue.watch(z,C)});vue.watch(()=>r.error,R=>{if(r.isError&&!r.isFetching&&shouldThrowError(z.value.throwOnError,[R,Z.getCurrentQuery()]))throw R});const V=z.value.shallow?vue.shallowReadonly(r):vue.readonly(r),S=vue.toRefs(V);for(const R in r)typeof r[R]=="function"&&(S[R]=r[R]);return S.suspense=G,S.refetch=y,S}function useQuery(o,s){return useBaseQuery(QueryObserver,o)}const getValue=(o,s=null)=>{try{return(vue.isRef(o)?o==null?void 0:o.value:o)??s}catch{return s}};function useFetch(o,s,M,u,z){const Z=`${s}_${lodashExports.uniqueId()}`,r=useQueryClient(),N=async F=>{const U=getFetchUniq();if(!U)throw new Error("FetchUniq provider is not available");return F?U(F,getValue(M,{}),Z).then(E=>u?u(E):E):Promise.resolve(null)},X={...DEFAULT_FETCH_OPTIONS,...z},y=vue.computed(()=>[...getValue(o,[]),getValue(M,{})]),G=()=>useQuery({queryKey:y,queryFn:()=>N(getValue(s,"")),...X}),V=async()=>{r.invalidateQueries({queryKey:getValue(o),exact:!1,refetchType:X.refetchType})},{isFetching:S,isPending:R,data:D,refetch:j,error:C}=G(),B=vue.computed(()=>D.value??(z==null?void 0:z.defaultValue));return{pending:R,fetching:S,data:B,refetch:j,invalidate:V,error:C}}function useFetchPages(o,s,M,u){const z={...DEFAULT_FETCH_OPTIONS,...u},Z=`${M}_${lodashExports.uniqueId()}`,r=vue.computed(()=>{const g=formatPagination(getValue(o,{})),f=getValue(s,{});return lodashExports.cloneDeep({...f,...g})}),N=vue.computed({get(){var g;return((g=getValue(o))==null?void 0:g.page)||1},set(g){vue.isRef(o)?o.value.page=g:o.page=g}}),X=vue.computed({get(){var g;return((g=getValue(o))==null?void 0:g.rowsNumber)||0},set(g){vue.isRef(o)?o.value.rowsNumber=g:o.rowsNumber=g}}),y=(g,f)=>{const q=getFetchUniq();if(!q)throw new Error("FetchUniq provider is not available");return q(getValue(g,""),getValue(f),Z)},G=useQueryClient(),V=async()=>{G.invalidateQueries({queryKey:[getValue(M),r.value],exact:!1,refetchType:"active"})},{isFetching:S,isPending:R,data:D,refetch:j,isPlaceholderData:C,error:B}=useQuery({queryKey:[M,r],queryFn:()=>y(M,r),placeholderData:keepPreviousData,...z});vue.watch(D,g=>{X.value=(g==null?void 0:g.count)||0},{immediate:!0});const F=()=>{C.value||(N.value=Math.max(N.value-1,1))},U=()=>{C.value||(N.value=N.value+1)},E=vue.computed(()=>{var g;return((g=D.value)==null?void 0:g.items)||[]});return{pending:R,fetching:S,error:B,items:E,refetch:j,invalidate:V,count:X,page:N,prevPage:F,nextPage:U,isPlaceholderData:C,rawData:D}}function formatPagination(o){const s=(o.page-1)*o.rowsPerPage,M=o.rowsPerPage;return{startRow:s,fetchCount:M,sortBy:o.sortBy,descending:o.descending}}const ID_KEY="_id";function useDragAndDrop(o,s,M,u){const z=(u==null?void 0:u.idKey)??ID_KEY,Z=()=>{var S;(S=o.value)==null||S.forEach(R=>{let D=u!=null&&u.idKey?R[u.idKey]:null;D===null&&(D=lodashExports.uniqueId()),R[z]=String(D)})};vue.watch(()=>{var S;return(S=o.value)==null?void 0:S.length},()=>{Z()},{immediate:!0});function r(){return!0}function N(S){S.dataTransfer.setData("id",S.target.id),S.dataTransfer.dropEffect="move"}function X(S){if(S.preventDefault(),!S.target)return;const R=S.target.closest(s);R&&(R!=null&&R.contains(S.relatedTarget)||R.classList.remove("drag-enter"))}function y(S){if(S.preventDefault(),!S.target)return;const R=S.target.closest(s);R&&R.classList.add("drag-enter")}function G(S){S.preventDefault();const R=S.target.closest(s);if(V(R),!(R!=null&&R.draggable))return;const D=S.dataTransfer.getData("id");if(!R)return;const j=(R==null?void 0:R.id)??null;if(j===null)return;const C=lodashExports.cloneDeep(o.value),B=C.findIndex(E=>E[z]==D),F=C.findIndex(E=>E[z]==j);if(B===-1||F===-1)return;const[U]=C.splice(B,1);C.splice(F,0,U),o.value=C,M(C)}function V(S){const R=S==null?void 0:S.parentElement;if(!R)return;const D=R.children;for(let j=0;j<D.length;j++)D[j].classList.remove("drag-enter")}return{handler:r,onDragLeave:X,onDragStart:N,onDragOver:y,onDrop:G,idKey:z}}function useWidgetEvent(){const o=vue.inject("emit");return{emitEvent:(M,u)=>{o("on-event",{code:M,payload:u})}}}function useContext(){const o=vue.inject("context"),s=vue.computed(()=>o.product.value),M=o.slide,u=o.isPublic,z=o.images,Z=o.selectedPackProduct,r=vue.computed(()=>!u.value),N=vue.computed(()=>{var y;return((y=s.value)==null?void 0:y.detalle_pack)||[]}),X=vue.computed(()=>{var y;return((y=s.value)==null?void 0:y.props)||{}});return vue.watch(s,()=>{var G;const y=((G=s.value)==null?void 0:G.images)||[];z.value=y},{immediate:!0}),vue.watch(N,y=>{var G;y&&(Z.value=(G=y[0])==null?void 0:G.DETALLE)},{immediate:!0,deep:!0}),{product:s,isPublic:u,isPrivate:r,images:z,detallePack:N,productProps:X,selectedPackProduct:Z,slide:M,gamaProps:o.gamaProps,count:o.count}}const _hoisted_1$a=["id","draggable"],_hoisted_2$8=["onClick"],_hoisted_3$6={key:0,class:"row items-center justify-center bg-grey-2 media-card",style:{"border-radius":"8px",border:"1px dashed #c9c9c9"}},_hoisted_4$5={key:2,class:"media-card"},_hoisted_5$5=["src"],_hoisted_6$2={class:"video-icon"},_sfc_main$a=vue.defineComponent({__name:"ImagesMiniature",setup(o){const{images:s,slide:M,isPrivate:u}=useContext(),{emitEvent:z}=useWidgetEvent(),{handler:Z,onDragLeave:r,onDragOver:N,onDragStart:X,onDrop:y,idKey:G}=useDragAndDrop(s,".image-miniature",V=>z("update_images_position",{images:V}));return(V,S)=>vue.unref(s).length?vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{key:0,class:"images-miniature",onDragleave:S[1]||(S[1]=(...R)=>vue.unref(r)&&vue.unref(r)(...R)),onDragover:S[2]||(S[2]=(...R)=>vue.unref(N)&&vue.unref(N)(...R)),onDrop:S[3]||(S[3]=(...R)=>vue.unref(y)&&vue.unref(y)(...R))},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(s),(R,D)=>(vue.openBlock(),vue.createElementBlock("div",{class:"q-mb-md image-miniature",key:D,id:R[vue.unref(G)],onDragstart:S[0]||(S[0]=(...j)=>vue.unref(X)&&vue.unref(X)(...j)),draggable:vue.unref(u)},[R?(vue.openBlock(),vue.createElementBlock("div",{key:0,onClick:j=>M.value=D+1,style:vue.normalizeStyle({cursor:"pointer",borderWidth:"0.7px",borderStyle:"solid",borderRadius:"0.5rem",borderColor:D===vue.unref(M)-1?"#015979 ":"transparent"}),class:"q-py-sm q-px-sm win-card"},[R!=null&&R.location?R.tipo==="image"?(vue.openBlock(),vue.createBlock(QImg,{key:1,src:R.location,fit:"cover",class:"media-card"},null,8,["src"])):R.tipo==="video"?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$5,[vue.createElementVNode("video",{src:R.location,style:{width:"100%",height:"100%",background:"black"}},null,8,_hoisted_5$5),vue.createElementVNode("div",_hoisted_6$2,[vue.createVNode(QIcon,{size:"lg",name:"o_play_circle",color:"white"})])])):vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$6,[vue.createVNode(QIcon,{name:"upload_file",color:"grey-5",size:"33px"})]))],12,_hoisted_2$8)):vue.createCommentVNode("",!0)],40,_hoisted_1$a))),128))],32)),[[Mutation,vue.unref(Z)]]):vue.createCommentVNode("",!0)}}),ImagesMiniature=_export_sfc(_sfc_main$a,[["__scopeId","data-v-e7d66c4a"]]),_hoisted_1$9={class:"text-weight-medium"},_hoisted_2$7={key:0,class:"row justify-end items-center"},_sfc_main$9=vue.defineComponent({__name:"ProductCustomizableIndicator",props:{label:{default:"A medida"}},setup(o){const{productProps:s,product:M}=useContext(),u=vue.computed(()=>{var z,Z;return!!((z=s.value)!=null&&z.a_medida)&&!((Z=M.value)!=null&&Z.pack)});return(z,Z)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$9,[u.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$7,[vue.createVNode(QChip,{color:"blue","text-color":"white",size:"12px"},{default:vue.withCtx(()=>Z[0]||(Z[0]=[vue.createTextVNode("A medida")])),_:1,__:[0]})])):vue.createCommentVNode("",!0)]))}}),_hoisted_1$8={class:"row q-mt-md q-pa-sm",style:{"overflow-x":"auto"}},_hoisted_2$6=["onClick"],_hoisted_3$5={class:"q-pa-sm"},_hoisted_4$4={class:"text-weight-medium ellipsis"},_hoisted_5$4={class:"text-caption"},_hoisted_6$1={key:0,class:"q-mt-md"},_hoisted_7$1={class:"text-h6"},_sfc_main$8=vue.defineComponent({__name:"ProductDetallePack",setup(o){const{detallePack:s,selectedPackProduct:M,gamaProps:u}=useContext(),z=r=>{M.value=r},Z=vue.computed(()=>{var r,N;return((r=M.value)==null?void 0:r.PROPS)||((N=M.value)==null?void 0:N.props)||{}});return(r,N)=>{var X;return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$8,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(s),(y,G)=>{var V,S,R,D;return vue.openBlock(),vue.createElementBlock("div",{key:G,class:vue.normalizeClass(`q-mr-md glass-card detalle-pack ${((V=vue.unref(M))==null?void 0:V.ID_PRODUCTO)==y.ID_PRODUCTO_DETALLE?"selected":""}`),onClick:j=>z(y.DETALLE)},[(R=(S=y==null?void 0:y.DETALLE)==null?void 0:S.ARCHIVOS)!=null&&R.length?(vue.openBlock(),vue.createBlock(QImg,{key:0,src:y.DETALLE.ARCHIVOS[0].LOCATION||"placeholder.webp",style:{height:"120px","border-radius":"8px"},fit:"contain"},null,8,["src"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_3$5,[vue.createElementVNode("div",_hoisted_4$4,vue.toDisplayString((D=y==null?void 0:y.DETALLE)==null?void 0:D.NOMBRE),1),vue.createElementVNode("div",_hoisted_5$4,vue.toDisplayString(y==null?void 0:y.CANTIDAD)+"X",1)])],10,_hoisted_2$6)}),128))]),vue.unref(M)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_6$1,[vue.createElementVNode("div",_hoisted_7$1,vue.toDisplayString(vue.unref(M).NOMBRE),1),vue.createElementVNode("div",null,"SKU: "+vue.toDisplayString((X=vue.unref(M).PROPS)==null?void 0:X.sku),1),vue.createVNode(_sfc_main$e,{class:"q-mt-md","product-props":Z.value,"gama-props":vue.unref(u)},null,8,["product-props","gama-props"])])):vue.createCommentVNode("",!0)],64)}}}),ProductDetallePack=_export_sfc(_sfc_main$8,[["__scopeId","data-v-f898c9ff"]]),_hoisted_1$7={class:"product-image-header"},_hoisted_2$5={class:"product-code"},_hoisted_3$4={class:"media-count"},_sfc_main$7=vue.defineComponent({__name:"ProductImageHeader",setup(o){const{product:s,images:M,slide:u,isPrivate:z}=useContext(),Z=vue.computed(()=>{var y,G;return(((G=(y=s.value)==null?void 0:y.tags)==null?void 0:G.split(","))||[]).filter(Boolean)}),r=vue.computed(()=>{var y;return(y=s.value)==null?void 0:y.codigo}),{emitEvent:N}=useWidgetEvent(),X=()=>{var y;return N("edit_tags",{id:(y=s.value)==null?void 0:y.id})};return(y,G)=>{var V,S;return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$7,[vue.createElementVNode("div",_hoisted_2$5,vue.toDisplayString(r.value),1),vue.createElementVNode("div",{onClick:X,class:"tags",style:vue.normalizeStyle({overflowX:"auto",cursor:vue.unref(z)?"pointer":"default"})},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(Z.value,R=>(vue.openBlock(),vue.createBlock(ProductTag,{tag:R},null,8,["tag"]))),256)),!Z.value.length&&vue.unref(z)?(vue.openBlock(),vue.createBlock(QChip,{key:0,class:"tag",size:"12px"},{default:vue.withCtx(()=>G[0]||(G[0]=[vue.createTextVNode("Editar etiquetas")])),_:1,__:[0]})):vue.createCommentVNode("",!0)],4),vue.createElementVNode("div",_hoisted_3$4,[vue.createTextVNode(vue.toDisplayString((V=vue.unref(M))!=null&&V.length?vue.unref(u):0)+"/"+vue.toDisplayString(((S=vue.unref(M))==null?void 0:S.length)||0)+" ",1),vue.createVNode(QIcon,{name:"sym_o_image",size:"sm",class:"q-ml-xs"})])])}}}),ProductImageHeader=_export_sfc(_sfc_main$7,[["__scopeId","data-v-86923709"]]),_hoisted_1$6={key:0,class:"q-mt-md text-black col-12"},_sfc_main$6=vue.defineComponent({__name:"ProductLongDescription",setup(o){const{selectedPackProduct:s,product:M}=useContext(),u=vue.computed(()=>{var z,Z;return((z=s.value)==null?void 0:z.DESCRIPCION)||((Z=M.value)==null?void 0:Z.descripcion)});return(z,Z)=>u.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$6,[Z[0]||(Z[0]=vue.createElementVNode("div",{class:"font-bold text-h6"},"Información del producto",-1)),vue.createElementVNode("div",null,vue.toDisplayString(u.value),1)])):vue.createCommentVNode("",!0)}}),_hoisted_1$5={class:"full-width simple-grid"},_hoisted_2$4={class:"bg-grey-2 values"},_hoisted_3$3={class:"text-bold"},_hoisted_4$3={class:"text-bold"},_hoisted_5$3={class:"text-bold"},convertToMeters=(o,s)=>{switch(s){case"m":return o;case"cm":return o/100;case"mm":return o/1e3;default:throw new Error(`Unidad no soportada: ${s}`)}},getPanelesFn=o=>{const s=Number(o.ancho)||0,M=Number(o.alto)||0,u=o.unidad_de_medida||"cm",z=convertToMeters(s,u),Z=convertToMeters(M,u);let r=z*Z;return r<=0&&(r=1),N=>{const X=1/r,y=getSquareMeters(N);return Math.ceil(y*X)}},getSquareMeters=o=>{const s=Number((o==null?void 0:o.ancho)||0),M=Number((o==null?void 0:o.alto)||0);return s*M},_sfc_main$5=vue.defineComponent({__name:"ProductConfiguration",props:vue.mergeModels({product:{}},{quantity:{required:!0,default:1},quantityModifiers:{},detail:{required:!0},detailModifiers:{}}),emits:["update:quantity","update:detail"],setup(o){const s=o,M=vue.useModel(o,"quantity"),u=vue.useModel(o,"detail"),z=vue.computed(()=>lodashExports.mapKeys(s.product||{},(j,C)=>C.toUpperCase())),Z=vue.computed(()=>{var j;return((j=z.value)==null?void 0:j.PROPS)||{}}),r=vue.computed(()=>Z.value.unidad_de_medida||"cm"),N=vue.computed(()=>getPanelesFn(Z.value||{}));vue.watch(u,j=>{M.value=N.value(u.value)},{immediate:!0,deep:!0});const X=j=>j.toLocaleString("es-ES",{minimumFractionDigits:2,maximumFractionDigits:2}),y=vue.computed(()=>{var C;return(Number((C=z.value)==null?void 0:C.PRECIO)||0)*M.value}),G=vue.computed(()=>getSquareMeters(u.value)),V=vue.computed(()=>{var j;return convertToMeters(Number((j=Z.value)==null?void 0:j.ancho)||0,r.value)}),S=vue.computed(()=>{var j;return convertToMeters(Number((j=Z.value)==null?void 0:j.alto)||0,r.value)}),R=vue.computed(()=>V.value*S.value),D=vue.computed(()=>{var C;const j=((C=z.value)==null?void 0:C.PRECIO)||0;return!j||!R.value?0:toCurrency(j/R.value)});return vue.watch(()=>u.value.ancho,j=>{j%V.value!==0&&(u.value.ancho=Math.ceil(j/V.value)*V.value)}),vue.watch(()=>u.value.alto,j=>{j%S.value!==0&&(u.value.alto=Math.ceil(j/S.value)*S.value)}),(j,C)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[C[6]||(C[6]=vue.createElementVNode("div",{class:"prices text-bold q-mb-md"}," Define la configuración para este producto ",-1)),vue.createElementVNode("div",_hoisted_1$5,[vue.createElementVNode("div",null,[vue.createVNode(QInput,{type:"number",outlined:"",class:"q-mb-md",modelValue:u.value.ancho,"onUpdate:modelValue":C[0]||(C[0]=B=>u.value.ancho=B),modelModifiers:{number:!0},label:"Ancho",suffix:"metros",step:V.value,min:"0"},null,8,["modelValue","step"]),vue.createVNode(QInput,{type:"number",outlined:"",modelValue:u.value.alto,"onUpdate:modelValue":C[1]||(C[1]=B=>u.value.alto=B),modelModifiers:{number:!0},label:"Alto",suffix:"metros",step:S.value,min:"0"},null,8,["modelValue","step"])]),vue.createElementVNode("div",_hoisted_2$4,[vue.createElementVNode("div",null,[vue.createTextVNode(" Área panel: "+vue.toDisplayString(X(R.value))+" m",1),C[2]||(C[2]=vue.createElementVNode("sup",null,"2",-1))]),vue.createElementVNode("div",null,[C[3]||(C[3]=vue.createTextVNode(" Importe m")),C[4]||(C[4]=vue.createElementVNode("sup",null,"2",-1)),vue.createTextVNode(": "+vue.toDisplayString(D.value),1)]),vue.createElementVNode("div",_hoisted_3$3,[vue.createTextVNode("Área total: "+vue.toDisplayString(X(G.value))+" m",1),C[5]||(C[5]=vue.createElementVNode("sup",null,"2",-1))]),vue.createElementVNode("div",_hoisted_4$3,"Paneles: "+vue.toDisplayString(M.value),1),vue.createElementVNode("div",_hoisted_5$3,"Importe total: "+vue.toDisplayString(vue.unref(toCurrency)(y.value)),1)])])],64))}}),ProductConfiguration=_export_sfc(_sfc_main$5,[["__scopeId","data-v-7f5231c6"]]),_hoisted_1$4={key:0,class:"q-mt-lg"},_hoisted_2$3={class:"row justify-between q-mt-md"},_hoisted_3$2={key:0,class:"counter q-mr-lg"},_hoisted_4$2={class:"quantity"},_hoisted_5$2={key:1},_sfc_main$4=vue.defineComponent({__name:"ProductShopcartActions",setup(o){const{product:s,productProps:M}=useContext(),{emitEvent:u}=useWidgetEvent(),z=vue.computed(()=>{var V;return!!((V=M.value)!=null&&V.a_medida)}),Z=vue.ref(z.value?0:1),r=vue.ref({}),N=vue.computed(()=>z.value&&Z.value<=0),X=()=>{Z.value=Math.max(1,Z.value-1)},y=()=>{Z.value++},G=()=>{const V=lodashExports.omit(s.value,"images","table_estado");u("add_to_shopcart",{product:lodashExports.mapKeys({...V,id_producto:V.id},(S,R)=>R.toUpperCase()),quantity:Z.value,props:r.value||{}})};return(V,S)=>vue.unref(s)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$4,[z.value?(vue.openBlock(),vue.createBlock(ProductConfiguration,{key:0,product:vue.unref(s),quantity:Z.value,"onUpdate:quantity":S[0]||(S[0]=R=>Z.value=R),detail:r.value,"onUpdate:detail":S[1]||(S[1]=R=>r.value=R)},null,8,["product","quantity","detail"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$3,[z.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$2)):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$2,[vue.createVNode(IconButton,{outline:"",size:"sm",onClick:X,icon:"remove"}),vue.createElementVNode("span",_hoisted_4$2,vue.toDisplayString(Z.value),1),vue.createVNode(IconButton,{outline:"",size:"sm",custom:"",onClick:y,icon:"add"})])),vue.createVNode(_sfc_main$Q,{onClick:G,disable:N.value,main:"",label:"Agregar al carrito"},null,8,["disable"])])])):vue.createCommentVNode("",!0)}}),ProductShopcartActions=_export_sfc(_sfc_main$4,[["__scopeId","data-v-42882252"]]),_hoisted_1$3={style:{"font-size":"16px","max-height":"300px","overflow-y":"auto"}},_hoisted_2$2={key:0,class:"text-black"},_sfc_main$3=vue.defineComponent({__name:"ProductShortDescription",setup(o){const{product:s}=useContext(),M=vue.computed(()=>{var u;return((u=s.value)==null?void 0:u.descripcion_corta)||""});return(u,z)=>(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$3,[M.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$2,vue.toDisplayString(M.value),1)):vue.createCommentVNode("",!0)]))}}),_hoisted_1$2={key:0,class:"visibility-icon-container top-right"},_sfc_main$2=vue.defineComponent({__name:"PublicImageButton",setup(o){const{images:s,slide:M,isPrivate:u}=useContext(),z=vue.computed(()=>{var X;return(X=s.value[M.value-1])==null?void 0:X.id}),Z=vue.computed(()=>{var X;return(X=s.value[M.value-1])==null?void 0:X.public}),{emitEvent:r}=useWidgetEvent(),N=()=>r("change_image_visibility",{ID_ARCHIVO:z.value,PUBLICO:!Z.value});return(X,y)=>{var G;return(G=vue.unref(s))!=null&&G.length&&vue.unref(u)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$2,[vue.createVNode(QBtn,{onClick:vue.withModifiers(N,["stop"]),size:"12px",icon:Z.value?"public":"public_off","text-color":Z.value?"green":"red",color:"white",padding:"4px",round:""},{default:vue.withCtx(()=>[vue.createVNode(QTooltip,null,{default:vue.withCtx(()=>[vue.createTextVNode(vue.toDisplayString(Z.value?"Visible al público":"Privado"),1)]),_:1})]),_:1},8,["icon","text-color"])])):vue.createCommentVNode("",!0)}}}),PublicImageButton=_export_sfc(_sfc_main$2,[["__scopeId","data-v-3a4b0b68"]]),_hoisted_1$1={class:"row justify-end"},_hoisted_2$1={class:"grid"},_hoisted_3$1={class:"images-container"},_hoisted_4$1={class:"carousel-container"},_hoisted_5$1={class:"text-h5 text-bold"},_hoisted_6={class:"row justify-between"},_hoisted_7={key:0},_hoisted_8={class:"row items-center justify-between"},_hoisted_9={class:"text-weight-medium"},_hoisted_10={class:"row"},_sfc_main$1=vue.defineComponent({__name:"LinvermediaProductDetail",props:{isPublic:{type:Boolean},fetching:{type:Boolean},scale:{},count:{},view:{default:"detail"},title:{},data:{},gamaProps:{}},emits:["on-event"],setup(o,{emit:s}){const M=vue.computed(()=>Screen.lt.md),u=s;vue.provide("emit",u);const z=o,Z=vue.ref(1),{data:r,isPublic:N,gamaProps:X,count:y}=vue.toRefs(z),G=vue.computed(()=>toProductLite(r.value)),V=vue.ref(null),S=vue.ref([]),R={product:G,slide:Z,isPublic:N,selectedPackProduct:V,images:S,count:y,gamaProps:X};vue.provide("context",R);const D=vue.computed(()=>{var C;return!!((C=G.value)!=null&&C.pack)}),j=()=>{var C;return u("on-event",{code:"edit_product",payload:{id:(C=G.value)==null?void 0:C.id}})};return(C,B)=>{var E,g,f,q,o0,c0,P;const F=vue.resolveComponent("v-else"),U=vue.resolveComponent("ProductAvailableColors");return vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[vue.createElementVNode("div",_hoisted_1$1,[vue.unref(N)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(IconButton,{key:0,action:"edit",sm:"",onClick:j}))]),vue.createElementVNode("div",_hoisted_2$1,[vue.createElementVNode("div",_hoisted_3$1,[vue.createVNode(ImagesMiniature,{class:"gt-sm"}),vue.createElementVNode("div",_hoisted_4$1,[vue.createVNode(ProductImageHeader),vue.createVNode(_sfc_main$L,{style:{"border-radius":"8px"},items:S.value,modelValue:Z.value,"onUpdate:modelValue":B[0]||(B[0]=b0=>Z.value=b0),height:M.value?"450px":"600px"},null,8,["items","modelValue","height"]),vue.createVNode(PublicImageButton)]),vue.createVNode(ImagesMiniature,{class:"lt-md"})]),vue.createElementVNode("div",null,[vue.createElementVNode("div",_hoisted_5$1,vue.toDisplayString(vue.unref(capitalize)(((E=G.value)==null?void 0:E.nombre)||"")),1),vue.createElementVNode("div",_hoisted_6,[vue.unref(N)?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createElementBlock("div",_hoisted_7,"SKU: "+vue.toDisplayString((f=(g=G.value)==null?void 0:g.props)==null?void 0:f.sku),1)),vue.createVNode(F,{div:""}),!vue.unref(N)&&((q=G.value)!=null&&q.estado)?(vue.openBlock(),vue.createBlock(StateIndicator,{key:1,label:G.value.estado.name,color:G.value.estado.color},null,8,["label","color"])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_8,[vue.createVNode(ProductPrice,{product:G.value},null,8,["product"]),vue.createElementVNode("div",_hoisted_9,vue.toDisplayString(vue.unref(capitalize)(((c0=(o0=G.value)==null?void 0:o0.props)==null?void 0:c0.ubicacion)||"")),1),vue.createVNode(_sfc_main$9)]),vue.createVNode(U),vue.createVNode(_sfc_main$3),D.value?(vue.openBlock(),vue.createBlock(ProductDetallePack,{key:0})):(vue.openBlock(),vue.createBlock(_sfc_main$e,{key:1,"product-props":(P=G.value)==null?void 0:P.props,"gama-props":vue.unref(X)},null,8,["product-props","gama-props"])),vue.unref(N)?(vue.openBlock(),vue.createBlock(ProductShopcartActions,{key:2})):vue.createCommentVNode("",!0)])]),vue.createElementVNode("div",_hoisted_10,[vue.createVNode(_sfc_main$6)])],64)}}}),LinvermediaProductDetail=_export_sfc(_sfc_main$1,[["__scopeId","data-v-9f8ac4f9"]]),LINVERMEDIA_PRODUCT_DETAIL_MOCK_DATA=Object.freeze([{id:151,nombre:"Pantalla LED 3x2 P2.9 Escaparate",precio:21879.5,tipo_iva:"exento",descripcion:"Potente solución para escaparates grandes o interiores espaciosos. Con su formato cuadrado y gran superficie, es perfecta para videowalls que transmitan una imagen de marca sólida y profesional. La controladora Novastar Taurus TB50 garantiza un rendimiento óptimo y una gestión avanzada de contenidos complejos y en tiempo real.",descripcion_corta:"Pantalla LED 3x2m (6m²) 24 cabinets",estado:1,props:{sku:"LED-P29-FS",alto:"50",gama:"pantallas_led_modulares",ancho:"50",pitch:"2_9_mm",brillo:"4000_nits",peso_kg:"7",subgama:"led",a_medida:!0,material:"aluminio_fundido",ubicacion:"exterior",tipo_montaje:"matriz",proteccion_ip:"ip_65_ip_43",tasa_refresco:"3840",tipo_servicio:"full_front",consumo_maximo:"160W",consumo_medio_w:"80",usos_habituales:["eventos_estadios_mobiliario_urbano"],consumo_maximo_w:"160",tipo_instalacion:"estructura_exterior_soporte_metalico",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],controladoras_compatibles:["novastar_vx_600","novastar_vx_1000","taurus_tb_40"]},tags:null,codigo:"00000073",fecha_creado:"2025-06-07T00:38:46.071Z",id_captacion:null,id_estado:"c241a8a9-51a6-4274-831c-d11503726458",id_gama:23,id_proveedor:null,paquete:0,pack:1,fecha_alta:"2025-06-06T04:00:00.000Z",documentos:[{id:909,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/c39831025394e8f0_Pantalla%20LED%20Exterior%20Mantenimiento%20Frontal%20Completo.png",public:1,tipo:"image",firmable:0,tags:null,posicion:2},{id:910,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/7eec48aa4f7a0d9d_Pantalla%20LED%20Exterior%20de%20Gran%20Brillo%20y%20Visibilidad%20500%20mmm.png",public:1,tipo:"image",firmable:0,tags:null,posicion:1},{id:911,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/51f4d42fb93178e3_to%20LED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida.png",public:1,tipo:"image",firmable:0,tags:null,posicion:3},{id:912,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/48deda3825a497a9_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",public:1,tipo:"image",firmable:0,tags:null,posicion:4},{id:913,estado:1,aprobado:-1,id_producto:151,id_captacion:null,id_tipo_documento:28,id_documento_firmado:null,location:"https://w2w-files.s3.amazonaws.com/linvermedia/eaea5eb4e9899055_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",public:1,tipo:"image",firmable:0,tags:null,posicion:5}],detalle_pack:[{ID_PRODUCTO_DETALLE_PACK:15,ID_PRODUCTO_PACK:151,ID_PRODUCTO_DETALLE:122,CANTIDAD:24,DESCUENTO:"10.00",PROPS:{alto:"2",ancho:"3"},PRINCIPAL:!0,DETALLE:{ID_PRODUCTO:122,ID_EMPRESA:1,COD_ART_MVX:"00000045",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,NOMBRE:"Panel Modular LED P2.9 Exterior Frontal de Alto Brillo",DESCRIPCION:"La Pantalla LED P2.9 Exterior Frontal de Alto Brillo está diseñada para ofrecer un rendimiento impecable en los entornos más exigentes. Su pixel pitch de 2.9mm ofrece una excelente resolución para vallas publicitarias, eventos deportivos y grandes escenarios al aire libre, con un brillo de 4000 nits que garantiza visibilidad incluso bajo el sol más intenso. Fabricada en aluminio fundido, es resistente y cuenta con mantenimiento frontal, facilitando el servicio en instalaciones de pared o estructuras fijas. Con un consumo máximo de 160W y medio de 80W, para eficiencia energética. Su clasificación IP65/IP43 asegura protección contra el polvo y el agua. Tus mensaje brillarán con la máxima potencia y fiabilidad en exteriores.",DESCRIPCION_CORTA:"Robusta y brillante, la pantalla LED P2.9 Exterior con mantenimiento frontal es ideal para publicidad y eventos al aire libre bajo cualquier condición.",ID_CAPTACION:null,ID_PROVEEDOR:null,ID_PRODUCTO_REF:null,TIPO:"1",ESTADO:"1",ID_GAMA:23,ID_TIE_DEF:null,TAGS:null,PROPS:{sku:"LED-P29-FS",alto:"50",gama:"pantallas_led_modulares",ancho:"50",pitch:"2_9_mm",brillo:"4000_nits",peso_kg:"7",subgama:"led",a_medida:!0,material:"aluminio_fundido",ubicacion:"exterior",tipo_montaje:"matriz",proteccion_ip:"ip_65_ip_43",tasa_refresco:"3840",tipo_servicio:"full_front",consumo_maximo:"160W",consumo_medio_w:"80",usos_habituales:["eventos_estadios_mobiliario_urbano"],consumo_maximo_w:"160",tipo_instalacion:"estructura_exterior_soporte_metalico",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],controladoras_compatibles:["novastar_vx_600","novastar_vx_1000","taurus_tb_40"]},PUBLICO:!0,PACK:!1,CONFIGURABLE:!1,GRUPO:null,PAQUETE:!1,ID_PRODUCTOS_PAQUETE:null,PRECIO:"1000.00",PRECIOS:null,ID_ESTADO:"c241a8a9-51a6-4274-831c-d11503726458",ID_SEGMENTOS:null,TIPO_IVA:"exento",FECHA_ALTA:"2025-06-01",FECHA_UPD:"2025-06-26T03:59:54.090Z",FECHA_CREADO:"2025-05-29T16:24:25.545Z",ARCHIVOS:[{ID_ARCHIVO:883,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/c39831025394e8f0_Pantalla%20LED%20Exterior%20Mantenimiento%20Frontal%20Completo.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Pantalla LED Exterior Mantenimiento Frontal Completo.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:06:30.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:122,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1},{ID_ARCHIVO:884,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/7eec48aa4f7a0d9d_Pantalla%20LED%20Exterior%20de%20Gran%20Brillo%20y%20Visibilidad%20500%20mmm.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Pantalla LED Exterior de Gran Brillo y Visibilidad 500 mmm.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:06:42.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:122,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:2}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null}},{ID_PRODUCTO_DETALLE_PACK:16,ID_PRODUCTO_PACK:151,ID_PRODUCTO_DETALLE:144,CANTIDAD:1,DESCUENTO:"0.00",PROPS:{alto:"",ancho:""},PRINCIPAL:!1,DETALLE:{ID_PRODUCTO:144,ID_EMPRESA:1,COD_ART_MVX:"00000067",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,NOMBRE:"Controladora LED Novastar Taurus TB40 (Rendimiento Superior)",DESCRIPCION:"Esta controladora asíncrona de alto rendimiento está diseñada para los proyectos más exigentes, ofreciendo una potencia de procesamiento superior y una mayor capacidad de carga de pixels. Es ideal para pantallas LED de gran tamaño, aplicaciones interactivas o proyectos que requieren actualizaciones de contenido frecuentes y complejas. Con múltiples opciones de conectividad y una estabilidad excepcional, la TB40 garantiza una gestión remota fluida y fiable de tu contenido. Su robustez y eficiencia la convierten en la elección preferida para publicidad dinámica, información en tiempo real y experiencias visuales inmersivas.",DESCRIPCION_CORTA:"La Taurus TB40 de Novastar es una controladora asíncrona de alto rendimiento, diseñada para proyectos LED complejos que exigen máxima potencia y versatilida",ID_CAPTACION:null,ID_PROVEEDOR:null,ID_PRODUCTO_REF:null,TIPO:"1",ESTADO:"1",ID_GAMA:23,ID_TIE_DEF:null,TAGS:null,PROPS:{sku:"CTRL-TB40",gama:"controladoras",serie:"novastar_taurus",subgama:"controladoras_asincronas_reproductores_multimedia",ubicacion:"panel_led_modular",proteccion_ip:"ip_20_productos_de_interior",tipo_servicio:null,sistema_operativo:"android",compatibilidad_de_senal:["red_lan_wi_fi_4_g","usb"]},PUBLICO:!0,PACK:!1,CONFIGURABLE:!1,GRUPO:null,PAQUETE:!1,ID_PRODUCTOS_PAQUETE:null,PRECIO:"279.50",PRECIOS:null,ID_ESTADO:"c241a8a9-51a6-4274-831c-d11503726458",ID_SEGMENTOS:null,TIPO_IVA:"exento",FECHA_ALTA:null,FECHA_UPD:"2025-06-26T04:00:03.280Z",FECHA_CREADO:"2025-06-02T01:55:32.799Z",ARCHIVOS:[{ID_ARCHIVO:819,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/51f4d42fb93178e3_to%20LED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"1 Controladora LED Novastar Taurus TB40 (Rendimiento Superior) Controladora LED Novastar Taurus TB40, alto rendimiento LED, señalización digital compleja, controlador asíncrono premium, publicida.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-03T23:41:18.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:144,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:null},{ID_ARCHIVO:836,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/48deda3825a497a9_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"2 Controladora LED Novastar Taurus TB40 (Rendimiento Superior) Controladora LED Novastar Taurus TB40, alto rendimiento LED, señalización digital compleja, controlador asíncrono premium, publicida (1).png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-04T00:20:58.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:144,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:null},{ID_ARCHIVO:839,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/eaea5eb4e9899055_ED%2C%20se%C3%B1alizaci%C3%B3n%20digital%20compleja%2C%20controlador%20as%C3%ADncrono%20premium%2C%20publicida%20%281%29.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"3 Controladora LED Novastar Taurus TB40 (Rendimiento Superior) Controladora LED Novastar Taurus TB40, alto rendimiento LED, señalización digital compleja, controlador asíncrono premium, publicida (1).png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-04T00:30:31.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:144,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:null}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null}}]},{ID_PRODUCTO:119,ID_EMPRESA:1,COD_ART_MVX:"00000042",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,nombre:"Panel Modular LED P2.5 Interior Versátil",NOMBRE:"Panel Modular LED P2.5 Interior Versátil",DESCRIPCION:"La Pantalla LED P2.5 Interior Versátil es la solución ideal para proyectos que buscan una excelente calidad de imagen con flexibilidad. Con un pixel pitch de 2.5mm, proporciona imágenes claras y brillantes para auditorios, centros comerciales, salas de conferencias y espacios de eventos. Su construcción en aluminio fundido garantiza ligereza y resistencia, facilitando la instalación y el mantenimiento (frontal y trasero). Con un brillo de 1000 nits y una frecuencia de refresco de 3840Hz, asegura una visualización óptima y fluida ya que evita el parpadeo visible tanto al ojo humano como para las cámaras de video. Es perfecta para publicidad digital, información en puntos de venta o fondos de escenario. Disfruta de un consumo energético eficiente (120W máximo / 60W medio) que reduce los costes operativos. Eleva la comunicación visual en tu negocio con esta pantalla LED de alto rendimiento.",DESCRIPCION_CORTA:"Pantalla LED P2.5 Interior ofrece un equilibrio perfecto entre alta definición y versatilidad para una amplia gama de aplicaciones en interiores.",ID_CAPTACION:null,ID_PROVEEDOR:null,ID_PRODUCTO_REF:null,TIPO:"1",ESTADO:"1",ID_GAMA:23,ID_TIE_DEF:null,TAGS:null,PUBLICO:!0,PACK:!1,CONFIGURABLE:!1,GRUPO:null,PAQUETE:!1,ID_PRODUCTOS_PAQUETE:null,PRECIO:"775.00",PRECIOS:null,ID_ESTADO:"c241a8a9-51a6-4274-831c-d11503726458",ID_SEGMENTOS:null,TIPO_IVA:"exento",FECHA_ALTA:"2025-06-01",FECHA_UPD:"2025-06-26T03:59:52.832Z",FECHA_CREADO:"2025-05-29T16:01:15.064Z",UBICACION:null,R_IMG:[{ID_ARCHIVO:885,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/3b331997a4a4555b_Panel%20Modular%20LED%20Pantalla%20LED%20Interior%20de%20Alta%20Resoluci%C3%B3n.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Panel Modular LED Pantalla LED Interior de Alta Resolución.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:11:00.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:119,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1},{ID_ARCHIVO:886,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/e777804b4bc63fd0_Panel%20Modular%20LED%20Pantalla%20LEDInterior%20de%20Alta%20Resoluci%C3%B3n.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Panel Modular LED Pantalla LEDInterior de Alta Resolución.png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-05T15:11:09.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:119,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:2},{ID_ARCHIVO:903,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/0075bc2e598888e6_T%C3%B3tem%20LED%20P2.0%20Interior%20con%20GOB%20%282%29.png",ID_ARCHIVO_FIRMADO:null,ID_ARCHIVO_FUENTE:null,FIRMABLE:!1,DETALLE_FIRMA:null,FILENAME:"Tótem LED P2.0 Interior con GOB (2).png",FILETYPE:"image",ID_TIPO_DOCUMENTO:28,DESCRIPCION:null,OBSERVACION:null,TAGS:null,TAG_TEMPORAL:null,APROBADA:"-1",ESTADO:1,SUBIDO_POR:null,APROBADO_POR:null,FECHA_SUBIDA:"2025-06-06T23:58:01.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:119,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:3}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null,PROPS:{sku:"LED-P25-IN",alto:"48 ",gama:"pantallas_led_modulares",ancho:"64",pitch:"2_5_mm",brillo:"800_nits",peso_kg:"7 ",subgama:"led",a_medida:!0,material:"aluminio_fundido",ubicacion:"interior",tipo_montaje:"matriz",proteccion_ip:"ip_20_productos_de_interior",tasa_refresco:"3840",tipo_servicio:"back",consumo_maximo:"120W",consumo_medio_w:"60W",usos_habituales:["salas_de_control_estudios_de_tv_salas_de_videoconferencia_auditorios","tiendas_recepciones_hall_salas_de_espera_showrooms_galerias"],consumo_maximo_w:"1",tipo_instalacion:"anclado_a_pared_o_estructura_interior",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_senaletica_informativo_decorativo_corporativo_contenido_comercial"],controladoras_compatibles:["novastar_vx_400","taurus_tb_2"]}},{id:371,nombre:'Pantalla LCD 65" Ultra Brillo 4K',precio:2227.5,tipo_iva:"exento",descripcion:'Eleva tu comunicación visual con la Pantalla LCD 65" 4K de Ultra Brillo. Esta impresionante pantalla, con su resolución 4K y un nivel de brillo excepcional (generalmente superior a 1500-2000 nits), es perfecta para entornos donde la visibilidad y el impacto son cruciales, como grandes escaparates, centros comerciales, aeropuertos o espacios de eventos. Su gran tamaño asegura que tu mensaje sea visible desde lejos, mientras que la claridad 4K garantiza que cada detalle se aprecie. Su diseño está optimizado para la eficiencia y la durabilidad en uso continuo. Una solución premium para proyectos que exigen la máxima calidad y presencia visual. ',descripcion_corta:'Gran formato y brillo extremo: la pantalla LCD 65" 4K de alta brillantez es ideal para espacios que demandan visibilidad impactante',estado:1,props:{sku:"LCD-65-HB",gama:"pantallas_lcd",brillo:"alta_brillantez_4_k_lcd",tamano:"65",peso_kg:">25-40",subgama:"lcd",material:"material_robusto_y_duradero",ubicacion:"escaparate",resolucion:"4_k",tipo_montaje:"mural",proteccion_ip:"ip_20_productos_de_interior",tasa_refresco:"60",tipo_servicio:null,usos_habituales:["escaparates_o_vitrinas_expuestas_al_sol","salas_de_control_estudios_de_tv_salas_de_videoconferencia_auditorios"],tipo_instalacion:"pared_o_soporte_vesa",colores_disponibles:[],propositos_generales:["publicidad_senaletica_informativo_decorativo_corporativo_contenido_comercial"],gran_formato_independiente:"si"},tags:"destacado,oferta",codigo:"T0000057",fecha_creado:"2025-05-30T04:02:19.415Z",id_captacion:null,id_estado:"c241a8a9-51a6-4274-831c-d11503726458",id_gama:23,id_proveedor:null,paquete:0,pack:0,fecha_alta:null,table_estado:{id:"c241a8a9-51a6-4274-831c-d11503726458",name:"No disponible",color:"#9c9c9c",code:"no_disponible",id_gama:23,enabled:1}},{id:167,nombre:"Pantalla LED",precio:2e4,tipo_iva:"general",descripcion:"Pantalla LED de alta calidad diseñada para aplicaciones interiores. Ofrece un brillo excepcional, resolución adaptable y un diseño ligero de aluminio, ideal para publicidad, videowalls y escaparates. Su doble cara y sistema operativo Android garantizan versatilidad y facilidad de uso.",descripcion_corta:"Pantalla LED interior de alta calidad, ligera y versátil.",estado:2,props:{gob:"si",sku:"TOT-LED-P18",alto:null,gama:"totems",ancho:null,marca:"Testing",pitch:"3_076_mm",brillo:"4500_nits",modelo:"Test",tamano:null,peso_kg:"3.5",subgama:"led",a_medida:!0,material:"aluminio",ubicacion:"interior",uso_final:"interior",doble_cara:!0,resolucion:null,subfamilia:"led",interactivo:null,profundidad:null,proteccion_ip:"ip_43_protegido_contra_objetos_de_mas_de_1_mm_y_agua_pulverizada",tipo_servicio:"front",consumo_medio_w:"200",tipo_de_montaje:"matriz",usos_habituales:[],consumo_maximo_w:"300",tipo_de_servicio:"full_front",tipo_instalacion:"montaje_interior_orientado_al_exterior",sistema_operativo:"android",colores_disponibles:["negro","blanco"],tasa_de_refresco_hz:"500",tipo_de_instalacion:"autoportante_de_suelo",propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],aplicacion_recomendada:["escaparates_o_vitrinas_expuestas_al_sol"],controladoras_compatibles:["novastar_vx_600","taurus_tb_30","novastar_vx_1000"]},tags:"destacado",codigo:"00000079",fecha_creado:"2025-06-11T03:04:21.800Z",id_captacion:null,id_estado:"c45eae87-d78c-4f2c-9f81-27eb87b5bc94",id_gama:23,id_proveedor:null,paquete:0,pack:1,fecha_alta:"2025-06-10T04:00:00.000Z",table_estado:{id:"c45eae87-d78c-4f2c-9f81-27eb87b5bc94",name:"Disponible",color:"#10c94b",code:"disponible",id_gama:23,enabled:1},images:[{id:840,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/dbd480ff0130270f_WhatsApp%20Image%202025-05-08%20at%2018.43.22%20%282%29.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:5},{id:841,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/c3416442188506c1_WhatsApp%20Image%202025-05-08%20at%2018.43.22.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:3},{id:842,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/69f7f669f37d3223_WhatsApp%20Image%202025-05-08%20at%2018.43.23.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:4},{id:843,location:"https://w2w-landings.s3.amazonaws.com/linvermedia_test/08ffe62e7e731aa3_WhatsApp%20Image%202025-05-08%20at%2018.43.23%20%281%29.jpeg",id_producto:167,public:1,tag_temporal:null,tipo:"image",estado:1,posicion:2}]},{id:379,nombre:"Controladora LED Novastar Taurus TB2 Avanzada",precio:227.5,tipo_iva:"exento",descripcion:"Esta unidad asíncrona ofrece una mayor capacidad de carga y un rendimiento mejorado respecto a la TB1, haciéndola perfecta para proyectos de señalización digital más ambiciosos. Permite la publicación de contenido de forma remota a través de múltiples opciones de conectividad (Gigabit Ethernet, Wi-Fi, 4G opcional), asegurando una actualización de mensajes fluida y fiable en cualquier momento y lugar. Su diseño robusto y estable garantiza un funcionamiento 24/7, crucial para aplicaciones comerciales, informativas o publicitarias. La TB2 es la solución robusta y eficiente para una gestión inteligente de tu señalización LED.",descripcion_corta:"Taurus TB2 es una controladora LED asíncrona potente, ideal para redes de señalización digital medianas que exigen estabilidad y gestión flexible de contenido.",estado:1,props:{sku:"CTRL-TB2",gama:"controladoras",serie:"novastar_taurus",subgama:"controladoras_asincronas_reproductores_multimedia",ubicacion:"led_modular",proteccion_ip:"ip_20_productos_de_interior",tipo_servicio:null,sistema_operativo:"android",compatibilidad_de_senal:["red_lan_wi_fi_4_g","usb"]},tags:null,codigo:"T0000065",fecha_creado:"2025-06-02T01:09:38.307Z",id_captacion:null,id_estado:"c241a8a9-51a6-4274-831c-d11503726458",id_gama:23,id_proveedor:null,paquete:0,pack:0,fecha_alta:null,table_estado:{id:"c241a8a9-51a6-4274-831c-d11503726458",name:"No disponible",color:"#9c9c9c",code:"no_disponible",id_gama:23,enabled:1}}]),LINVERMEDIA_PRODUCT_DETAIL_MOCK_PROPS={isPublic:!0,data:null,fetching:!1,scale:1,count:0,gamaProps:PROPS},LinvermediaProductDetailPropsSchema=WidgetPropsSchema.extend({view:enumType(["detail","summary"]).optional(),title:stringType().optional(),gamaProps:arrayType(recordType(stringType(),anyType()))});var momentTimezone$1={exports:{}},momentTimezone={exports:{}};//! moment.js
|
|
44
44
|
//! version : 2.30.1
|
|
45
45
|
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
|
|
46
46
|
//! license : MIT
|