@win2win/shared-ui 0.3.20 → 0.3.22
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.
|
@@ -5,7 +5,7 @@ export declare function useFetchPages<T = any>(pagination: MaybeRef<QTablePagina
|
|
|
5
5
|
pending: Ref<false, false> | Ref<true, true>;
|
|
6
6
|
fetching: Ref<boolean, boolean>;
|
|
7
7
|
error: Ref<Error, Error> | Ref<null, null>;
|
|
8
|
-
items: import("vue").ComputedRef<T[]
|
|
8
|
+
items: import("vue").ComputedRef<T[]>;
|
|
9
9
|
refetch: (options?: import("@tanstack/vue-query").RefetchOptions) => Promise<import("@tanstack/vue-query").QueryObserverResult<DataCollectionResponse<T> | null, Error>>;
|
|
10
10
|
invalidate: () => Promise<void>;
|
|
11
11
|
count: import("vue").WritableComputedRef<number, number>;
|
|
@@ -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;;;;;;;;;;;;;EAiHvB"}
|
package/dist/w2w-shared-ui.js
CHANGED
|
@@ -3176,7 +3176,7 @@ const oW = r1({
|
|
|
3176
3176
|
handleHide: A,
|
|
3177
3177
|
hideOnRouteChange: W,
|
|
3178
3178
|
processOnMount: !0
|
|
3179
|
-
}), { showPortal: F, hidePortal: M0, renderPortal: w } = de(s, O,
|
|
3179
|
+
}), { showPortal: F, hidePortal: M0, renderPortal: w } = de(s, O, P0, "menu"), z0 = {
|
|
3180
3180
|
anchorEl: B,
|
|
3181
3181
|
innerRef: O,
|
|
3182
3182
|
onClickOutside(n0) {
|
|
@@ -3255,7 +3255,7 @@ const oW = r1({
|
|
|
3255
3255
|
maxWidth: l.maxWidth
|
|
3256
3256
|
});
|
|
3257
3257
|
}
|
|
3258
|
-
function
|
|
3258
|
+
function P0() {
|
|
3259
3259
|
return g(
|
|
3260
3260
|
xl,
|
|
3261
3261
|
C.value,
|
|
@@ -3477,7 +3477,7 @@ pp.exports;
|
|
|
3477
3477
|
["partial", S],
|
|
3478
3478
|
["partialRight", H],
|
|
3479
3479
|
["rearg", c0]
|
|
3480
|
-
], N0 = "[object Arguments]", G0 = "[object Array]", O0 = "[object AsyncFunction]",
|
|
3480
|
+
], N0 = "[object Arguments]", G0 = "[object Array]", O0 = "[object AsyncFunction]", P0 = "[object Boolean]", n0 = "[object Date]", P1 = "[object DOMException]", u2 = "[object Error]", n2 = "[object Function]", R = "[object GeneratorFunction]", _ = "[object Map]", $ = "[object Number]", W0 = "[object Null]", j0 = "[object Object]", c1 = "[object Promise]", A1 = "[object Proxy]", M1 = "[object RegExp]", B0 = "[object Set]", c2 = "[object String]", ol = "[object Symbol]", Tc = "[object Undefined]", Hb = "[object WeakMap]", Dd = "[object WeakSet]", gl = "[object ArrayBuffer]", ub = "[object DataView]", Vc = "[object Float32Array]", Zl = "[object Float64Array]", Yl = "[object Int8Array]", nb = "[object Int16Array]", rM = "[object Int32Array]", Bb = "[object Uint8Array]", Rc = "[object Uint8ClampedArray]", Ic = "[object Uint16Array]", rc = "[object Uint32Array]", kd = /\b__p \+= '';/g, Cd = /\b(__p \+=) '' \+/g, Jd = /(__e\(.*?\)|\b__t\)) \+\n'';/g, jd = /&(?:amp|lt|gt|quot|#39);/g, Ud = /[&<>"']/g, Fd = RegExp(jd.source), Ot = RegExp(Ud.source), gd = /<%-([\s\S]+?)%>/g, Sc = /<%([\s\S]+?)%>/g, Wb = /<%=([\s\S]+?)%>/g, mb = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, Nt = /^\w*$/, Gt = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, SM = /[\\^$.*+?()[\]{}|]/g, Xt = RegExp(SM.source), wM = /^\s+/, ht = /\s/, Lt = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, Yt = /\{\n\/\* \[wrapped with (.+)\] \*/, yt = /,? & /, Ob = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, Nb = /[()=,{}\[\]\/\s]/, Kl = /\\(\\)?/g, Gb = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, wc = /\w*$/, Tt = /^[-+]0x[0-9a-f]+$/i, Kd = /^0b[01]+$/i, Ed = /^\[object .+?Constructor\]$/, vd = /^0o[0-7]+$/i, fd = /^(?:0|[1-9]\d*)$/, I = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, h0 = /($^)/, V0 = /['\n\r\u2028\u2029\\]/g, $0 = "\\ud800-\\udfff", R1 = "\\u0300-\\u036f", E1 = "\\ufe20-\\ufe2f", I1 = "\\u20d0-\\u20ff", F1 = R1 + E1 + I1, El = "\\u2700-\\u27bf", Qe = "a-z\\xdf-\\xf6\\xf8-\\xff", F3 = "\\xac\\xb1\\xd7\\xf7", g3 = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", K3 = "\\u2000-\\u206f", E3 = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", qe = "A-Z\\xc0-\\xd6\\xd8-\\xde", _e = "\\ufe0e\\ufe0f", $e = F3 + g3 + K3 + E3, Vt = "['’]", v3 = "[" + $0 + "]", lo = "[" + $e + "]", Pd = "[" + F1 + "]", bo = "\\d+", f3 = "[" + El + "]", co = "[" + Qe + "]", Mo = "[^" + $0 + $e + bo + El + Qe + qe + "]", Rt = "\\ud83c[\\udffb-\\udfff]", P3 = "(?:" + Pd + "|" + Rt + ")", zo = "[^" + $0 + "]", It = "(?:\\ud83c[\\udde6-\\uddff]){2}", rt = "[\\ud800-\\udbff][\\udc00-\\udfff]", Ac = "[" + qe + "]", po = "\\u200d", to = "(?:" + co + "|" + Mo + ")", H3 = "(?:" + Ac + "|" + Mo + ")", io = "(?:" + Vt + "(?:d|ll|m|re|s|t|ve))?", ao = "(?:" + Vt + "(?:D|LL|M|RE|S|T|VE))?", eo = P3 + "?", oo = "[" + _e + "]?", B3 = "(?:" + po + "(?:" + [zo, It, rt].join("|") + ")" + oo + eo + ")*", Q3 = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", q3 = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", Zo = oo + eo + B3, _3 = "(?:" + [f3, It, rt].join("|") + ")" + Zo, $3 = "(?:" + [zo + Pd + "?", Pd, It, rt, v3].join("|") + ")", lO = RegExp(Vt, "g"), bO = RegExp(Pd, "g"), St = RegExp(Rt + "(?=" + Rt + ")|" + $3 + Zo, "g"), cO = RegExp([
|
|
3481
3481
|
Ac + "?" + co + "+" + io + "(?=" + [lo, Ac, "$"].join("|") + ")",
|
|
3482
3482
|
H3 + "+" + ao + "(?=" + [lo, Ac + to, "$"].join("|") + ")",
|
|
3483
3483
|
Ac + "?" + to + "+" + io,
|
|
@@ -3518,9 +3518,9 @@ pp.exports;
|
|
|
3518
3518
|
"parseInt",
|
|
3519
3519
|
"setTimeout"
|
|
3520
3520
|
], pO = -1, k1 = {};
|
|
3521
|
-
k1[Vc] = k1[Zl] = k1[Yl] = k1[nb] = k1[rM] = k1[Bb] = k1[Rc] = k1[Ic] = k1[rc] = !0, k1[N0] = k1[G0] = k1[gl] = k1[
|
|
3521
|
+
k1[Vc] = k1[Zl] = k1[Yl] = k1[nb] = k1[rM] = k1[Bb] = k1[Rc] = k1[Ic] = k1[rc] = !0, k1[N0] = k1[G0] = k1[gl] = k1[P0] = k1[ub] = k1[n0] = k1[u2] = k1[n2] = k1[_] = k1[$] = k1[j0] = k1[M1] = k1[B0] = k1[c2] = k1[Hb] = !1;
|
|
3522
3522
|
var x1 = {};
|
|
3523
|
-
x1[N0] = x1[G0] = x1[gl] = x1[ub] = x1[
|
|
3523
|
+
x1[N0] = x1[G0] = x1[gl] = x1[ub] = x1[P0] = x1[n0] = x1[Vc] = x1[Zl] = x1[Yl] = x1[nb] = x1[rM] = x1[_] = x1[$] = x1[j0] = x1[M1] = x1[B0] = x1[c2] = x1[ol] = x1[Bb] = x1[Rc] = x1[Ic] = x1[rc] = !0, x1[u2] = x1[n2] = x1[Hb] = !1;
|
|
3524
3524
|
var tO = {
|
|
3525
3525
|
// Latin-1 Supplement block.
|
|
3526
3526
|
À: "A",
|
|
@@ -5315,7 +5315,7 @@ pp.exports;
|
|
|
5315
5315
|
d = d.buffer, p = p.buffer;
|
|
5316
5316
|
case gl:
|
|
5317
5317
|
return !(d.byteLength != p.byteLength || !L(new cz(d), new cz(p)));
|
|
5318
|
-
case
|
|
5318
|
+
case P0:
|
|
5319
5319
|
case n0:
|
|
5320
5320
|
case $:
|
|
5321
5321
|
return nl(+d, +p);
|
|
@@ -5498,7 +5498,7 @@ pp.exports;
|
|
|
5498
5498
|
switch (p) {
|
|
5499
5499
|
case gl:
|
|
5500
5500
|
return ei(d);
|
|
5501
|
-
case
|
|
5501
|
+
case P0:
|
|
5502
5502
|
case n0:
|
|
5503
5503
|
return new Z(+d);
|
|
5504
5504
|
case ub:
|
|
@@ -6348,7 +6348,7 @@ pp.exports;
|
|
|
6348
6348
|
return H1(d) && r2(d);
|
|
6349
6349
|
}
|
|
6350
6350
|
function AX(d) {
|
|
6351
|
-
return d === !0 || d === !1 || H1(d) && Y2(d) ==
|
|
6351
|
+
return d === !0 || d === !1 || H1(d) && Y2(d) == P0;
|
|
6352
6352
|
}
|
|
6353
6353
|
var Ib = PO || ki, xX = Wo ? j2(Wo) : F5;
|
|
6354
6354
|
function DX(d) {
|
|
@@ -7126,7 +7126,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
7126
7126
|
Qb ? ((Qb.exports = Cc)._ = Cc, wt._ = Cc) : W2._ = Cc;
|
|
7127
7127
|
}).call(C0);
|
|
7128
7128
|
})(pp, pp.exports);
|
|
7129
|
-
var
|
|
7129
|
+
var f0 = pp.exports, l2 = {}, Ze = {}, uM = {};
|
|
7130
7130
|
Object.defineProperty(uM, "__esModule", { value: !0 });
|
|
7131
7131
|
uM.EstadoCaptacion = uM.TipoCaptacion = void 0;
|
|
7132
7132
|
var js;
|
|
@@ -7239,7 +7239,7 @@ tl.toCurrency = iT;
|
|
|
7239
7239
|
tl.mergeObjects = WW;
|
|
7240
7240
|
tl.capitalize = mW;
|
|
7241
7241
|
tl.formatContactName = aT;
|
|
7242
|
-
const ld =
|
|
7242
|
+
const ld = f0, sW = Up;
|
|
7243
7243
|
function Fp(l, b) {
|
|
7244
7244
|
const { context: c = {}, run: M = !1, useInvisibleContext: z = !1 } = b || {};
|
|
7245
7245
|
if (!l || typeof l != "string")
|
|
@@ -8121,9 +8121,9 @@ const na = [l2.ControlType.DYNAMIC_ARRAY, l2.ControlType.OBJECT], sT = {
|
|
|
8121
8121
|
var b;
|
|
8122
8122
|
if (l.controlType === l2.ControlType.LOCATION) {
|
|
8123
8123
|
const { value: c } = l.value;
|
|
8124
|
-
return
|
|
8124
|
+
return f0.values(f0.omit(c, "catastro")).every((M) => !f0.isNil(M) && M !== "") && (c != null && c.catastro ? uT(c == null ? void 0 : c.catastro) : !0);
|
|
8125
8125
|
}
|
|
8126
|
-
return l.controlType === l2.ControlType.DYNAMIC_ARRAY || l.multiple ? (((b = l.value) == null ? void 0 : b.length) || 0) > 0 : !
|
|
8126
|
+
return l.controlType === l2.ControlType.DYNAMIC_ARRAY || l.multiple ? (((b = l.value) == null ? void 0 : b.length) || 0) > 0 : !f0.isNil(l.value) && l.value !== "";
|
|
8127
8127
|
},
|
|
8128
8128
|
message: "Este campo es requerido"
|
|
8129
8129
|
},
|
|
@@ -8216,7 +8216,7 @@ function OT(l, b, c) {
|
|
|
8216
8216
|
}
|
|
8217
8217
|
function vW(l, b, c) {
|
|
8218
8218
|
const M = b.structure;
|
|
8219
|
-
return
|
|
8219
|
+
return f0.chunk(M, c).map(
|
|
8220
8220
|
(t) => ({
|
|
8221
8221
|
...l,
|
|
8222
8222
|
controls: fW(t).map((i) => {
|
|
@@ -8231,7 +8231,7 @@ function vW(l, b, c) {
|
|
|
8231
8231
|
);
|
|
8232
8232
|
}
|
|
8233
8233
|
function NT(l) {
|
|
8234
|
-
return
|
|
8234
|
+
return f0.chain(l).groupBy("group").toPairs().orderBy(([c, M]) => c).map(([c, M]) => {
|
|
8235
8235
|
var i;
|
|
8236
8236
|
const z = ((i = M.find((e) => {
|
|
8237
8237
|
var s;
|
|
@@ -8270,7 +8270,7 @@ function fW(l) {
|
|
|
8270
8270
|
});
|
|
8271
8271
|
}
|
|
8272
8272
|
function XT(l) {
|
|
8273
|
-
if (!
|
|
8273
|
+
if (!f0.isNil(l.defaultValue)) return l.defaultValue;
|
|
8274
8274
|
switch (l.controlType) {
|
|
8275
8275
|
case "input_text":
|
|
8276
8276
|
return "";
|
|
@@ -8315,7 +8315,7 @@ const YM = cY("form", {
|
|
|
8315
8315
|
const { id: c, value: M, code: z } = b, t = this.formSteps[l].controls.find(
|
|
8316
8316
|
(i) => i.id === c
|
|
8317
8317
|
);
|
|
8318
|
-
t && (na.includes(t.controlType) ?
|
|
8318
|
+
t && (na.includes(t.controlType) ? f0.set(t.value, z, M) : t.value = M);
|
|
8319
8319
|
},
|
|
8320
8320
|
setControlVisibility(l, b, c) {
|
|
8321
8321
|
const M = this.formSteps[l].controls.find(
|
|
@@ -8362,7 +8362,7 @@ class au {
|
|
|
8362
8362
|
}));
|
|
8363
8363
|
}
|
|
8364
8364
|
fromRaw(b) {
|
|
8365
|
-
return
|
|
8365
|
+
return f0.orderBy(b, "ORDEN").filter((M) => M.PREGUNTAS.length && M.ESTADO === 1).map((M) => {
|
|
8366
8366
|
const z = M.NOMBRE, t = M.ORDEN, i = M.DESCRIPCION, e = M.CLAVE, s = M.ID_CUESTIONARIO, u = M.PREGUNTAS.filter((o) => o.ESTADO === 1).map(
|
|
8367
8367
|
(o) => this.parseControl(o)
|
|
8368
8368
|
);
|
|
@@ -8517,7 +8517,7 @@ const hT = yd(
|
|
|
8517
8517
|
const b = Nl(l, "modelValue"), c = l, { control: M } = C2(c);
|
|
8518
8518
|
function z(e) {
|
|
8519
8519
|
if (M.value.multiple) {
|
|
8520
|
-
let s =
|
|
8520
|
+
let s = f0.cloneDeep(b.value);
|
|
8521
8521
|
e.exclusive ? s = [e.value] : (s = s.filter(
|
|
8522
8522
|
(u) => {
|
|
8523
8523
|
var o, O;
|
|
@@ -10563,10 +10563,10 @@ const SV = {
|
|
|
10563
10563
|
u = l.noRefocus === !1 && document.activeElement !== null ? document.activeElement : null, S0(l.maximized), J(), e.value = !0, l.noFocus !== !0 ? ((N0 = document.activeElement) == null || N0.blur(), h(e0)) : N(), n(() => {
|
|
10564
10564
|
if (z.proxy.$q.platform.is.ios === !0) {
|
|
10565
10565
|
if (l.seamless !== !0 && document.activeElement) {
|
|
10566
|
-
const { top: G0, bottom: O0 } = document.activeElement.getBoundingClientRect(), { innerHeight:
|
|
10566
|
+
const { top: G0, bottom: O0 } = document.activeElement.getBoundingClientRect(), { innerHeight: P0 } = window, n0 = window.visualViewport !== void 0 ? window.visualViewport.height : P0;
|
|
10567
10567
|
G0 > 0 && O0 > n0 / 2 && (document.scrollingElement.scrollTop = Math.min(
|
|
10568
10568
|
document.scrollingElement.scrollHeight - n0,
|
|
10569
|
-
O0 >=
|
|
10569
|
+
O0 >= P0 ? 1 / 0 : Math.ceil(document.scrollingElement.scrollTop + O0 - n0 / 2)
|
|
10570
10570
|
)), document.activeElement.scrollIntoView();
|
|
10571
10571
|
}
|
|
10572
10572
|
O = !0, t.value.click(), O = !1;
|
|
@@ -10831,24 +10831,24 @@ function kV({
|
|
|
10831
10831
|
);
|
|
10832
10832
|
return;
|
|
10833
10833
|
}
|
|
10834
|
-
let G0 = 0, O0 = x.scrollStart - x.offsetStart,
|
|
10834
|
+
let G0 = 0, O0 = x.scrollStart - x.offsetStart, P0 = O0;
|
|
10835
10835
|
if (O0 <= i0 && O0 + x.scrollViewSize >= n.value)
|
|
10836
|
-
O0 -= n.value, G0 = J.value.from,
|
|
10836
|
+
O0 -= n.value, G0 = J.value.from, P0 = O0;
|
|
10837
10837
|
else
|
|
10838
10838
|
for (let n0 = 0; O0 >= G[n0] && G0 < p0; n0++)
|
|
10839
10839
|
O0 -= G[n0], G0 += ml;
|
|
10840
10840
|
for (; O0 > 0 && G0 < p0; )
|
|
10841
|
-
O0 -= W[G0], O0 > -x.scrollViewSize ? (G0++,
|
|
10841
|
+
O0 -= W[G0], O0 > -x.scrollViewSize ? (G0++, P0 = O0) : P0 = W[G0] + O0;
|
|
10842
10842
|
w(
|
|
10843
10843
|
A,
|
|
10844
10844
|
x,
|
|
10845
10845
|
G0,
|
|
10846
|
-
|
|
10846
|
+
P0
|
|
10847
10847
|
);
|
|
10848
10848
|
}
|
|
10849
10849
|
function w(A, x, p0, i0, N0) {
|
|
10850
|
-
const G0 = typeof N0 == "string" && N0.indexOf("-force") !== -1, O0 = G0 === !0 ? N0.replace("-force", "") : N0,
|
|
10851
|
-
let n0 = Math.max(0, p0 - N.value[
|
|
10850
|
+
const G0 = typeof N0 == "string" && N0.indexOf("-force") !== -1, O0 = G0 === !0 ? N0.replace("-force", "") : N0, P0 = O0 !== void 0 ? O0 : "start";
|
|
10851
|
+
let n0 = Math.max(0, p0 - N.value[P0]), P1 = n0 + N.value.total;
|
|
10852
10852
|
P1 > l.value && (P1 = l.value, n0 = Math.max(0, P1 - N.value.total)), u = x.scrollStart;
|
|
10853
10853
|
const u2 = n0 !== J.value.from || P1 !== J.value.to;
|
|
10854
10854
|
if (u2 === !1 && O0 === void 0) {
|
|
@@ -10890,11 +10890,11 @@ function kV({
|
|
|
10890
10890
|
x.children,
|
|
10891
10891
|
(n0) => n0.classList && n0.classList.contains("q-virtual-scroll--skip") === !1
|
|
10892
10892
|
), i0 = p0.length, N0 = t.virtualScrollHorizontal === !0 ? (n0) => n0.getBoundingClientRect().width : (n0) => n0.offsetHeight;
|
|
10893
|
-
let G0 = A, O0,
|
|
10893
|
+
let G0 = A, O0, P0;
|
|
10894
10894
|
for (let n0 = 0; n0 < i0; ) {
|
|
10895
10895
|
for (O0 = N0(p0[n0]), n0++; n0 < i0 && p0[n0].classList.contains("q-virtual-scroll--with-prev") === !0; )
|
|
10896
10896
|
O0 += N0(p0[n0]), n0++;
|
|
10897
|
-
|
|
10897
|
+
P0 = O0 - W[G0], P0 !== 0 && (W[G0] += P0, G[Math.floor(G0 / ml)] += P0), G0++;
|
|
10898
10898
|
}
|
|
10899
10899
|
}
|
|
10900
10900
|
}
|
|
@@ -10913,8 +10913,8 @@ function kV({
|
|
|
10913
10913
|
G = [];
|
|
10914
10914
|
for (let G0 = 0; G0 <= N0; G0++) {
|
|
10915
10915
|
let O0 = 0;
|
|
10916
|
-
const
|
|
10917
|
-
for (let n0 = G0 * ml; n0 <
|
|
10916
|
+
const P0 = Math.min((G0 + 1) * ml, l.value);
|
|
10917
|
+
for (let n0 = G0 * ml; n0 < P0; n0++)
|
|
10918
10918
|
O0 += W[n0];
|
|
10919
10919
|
G.push(O0);
|
|
10920
10920
|
}
|
|
@@ -11173,7 +11173,7 @@ const pm = r1({
|
|
|
11173
11173
|
return l.hideSelected === !0 || x.value.length === 0 ? [I, l.inputClass] : (I += " q-field__input--padding", l.inputClass === void 0 ? I : [I, l.inputClass]);
|
|
11174
11174
|
}), O0 = Y(
|
|
11175
11175
|
() => (l.virtualScrollHorizontal === !0 ? "q-virtual-scroll--horizontal" : "") + (l.popupContentClass ? " " + l.popupContentClass : "")
|
|
11176
|
-
),
|
|
11176
|
+
), P0 = Y(() => w.value === 0), n0 = Y(
|
|
11177
11177
|
() => x.value.map((I) => c2.value(I)).join(", ")
|
|
11178
11178
|
), P1 = Y(() => l.displayValue !== void 0 ? l.displayValue : n0.value), u2 = Y(() => l.optionsHtml === !0 ? () => !0 : (I) => (I == null ? void 0 : I.html) === !0), n2 = Y(() => l.displayValueHtml === !0 || l.displayValue === void 0 && (l.optionsHtml === !0 || x.value.some(u2.value))), R = Y(() => A.focused.value === !0 ? l.tabindex : -1), _ = Y(() => {
|
|
11179
11179
|
const I = {
|
|
@@ -11461,7 +11461,7 @@ const pm = r1({
|
|
|
11461
11461
|
];
|
|
11462
11462
|
}
|
|
11463
11463
|
function Fd() {
|
|
11464
|
-
if (
|
|
11464
|
+
if (P0.value === !0)
|
|
11465
11465
|
return b["no-option"] !== void 0 ? b["no-option"]({ inputValue: s.value }) : void 0;
|
|
11466
11466
|
const I = b.option !== void 0 ? b.option : (V0) => g(pW, {
|
|
11467
11467
|
key: V0.index,
|
|
@@ -11541,7 +11541,7 @@ const pm = r1({
|
|
|
11541
11541
|
style: l.popupContentStyle,
|
|
11542
11542
|
modelValue: t.value,
|
|
11543
11543
|
fit: l.menuShrink !== !0,
|
|
11544
|
-
cover: l.optionsCover === !0 &&
|
|
11544
|
+
cover: l.optionsCover === !0 && P0.value !== !0 && l.useInput !== !0,
|
|
11545
11545
|
anchor: l.menuAnchor,
|
|
11546
11546
|
self: l.menuSelf,
|
|
11547
11547
|
offset: l.menuOffset,
|
|
@@ -11642,7 +11642,7 @@ const pm = r1({
|
|
|
11642
11642
|
function Nb(I) {
|
|
11643
11643
|
A.editable.value === !0 && (n === !0 ? (A.onControlFocusin(I), i.value = !0, i2(() => {
|
|
11644
11644
|
A.focus();
|
|
11645
|
-
})) : A.focus(), l.onFilter !== void 0 ? mb(s.value) : (
|
|
11645
|
+
})) : A.focus(), l.onFilter !== void 0 ? mb(s.value) : (P0.value !== !0 || b["no-option"] !== void 0) && (t.value = !0));
|
|
11646
11646
|
}
|
|
11647
11647
|
function Kl() {
|
|
11648
11648
|
i.value = !1, Ob();
|
|
@@ -11680,7 +11680,7 @@ const pm = r1({
|
|
|
11680
11680
|
I !== void 0 && Il(I), c("popupHide", I), A.hasPopupOpen = !1, A.onControlFocusout(I);
|
|
11681
11681
|
}
|
|
11682
11682
|
function fd() {
|
|
11683
|
-
n = z.platform.is.mobile !== !0 && l.behavior !== "dialog" ? !1 : l.behavior !== "menu" && (l.useInput === !0 ? b["no-option"] !== void 0 || l.onFilter !== void 0 ||
|
|
11683
|
+
n = z.platform.is.mobile !== !0 && l.behavior !== "dialog" ? !1 : l.behavior !== "menu" && (l.useInput === !0 ? b["no-option"] !== void 0 || l.onFilter !== void 0 || P0.value === !1 : !0), C = z.platform.is.ios === !0 && n === !0 && l.useInput === !0 ? "fade" : l.transitionShow;
|
|
11684
11684
|
}
|
|
11685
11685
|
return wn(fd), HL(Kd), fd(), s2(() => {
|
|
11686
11686
|
O !== null && clearTimeout(O), G !== null && clearTimeout(G);
|
|
@@ -11714,7 +11714,7 @@ const pm = r1({
|
|
|
11714
11714
|
() => l.hideSelected !== !0 && N0.value === !0 || typeof s.value == "number" || s.value.length !== 0 || sd(l.displayValue)
|
|
11715
11715
|
),
|
|
11716
11716
|
getControlChild: () => {
|
|
11717
|
-
if (A.editable.value !== !1 && (i.value === !0 ||
|
|
11717
|
+
if (A.editable.value !== !1 && (i.value === !0 || P0.value !== !0 || b["no-option"] !== void 0))
|
|
11718
11718
|
return n === !0 ? ht() : Nt();
|
|
11719
11719
|
A.hasPopupOpen === !0 && (A.hasPopupOpen = !1);
|
|
11720
11720
|
},
|
|
@@ -11826,7 +11826,7 @@ const pm = r1({
|
|
|
11826
11826
|
function o(O, G) {
|
|
11827
11827
|
if (O === "") {
|
|
11828
11828
|
G(() => {
|
|
11829
|
-
b.value =
|
|
11829
|
+
b.value = f0.cloneDeep(s.value);
|
|
11830
11830
|
});
|
|
11831
11831
|
return;
|
|
11832
11832
|
}
|
|
@@ -11922,7 +11922,7 @@ function im(l, b) {
|
|
|
11922
11922
|
n.push(...J);
|
|
11923
11923
|
} else
|
|
11924
11924
|
C.controls.push(j);
|
|
11925
|
-
}), i.value =
|
|
11925
|
+
}), i.value = f0.orderBy(n, "order").map((N) => ({
|
|
11926
11926
|
...N,
|
|
11927
11927
|
id: N.controls.map((r) => r.id).join("-")
|
|
11928
11928
|
// esto es para que al reconstruir el modelo, no se pierda el renderizado de los controles en los v-for (este id se usa como key)
|
|
@@ -12011,10 +12011,10 @@ const vV = {
|
|
|
12011
12011
|
const b = l, c = YM(), { model: M, onControlValueUpdate: z } = im(b.index), t = Y(() => M.value.length), i = d0(0), e = Y(
|
|
12012
12012
|
() => M.value[i.value]
|
|
12013
12013
|
), s = (o) => {
|
|
12014
|
-
const O =
|
|
12015
|
-
return
|
|
12014
|
+
const O = f0.toPairs(f0.groupBy(o, "row"));
|
|
12015
|
+
return f0.orderBy(O, ([G, W]) => Number(G), "asc").map(
|
|
12016
12016
|
([G, W]) => ({
|
|
12017
|
-
controls:
|
|
12017
|
+
controls: f0.orderBy(W, "col", "asc")
|
|
12018
12018
|
})
|
|
12019
12019
|
);
|
|
12020
12020
|
};
|
|
@@ -12191,8 +12191,8 @@ const vV = {
|
|
|
12191
12191
|
// location: MapLocation
|
|
12192
12192
|
}[s] || Qi;
|
|
12193
12193
|
}
|
|
12194
|
-
const t = (s) =>
|
|
12195
|
-
controls:
|
|
12194
|
+
const t = (s) => f0.orderBy(f0.toPairs(f0.groupBy(s, "row")), "row").map(([u, o]) => ({
|
|
12195
|
+
controls: f0.orderBy(o, "col")
|
|
12196
12196
|
}));
|
|
12197
12197
|
function i(s) {
|
|
12198
12198
|
return [
|
|
@@ -12332,13 +12332,13 @@ const vV = {
|
|
|
12332
12332
|
},
|
|
12333
12333
|
emits: ["onSubmit"],
|
|
12334
12334
|
setup(l, { emit: b }) {
|
|
12335
|
-
const c = l, M = b, z = d0(!1), t = YM(), i = (s) =>
|
|
12335
|
+
const c = l, M = b, z = d0(!1), t = YM(), i = (s) => f0.keys(f0.groupBy(s.controls, "group")).length === 1;
|
|
12336
12336
|
A0(() => c.forms, (s) => {
|
|
12337
12337
|
const o = new au().fromRaw(s);
|
|
12338
12338
|
t.setFormSteps(o);
|
|
12339
12339
|
}, { immediate: !0 });
|
|
12340
12340
|
function e() {
|
|
12341
|
-
const s =
|
|
12341
|
+
const s = f0.cloneDeep(t.formSteps), o = new au().toRaw(s);
|
|
12342
12342
|
M("onSubmit", o);
|
|
12343
12343
|
}
|
|
12344
12344
|
return (s, u) => (T(), K(e1, null, [
|
|
@@ -12493,10 +12493,10 @@ const vV = {
|
|
|
12493
12493
|
}
|
|
12494
12494
|
const G0 = u.value[i0].value[0];
|
|
12495
12495
|
var x = N0.getViewport({ scale: 1 }), p0 = (G0.parentNode.clientWidth - 4) / x.width;
|
|
12496
|
-
const O0 = G0.getContext("2d"),
|
|
12497
|
-
G0.width =
|
|
12496
|
+
const O0 = G0.getContext("2d"), P0 = N0.getViewport({ scale: p0 * i.value });
|
|
12497
|
+
G0.width = P0.width, G0.height = P0.height, N.value[i0] = A += P0.height / i.value + e.value, await N0.render({
|
|
12498
12498
|
canvasContext: O0,
|
|
12499
|
-
viewport:
|
|
12499
|
+
viewport: P0
|
|
12500
12500
|
});
|
|
12501
12501
|
} catch (N0) {
|
|
12502
12502
|
console.error("Error rendering PDF:", N0);
|
|
@@ -12554,8 +12554,8 @@ const vV = {
|
|
|
12554
12554
|
let R0;
|
|
12555
12555
|
const Z0 = (A) => 1 - Math.pow(1 - A, 3), S0 = () => {
|
|
12556
12556
|
const A = r.value.scrollTop, x = performance.now(), p0 = (i0) => {
|
|
12557
|
-
const N0 = i0 - x, G0 = Math.min(N0 / 500, 1), O0 = Z0(G0),
|
|
12558
|
-
r.value.scrollTo(0,
|
|
12557
|
+
const N0 = i0 - x, G0 = Math.min(N0 / 500, 1), O0 = Z0(G0), P0 = A * (1 - O0);
|
|
12558
|
+
r.value.scrollTo(0, P0), G0 < 1 && (R0 = requestAnimationFrame(p0));
|
|
12559
12559
|
};
|
|
12560
12560
|
cancelAnimationFrame(R0), requestAnimationFrame(p0);
|
|
12561
12561
|
};
|
|
@@ -13171,7 +13171,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13171
13171
|
A0(
|
|
13172
13172
|
M,
|
|
13173
13173
|
(O) => {
|
|
13174
|
-
z.value =
|
|
13174
|
+
z.value = f0.cloneDeep(O);
|
|
13175
13175
|
},
|
|
13176
13176
|
{ deep: !0, immediate: !0 }
|
|
13177
13177
|
);
|
|
@@ -13385,7 +13385,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13385
13385
|
marrón: "#8B4513"
|
|
13386
13386
|
}, g9 = (l) => {
|
|
13387
13387
|
if (!l) return null;
|
|
13388
|
-
const b =
|
|
13388
|
+
const b = f0.mapKeys(
|
|
13389
13389
|
l,
|
|
13390
13390
|
(i, e) => e.toLowerCase()
|
|
13391
13391
|
), c = b.id_producto || b.id, M = b.estado || b.tabla_estado, t = (b.r_img || b.images || []).filter(Boolean).map((i) => K9(i)).filter((i) => i.estado > -1).sort((i, e) => i.posicion - e.posicion);
|
|
@@ -13396,7 +13396,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13396
13396
|
images: t
|
|
13397
13397
|
};
|
|
13398
13398
|
}, K9 = (l) => {
|
|
13399
|
-
const b =
|
|
13399
|
+
const b = f0.mapKeys(
|
|
13400
13400
|
l,
|
|
13401
13401
|
(t, i) => i.toLowerCase()
|
|
13402
13402
|
), c = b.id_archivo || b.id, M = b.public || b.publico, z = b.tipo || b.filetype;
|
|
@@ -13414,7 +13414,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13414
13414
|
},
|
|
13415
13415
|
setup(l) {
|
|
13416
13416
|
const b = l, { size: c = "medium" } = C2(b), M = Y(
|
|
13417
|
-
() =>
|
|
13417
|
+
() => f0.mapKeys(b.product || {}, (n, h) => h.toUpperCase())
|
|
13418
13418
|
), z = Y(() => {
|
|
13419
13419
|
var n;
|
|
13420
13420
|
return ((n = M.value) == null ? void 0 : n.DETALLE_PACK) || [];
|
|
@@ -13597,7 +13597,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13597
13597
|
}, t = (W) => {
|
|
13598
13598
|
var N;
|
|
13599
13599
|
const n = c.value[W], h = M.value.find((r) => r.code === W);
|
|
13600
|
-
return (N = h == null ? void 0 : h.options) != null && N.length ?
|
|
13600
|
+
return (N = h == null ? void 0 : h.options) != null && N.length ? f0.isArray(n) ? n.map((r) => z(h.options, r)).join(", ") : z(h.options, n) : n;
|
|
13601
13601
|
}, i = (W) => {
|
|
13602
13602
|
if (typeof W == "string") {
|
|
13603
13603
|
let n = Number(W.replace(/[^0-9.-]/g, "").trim());
|
|
@@ -13704,7 +13704,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13704
13704
|
}
|
|
13705
13705
|
].filter((W) => {
|
|
13706
13706
|
var n, h;
|
|
13707
|
-
return
|
|
13707
|
+
return f0.isNil(W.value) || W.value === "" ? !1 : b != null && b.hiddenProps && ((n = b == null ? void 0 : b.hiddenProps) != null && n.length) ? !((h = b == null ? void 0 : b.hiddenProps) != null && h.includes(W.key)) : !0;
|
|
13708
13708
|
})
|
|
13709
13709
|
), G = Y(() => {
|
|
13710
13710
|
var W;
|
|
@@ -13782,15 +13782,15 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13782
13782
|
n[4] || (n[4] = l1(" Material: ")),
|
|
13783
13783
|
E("span", zI, m0(t("material")), 1)
|
|
13784
13784
|
])) : L0("", !0),
|
|
13785
|
-
(B = Q(c)) != null && B.usos_habituales && Q(
|
|
13785
|
+
(B = Q(c)) != null && B.usos_habituales && Q(f0.isArray)((c0 = Q(c)) == null ? void 0 : c0.usos_habituales) ? (T(), K("div", pI, [
|
|
13786
13786
|
n[5] || (n[5] = l1(" Usos habituales: ")),
|
|
13787
13787
|
E("span", tI, m0(t("usos_habituales")), 1)
|
|
13788
13788
|
])) : L0("", !0),
|
|
13789
|
-
(v = Q(c)) != null && v.propositos_generales && Q(
|
|
13789
|
+
(v = Q(c)) != null && v.propositos_generales && Q(f0.isArray)((F = Q(c)) == null ? void 0 : F.propositos_generales) ? (T(), K("div", iI, [
|
|
13790
13790
|
n[6] || (n[6] = l1(" Propositos generales: ")),
|
|
13791
13791
|
E("span", aI, m0(t("propositos_generales")), 1)
|
|
13792
13792
|
])) : L0("", !0),
|
|
13793
|
-
(M0 = Q(c)) != null && M0.controladoras_compatibles && Q(
|
|
13793
|
+
(M0 = Q(c)) != null && M0.controladoras_compatibles && Q(f0.isArray)((w = Q(c)) == null ? void 0 : w.controladoras_compatibles) ? (T(), K("div", eI, [
|
|
13794
13794
|
n[7] || (n[7] = l1(" Controladoras compatibles: ")),
|
|
13795
13795
|
E("span", oI, m0(t("controladoras_compatibles")), 1)
|
|
13796
13796
|
])) : L0("", !0),
|
|
@@ -13936,7 +13936,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13936
13936
|
return !!((S = (J = u.value) == null ? void 0 : J.PROPS) != null && S.a_medida) && !((H = u.value) != null && H.PACK);
|
|
13937
13937
|
}), O = Y(() => {
|
|
13938
13938
|
var J;
|
|
13939
|
-
return
|
|
13939
|
+
return f0.upperFirst((J = u.value) == null ? void 0 : J.NOMBRE);
|
|
13940
13940
|
}), G = Y(() => {
|
|
13941
13941
|
var J;
|
|
13942
13942
|
return (((J = u.value) == null ? void 0 : J.DESCRIPCION) || "").trim();
|
|
@@ -13950,7 +13950,7 @@ const vR = /* @__PURE__ */ F0({
|
|
|
13950
13950
|
() => {
|
|
13951
13951
|
var J;
|
|
13952
13952
|
return (((J = u.value) == null ? void 0 : J.R_IMG) || []).map(
|
|
13953
|
-
(S) =>
|
|
13953
|
+
(S) => f0.mapKeys(S, (H, B) => f0.snakeCase(B))
|
|
13954
13954
|
);
|
|
13955
13955
|
}
|
|
13956
13956
|
), C = Y(
|
|
@@ -21298,7 +21298,7 @@ function VC(l) {
|
|
|
21298
21298
|
cancelToken: e.token
|
|
21299
21299
|
}).then((s) => {
|
|
21300
21300
|
const u = (s == null ? void 0 : s.data) || null;
|
|
21301
|
-
return
|
|
21301
|
+
return f0.isNil(u) ? null : u;
|
|
21302
21302
|
}).catch(() => null) : Promise.resolve(null);
|
|
21303
21303
|
};
|
|
21304
21304
|
}
|
|
@@ -22005,7 +22005,7 @@ const cl = (l, b = null) => {
|
|
|
22005
22005
|
}
|
|
22006
22006
|
};
|
|
22007
22007
|
function IC(l, b, c, M, z) {
|
|
22008
|
-
const t = `${b}_${
|
|
22008
|
+
const t = `${b}_${f0.uniqueId()}`, i = Ve(), e = async (C) => {
|
|
22009
22009
|
const j = Km();
|
|
22010
22010
|
if (!j)
|
|
22011
22011
|
throw new Error("FetchUniq provider is not available");
|
|
@@ -22036,9 +22036,9 @@ function IC(l, b, c, M, z) {
|
|
|
22036
22036
|
};
|
|
22037
22037
|
}
|
|
22038
22038
|
function rC(l, b, c, M) {
|
|
22039
|
-
const z = { ...Em, ...M }, t = `${c}_${
|
|
22039
|
+
const z = { ...Em, ...M }, t = `${c}_${f0.uniqueId()}`, i = Y(() => {
|
|
22040
22040
|
const S = YS(cl(l, {})), H = cl(b, {});
|
|
22041
|
-
return
|
|
22041
|
+
return f0.cloneDeep({
|
|
22042
22042
|
...H,
|
|
22043
22043
|
...S
|
|
22044
22044
|
});
|
|
@@ -22077,24 +22077,33 @@ function rC(l, b, c, M) {
|
|
|
22077
22077
|
queryKey: [c, i],
|
|
22078
22078
|
queryFn: () => u(c, i),
|
|
22079
22079
|
placeholderData: z.keepPreviousData ? dS : void 0,
|
|
22080
|
-
...
|
|
22080
|
+
...f0.omit(z, "keepPreviousData")
|
|
22081
22081
|
});
|
|
22082
22082
|
A0(
|
|
22083
22083
|
n,
|
|
22084
22084
|
(S) => {
|
|
22085
|
-
G.value &&
|
|
22085
|
+
G.value && f0.isNil(S) || (s.value = (S == null ? void 0 : S.count) || 0);
|
|
22086
22086
|
},
|
|
22087
22087
|
{ immediate: !0 }
|
|
22088
22088
|
);
|
|
22089
22089
|
const C = () => {
|
|
22090
|
-
|
|
22090
|
+
e.value = Math.max(e.value - 1, 1);
|
|
22091
22091
|
}, j = () => {
|
|
22092
|
-
|
|
22092
|
+
e.value = e.value + 1;
|
|
22093
22093
|
}, J = Y(() => {
|
|
22094
22094
|
var S;
|
|
22095
|
-
return ((S = n.value) == null ? void 0 : S.items)
|
|
22095
|
+
return ((S = n.value) == null ? void 0 : S.items) || [];
|
|
22096
22096
|
});
|
|
22097
|
-
return
|
|
22097
|
+
return A0(
|
|
22098
|
+
() => {
|
|
22099
|
+
var S;
|
|
22100
|
+
return (S = n.value) == null ? void 0 : S.items;
|
|
22101
|
+
},
|
|
22102
|
+
(S) => {
|
|
22103
|
+
G.value || f0.isNil(S) && O();
|
|
22104
|
+
},
|
|
22105
|
+
{ immediate: !0 }
|
|
22106
|
+
), {
|
|
22098
22107
|
pending: W,
|
|
22099
22108
|
fetching: G,
|
|
22100
22109
|
error: r,
|
|
@@ -22124,7 +22133,7 @@ function TS(l, b, c, M) {
|
|
|
22124
22133
|
var G;
|
|
22125
22134
|
(G = l.value) == null || G.forEach((W) => {
|
|
22126
22135
|
let n = M != null && M.idKey ? W[M.idKey] : null;
|
|
22127
|
-
n === null && (n =
|
|
22136
|
+
n === null && (n = f0.uniqueId()), W[z] = String(n);
|
|
22128
22137
|
});
|
|
22129
22138
|
};
|
|
22130
22139
|
A0(
|
|
@@ -22164,7 +22173,7 @@ function TS(l, b, c, M) {
|
|
|
22164
22173
|
if (!W) return;
|
|
22165
22174
|
const h = (W == null ? void 0 : W.id) ?? null;
|
|
22166
22175
|
if (h === null) return;
|
|
22167
|
-
const N =
|
|
22176
|
+
const N = f0.cloneDeep(l.value), r = N.findIndex((J) => J[z] == n), C = N.findIndex((J) => J[z] == h);
|
|
22168
22177
|
if (r === -1 || C === -1) return;
|
|
22169
22178
|
const [j] = N.splice(r, 1);
|
|
22170
22179
|
N.splice(C, 0, j), l.value = N, c(N);
|
|
@@ -22485,7 +22494,7 @@ const VS = ["id", "draggable"], RS = ["onClick"], IS = {
|
|
|
22485
22494
|
emits: ["update:quantity", "update:detail"],
|
|
22486
22495
|
setup(l) {
|
|
22487
22496
|
const b = l, c = Nl(l, "quantity"), M = Nl(l, "detail"), z = Y(
|
|
22488
|
-
() =>
|
|
22497
|
+
() => f0.mapKeys(b.product || {}, (h, N) => N.toUpperCase())
|
|
22489
22498
|
), t = Y(() => {
|
|
22490
22499
|
var h;
|
|
22491
22500
|
return ((h = z.value) == null ? void 0 : h.PROPS) || {};
|
|
@@ -22595,9 +22604,9 @@ const VS = ["id", "draggable"], RS = ["onClick"], IS = {
|
|
|
22595
22604
|
}, O = () => {
|
|
22596
22605
|
e.value++;
|
|
22597
22606
|
}, G = () => {
|
|
22598
|
-
const n =
|
|
22607
|
+
const n = f0.omit(b.value, "images", "table_estado");
|
|
22599
22608
|
t("add_to_shopcart", {
|
|
22600
|
-
product:
|
|
22609
|
+
product: f0.mapKeys(
|
|
22601
22610
|
{ ...n, id_producto: n.id },
|
|
22602
22611
|
(h, N) => N.toUpperCase()
|
|
22603
22612
|
),
|
|
@@ -26632,7 +26641,7 @@ const kk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
26632
26641
|
return !b.isMoment(R) && N0(W0) && (j0 = a0($)) && W0.add(j0.parse(W0), "minutes"), W0.tz($), W0;
|
|
26633
26642
|
}
|
|
26634
26643
|
O0.version = c, O0.dataVersion = "", O0._zones = M, O0._links = z, O0._names = i, O0._countries = t, O0.add = e0, O0.link = S0, O0.load = p0, O0.zone = a0, O0.zoneExists = i0, O0.guess = z0, O0.names = R0, O0.Zone = C, O0.unpack = r, O0.unpackBase60 = W, O0.needsOffset = N0, O0.moveInvalidForward = !0, O0.moveAmbiguousForward = !1, O0.countries = Z0, O0.zonesForCountry = x;
|
|
26635
|
-
var
|
|
26644
|
+
var P0 = b.fn;
|
|
26636
26645
|
b.tz = O0, b.defaultZone = null, b.updateOffset = function(R, _) {
|
|
26637
26646
|
var $ = b.defaultZone, W0;
|
|
26638
26647
|
if (R._z === void 0 && ($ && N0(R) && !R._isUTC && R.isValid() && (R._d = b.utc(R._a)._d, R.utc().add($.parse(R), "minutes")), R._z = $), R._z)
|
|
@@ -26641,7 +26650,7 @@ const kk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
26641
26650
|
R.utcOffset(-W0, _), R._z = j0;
|
|
26642
26651
|
} else
|
|
26643
26652
|
R.zone(W0, _);
|
|
26644
|
-
},
|
|
26653
|
+
}, P0.tz = function(R, _) {
|
|
26645
26654
|
if (R) {
|
|
26646
26655
|
if (typeof R != "string")
|
|
26647
26656
|
throw new Error("Time zone name must be a string, got " + R + " [" + typeof R + "]");
|
|
@@ -26665,7 +26674,7 @@ const kk = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
26665
26674
|
return arguments.length > 0 && (this._z = null), R.apply(this, arguments);
|
|
26666
26675
|
};
|
|
26667
26676
|
}
|
|
26668
|
-
|
|
26677
|
+
P0.zoneName = n0(P0.zoneName), P0.zoneAbbr = n0(P0.zoneAbbr), P0.utc = P1(P0.utc), P0.local = P1(P0.local), P0.utcOffset = u2(P0.utcOffset), b.tz.setDefault = function(R) {
|
|
26669
26678
|
return (o < 2 || o === 2 && O < 9) && G0("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js " + b.version + "."), b.defaultZone = R ? a0(R) : null, b;
|
|
26670
26679
|
};
|
|
26671
26680
|
var n2 = b.momentProperties;
|
|
@@ -28204,9 +28213,9 @@ Facilidad de instalación, se fija a la pared con tornillos de forma sencilla. M
|
|
|
28204
28213
|
labelKey: "COD_CAPTACION"
|
|
28205
28214
|
}
|
|
28206
28215
|
}
|
|
28207
|
-
}, dC =
|
|
28216
|
+
}, dC = f0.mapValues(
|
|
28208
28217
|
MC,
|
|
28209
|
-
(l) =>
|
|
28218
|
+
(l) => f0.omit(l, "mock")
|
|
28210
28219
|
), SC = {
|
|
28211
28220
|
install(l, b) {
|
|
28212
28221
|
if (b != null && b.pinia)
|
|
@@ -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,D=0;for(;V!==z;)D+=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(D*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,D){return utils$1.isPlainObject(y)&&utils$1.isPlainObject(G)?utils$1.merge.call({caseless:D},y,G):utils$1.isPlainObject(G)?utils$1.merge({},G):utils$1.isArray(G)?G.slice():G}function z(y,G,V,D){if(utils$1.isUndefined(G)){if(!utils$1.isUndefined(y))return u(void 0,y,V,D)}else return u(y,G,V,D)}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,D=V(o[G],s[G],G);utils$1.isUndefined(D)&&V!==N||(M[G]=D)}),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,D,R,S;function C(){R&&R(),S&&S(),z.cancelToken&&z.cancelToken.unsubscribe(G),z.signal&&z.signal.removeEventListener("abort",G)}let j=new XMLHttpRequest;j.open(z.method.toUpperCase(),z.url,!0),j.timeout=z.timeout;function P(){if(!j)return;const U=AxiosHeaders$1.from("getAllResponseHeaders"in j&&j.getAllResponseHeaders()),g={data:!N||N==="text"||N==="json"?j.responseText:j.response,status:j.status,statusText:j.statusText,headers:U,config:o,request:j};settle(function(q){M(q),C()},function(q){u(q),C()},g),j=null}"onloadend"in j?j.onloadend=P:j.onreadystatechange=function(){!j||j.readyState!==4||j.status===0&&!(j.responseURL&&j.responseURL.indexOf("file:")===0)||setTimeout(P)},j.onabort=function(){j&&(u(new AxiosError$1("Request aborted",AxiosError$1.ECONNABORTED,o,j)),j=null)},j.onerror=function(){u(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,o,j)),j=null},j.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,j)),j=null},Z===void 0&&r.setContentType(null),"setRequestHeader"in j&&utils$1.forEach(r.toJSON(),function(E,g){j.setRequestHeader(g,E)}),utils$1.isUndefined(z.withCredentials)||(j.withCredentials=!!z.withCredentials),N&&N!=="json"&&(j.responseType=z.responseType),y&&([D,S]=progressEventReducer(y,!0),j.addEventListener("progress",D)),X&&j.upload&&([V,R]=progressEventReducer(X),j.upload.addEventListener("progress",V),j.upload.addEventListener("loadend",R)),(z.cancelToken||z.signal)&&(G=U=>{j&&(u(!U||U.type?new CanceledError$1(null,o,j):U),j.abort(),j=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}j.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 D=Z+=V;M(D)}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:D}=resolveConfig(o);y=y?(y+"").toLowerCase():"text";let R=composeSignals([z,Z&&Z.toAbortSignal()],r),S;const C=R&&R.unsubscribe&&(()=>{R.unsubscribe()});let j;try{if(X&&supportsRequestStream&&M!=="get"&&M!=="head"&&(j=await resolveBodyLength(G,u))!==0){let g=new Request(s,{method:"POST",body:u,duplex:"half"}),v;if(utils$1.isFormData(u)&&(v=g.headers.get("content-type"))&&G.setContentType(v),g.body){const[q,o0]=progressEventDecorator(j,progressEventReducer(asyncDecorator(X)));u=trackStream(g.body,DEFAULT_CHUNK_SIZE,q,o0)}}utils$1.isString(V)||(V=V?"include":"omit");const P="credentials"in Request.prototype;S=new Request(s,{...D,signal:R,method:M.toUpperCase(),headers:G.normalize().toJSON(),body:u,duplex:"half",credentials:P?V:void 0});let F=await fetch(S);const U=supportsResponseStream&&(y==="stream"||y==="response");if(supportsResponseStream&&(N||U&&C)){const g={};["status","statusText","headers"].forEach(c0=>{g[c0]=F[c0]});const v=utils$1.toFiniteNumber(F.headers.get("content-length")),[q,o0]=N&&progressEventDecorator(v,progressEventReducer(asyncDecorator(N),!0))||[];F=new Response(trackStream(F.body,DEFAULT_CHUNK_SIZE,q,()=>{o0&&o0(),C&&C()}),g)}y=y||"text";let E=await resolvers[utils$1.findKey(resolvers,y)||"text"](F,o);return!U&&C&&C(),await new Promise((g,v)=>{settle(g,v,{data:E,headers:AxiosHeaders$1.from(F.headers),status:F.status,statusText:F.statusText,config:o,request:S})})}catch(P){throw C&&C(),P&&P.name==="TypeError"&&/Load failed|fetch/i.test(P.message)?Object.assign(new AxiosError$1("Network Error",AxiosError$1.ERR_NETWORK,o,S),{cause:P.cause||P}):AxiosError$1.from(P,P&&P.code,o,S)}}),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"],S=>{delete Z[S]}),M.headers=AxiosHeaders$1.concat(r,Z);const N=[];let X=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(M)===!1||(X=X&&C.synchronous,N.unshift(C.fulfilled,C.rejected))});const y=[];this.interceptors.response.forEach(function(C){y.push(C.fulfilled,C.rejected)});let G,V=0,D;if(!X){const S=[dispatchRequest.bind(this),void 0];for(S.unshift.apply(S,N),S.push.apply(S,y),D=S.length,G=Promise.resolve(M);V<D;)G=G.then(S[V++],S[V++]);return G}D=N.length;let R=M;for(V=0;V<D;){const S=N[V++],C=N[V++];try{R=S(R)}catch(j){C.call(this,j);break}}try{G=dispatchRequest.call(this,R)}catch(S){return Promise.reject(S)}for(V=0,D=y.length;V<D;)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},D=!1,R;if(M._optimisticResults){const B=this.hasListeners(),b0=!B&&shouldFetchOnMount(s,M),a0=B&&shouldFetchOptionally(s,u,M,z);(b0||a0)&&(V={...V,...fetchState(G.data,s.options)}),M._optimisticResults==="isRestoring"&&(V.fetchStatus="idle")}let{error:S,errorUpdatedAt:C,status:j}=V;R=V.data;let P=!1;if(M.placeholderData!==void 0&&R===void 0&&j==="pending"){let B;Z!=null&&Z.isPlaceholderData&&M.placeholderData===(N==null?void 0:N.placeholderData)?(B=Z.data,P=!0):B=typeof M.placeholderData=="function"?M.placeholderData((c0=H0(this,lt))==null?void 0:c0.state.data,H0(this,lt)):M.placeholderData,B!==void 0&&(j="success",R=replaceData(Z==null?void 0:Z.data,B,M),D=!0)}if(M.select&&R!==void 0&&!P)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(B){w1(this,Ge,B)}H0(this,Ge)&&(S=H0(this,Ge),R=H0(this,$e),C=Date.now(),j="error");const F=V.fetchStatus==="fetching",U=j==="pending",E=j==="error",g=U&&F,v=R!==void 0,o0={status:j,fetchStatus:V.fetchStatus,isPending:U,isSuccess:j==="success",isError:E,isInitialLoading:g,isLoading:g,data:R,dataUpdatedAt:V.dataUpdatedAt,error:S,errorUpdatedAt:C,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&&!v,isPaused:V.fetchStatus==="paused",isPlaceholderData:D,isRefetchError:E&&v,isStale:isStale(s,M),refetch:this.refetch,promise:H0(this,Ne)};if(this.options.experimental_prefetchInRender){const B=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());B(O0)},a0=H0(this,Ne);switch(a0.status){case"pending":s.queryHash===u.queryHash&&B(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 C;const R=cloneDeepUnref(s);typeof R.enabled=="function"&&(R.enabled=R.enabled());const S=u.defaultQueryOptions(R);return S._optimisticResults=(C=u.isRestoring)!=null&&C.value?"isRestoring":"optimistic",S}),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(S=>{updateState(r,S)}))},{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,S)=>{let C=()=>{};const j=()=>{if(z.value.enabled!==!1){Z.setOptions(z.value);const P=Z.getOptimisticResult(z.value);P.isStale?(C(),Z.fetchOptimistic(z.value).then(R,F=>{shouldThrowError(z.value.throwOnError,[F,Z.getCurrentQuery()])?S(F):R(Z.getCurrentResult())})):(C(),R(P))}};j(),C=vue.watch(z,j)});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),D=vue.toRefs(V);for(const R in r)typeof r[R]=="function"&&(D[R]=r[R]);return D.suspense=G,D.refetch=y,D}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:D,isPending:R,data:S,refetch:C,error:j}=G(),P=vue.computed(()=>S.value??(z==null?void 0:z.defaultValue));return{pending:R,fetching:D,data:P,refetch:C,invalidate:V,error:j}}function useFetchPages(o,s,M,u){const z={...DEFAULT_FETCH_OPTIONS,...u},Z=`${M}_${lodashExports.uniqueId()}`,r=vue.computed(()=>{const g=formatPagination(getValue(o,{})),v=getValue(s,{});return lodashExports.cloneDeep({...v,...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,v)=>{const q=getFetchUniq();if(!q)throw new Error("FetchUniq provider is not available");return q(getValue(g,""),getValue(v),Z)},G=useQueryClient(),V=async()=>{G.invalidateQueries({queryKey:[getValue(M),r.value],exact:!1,refetchType:"active"})},{isFetching:D,isPending:R,data:S,refetch:C,isPlaceholderData:j,error:P}=useQuery({queryKey:[M,r],queryFn:()=>y(M,r),placeholderData:z.keepPreviousData?keepPreviousData:void 0,...lodashExports.omit(z,"keepPreviousData")});vue.watch(S,g=>{D.value&&lodashExports.isNil(g)||(X.value=(g==null?void 0:g.count)||0)},{immediate:!0});const F=()=>{j.value||(N.value=Math.max(N.value-1,1))},U=()=>{j.value||(N.value=N.value+1)},E=vue.computed(()=>{var g;return((g=S.value)==null?void 0:g.items)??null});return{pending:R,fetching:D,error:P,items:E,refetch:C,invalidate:V,count:X,page:N,prevPage:F,nextPage:U,isPlaceholderData:j,rawData:S}}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 D;(D=o.value)==null||D.forEach(R=>{let S=u!=null&&u.idKey?R[u.idKey]:null;S===null&&(S=lodashExports.uniqueId()),R[z]=String(S)})};vue.watch(()=>{var D;return(D=o.value)==null?void 0:D.length},()=>{Z()},{immediate:!0});function r(){return!0}function N(D){D.dataTransfer.setData("id",D.target.id),D.dataTransfer.dropEffect="move"}function X(D){if(D.preventDefault(),!D.target)return;const R=D.target.closest(s);R&&(R!=null&&R.contains(D.relatedTarget)||R.classList.remove("drag-enter"))}function y(D){if(D.preventDefault(),!D.target)return;const R=D.target.closest(s);R&&R.classList.add("drag-enter")}function G(D){D.preventDefault();const R=D.target.closest(s);if(V(R),!(R!=null&&R.draggable))return;const S=D.dataTransfer.getData("id");if(!R)return;const C=(R==null?void 0:R.id)??null;if(C===null)return;const j=lodashExports.cloneDeep(o.value),P=j.findIndex(E=>E[z]==S),F=j.findIndex(E=>E[z]==C);if(P===-1||F===-1)return;const[U]=j.splice(P,1);j.splice(F,0,U),o.value=j,M(j)}function V(D){const R=D==null?void 0:D.parentElement;if(!R)return;const S=R.children;for(let C=0;C<S.length;C++)S[C].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,addToShopcartLabel:o.addToShopcartLabel,goToCatalogLabel:o.goToCatalogLabel}}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$3={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,D)=>vue.unref(s).length?vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{key:0,class:"images-miniature",onDragleave:D[1]||(D[1]=(...R)=>vue.unref(r)&&vue.unref(r)(...R)),onDragover:D[2]||(D[2]=(...R)=>vue.unref(N)&&vue.unref(N)(...R)),onDrop:D[3]||(D[3]=(...R)=>vue.unref(y)&&vue.unref(y)(...R))},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(s),(R,S)=>(vue.openBlock(),vue.createElementBlock("div",{class:"q-mb-md image-miniature q-px-sm",key:S,id:R[vue.unref(G)],onDragstart:D[0]||(D[0]=(...C)=>vue.unref(X)&&vue.unref(X)(...C)),draggable:vue.unref(u)},[R?(vue.openBlock(),vue.createElementBlock("div",{key:0,onClick:C=>M.value=S+1,style:vue.normalizeStyle({cursor:"pointer",borderWidth:"0.7px",borderStyle:"solid",borderRadius:"0.5rem",borderColor:S===vue.unref(M)-1?"#015979 ":"transparent"}),class:"q-pb-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$3,[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-c16b73ab"]]),_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$2={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,D,R,S;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:C=>z(y.DETALLE)},[(R=(D=y==null?void 0:y.DETALLE)==null?void 0:D.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((S=y==null?void 0:y.DETALLE)==null?void 0:S.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$2,[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,D;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(((D=vue.unref(M))==null?void 0:D.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{product:s}=useContext(),M=vue.computed(()=>{var u;return(u=s.value)==null?void 0:u.descripcion});return(u,z)=>M.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(M.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)=>{let M;switch(typeof o=="string"?M=Number(o.replaceAll(/[^0-9.-]/g,"").trim()):M=o,s){case"m":return M;case"cm":return M/100;case"mm":return M/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)}},toDecimals=(o,s=2)=>Number(o.toFixed(s)),getSquareMeters=o=>{const s=Number((o==null?void 0:o.ancho)||0),M=Number((o==null?void 0:o.alto)||0);return toDecimals(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||{},(C,j)=>j.toUpperCase())),Z=vue.computed(()=>{var C;return((C=z.value)==null?void 0:C.PROPS)||{}}),r=vue.computed(()=>Z.value.unidad_de_medida||"cm"),N=vue.computed(()=>getPanelesFn(Z.value||{}));vue.watch(u,C=>{M.value=N.value(u.value)},{immediate:!0,deep:!0});const X=C=>C.toLocaleString("es-ES",{minimumFractionDigits:2,maximumFractionDigits:2}),y=vue.computed(()=>{var j;return(Number((j=z.value)==null?void 0:j.PRECIO)||0)*M.value}),G=vue.computed(()=>getSquareMeters(u.value)),V=vue.computed(()=>{var C;return convertToMeters(((C=Z.value)==null?void 0:C.ancho)||0,r.value)}),D=vue.computed(()=>{var C;return convertToMeters(((C=Z.value)==null?void 0:C.alto)||0,r.value)}),R=vue.computed(()=>V.value*D.value),S=vue.computed(()=>{var j;const C=((j=z.value)==null?void 0:j.PRECIO)||0;return!C||!R.value?0:toCurrency(C/R.value)});return vue.watch(()=>u.value.ancho,C=>{C%V.value!==0&&(u.value.ancho=toDecimals(Math.ceil(C/V.value)*V.value))}),vue.watch(()=>u.value.alto,C=>{C%D.value!==0&&(u.value.alto=toDecimals(Math.ceil(C/D.value)*D.value))}),(C,j)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[j[6]||(j[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":j[0]||(j[0]=P=>u.value.ancho=P),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":j[1]||(j[1]=P=>u.value.alto=P),modelModifiers:{number:!0},label:"Alto",suffix:"metros",step:D.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),j[2]||(j[2]=vue.createElementVNode("sup",null,"2",-1))]),vue.createElementVNode("div",null,[j[3]||(j[3]=vue.createTextVNode(" Importe m")),j[4]||(j[4]=vue.createElementVNode("sup",null,"2",-1)),vue.createTextVNode(": "+vue.toDisplayString(S.value),1)]),vue.createElementVNode("div",_hoisted_3$3,[vue.createTextVNode("Área total: "+vue.toDisplayString(X(G.value))+" m",1),j[5]||(j[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-dab89e2e"]]),_hoisted_1$4={key:0,class:"q-mt-lg"},_hoisted_2$3={class:"row justify-between"},_hoisted_3$2={key:0,class:"counter q-mr-lg q-mt-md"},_hoisted_4$2={class:"quantity"},_hoisted_5$2={key:1},_hoisted_6$1={class:"q-mt-md"},_sfc_main$4=vue.defineComponent({__name:"ProductShopcartActions",setup(o){const{product:s,productProps:M,addToShopcartLabel:u,goToCatalogLabel:z}=useContext(),{emitEvent:Z}=useWidgetEvent(),r=vue.computed(()=>{var S,C;return!!((S=M.value)!=null&&S.a_medida)&&!((C=s.value)!=null&&C.pack)}),N=vue.ref(r.value?0:1),X=vue.ref({}),y=vue.computed(()=>r.value&&N.value<=0),G=()=>{N.value=Math.max(1,N.value-1)},V=()=>{N.value++},D=()=>{const S=lodashExports.omit(s.value,"images","table_estado");Z("add_to_shopcart",{product:lodashExports.mapKeys({...S,id_producto:S.id},(C,j)=>j.toUpperCase()),quantity:N.value,props:X.value||{}})},R=()=>{Z("go_to_catalog")};return(S,C)=>vue.unref(s)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$4,[r.value?(vue.openBlock(),vue.createBlock(ProductConfiguration,{key:0,product:vue.unref(s),quantity:N.value,"onUpdate:quantity":C[0]||(C[0]=j=>N.value=j),detail:X.value,"onUpdate:detail":C[1]||(C[1]=j=>X.value=j)},null,8,["product","quantity","detail"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$3,[r.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$2)):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$2,[vue.createVNode(IconButton,{outline:"",size:"sm",onClick:G,icon:"remove"}),vue.createElementVNode("span",_hoisted_4$2,vue.toDisplayString(N.value),1),vue.createVNode(IconButton,{outline:"",size:"sm",custom:"",onClick:V,icon:"add"})])),vue.createElementVNode("div",_hoisted_6$1,[vue.createVNode(_sfc_main$R,{onClick:R,disable:y.value,label:vue.unref(z)||"Seguir comprando",class:"q-mr-md"},null,8,["disable","label"]),vue.createVNode(_sfc_main$R,{onClick:D,disable:y.value,main:"",label:vue.unref(u)||"Agregar al carrito"},null,8,["disable","label"])])])])):vue.createCommentVNode("",!0)}}),ProductShopcartActions=_export_sfc(_sfc_main$4,[["__scopeId","data-v-72c2babe"]]),_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:{},addToShopcartLabel:{},goToCatalogLabel:{}},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),D=vue.ref([]),R={product:G,slide:Z,isPublic:N,selectedPackProduct:V,images:D,count:y,gamaProps:X,addToShopcartLabel:z.addToShopcartLabel,goToCatalogLabel:z.goToCatalogLabel};vue.provide("context",R);const S=vue.computed(()=>{var j;return!!((j=G.value)!=null&&j.pack)}),C=()=>{var j;return u("on-event",{code:"edit_product",payload:{id:(j=G.value)==null?void 0:j.id}})};return(j,P)=>{var E,g,v,q,o0,c0,B;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,icon:"edit",sm:"",onClick:C}))]),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$M,{style:{"border-radius":"8px"},items:D.value,modelValue:Z.value,"onUpdate:modelValue":P[0]||(P[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((v=(g=G.value)==null?void 0:g.props)==null?void 0:v.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),S.value?(vue.openBlock(),vue.createBlock(ProductDetallePack,{key:0})):(vue.openBlock(),vue.createBlock(_sfc_main$e,{key:1,"product-props":(B=G.value)==null?void 0:B.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-0a6c5474"]]),LINVERMEDIA_PRODUCT_DETAIL_MOCK_DATA=Object.freeze([{ID_PRODUCTO:121,ID_EMPRESA:1,COD_ART_MVX:"00000044",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,nombre:"Panel Modular LED P1.8 Escaparate de Alto Brillo",DESCRIPCION:"La Pantalla LED P1.8 Escaparate de Alto Brillo (4500 nits) es la herramienta definitiva para transformar tu fachada en un potente canal de comunicación. Con un pixel pitch de 1.8mm, garantiza una claridad y detalle asombrosos, incluso a corta distancia, mientras que sus 4500 nits de brillo aseguran una visibilidad perfecta bajo la luz solar directa. Su diseño está optimizado para la resistencia en exteriores y un impacto visual máximo con su 3840 Hz de refresco de alta gama. Ideal para tiendas minoristas, concesionarios y cualquier negocio que busque atraer clientes desde la calle con promociones dinámicas y branding impactante. Tu escaparate destacará como nunca, invierte en la tecnología LED que convierte miradas en ventas. ",DESCRIPCION_CORTA:"Cautiva a tu audiencia con la pantalla LED P1.8 de escaparate, con un brillo extremo y nitidez para destacar tu negocio bajo cualquier luz.",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:"1800.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:53.673Z",FECHA_CREADO:"2025-05-29T16:16:18.124Z",UBICACION:null,DETALLE_PACK:[],R_IMG:[{ID_ARCHIVO:894,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/e87801c563b48669_Panel%20Modular%20LED%20Pantalla%20LED%20Interior%20de%20Alta%20Resoluci%C3%B3n%20%281%29.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 (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-05T21:07:13.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:121,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null,PROPS:{sku:"LED-P18-ES",alto:"48",gama:"pantallas_led_modulares",ancho:"96",pitch:"1_8_mm",brillo:"4500_nits",peso_kg:"7 - 12 (aprox.) ",subgama:"led",a_medida:!0,material:"aluminio",ubicacion:"escaparate",tipo_montaje:"matriz",proteccion_ip:"ip_20_productos_de_interior",tasa_refresco:"3840",tipo_servicio:"back",consumo_maximo:"200W",consumo_medio_w:"100W",usos_habituales:["salas_de_control_estudios_de_tv_salas_de_videoconferencia_auditorios","tiendas_recepciones_hall_salas_de_espera_showrooms_galerias"],consumo_maximo_w:"200W ",tipo_instalacion:"montaje_interior_orientado_al_exterior",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_senaletica_informativo_decorativo_corporativo_contenido_comercial"],controladoras_compatibles:["novastar_vx_600","taurus_tb_30"]}},{ID_PRODUCTO:123,ID_EMPRESA:1,COD_ART_MVX:"00000046",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,nombre:"Panel Modular LED P2.9 Exterior Trasera de Alto Brillo",DESCRIPCION:"Para instalaciones fijas en exteriores que requieren un acceso de servicio tradicional, la Pantalla LED P2.9 Exterior Trasera de Alto Brillo es la elección perfecta. Con un pixel pitch de 2.9mm y un brillo de 4000 nits, esta pantalla garantiza una visibilidad excepcional y una calidad de imagen sorprendente en grandes formatos publicitarios, estadios o fachadas arquitectónicas. Su construcción en aluminio fundido y su robustez la hacen ideal para soportar condiciones climáticas adversas. El mantenimiento trasero es óptimo para estructuras con espacio posterior, permitiendo una instalación más integrada visualmente. Con consumo máximo de 160W y medio de 80W, combina potencia con eficiencia. La durabilidad y el impacto visual que tu proyecto exterior necesita.",DESCRIPCION_CORTA:"Una solución robusta y de alto rendimiento para instalaciones fijas en exterior, con mantenimiento trasero para una integración discreta.",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:"937.50",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.506Z",FECHA_CREADO:"2025-05-29T16:27:31.729Z",UBICACION:null,DETALLE_PACK:[],R_IMG:[{ID_ARCHIVO:878,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-05T12:47:23.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:123,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null,PROPS:{sku:"LED-P29-BK",alto:"50 cm",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:"back",consumo_maximo:"160W",consumo_medio_w:"80",usos_habituales:["eventos_estadios_mobiliario_urbano"],consumo_maximo_w:"160",tipo_instalacion:"estructura_exterior_soporte_metalico",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],controladoras_compatibles:["novastar_vx_600","taurus_tb_40"]}},{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"],S=>{delete Z[S]}),M.headers=AxiosHeaders$1.concat(r,Z);const N=[];let X=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(M)===!1||(X=X&&C.synchronous,N.unshift(C.fulfilled,C.rejected))});const y=[];this.interceptors.response.forEach(function(C){y.push(C.fulfilled,C.rejected)});let G,V=0,D;if(!X){const S=[dispatchRequest.bind(this),void 0];for(S.unshift.apply(S,N),S.push.apply(S,y),D=S.length,G=Promise.resolve(M);V<D;)G=G.then(S[V++],S[V++]);return G}D=N.length;let R=M;for(V=0;V<D;){const S=N[V++],C=N[V++];try{R=S(R)}catch(j){C.call(this,j);break}}try{G=dispatchRequest.call(this,R)}catch(S){return Promise.reject(S)}for(V=0,D=y.length;V<D;)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},D=!1,R;if(M._optimisticResults){const B=this.hasListeners(),b0=!B&&shouldFetchOnMount(s,M),a0=B&&shouldFetchOptionally(s,u,M,z);(b0||a0)&&(V={...V,...fetchState(G.data,s.options)}),M._optimisticResults==="isRestoring"&&(V.fetchStatus="idle")}let{error:S,errorUpdatedAt:C,status:j}=V;R=V.data;let P=!1;if(M.placeholderData!==void 0&&R===void 0&&j==="pending"){let B;Z!=null&&Z.isPlaceholderData&&M.placeholderData===(N==null?void 0:N.placeholderData)?(B=Z.data,P=!0):B=typeof M.placeholderData=="function"?M.placeholderData((c0=H0(this,lt))==null?void 0:c0.state.data,H0(this,lt)):M.placeholderData,B!==void 0&&(j="success",R=replaceData(Z==null?void 0:Z.data,B,M),D=!0)}if(M.select&&R!==void 0&&!P)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(B){w1(this,Ge,B)}H0(this,Ge)&&(S=H0(this,Ge),R=H0(this,$e),C=Date.now(),j="error");const F=V.fetchStatus==="fetching",U=j==="pending",E=j==="error",g=U&&F,v=R!==void 0,o0={status:j,fetchStatus:V.fetchStatus,isPending:U,isSuccess:j==="success",isError:E,isInitialLoading:g,isLoading:g,data:R,dataUpdatedAt:V.dataUpdatedAt,error:S,errorUpdatedAt:C,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&&!v,isPaused:V.fetchStatus==="paused",isPlaceholderData:D,isRefetchError:E&&v,isStale:isStale(s,M),refetch:this.refetch,promise:H0(this,Ne)};if(this.options.experimental_prefetchInRender){const B=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());B(O0)},a0=H0(this,Ne);switch(a0.status){case"pending":s.queryHash===u.queryHash&&B(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 C;const R=cloneDeepUnref(s);typeof R.enabled=="function"&&(R.enabled=R.enabled());const S=u.defaultQueryOptions(R);return S._optimisticResults=(C=u.isRestoring)!=null&&C.value?"isRestoring":"optimistic",S}),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(S=>{updateState(r,S)}))},{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,S)=>{let C=()=>{};const j=()=>{if(z.value.enabled!==!1){Z.setOptions(z.value);const P=Z.getOptimisticResult(z.value);P.isStale?(C(),Z.fetchOptimistic(z.value).then(R,F=>{shouldThrowError(z.value.throwOnError,[F,Z.getCurrentQuery()])?S(F):R(Z.getCurrentResult())})):(C(),R(P))}};j(),C=vue.watch(z,j)});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),D=vue.toRefs(V);for(const R in r)typeof r[R]=="function"&&(D[R]=r[R]);return D.suspense=G,D.refetch=y,D}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:D,isPending:R,data:S,refetch:C,error:j}=G(),P=vue.computed(()=>S.value??(z==null?void 0:z.defaultValue));return{pending:R,fetching:D,data:P,refetch:C,invalidate:V,error:j}}function useFetchPages(o,s,M,u){const z={...DEFAULT_FETCH_OPTIONS,...u},Z=`${M}_${lodashExports.uniqueId()}`,r=vue.computed(()=>{const g=formatPagination(getValue(o,{})),v=getValue(s,{});return lodashExports.cloneDeep({...v,...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,v)=>{const q=getFetchUniq();if(!q)throw new Error("FetchUniq provider is not available");return q(getValue(g,""),getValue(v),Z)},G=useQueryClient(),V=async()=>{G.invalidateQueries({queryKey:[getValue(M),r.value],exact:!1,refetchType:"active"})},{isFetching:D,isPending:R,data:S,refetch:C,isPlaceholderData:j,error:P}=useQuery({queryKey:[M,r],queryFn:()=>y(M,r),placeholderData:z.keepPreviousData?keepPreviousData:void 0,...lodashExports.omit(z,"keepPreviousData")});vue.watch(S,g=>{D.value&&lodashExports.isNil(g)||(X.value=(g==null?void 0:g.count)||0)},{immediate:!0});const F=()=>{N.value=Math.max(N.value-1,1)},U=()=>{N.value=N.value+1},E=vue.computed(()=>{var g;return((g=S.value)==null?void 0:g.items)||[]});return vue.watch(()=>{var g;return(g=S.value)==null?void 0:g.items},g=>{D.value||lodashExports.isNil(g)&&V()},{immediate:!0}),{pending:R,fetching:D,error:P,items:E,refetch:C,invalidate:V,count:X,page:N,prevPage:F,nextPage:U,isPlaceholderData:j,rawData:S}}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 D;(D=o.value)==null||D.forEach(R=>{let S=u!=null&&u.idKey?R[u.idKey]:null;S===null&&(S=lodashExports.uniqueId()),R[z]=String(S)})};vue.watch(()=>{var D;return(D=o.value)==null?void 0:D.length},()=>{Z()},{immediate:!0});function r(){return!0}function N(D){D.dataTransfer.setData("id",D.target.id),D.dataTransfer.dropEffect="move"}function X(D){if(D.preventDefault(),!D.target)return;const R=D.target.closest(s);R&&(R!=null&&R.contains(D.relatedTarget)||R.classList.remove("drag-enter"))}function y(D){if(D.preventDefault(),!D.target)return;const R=D.target.closest(s);R&&R.classList.add("drag-enter")}function G(D){D.preventDefault();const R=D.target.closest(s);if(V(R),!(R!=null&&R.draggable))return;const S=D.dataTransfer.getData("id");if(!R)return;const C=(R==null?void 0:R.id)??null;if(C===null)return;const j=lodashExports.cloneDeep(o.value),P=j.findIndex(E=>E[z]==S),F=j.findIndex(E=>E[z]==C);if(P===-1||F===-1)return;const[U]=j.splice(P,1);j.splice(F,0,U),o.value=j,M(j)}function V(D){const R=D==null?void 0:D.parentElement;if(!R)return;const S=R.children;for(let C=0;C<S.length;C++)S[C].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,addToShopcartLabel:o.addToShopcartLabel,goToCatalogLabel:o.goToCatalogLabel}}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$3={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,D)=>vue.unref(s).length?vue.withDirectives((vue.openBlock(),vue.createElementBlock("div",{key:0,class:"images-miniature",onDragleave:D[1]||(D[1]=(...R)=>vue.unref(r)&&vue.unref(r)(...R)),onDragover:D[2]||(D[2]=(...R)=>vue.unref(N)&&vue.unref(N)(...R)),onDrop:D[3]||(D[3]=(...R)=>vue.unref(y)&&vue.unref(y)(...R))},[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(vue.unref(s),(R,S)=>(vue.openBlock(),vue.createElementBlock("div",{class:"q-mb-md image-miniature q-px-sm",key:S,id:R[vue.unref(G)],onDragstart:D[0]||(D[0]=(...C)=>vue.unref(X)&&vue.unref(X)(...C)),draggable:vue.unref(u)},[R?(vue.openBlock(),vue.createElementBlock("div",{key:0,onClick:C=>M.value=S+1,style:vue.normalizeStyle({cursor:"pointer",borderWidth:"0.7px",borderStyle:"solid",borderRadius:"0.5rem",borderColor:S===vue.unref(M)-1?"#015979 ":"transparent"}),class:"q-pb-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$3,[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-c16b73ab"]]),_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$2={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,D,R,S;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:C=>z(y.DETALLE)},[(R=(D=y==null?void 0:y.DETALLE)==null?void 0:D.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((S=y==null?void 0:y.DETALLE)==null?void 0:S.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$2,[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,D;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(((D=vue.unref(M))==null?void 0:D.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{product:s}=useContext(),M=vue.computed(()=>{var u;return(u=s.value)==null?void 0:u.descripcion});return(u,z)=>M.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(M.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)=>{let M;switch(typeof o=="string"?M=Number(o.replaceAll(/[^0-9.-]/g,"").trim()):M=o,s){case"m":return M;case"cm":return M/100;case"mm":return M/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)}},toDecimals=(o,s=2)=>Number(o.toFixed(s)),getSquareMeters=o=>{const s=Number((o==null?void 0:o.ancho)||0),M=Number((o==null?void 0:o.alto)||0);return toDecimals(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||{},(C,j)=>j.toUpperCase())),Z=vue.computed(()=>{var C;return((C=z.value)==null?void 0:C.PROPS)||{}}),r=vue.computed(()=>Z.value.unidad_de_medida||"cm"),N=vue.computed(()=>getPanelesFn(Z.value||{}));vue.watch(u,C=>{M.value=N.value(u.value)},{immediate:!0,deep:!0});const X=C=>C.toLocaleString("es-ES",{minimumFractionDigits:2,maximumFractionDigits:2}),y=vue.computed(()=>{var j;return(Number((j=z.value)==null?void 0:j.PRECIO)||0)*M.value}),G=vue.computed(()=>getSquareMeters(u.value)),V=vue.computed(()=>{var C;return convertToMeters(((C=Z.value)==null?void 0:C.ancho)||0,r.value)}),D=vue.computed(()=>{var C;return convertToMeters(((C=Z.value)==null?void 0:C.alto)||0,r.value)}),R=vue.computed(()=>V.value*D.value),S=vue.computed(()=>{var j;const C=((j=z.value)==null?void 0:j.PRECIO)||0;return!C||!R.value?0:toCurrency(C/R.value)});return vue.watch(()=>u.value.ancho,C=>{C%V.value!==0&&(u.value.ancho=toDecimals(Math.ceil(C/V.value)*V.value))}),vue.watch(()=>u.value.alto,C=>{C%D.value!==0&&(u.value.alto=toDecimals(Math.ceil(C/D.value)*D.value))}),(C,j)=>(vue.openBlock(),vue.createElementBlock(vue.Fragment,null,[j[6]||(j[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":j[0]||(j[0]=P=>u.value.ancho=P),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":j[1]||(j[1]=P=>u.value.alto=P),modelModifiers:{number:!0},label:"Alto",suffix:"metros",step:D.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),j[2]||(j[2]=vue.createElementVNode("sup",null,"2",-1))]),vue.createElementVNode("div",null,[j[3]||(j[3]=vue.createTextVNode(" Importe m")),j[4]||(j[4]=vue.createElementVNode("sup",null,"2",-1)),vue.createTextVNode(": "+vue.toDisplayString(S.value),1)]),vue.createElementVNode("div",_hoisted_3$3,[vue.createTextVNode("Área total: "+vue.toDisplayString(X(G.value))+" m",1),j[5]||(j[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-dab89e2e"]]),_hoisted_1$4={key:0,class:"q-mt-lg"},_hoisted_2$3={class:"row justify-between"},_hoisted_3$2={key:0,class:"counter q-mr-lg q-mt-md"},_hoisted_4$2={class:"quantity"},_hoisted_5$2={key:1},_hoisted_6$1={class:"q-mt-md"},_sfc_main$4=vue.defineComponent({__name:"ProductShopcartActions",setup(o){const{product:s,productProps:M,addToShopcartLabel:u,goToCatalogLabel:z}=useContext(),{emitEvent:Z}=useWidgetEvent(),r=vue.computed(()=>{var S,C;return!!((S=M.value)!=null&&S.a_medida)&&!((C=s.value)!=null&&C.pack)}),N=vue.ref(r.value?0:1),X=vue.ref({}),y=vue.computed(()=>r.value&&N.value<=0),G=()=>{N.value=Math.max(1,N.value-1)},V=()=>{N.value++},D=()=>{const S=lodashExports.omit(s.value,"images","table_estado");Z("add_to_shopcart",{product:lodashExports.mapKeys({...S,id_producto:S.id},(C,j)=>j.toUpperCase()),quantity:N.value,props:X.value||{}})},R=()=>{Z("go_to_catalog")};return(S,C)=>vue.unref(s)?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$4,[r.value?(vue.openBlock(),vue.createBlock(ProductConfiguration,{key:0,product:vue.unref(s),quantity:N.value,"onUpdate:quantity":C[0]||(C[0]=j=>N.value=j),detail:X.value,"onUpdate:detail":C[1]||(C[1]=j=>X.value=j)},null,8,["product","quantity","detail"])):vue.createCommentVNode("",!0),vue.createElementVNode("div",_hoisted_2$3,[r.value?(vue.openBlock(),vue.createElementBlock("div",_hoisted_5$2)):(vue.openBlock(),vue.createElementBlock("div",_hoisted_3$2,[vue.createVNode(IconButton,{outline:"",size:"sm",onClick:G,icon:"remove"}),vue.createElementVNode("span",_hoisted_4$2,vue.toDisplayString(N.value),1),vue.createVNode(IconButton,{outline:"",size:"sm",custom:"",onClick:V,icon:"add"})])),vue.createElementVNode("div",_hoisted_6$1,[vue.createVNode(_sfc_main$R,{onClick:R,disable:y.value,label:vue.unref(z)||"Seguir comprando",class:"q-mr-md"},null,8,["disable","label"]),vue.createVNode(_sfc_main$R,{onClick:D,disable:y.value,main:"",label:vue.unref(u)||"Agregar al carrito"},null,8,["disable","label"])])])])):vue.createCommentVNode("",!0)}}),ProductShopcartActions=_export_sfc(_sfc_main$4,[["__scopeId","data-v-72c2babe"]]),_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:{},addToShopcartLabel:{},goToCatalogLabel:{}},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),D=vue.ref([]),R={product:G,slide:Z,isPublic:N,selectedPackProduct:V,images:D,count:y,gamaProps:X,addToShopcartLabel:z.addToShopcartLabel,goToCatalogLabel:z.goToCatalogLabel};vue.provide("context",R);const S=vue.computed(()=>{var j;return!!((j=G.value)!=null&&j.pack)}),C=()=>{var j;return u("on-event",{code:"edit_product",payload:{id:(j=G.value)==null?void 0:j.id}})};return(j,P)=>{var E,g,v,q,o0,c0,B;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,icon:"edit",sm:"",onClick:C}))]),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$M,{style:{"border-radius":"8px"},items:D.value,modelValue:Z.value,"onUpdate:modelValue":P[0]||(P[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((v=(g=G.value)==null?void 0:g.props)==null?void 0:v.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),S.value?(vue.openBlock(),vue.createBlock(ProductDetallePack,{key:0})):(vue.openBlock(),vue.createBlock(_sfc_main$e,{key:1,"product-props":(B=G.value)==null?void 0:B.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-0a6c5474"]]),LINVERMEDIA_PRODUCT_DETAIL_MOCK_DATA=Object.freeze([{ID_PRODUCTO:121,ID_EMPRESA:1,COD_ART_MVX:"00000044",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,nombre:"Panel Modular LED P1.8 Escaparate de Alto Brillo",DESCRIPCION:"La Pantalla LED P1.8 Escaparate de Alto Brillo (4500 nits) es la herramienta definitiva para transformar tu fachada en un potente canal de comunicación. Con un pixel pitch de 1.8mm, garantiza una claridad y detalle asombrosos, incluso a corta distancia, mientras que sus 4500 nits de brillo aseguran una visibilidad perfecta bajo la luz solar directa. Su diseño está optimizado para la resistencia en exteriores y un impacto visual máximo con su 3840 Hz de refresco de alta gama. Ideal para tiendas minoristas, concesionarios y cualquier negocio que busque atraer clientes desde la calle con promociones dinámicas y branding impactante. Tu escaparate destacará como nunca, invierte en la tecnología LED que convierte miradas en ventas. ",DESCRIPCION_CORTA:"Cautiva a tu audiencia con la pantalla LED P1.8 de escaparate, con un brillo extremo y nitidez para destacar tu negocio bajo cualquier luz.",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:"1800.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:53.673Z",FECHA_CREADO:"2025-05-29T16:16:18.124Z",UBICACION:null,DETALLE_PACK:[],R_IMG:[{ID_ARCHIVO:894,LOCATION:"https://w2w-files.s3.amazonaws.com/linvermedia/e87801c563b48669_Panel%20Modular%20LED%20Pantalla%20LED%20Interior%20de%20Alta%20Resoluci%C3%B3n%20%281%29.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 (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-05T21:07:13.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:121,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null,PROPS:{sku:"LED-P18-ES",alto:"48",gama:"pantallas_led_modulares",ancho:"96",pitch:"1_8_mm",brillo:"4500_nits",peso_kg:"7 - 12 (aprox.) ",subgama:"led",a_medida:!0,material:"aluminio",ubicacion:"escaparate",tipo_montaje:"matriz",proteccion_ip:"ip_20_productos_de_interior",tasa_refresco:"3840",tipo_servicio:"back",consumo_maximo:"200W",consumo_medio_w:"100W",usos_habituales:["salas_de_control_estudios_de_tv_salas_de_videoconferencia_auditorios","tiendas_recepciones_hall_salas_de_espera_showrooms_galerias"],consumo_maximo_w:"200W ",tipo_instalacion:"montaje_interior_orientado_al_exterior",unidad_de_medida:"cm",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_senaletica_informativo_decorativo_corporativo_contenido_comercial"],controladoras_compatibles:["novastar_vx_600","taurus_tb_30"]}},{ID_PRODUCTO:123,ID_EMPRESA:1,COD_ART_MVX:"00000046",CAPTACION_COUNT:0,CODIGO_EXTERNO:null,nombre:"Panel Modular LED P2.9 Exterior Trasera de Alto Brillo",DESCRIPCION:"Para instalaciones fijas en exteriores que requieren un acceso de servicio tradicional, la Pantalla LED P2.9 Exterior Trasera de Alto Brillo es la elección perfecta. Con un pixel pitch de 2.9mm y un brillo de 4000 nits, esta pantalla garantiza una visibilidad excepcional y una calidad de imagen sorprendente en grandes formatos publicitarios, estadios o fachadas arquitectónicas. Su construcción en aluminio fundido y su robustez la hacen ideal para soportar condiciones climáticas adversas. El mantenimiento trasero es óptimo para estructuras con espacio posterior, permitiendo una instalación más integrada visualmente. Con consumo máximo de 160W y medio de 80W, combina potencia con eficiencia. La durabilidad y el impacto visual que tu proyecto exterior necesita.",DESCRIPCION_CORTA:"Una solución robusta y de alto rendimiento para instalaciones fijas en exterior, con mantenimiento trasero para una integración discreta.",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:"937.50",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.506Z",FECHA_CREADO:"2025-05-29T16:27:31.729Z",UBICACION:null,DETALLE_PACK:[],R_IMG:[{ID_ARCHIVO:878,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-05T12:47:23.000Z",FECHA_APROBADO:null,ID_CONTACTO:null,ID_PRODUCTO:123,ID_PRODUCTO_PEDIDO:null,ID_INGRESO:null,ID_DEUDA:null,ID_GARANTIA:null,ID_CAPTACION:null,PUBLICO:!0,PRINCIPAL:!1,POSICION:1}],UNDBASICA:null,FACTORAGR:null,CONTROLLOTE:null,TIPO_CLIENTE:null,PROPS:{sku:"LED-P29-BK",alto:"50 cm",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:"back",consumo_maximo:"160W",consumo_medio_w:"80",usos_habituales:["eventos_estadios_mobiliario_urbano"],consumo_maximo_w:"160",tipo_instalacion:"estructura_exterior_soporte_metalico",colores_disponibles:[],compatible_videowall:!0,propositos_generales:["publicidad_exterior_fachadas_contenido_comercial_videowall_exterior"],controladoras_compatibles:["novastar_vx_600","taurus_tb_40"]}},{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
|