@rsltda/components 1.0.16 → 1.0.17
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.
- package/README.md +71 -2
- package/custom-elements.json +121 -0
- package/dist/components/rs-whatsapp.d.ts +49 -0
- package/dist/index.d.ts +5 -1
- package/dist/rs-components.es.js +1160 -524
- package/dist/rs-components.es.js.map +1 -1
- package/dist/rs-components.iife.js +298 -4
- package/dist/rs-components.iife.js.map +1 -1
- package/package.json +5 -3
package/dist/rs-components.es.js
CHANGED
|
@@ -1,51 +1,53 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
function
|
|
5
|
-
customElements.get(
|
|
1
|
+
var W = Object.defineProperty;
|
|
2
|
+
var J = (p, C, t) => C in p ? W(p, C, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[C] = t;
|
|
3
|
+
var c = (p, C, t) => J(p, typeof C != "symbol" ? C + "" : C, t);
|
|
4
|
+
function F(p, C) {
|
|
5
|
+
customElements.get(p) || customElements.define(p, C);
|
|
6
6
|
}
|
|
7
|
-
const q = "data:image/png;base64,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", O = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABXFJREFUeNrUW0tsE0cY/u0aBC3YRtCSQBCO6COkUkuqAlEuJCggwQEw5EClKsR9obZAidQeWoRIyoGqqtQEEIgL4SWBxCuckJIUzAUoqIp7SVukCkuJUah4ODYvJelj/vHs4KSJ45mdmV3/0mjt9fze+b/5/sfM7nrAkFz1vx4kh0WkVZMWYJ+z5Qo7RkmLVaVuJU2My6PZ6BA5rCNt0xgGTyQIxFHS2nWC4dFo+C7SGhT8HRrfTlqjDiA8GmiOhm/XgCsa30pAaHIlAMR4pPh50kKa3TZGWpgAEVfxZ15FxiPVLxswHlgs6WaAO88AZnwbmBd0iRrChJhjADhovDIQPDZ9vhucFwShQjYmeCWNDzKfd4MEWfA1GgTb2IXdIovIpPxoxAXIhaplZ39q+TyY/+VWmFwyJ2+d/sPH4K9THfl2LxV1BZ+EHbtkjH9l40pYcGifsF6ovEwEAGRmjTYGyM7+pNkBqPjlJ3hh+nT6faDzEtw7cx6GBtJ56T+8eE3kckIsEGXAFzKzP2vtCm58/94DcHtnq854gAyNKGcAi/wPZUZUfuYgBFYsh7/TabhR8i49V3b4e5ixYe2Eutk6+aZFwoAZOhhQLWM80h+NR0l1XOLB0DL+6W9/wD+p1MjU5PfD1IVvjNARSYvoqgSEqGoAlsnS35K7pzPpuui99c9XNpVr/qfzautODsCDji6Zy1az/QSlAEgtPgKVS+hxqO8OD2Yz16/j9H6r4wT9PJxKQ0/dp5kprF3OfxfIANnytg4XkALAvzJjTLLrOZW9gUxAxMD40tLF9HP8qx2Z/lVvwiRWJ0jQn2dPHQBIVX5jBbBcQW3OR5v4Z0n6C02WDzQKBrtsf5+w/8IyHjDRZSTpLyQ+3Rco2vaZsA76/q2PtxhZRGgF4GlPL/y5eSsUfVCft84TkhYTh45QXRMiUgj9CwUkpA7wqGZAcrxAOJav9+0/Qo8lWxroEctfjPAzV9XyPsMDKeg/fo734SvAk+dg+H4qp651PsdYlbtAbLxqsPTbb2Ba5WJ4dP0m+PyZFOcjRrzWsoenOTQq1PQ1TCGru2c9v3O6L9izg6bKbN37F7vostmqFpNXb0Dxh/U0QD7++SY9N0iC5ARjVQ5APFep27f7Oyje/jnN7RjE5m5uoMZjqYtV3azVtbTYsYy3gEFAHpy9QIsfK//jTKPxlm6wagkMJu5w41Enj8lSviP061gnp71TTo+zI/XUODQe5eWG90fU+fi7NcPZNT8ChsYPJhJcFzOHpYvnsHJ8kZXG3H1SaeGx2g2C426CFn9SB1PmzeV+bUnvD238d+4aAT89PutNwL0LnXStMFoX+2AMGbo7wP8b+2f3w9iBv9vdExDdELkNZm5+2BG8s1yhwwVQ2gsgAx4V6ezV+ecOSbs2ANgdmJibjRfdFZa5L9DqYgCExyZ1a8ylwTBOZr9UVEn2zpAbY0Gz1sXQKAYEWU0QKuTZl2YAe1an2UWzH5FVtPt8QDdI7hUqlCiZkBpZZbuPyDS6YPZtjcEWAOzmg5PVYYvdR2S8imYg6YDxSuKQbQBY5eVEQIyoeHBS5XOCl0Hy/qHpwKfaBUwHxKSdtKcNABaMTLhCs6qnRJW6gKHaQBn1dbiAbldQSn1tALDaoMXt1NfJAGtlFldMfR2g6gGA5eeIQuqHdUVUXQxQ6QqRgntlRmFWwD2+sM7xeUG/RGxQP6J7cNoBYAWSTGoMm3h1zgQDgEXwqGDKi5oYmxEArBnNc9kcVf1mmCsAYHQO5+H3YYOTYpQBVmrMtWCqMfXKrCMAMBCaxokHjXa3twoCgKx4EB+V71ucGIgjAIyKB3ET+d6Vgu8dqnoDVFb+E2AAEkYQxr2UiokAAAAASUVORK5CYII=", Y = "data:image/png;base64,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", H = "data:image/png;base64,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", W = "data:image/png;base64,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", J = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABG5JREFUeNrkW01ME0EUfm0UDxgoqOGgCa1EPWBiBZSDBwsoZxuNeNNe0JuSmBi8ABeBk3BS8EC44V9s4s2D1sQLEW09ikFqwsXESDV4QRN8L51Kf2bbnd2Z2dn4kkmbne523jff996b2d0AaLKtAQjhRxRbDFsj+15sr9lnClsm8BByOsYVUOx0GD/OYbvMcbiWERDz2JIqwQgodHwE2xUJlyPnk9iGVAARUEBzcvyGAlzJ+WkEYdRIANB5ovgzbGHFss1giyMQWRkXC0pynqj+SoPzwGJJmgHuPQOY83Og30gSPciEjGcAeOi8NBACLjWfBu+NQDjuNCYEHTofYpo3wUIs+GoNgnPsj02xKE7KXS0SwD+KGTT75RYRlYITBoyAuTanlAGGz74jFogy4DqYbyNKGMAi/7rIxb/8wBN+S4x0e+2lRWRAk91r7hD4/5jogDteAnzflON8F7r0tt9eWiSpIggp2QCcFhnwz18Aw4f5fSvYd3+18vi1CEBbPf+cMy1CeMXYfoJUACwXH7exEH1XtlI/uw/gZnteBoNF9WInCqmprvIazXjs3sn896cYwmbLwliknkngD8ClxUppPT4B0LAN3jEVEohazfT4x8rjk0fzjpDzBRkMHAC4g8f3PK/8/cX9285fWKzsv3UoD6aVrBpKmWN7VSqSBbiV3ywn4bTtBni0lnekMNjhIwALp9DBNb4DVw9aO18rpvS32GerGwZwbXy58tj6ZikrnnQDnA9XB2xlo7rzfW+s+0hunmyI0IzxZsQq8pNcXnzl91Vzvma2CXkEwMSyvd9RHCD9TnyyyAob7ljY2+IBAJlvAEucsogCHY8RROGZVXv5XqSP5ONGyCIAlCS6mc/8YLTQzR8ozXKtoohiRZcFnalGmGy3rf+cCgAyxVrmFTKD4fxskCPNdWIzUQiUSzl+H9UI7zl9naHqY5WZBf7F74ZdAOk+61q9tREH22t/HdC0M38O2YMO6z4CuLwijGoE4EPxWbUWJjToVskLHip2ovWCY5UogRT4x1LSAWBbz1kfOJ9RuSGS9AEA8yrrgHkfAJBUBgCTQcZk53XsCk8bDIDw2BzdGtsagFXQcydYxLI4+xFdawETY8GYk5OcMoDqr7RBLHA0+44ZwJ7VGTNo9hNOT3T7fACxIOqx8ymckB5PNkTQhgyYfVdjcAUAu/ngZXU45fYRmaAk/eU8cF5KHHINgIcBMSHjwUmZzwnSbfOYHwKfbAnoDog5N2lPGQAsGOmQwpisp0SlSkBTbSCN+iokoFoKUqmvDABWG0yZTn1lElC0WJJOfZUSKNQGCYnUj6uKqEFVF5YohYTvXpmRmBVojy+ucnxBUG8JF9RPqB6ccgBYgeQkNcZ1vDqngwEEAsWClGDKS2kZm66lG0uNtJtc64EWZSnPMwYUpca4Dd3HQaMFdf4Zo3W1BVOPrldmPQGAgTBqEQ+G3G5v+QKAQoSH0lvtSRYo4b8AoCweZHXkeyON3juU9QaoU/srwAB77Uga7jO8tAAAAABJRU5ErkJggg==", V = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABJZJREFUeNrsW79PE1Ec/9ZWfoWDm4yLeOwidZaEDg4mLDiqgx1hsk7oRJmECV10BBZ0McUB49aSYOJgUrAOJg4t8Ae0iAFKgPN966Fce+/uvbt77+6on+RLmvbufd/3+76/7wBoc8Qk8VEJpQiNEkoapDZdUyO0YdAaoYLxXaSBQucI6S4pZ6wRScGLHgRvpnxUFKF6PHEWi1DDGgOSxgY1R/MY6QG1/xIkb/5hv/FVh9ruKRTW91n4VAjdM2JFaJAmVKWdnNqf0DOTffrGepeu18CW8Bq8Fu+xsYSqwTM0wlMFX3ytOApNI7zXQRGBKyFJO/n0A0WvbsddC39GuAauZWMJySADXtlqY15O3c4abJSgBqGAnCzhGZSQCyLPSxWeQQlS64S8lc+LFv6MKDGhLKsOSBkK+BcM+hNQLumg9p1AZacDtrYTtgtcHzgG7dqRa+3Xfsbh1kgCKtv15p+wPliR7vvnTX9+VnGs6DC1lUsdIlwhJyPym5hqA50taQu/c1ICqQY9uwKFD1dGSLgwf3MV9LCD/P1niugG+dU4cYMe24UeP9Uhxpm8ss8UmJ7aM/HOPm9xg3FCi6IsYL5Z4yzlrRWhCzhUeY5ug7wtrp0XaQHJ5uA3fOOQevH7D72wUYrZBsM0Nkaq7sx4SCeB85fpO+SNe6jtHlP36De4/JhyQiYaH+v1FAdwDxbrMiPOqYCsydnGuuHunTr14qtXjiEWU0ibS095338cEQtQoF5PwNbO5RbaJSkP16Fhs9QNn7+07GFGlAuYUwKD6WLQmp6i/772qQdSY3v0oDOr2LoZyx7scCnodnL09n5DSCsQ94DMxJ5Q/glZgmJAfPHqlPLrCZCcbqTUc6lych/CBk/FzPBQt21AXFnulR4EeV2gYBrObZ9w3byyfNJIW9TR0uQhLL1RGv0EKyz2UBCpgIqZeZ1rs9gAVbeOgZxcC5HavpHPM08PiJLYFIu8LRqiikgFrLWc6mqnL7716P4eZCb7iCK6GuU0k0VZ814TGQM0p2bISxnMO1OgNEOa6EBY9GMS1Nw2o0J4hqiUdrgoIxNk/LCC5gjOmwEop5+RoQDNKoWRVtW1K+CDEJ77kBcllWogCXm/8jjvZAh5AP0BqrRSeImWxze/dfGZE8dsENdGHjx7EokqbXDhxhJYTt5mgFJ2K0TcgwK6rUZkh/VTePvuqNEGp0aOfNH0zJwCE09+Ndam4CVvBShkQGqVHQqr7oefeC/DgDWwR2OIBZZ5HjZBmPdZAh5egzneqXE6R1kvAnh9QULj9T8iGAwOxP++HHEGfEmiTBqbzdIB1zMSQoMQ8MtUCyDulRihpy+0MJJAvvh+3AcF1AxXSklW/Byhj2GZFKlg846QACoHGfmZmySBlIaQoixB+DyEGCkJCkhCyCHyTdF5iAA0QQGxGsbAR0O2nQIf8+zwogY+GpI+mr4GEYUfrpCBiKPYbqbvlytE2vT9cIUMXDAU28303RZIkSp4eJFmUMA4XHAsRL3W92N4YhUPitBGaP5fowuV8tzEg8D8PhGgAhYJDRufV+A/gsFvAQYAGFubR/xBobMAAAAASUVORK5CYII=", j = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9xJREFUeNrsWz124jAQHjY5gEtK7wkwJ1hKSvYGvkGcE4Qtt+JxAucGpkxn6NKZdOnMDUyZzqvhmd2gSLJk/dmw33vzSBxjSaOZb37kANw4Ro7GCYjMiPwgEjUSUPcciewb2RHZNtcGDVx0RqTuKFnzjEEuvNBYOC35UBQRaO64jEUEfeWAqJlg2GoesxkEQQBRFJ1+3+/3cDweYbvdyoxzIPKz4YreICZS8XaOLLZOkqQuiqJuA96D9+J3BJZQNWP2ZvHchadpWncFfrdFEd6VEPF2Po7juqqqWhf4DHyWwBIin4RXsiams+siaxAoIfChgMzV4iWUkPmI804XL6EEp3lCzvJ5V+BwQukqD5g1CvhHBiSml2V5+jwcDicRIQzDk3QF5gzT6ZQ1DuYHG+e+/9n0V6tVa0aHoY0ozIYrZC6Y/2JQspNfwhZea1MCyQa1XYEzjlJEuO9g/pdZUHyZi6Ab5Hne6gaPj48wGql54HK5hKenp4ux8RqFBZFnWxawojUuk96ygC7QkuW1ug2Ozbh3ZdMCInq3zwUNC5vNBt7e3oRkeC6M2jCZTL4QJ46N30VS5M3RNJT8mLNDF7JYLLR4AOfAeK407hQVcOFwZPIwn8+5N4/H45Ofi8rc9/f30y5+fHz8DaGfBXcXn8MDWtjr6yt9+ZcTCyAEpM3khDCFFoJhVQScg44FfPPeOyMcQBbJ/BtaWJIkVse/d7VQJMT1ei0kRDqkPjw89K7np5XMENYWmnuWZc5JUKsIorNA3dh/7iCppMmMbDC3qYCUnrRuTk/n9qgE2U4Sjs1QZGqTBHcs3zbSWCT+j4RHFCGVGAnG3tm0gLCtGNJxBdWeAqcYCm0TYWGiE0SXzSqmLyiHCxeRIDFhBTSDq0YAzu4nLhQQshi8S1Z4dgU8CFEBJ/tzYv7cnmDXOK4aRXAM4B+g+j0Nwt3s2h+QAT5bkEc4PyWqeEroYgkyOy9YfAkesBSltSYqRQmfP8vS19GYcGLI1Fju6pTKEg1Wb0djzNSYJVgEYdyXITy8B2N8W+FkavdHBkKikv9hHw9LX7qXiC9JYAcIP1XOSIh8B88vU6Vg75WYXvq+VGLkQIz4/p0BBRwbV5o5VvxvIi996RQFIHhHyIKUPplfukiyKDH0FKWDxefQY8wcKCCCnsPmm6IrGABCS4RY9ZH4OhVK10Z80r3DayU+btpv0PRDGChMuEICA0dxa6ZvyhUGbfomXCGBK0Nxa6bfNUEaVMKjilhCAQu4cqRDz/VNNE9YfFDADYH+X6OrCnld+MCb3997VMAzkUnz8wb+ww/+CDAA4q4zpysTtacAAAAASUVORK5CYII=", K = /* @__PURE__ */ Object.assign({
|
|
8
|
-
"../json/PuntosMapas_gasgas_0.json": () => import("./PuntosMapas_gasgas_0-CjccjpQ8.js").then((
|
|
9
|
-
"../json/PuntosMapas_gasgas_1.json": () => import("./PuntosMapas_gasgas_1-inakGBZ_.js").then((
|
|
10
|
-
"../json/PuntosMapas_hqv_0.json": () => import("./PuntosMapas_hqv_0-OSIxCcrz.js").then((
|
|
11
|
-
"../json/PuntosMapas_hqv_1.json": () => import("./PuntosMapas_hqv_1-Cr9cIOs3.js").then((
|
|
12
|
-
"../json/PuntosMapas_ktm_0.json": () => import("./PuntosMapas_ktm_0-ChWkcgec.js").then((
|
|
13
|
-
"../json/PuntosMapas_ktm_1.json": () => import("./PuntosMapas_ktm_1-DCq6GRnp.js").then((
|
|
14
|
-
"../json/PuntosMapas_voge_0.json": () => import("./PuntosMapas_voge_0-DL0EWJWf.js").then((
|
|
15
|
-
"../json/PuntosMapas_voge_1.json": () => import("./PuntosMapas_voge_1-Clawdtrj.js").then((
|
|
16
|
-
}),
|
|
17
|
-
"../pin/gasgas.png":
|
|
18
|
-
"../pin/gasgas_distribuidor.png":
|
|
19
|
-
"../pin/hqv.png":
|
|
20
|
-
"../pin/hqv_distribuidor.png":
|
|
21
|
-
"../pin/ktm.png":
|
|
22
|
-
"../pin/ktm_distribuidor.png":
|
|
23
|
-
"../pin/
|
|
24
|
-
"../pin/
|
|
25
|
-
|
|
7
|
+
const V = "data:image/png;base64,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", j = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABXFJREFUeNrUW0tsE0cY/u0aBC3YRtCSQBCO6COkUkuqAlEuJCggwQEw5EClKsR9obZAidQeWoRIyoGqqtQEEIgL4SWBxCuckJIUzAUoqIp7SVukCkuJUah4ODYvJelj/vHs4KSJ45mdmV3/0mjt9fze+b/5/sfM7nrAkFz1vx4kh0WkVZMWYJ+z5Qo7RkmLVaVuJU2My6PZ6BA5rCNt0xgGTyQIxFHS2nWC4dFo+C7SGhT8HRrfTlqjDiA8GmiOhm/XgCsa30pAaHIlAMR4pPh50kKa3TZGWpgAEVfxZ15FxiPVLxswHlgs6WaAO88AZnwbmBd0iRrChJhjADhovDIQPDZ9vhucFwShQjYmeCWNDzKfd4MEWfA1GgTb2IXdIovIpPxoxAXIhaplZ39q+TyY/+VWmFwyJ2+d/sPH4K9THfl2LxV1BZ+EHbtkjH9l40pYcGifsF6ovEwEAGRmjTYGyM7+pNkBqPjlJ3hh+nT6faDzEtw7cx6GBtJ56T+8eE3kckIsEGXAFzKzP2vtCm58/94DcHtnq854gAyNKGcAi/wPZUZUfuYgBFYsh7/TabhR8i49V3b4e5ixYe2Eutk6+aZFwoAZOhhQLWM80h+NR0l1XOLB0DL+6W9/wD+p1MjU5PfD1IVvjNARSYvoqgSEqGoAlsnS35K7pzPpuui99c9XNpVr/qfzautODsCDji6Zy1az/QSlAEgtPgKVS+hxqO8OD2Yz16/j9H6r4wT9PJxKQ0/dp5kprF3OfxfIANnytg4XkALAvzJjTLLrOZW9gUxAxMD40tLF9HP8qx2Z/lVvwiRWJ0jQn2dPHQBIVX5jBbBcQW3OR5v4Z0n6C02WDzQKBrtsf5+w/8IyHjDRZSTpLyQ+3Rco2vaZsA76/q2PtxhZRGgF4GlPL/y5eSsUfVCft84TkhYTh45QXRMiUgj9CwUkpA7wqGZAcrxAOJav9+0/Qo8lWxroEctfjPAzV9XyPsMDKeg/fo734SvAk+dg+H4qp651PsdYlbtAbLxqsPTbb2Ba5WJ4dP0m+PyZFOcjRrzWsoenOTQq1PQ1TCGru2c9v3O6L9izg6bKbN37F7vostmqFpNXb0Dxh/U0QD7++SY9N0iC5ARjVQ5APFep27f7Oyje/jnN7RjE5m5uoMZjqYtV3azVtbTYsYy3gEFAHpy9QIsfK//jTKPxlm6wagkMJu5w41Enj8lSviP061gnp71TTo+zI/XUODQe5eWG90fU+fi7NcPZNT8ChsYPJhJcFzOHpYvnsHJ8kZXG3H1SaeGx2g2C426CFn9SB1PmzeV+bUnvD238d+4aAT89PutNwL0LnXStMFoX+2AMGbo7wP8b+2f3w9iBv9vdExDdELkNZm5+2BG8s1yhwwVQ2gsgAx4V6ezV+ecOSbs2ANgdmJibjRfdFZa5L9DqYgCExyZ1a8ylwTBOZr9UVEn2zpAbY0Gz1sXQKAYEWU0QKuTZl2YAe1an2UWzH5FVtPt8QDdI7hUqlCiZkBpZZbuPyDS6YPZtjcEWAOzmg5PVYYvdR2S8imYg6YDxSuKQbQBY5eVEQIyoeHBS5XOCl0Hy/qHpwKfaBUwHxKSdtKcNABaMTLhCs6qnRJW6gKHaQBn1dbiAbldQSn1tALDaoMXt1NfJAGtlFldMfR2g6gGA5eeIQuqHdUVUXQxQ6QqRgntlRmFWwD2+sM7xeUG/RGxQP6J7cNoBYAWSTGoMm3h1zgQDgEXwqGDKi5oYmxEArBnNc9kcVf1mmCsAYHQO5+H3YYOTYpQBVmrMtWCqMfXKrCMAMBCaxokHjXa3twoCgKx4EB+V71ucGIgjAIyKB3ET+d6Vgu8dqnoDVFb+E2AAEkYQxr2UiokAAAAASUVORK5CYII=", K = "data:image/png;base64,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", X = "data:image/png;base64,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", $ = "data:image/png;base64,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", tt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABG5JREFUeNrkW01ME0EUfm0UDxgoqOGgCa1EPWBiBZSDBwsoZxuNeNNe0JuSmBi8ABeBk3BS8EC44V9s4s2D1sQLEW09ikFqwsXESDV4QRN8L51Kf2bbnd2Z2dn4kkmbne523jff996b2d0AaLKtAQjhRxRbDFsj+15sr9lnClsm8BByOsYVUOx0GD/OYbvMcbiWERDz2JIqwQgodHwE2xUJlyPnk9iGVAARUEBzcvyGAlzJ+WkEYdRIANB5ovgzbGHFss1giyMQWRkXC0pynqj+SoPzwGJJmgHuPQOY83Og30gSPciEjGcAeOi8NBACLjWfBu+NQDjuNCYEHTofYpo3wUIs+GoNgnPsj02xKE7KXS0SwD+KGTT75RYRlYITBoyAuTanlAGGz74jFogy4DqYbyNKGMAi/7rIxb/8wBN+S4x0e+2lRWRAk91r7hD4/5jogDteAnzflON8F7r0tt9eWiSpIggp2QCcFhnwz18Aw4f5fSvYd3+18vi1CEBbPf+cMy1CeMXYfoJUACwXH7exEH1XtlI/uw/gZnteBoNF9WInCqmprvIazXjs3sn896cYwmbLwliknkngD8ClxUppPT4B0LAN3jEVEohazfT4x8rjk0fzjpDzBRkMHAC4g8f3PK/8/cX9285fWKzsv3UoD6aVrBpKmWN7VSqSBbiV3ywn4bTtBni0lnekMNjhIwALp9DBNb4DVw9aO18rpvS32GerGwZwbXy58tj6ZikrnnQDnA9XB2xlo7rzfW+s+0hunmyI0IzxZsQq8pNcXnzl91Vzvma2CXkEwMSyvd9RHCD9TnyyyAob7ljY2+IBAJlvAEucsogCHY8RROGZVXv5XqSP5ONGyCIAlCS6mc/8YLTQzR8ozXKtoohiRZcFnalGmGy3rf+cCgAyxVrmFTKD4fxskCPNdWIzUQiUSzl+H9UI7zl9naHqY5WZBf7F74ZdAOk+61q9tREH22t/HdC0M38O2YMO6z4CuLwijGoE4EPxWbUWJjToVskLHip2ovWCY5UogRT4x1LSAWBbz1kfOJ9RuSGS9AEA8yrrgHkfAJBUBgCTQcZk53XsCk8bDIDw2BzdGtsagFXQcydYxLI4+xFdawETY8GYk5OcMoDqr7RBLHA0+44ZwJ7VGTNo9hNOT3T7fACxIOqx8ymckB5PNkTQhgyYfVdjcAUAu/ngZXU45fYRmaAk/eU8cF5KHHINgIcBMSHjwUmZzwnSbfOYHwKfbAnoDog5N2lPGQAsGOmQwpisp0SlSkBTbSCN+iokoFoKUqmvDABWG0yZTn1lElC0WJJOfZUSKNQGCYnUj6uKqEFVF5YohYTvXpmRmBVojy+ucnxBUG8JF9RPqB6ccgBYgeQkNcZ1vDqngwEEAsWClGDKS2kZm66lG0uNtJtc64EWZSnPMwYUpca4Dd3HQaMFdf4Zo3W1BVOPrldmPQGAgTBqEQ+G3G5v+QKAQoSH0lvtSRYo4b8AoCweZHXkeyON3juU9QaoU/srwAB77Uga7jO8tAAAAABJRU5ErkJggg==", et = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hJREFUeNrkWv91sjAUTXv6v+0EuoFsIJ2gdgM2KE4gTsBxAusE6ATRCdAJaCdAJ+DLTX2U9tNWKCSB3HPeIUgE7s19+QHcMHW4F+GIcEX0TuUitqftRsROxIF1AAMRvohYRFYyuAjvJFwriS8qkD4X6elcrRACNxnWRPycEIHJ5JHTSUPkixGfHGYUvFMLZYoiPdOJaiWfaQgjRNBF3ggRHM3kiyIMdPT2qSECUMeoFJFB5ClCVeRdA8lTKEkFbrAA3ObWV+KCqAUCLMoQuqnQ85cbLu4/1jCHw8fq1nEc9vb2JrfngGMI13VlnMNms5FxAbjQQxOtP67SIlEUZYvFQpYFoQzAfhzH2SWMx+PsJwRB8Nt13SYEKLXKA0kiikA5SRJJLk3TzPO8//4ThmFOEMB+xTQItPb+IEtAq4s0kKQBYX0ZJMJgMJB1EHALOYDqX3LIL/cQNSFAei15EAE5AATpdzgA5LFPIvi+/4Us5zw/FwlDQalRrKNyZngVedgdhBAgXHQEEaU+gVoa5KhPOJcaFHDSlQJkygUAKSJebE2y9Xfgd+Q6iEMoOAVbcsUfO8GsiWHw4knFzTMhwOfj3e2W9Xq9fKjDsPb+/p4f7/f78j/AbreTQ+V6vZb1ptMp2+/3X+rgfLSP+vP5XNatg9tdHdagcXs2m7HRaJSP+SCGMsitVqvP3pTz/NhyuWQiFSQ57GP7/Pws64AsiQABUT4ej0y4hj081DPU39WZIyBPQpAIaLmnpye5j2Ovr6+yBeEO1Ad5YDgcSlFo4gRMJhN5vDhpgrN+mAQ1KsDhp0fTuKnHx0cm8lOSQGuBIAAHFGdvLy8vOSlKATgEZRCk3+ECAIKhDpwGAa+8V6tWgZVXhbdlUr1FL2Z2TQiwb5EAjdyr06IUaOyZQNIC8qWmwbclBVi1wP5LG94FaH0wGhtMPlJhMc9gAVxVeWZiZ5hUIXJrYkdTETOVF7s3zAWJDsU9G3PfxBGB68w7E16Vaf9KROfrstCE3lfXxxIpM+jbQV+DAGPTxmFuS8ene6Gk5aOoaxEoEMA3fT0e22Z9VXMDo63/HaGN1m9yscRZC+GyDk54dKTCmLUcfxkVItYBODZav461gss6hjJrhYB1ENcumznrMFyb8r7KgslhloC3fapb91Q5YhaC5geJDXl/CZ7uvP8nwAAeipVa4iJE4AAAAABJRU5ErkJggg==", nt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABIlJREFUeNrkWs11ozAQlnf3bm8H7iD4treQCuKtIKSCcM0p5LgnXiqwOyCpAPu2NzsV4A5wKmD1sR4iE4k/I4HN9948jBlAM5o/jRgxc5hwsjjZnMaH3yLWh+OK05bTnl0AppxcThtOSU0KOTkHxZ2l4IsGQssoPjzrLBSBQfotCS5ThNf2gEctPgs+HRxmX81kWWw6naZHEdvtlu12u/RYAjD85rTr08w7hxmSzt58Pk8Wi0USx3FSBvCA17btMmuw+iS8dKCO4yRRFCVNgXuhvD4rQSo8N/EkDMOkLeBZeGbflGCpZr2KqdcFnqlwi7gs7uiK9rFMeN3AOyRK2JhWQNCF8CVK8E0Jb+dfDtM0CbgDT6MyJRhxhVB86WQyOSnSN8Vms1GVz2Zn3/f9pCt4nmfcCoJ8uusScAVYYE4BC12lMEX+DLxiYzwgFd603/9f1fKBZiUvSmFVyYtroNVqxdbrtZTn+vqa8biT/n5+fmbcEo5eyemnjtmf582tSr5HJUcZAgUNZQxFEEspCILChRFMX6wWJTy2DgX4+fq+LFWRoCD8hstAOJgt6v08XNfNBMQR51UgUaanPfoXBT8xT2PWRV9F9AaREjCD4AFR3U9KKrKQkmAY6FDAUeWnqvUhPK3+wEcpkiwAwlMag5BQpCisWFOQYojINfJ1h8RltFSGpf5PJg+BQJQlyCJIUIoJNNMQjsxY5hpi1JcpgGJLjvQqQCY8CS7Opmo5i/9huhAcioKl4EhWUTUIEpoqYFRTAZ8nyecpOjn39/ef1RJPUUh/lOootYn8IOoQgff29jblQVrDfyIPnkfnuPbw8HD0vFSQ0aiRbD9a6YAe8jbyMY7j8TirAZD/IRyf8Yz/5uYmu3Z3d8fe3t5S4XCOI3eNlIcUQe8gntlsxrg7fKk1mqCxAjCY/CxAeNDT01NW+IAPAuIchQ0Exgy+v7+nvLgG4Pzj4+NIGO4K7PX1Nb0mCktFkNhPNKGAvdiazisAg+LBKDVhDBLXISAAC8B1GvjLy0s26Kurq8wFyB3INWAFABSG/6E8WeUpsYC99jpAFoi6AhVQTVaF3+pYfVtm1zbI0nKt89bhNlkL6IZiLeDosIAval4ul53PPuJJlbG2hegM+gG1yuDvDTY9f4nRFwVIPi2ZwuPjo8z//3D6a2wvoGc9QSON0S97/ajnTQZEvEuxUxSYsDxHtSNkCgXdJGO+GHWhBMx8wWZpZDL+eKqlKpbAOtwBcaaoj1gn97e1NxipBoPAmG9bnQI0SYpaZKZnv/S7ANEaTtkmx70lH0oY9/3SjCAjmC66PFXSJdIbeBVRvvXtsFO/EbLrDgB9ASx16UgLK+ogNWhuzHQtfhpvlRskn/UA0o8lDFDMevTtoNuBAuasZwgNCh+yHsIyaPpT1lN4BhTgsp5jMzTTl9UGgzP9PPwhmn7lxdKlmr4uV+hVwdOFK8zZmeOUrBCwC4A1RNNvY61gswtDnbWCxy4QVZfNIbtg2EPy+yYLJosNBOG5l7ptl8oBGyCoPoiG4PcqOF37/T8BBgCThigH5VpvfwAAAABJRU5ErkJggg==", ot = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABJZJREFUeNrsW79PE1Ec/9ZWfoWDm4yLeOwidZaEDg4mLDiqgx1hsk7oRJmECV10BBZ0McUB49aSYOJgUrAOJg4t8Ae0iAFKgPN966Fce+/uvbt77+6on+RLmvbufd/3+76/7wBoc8Qk8VEJpQiNEkoapDZdUyO0YdAaoYLxXaSBQucI6S4pZ6wRScGLHgRvpnxUFKF6PHEWi1DDGgOSxgY1R/MY6QG1/xIkb/5hv/FVh9ruKRTW91n4VAjdM2JFaJAmVKWdnNqf0DOTffrGepeu18CW8Bq8Fu+xsYSqwTM0wlMFX3ytOApNI7zXQRGBKyFJO/n0A0WvbsddC39GuAauZWMJySADXtlqY15O3c4abJSgBqGAnCzhGZSQCyLPSxWeQQlS64S8lc+LFv6MKDGhLKsOSBkK+BcM+hNQLumg9p1AZacDtrYTtgtcHzgG7dqRa+3Xfsbh1kgCKtv15p+wPliR7vvnTX9+VnGs6DC1lUsdIlwhJyPym5hqA50taQu/c1ICqQY9uwKFD1dGSLgwf3MV9LCD/P1niugG+dU4cYMe24UeP9Uhxpm8ss8UmJ7aM/HOPm9xg3FCi6IsYL5Z4yzlrRWhCzhUeY5ug7wtrp0XaQHJ5uA3fOOQevH7D72wUYrZBsM0Nkaq7sx4SCeB85fpO+SNe6jtHlP36De4/JhyQiYaH+v1FAdwDxbrMiPOqYCsydnGuuHunTr14qtXjiEWU0ibS095338cEQtQoF5PwNbO5RbaJSkP16Fhs9QNn7+07GFGlAuYUwKD6WLQmp6i/772qQdSY3v0oDOr2LoZyx7scCnodnL09n5DSCsQ94DMxJ5Q/glZgmJAfPHqlPLrCZCcbqTUc6lych/CBk/FzPBQt21AXFnulR4EeV2gYBrObZ9w3byyfNJIW9TR0uQhLL1RGv0EKyz2UBCpgIqZeZ1rs9gAVbeOgZxcC5HavpHPM08PiJLYFIu8LRqiikgFrLWc6mqnL7716P4eZCb7iCK6GuU0k0VZ814TGQM0p2bISxnMO1OgNEOa6EBY9GMS1Nw2o0J4hqiUdrgoIxNk/LCC5gjOmwEop5+RoQDNKoWRVtW1K+CDEJ77kBcllWogCXm/8jjvZAh5AP0BqrRSeImWxze/dfGZE8dsENdGHjx7EokqbXDhxhJYTt5mgFJ2K0TcgwK6rUZkh/VTePvuqNEGp0aOfNH0zJwCE09+Ndam4CVvBShkQGqVHQqr7oefeC/DgDWwR2OIBZZ5HjZBmPdZAh5egzneqXE6R1kvAnh9QULj9T8iGAwOxP++HHEGfEmiTBqbzdIB1zMSQoMQ8MtUCyDulRihpy+0MJJAvvh+3AcF1AxXSklW/Byhj2GZFKlg846QACoHGfmZmySBlIaQoixB+DyEGCkJCkhCyCHyTdF5iAA0QQGxGsbAR0O2nQIf8+zwogY+GpI+mr4GEYUfrpCBiKPYbqbvlytE2vT9cIUMXDAU28303RZIkSp4eJFmUMA4XHAsRL3W92N4YhUPitBGaP5fowuV8tzEg8D8PhGgAhYJDRufV+A/gsFvAQYAGFubR/xBobMAAAAASUVORK5CYII=", at = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9xJREFUeNrsWz124jAQHjY5gEtK7wkwJ1hKSvYGvkGcE4Qtt+JxAucGpkxn6NKZdOnMDUyZzqvhmd2gSLJk/dmw33vzSBxjSaOZb37kANw4Ro7GCYjMiPwgEjUSUPcciewb2RHZNtcGDVx0RqTuKFnzjEEuvNBYOC35UBQRaO64jEUEfeWAqJlg2GoesxkEQQBRFJ1+3+/3cDweYbvdyoxzIPKz4YreICZS8XaOLLZOkqQuiqJuA96D9+J3BJZQNWP2ZvHchadpWncFfrdFEd6VEPF2Po7juqqqWhf4DHyWwBIin4RXsiams+siaxAoIfChgMzV4iWUkPmI804XL6EEp3lCzvJ5V+BwQukqD5g1CvhHBiSml2V5+jwcDicRIQzDk3QF5gzT6ZQ1DuYHG+e+/9n0V6tVa0aHoY0ozIYrZC6Y/2JQspNfwhZea1MCyQa1XYEzjlJEuO9g/pdZUHyZi6Ab5Hne6gaPj48wGql54HK5hKenp4ux8RqFBZFnWxawojUuk96ygC7QkuW1ug2Ozbh3ZdMCInq3zwUNC5vNBt7e3oRkeC6M2jCZTL4QJ46N30VS5M3RNJT8mLNDF7JYLLR4AOfAeK407hQVcOFwZPIwn8+5N4/H45Ofi8rc9/f30y5+fHz8DaGfBXcXn8MDWtjr6yt9+ZcTCyAEpM3khDCFFoJhVQScg44FfPPeOyMcQBbJ/BtaWJIkVse/d7VQJMT1ei0kRDqkPjw89K7np5XMENYWmnuWZc5JUKsIorNA3dh/7iCppMmMbDC3qYCUnrRuTk/n9qgE2U4Sjs1QZGqTBHcs3zbSWCT+j4RHFCGVGAnG3tm0gLCtGNJxBdWeAqcYCm0TYWGiE0SXzSqmLyiHCxeRIDFhBTSDq0YAzu4nLhQQshi8S1Z4dgU8CFEBJ/tzYv7cnmDXOK4aRXAM4B+g+j0Nwt3s2h+QAT5bkEc4PyWqeEroYgkyOy9YfAkesBSltSYqRQmfP8vS19GYcGLI1Fju6pTKEg1Wb0djzNSYJVgEYdyXITy8B2N8W+FkavdHBkKikv9hHw9LX7qXiC9JYAcIP1XOSIh8B88vU6Vg75WYXvq+VGLkQIz4/p0BBRwbV5o5VvxvIi996RQFIHhHyIKUPplfukiyKDH0FKWDxefQY8wcKCCCnsPmm6IrGABCS4RY9ZH4OhVK10Z80r3DayU+btpv0PRDGChMuEICA0dxa6ZvyhUGbfomXCGBK0Nxa6bfNUEaVMKjilhCAQu4cqRDz/VNNE9YfFDADYH+X6OrCnld+MCb3997VMAzkUnz8wb+ww/+CDAA4q4zpysTtacAAAAASUVORK5CYII=", it = /* @__PURE__ */ Object.assign({
|
|
8
|
+
"../json/PuntosMapas_gasgas_0.json": () => import("./PuntosMapas_gasgas_0-CjccjpQ8.js").then((p) => p.default),
|
|
9
|
+
"../json/PuntosMapas_gasgas_1.json": () => import("./PuntosMapas_gasgas_1-inakGBZ_.js").then((p) => p.default),
|
|
10
|
+
"../json/PuntosMapas_hqv_0.json": () => import("./PuntosMapas_hqv_0-OSIxCcrz.js").then((p) => p.default),
|
|
11
|
+
"../json/PuntosMapas_hqv_1.json": () => import("./PuntosMapas_hqv_1-Cr9cIOs3.js").then((p) => p.default),
|
|
12
|
+
"../json/PuntosMapas_ktm_0.json": () => import("./PuntosMapas_ktm_0-ChWkcgec.js").then((p) => p.default),
|
|
13
|
+
"../json/PuntosMapas_ktm_1.json": () => import("./PuntosMapas_ktm_1-DCq6GRnp.js").then((p) => p.default),
|
|
14
|
+
"../json/PuntosMapas_voge_0.json": () => import("./PuntosMapas_voge_0-DL0EWJWf.js").then((p) => p.default),
|
|
15
|
+
"../json/PuntosMapas_voge_1.json": () => import("./PuntosMapas_voge_1-Clawdtrj.js").then((p) => p.default)
|
|
16
|
+
}), st = /* @__PURE__ */ Object.assign({
|
|
17
|
+
"../pin/gasgas.png": V,
|
|
18
|
+
"../pin/gasgas_distribuidor.png": j,
|
|
19
|
+
"../pin/hqv.png": K,
|
|
20
|
+
"../pin/hqv_distribuidor.png": X,
|
|
21
|
+
"../pin/ktm.png": $,
|
|
22
|
+
"../pin/ktm_distribuidor.png": tt,
|
|
23
|
+
"../pin/rs.png": et,
|
|
24
|
+
"../pin/rs_distribuidor.png": nt,
|
|
25
|
+
"../pin/voge.png": ot,
|
|
26
|
+
"../pin/voge_distribuidor.png": at
|
|
27
|
+
}), G = "#000000", I = "/assets/fontawesome/css/all.min.css", q = "https://ap2.rs-shop.cl/web/PuntosMapas", rt = {
|
|
26
28
|
gasgas: "#cb0d25",
|
|
27
29
|
ktm: "#ff6600"
|
|
28
|
-
},
|
|
30
|
+
}, H = {
|
|
29
31
|
gas: "gasgas",
|
|
30
32
|
gasgas: "gasgas",
|
|
31
33
|
husqvarna: "hqv"
|
|
32
|
-
},
|
|
34
|
+
}, N = {
|
|
33
35
|
sucursal: 0,
|
|
34
36
|
distribuidor: 1
|
|
35
|
-
},
|
|
37
|
+
}, lt = ["norte", "rm", "centro", "sur"], ct = {
|
|
36
38
|
norte: "Zona Norte",
|
|
37
39
|
rm: "RM",
|
|
38
40
|
centro: "Zona Centro",
|
|
39
41
|
sur: "Zona Sur"
|
|
40
|
-
},
|
|
42
|
+
}, L = {
|
|
41
43
|
0: "Sucursales",
|
|
42
44
|
1: "Distribuidores"
|
|
43
|
-
},
|
|
45
|
+
}, T = {
|
|
44
46
|
minLat: -56.5,
|
|
45
47
|
maxLat: -17,
|
|
46
48
|
minLng: -76,
|
|
47
49
|
maxLng: -66
|
|
48
|
-
},
|
|
50
|
+
}, R = 720 * 60 * 60 * 1e3, dt = "rs-map-cache", v = "points", Y = {
|
|
49
51
|
"region de arica y parinacota": "norte",
|
|
50
52
|
"arica y parinacota": "norte",
|
|
51
53
|
"region de tarapaca": "norte",
|
|
@@ -83,70 +85,70 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
83
85
|
aysen: "sur",
|
|
84
86
|
"region de magallanes y la antartica chilena": "sur",
|
|
85
87
|
magallanes: "sur"
|
|
86
|
-
},
|
|
88
|
+
}, A = class A extends HTMLElement {
|
|
87
89
|
constructor() {
|
|
88
90
|
super();
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
91
|
+
c(this, "root");
|
|
92
|
+
c(this, "mapEl");
|
|
93
|
+
c(this, "map");
|
|
94
|
+
c(this, "pointModalOverlayEl");
|
|
95
|
+
c(this, "pointModalTitleEl");
|
|
96
|
+
c(this, "pointModalBodyEl");
|
|
97
|
+
c(this, "pointModalCloseButton");
|
|
98
|
+
c(this, "markers", []);
|
|
99
|
+
c(this, "marca", "");
|
|
100
|
+
c(this, "marcaKey", "default");
|
|
101
|
+
c(this, "tipo", "");
|
|
102
|
+
c(this, "tipoCode", null);
|
|
103
|
+
c(this, "pointsController");
|
|
104
|
+
c(this, "points", []);
|
|
105
|
+
c(this, "pointsByZone", {
|
|
104
106
|
norte: [],
|
|
105
107
|
rm: [],
|
|
106
108
|
centro: [],
|
|
107
109
|
sur: []
|
|
108
110
|
});
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
var
|
|
130
|
-
this.pointModalOverlayEl && (this.pointModalOverlayEl.setAttribute("hidden", ""), (
|
|
111
|
+
c(this, "initialViewApplied", !1);
|
|
112
|
+
c(this, "zonesContainer");
|
|
113
|
+
c(this, "componentMessageEl");
|
|
114
|
+
c(this, "mapLayoutEl");
|
|
115
|
+
c(this, "zoneButtons", []);
|
|
116
|
+
c(this, "nearestButton");
|
|
117
|
+
c(this, "panelTitleEl");
|
|
118
|
+
c(this, "activeZone", "all");
|
|
119
|
+
c(this, "mapHeight", "");
|
|
120
|
+
c(this, "googleMapsApiKey", "");
|
|
121
|
+
c(this, "pointsApiUrl", q);
|
|
122
|
+
c(this, "markerIconBaseUrl", "");
|
|
123
|
+
c(this, "defaultMarkerIconUrl", "");
|
|
124
|
+
c(this, "pointsCacheTtlMs", R);
|
|
125
|
+
c(this, "panAnimationFrame", null);
|
|
126
|
+
c(this, "highlightTimeout", null);
|
|
127
|
+
c(this, "isSyncingInitialAttributes", !1);
|
|
128
|
+
c(this, "refreshQueued", !1);
|
|
129
|
+
c(this, "localPointsRequests", /* @__PURE__ */ new Map());
|
|
130
|
+
c(this, "closePointModal", () => {
|
|
131
|
+
var t;
|
|
132
|
+
this.pointModalOverlayEl && (this.pointModalOverlayEl.setAttribute("hidden", ""), (t = this.pointModalBodyEl) == null || t.replaceChildren());
|
|
131
133
|
});
|
|
132
|
-
|
|
133
|
-
|
|
134
|
+
c(this, "handlePointModalOverlayClick", (t) => {
|
|
135
|
+
t.target === this.pointModalOverlayEl && this.closePointModal();
|
|
134
136
|
});
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
c(this, "handlePointModalKeydown", (t) => {
|
|
138
|
+
t.key === "Escape" && this.pointModalOverlayEl && !this.pointModalOverlayEl.hasAttribute("hidden") && this.closePointModal();
|
|
137
139
|
});
|
|
138
|
-
|
|
139
|
-
const n =
|
|
140
|
+
c(this, "handleZoneButtonClick", (t) => {
|
|
141
|
+
const n = t.currentTarget.dataset.zone;
|
|
140
142
|
n && (this.setActiveZone(n), this.scrollToZoneSection(n));
|
|
141
143
|
});
|
|
142
|
-
|
|
144
|
+
c(this, "handleNearestClick", () => {
|
|
143
145
|
if (!navigator.geolocation) {
|
|
144
146
|
alert("La geolocalizacion no esta soportada en este navegador.");
|
|
145
147
|
return;
|
|
146
148
|
}
|
|
147
149
|
navigator.geolocation.getCurrentPosition(
|
|
148
|
-
(
|
|
149
|
-
const { latitude:
|
|
150
|
+
(t) => {
|
|
151
|
+
const { latitude: e, longitude: n } = t.coords, o = this.findNearestPoint(e, n);
|
|
150
152
|
if (o) {
|
|
151
153
|
const a = this.getPointPosition(o);
|
|
152
154
|
a && this.centerMapOnPoint(a.lat, a.lng), this.scrollToPointCard(o.id);
|
|
@@ -158,15 +160,15 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
158
160
|
}
|
|
159
161
|
);
|
|
160
162
|
});
|
|
161
|
-
|
|
162
|
-
<link rel="stylesheet" href="${
|
|
163
|
+
A.ensureFontAwesome(), this.root = this.attachShadow({ mode: "open" }), this.root.innerHTML = `
|
|
164
|
+
<link rel="stylesheet" href="${I}" />
|
|
163
165
|
<style>
|
|
164
166
|
:host {
|
|
165
167
|
display: block;
|
|
166
168
|
position: relative;
|
|
167
169
|
width: 100%;
|
|
168
170
|
height: var(--map-height, 520px);
|
|
169
|
-
--rs-map-accent: ${
|
|
171
|
+
--rs-map-accent: ${G};
|
|
170
172
|
}
|
|
171
173
|
.map-layout {
|
|
172
174
|
display: grid;
|
|
@@ -779,24 +781,24 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
779
781
|
];
|
|
780
782
|
}
|
|
781
783
|
connectedCallback() {
|
|
782
|
-
this.mapEl = this.root.querySelector("#map"), this.panelTitleEl = this.root.querySelector("[data-panel-title]"), this.zonesContainer = this.root.querySelector("[data-zone-container]"), this.componentMessageEl = this.root.querySelector("[data-component-message]"), this.mapLayoutEl = this.root.querySelector("[data-map-layout]"), this.pointModalOverlayEl = this.root.querySelector("[data-point-modal-overlay]"), this.pointModalTitleEl = this.root.querySelector("[data-point-modal-title]"), this.pointModalBodyEl = this.root.querySelector("[data-point-modal-body]"), this.pointModalCloseButton = this.root.querySelector("[data-point-modal-close]"), this.zoneButtons = Array.from(this.root.querySelectorAll("[data-zone]")), this.nearestButton = this.root.querySelector('[data-action="nearest"]'), this.zoneButtons.forEach((
|
|
784
|
+
this.mapEl = this.root.querySelector("#map"), this.panelTitleEl = this.root.querySelector("[data-panel-title]"), this.zonesContainer = this.root.querySelector("[data-zone-container]"), this.componentMessageEl = this.root.querySelector("[data-component-message]"), this.mapLayoutEl = this.root.querySelector("[data-map-layout]"), this.pointModalOverlayEl = this.root.querySelector("[data-point-modal-overlay]"), this.pointModalTitleEl = this.root.querySelector("[data-point-modal-title]"), this.pointModalBodyEl = this.root.querySelector("[data-point-modal-body]"), this.pointModalCloseButton = this.root.querySelector("[data-point-modal-close]"), this.zoneButtons = Array.from(this.root.querySelectorAll("[data-zone]")), this.nearestButton = this.root.querySelector('[data-action="nearest"]'), this.zoneButtons.forEach((t) => t.addEventListener("click", this.handleZoneButtonClick)), this.nearestButton && this.nearestButton.addEventListener("click", this.handleNearestClick), this.pointModalOverlayEl.addEventListener("click", this.handlePointModalOverlayClick), this.pointModalCloseButton.addEventListener("click", this.closePointModal), window.addEventListener("keydown", this.handlePointModalKeydown), this.updateZoneButtons(), this.setMapHeight(this.getAttribute("height")), this.setComponentState("loading"), this.syncAttributesToState();
|
|
783
785
|
}
|
|
784
786
|
disconnectedCallback() {
|
|
785
|
-
var
|
|
786
|
-
(
|
|
787
|
+
var t, e, n;
|
|
788
|
+
(t = this.pointsController) == null || t.abort(), this.zoneButtons.forEach((o) => o.removeEventListener("click", this.handleZoneButtonClick)), this.nearestButton && this.nearestButton.removeEventListener("click", this.handleNearestClick), (e = this.pointModalOverlayEl) == null || e.removeEventListener("click", this.handlePointModalOverlayClick), (n = this.pointModalCloseButton) == null || n.removeEventListener("click", this.closePointModal), window.removeEventListener("keydown", this.handlePointModalKeydown);
|
|
787
789
|
}
|
|
788
|
-
attributeChangedCallback(
|
|
789
|
-
|
|
790
|
+
attributeChangedCallback(t, e, n) {
|
|
791
|
+
t === "marca" ? this.setMarca(n != null ? n : "") : t === "tipo" ? this.setTipo(n != null ? n : "") : t === "height" ? this.setMapHeight(n) : t === "google-maps-key" ? this.setGoogleMapsKey(n) : t === "points-api-url" ? this.setPointsApiUrl(n) : t === "cache-days" ? this.setCacheDays(n) : t === "marker-icon-base" ? this.setMarkerIconBase(n) : t === "marker-icon-default" && this.setDefaultMarkerIcon(n);
|
|
790
792
|
}
|
|
791
793
|
loadGoogleMaps() {
|
|
792
794
|
return window._rsGoogleMapsLoaded ? Promise.resolve().then(() => {
|
|
793
795
|
this.initMap();
|
|
794
|
-
}) : this.googleMapsApiKey ? (
|
|
796
|
+
}) : this.googleMapsApiKey ? (A.googleMapsLoaderPromise || (A.googleMapsLoaderPromise = new Promise((t, e) => {
|
|
795
797
|
const n = document.querySelector('script[data-rs-google-maps="true"]');
|
|
796
798
|
if (n) {
|
|
797
|
-
n.addEventListener("load", () =>
|
|
799
|
+
n.addEventListener("load", () => t(), { once: !0 }), n.addEventListener(
|
|
798
800
|
"error",
|
|
799
|
-
() =>
|
|
801
|
+
() => e(new Error("Error al cargar la API de Google Maps")),
|
|
800
802
|
{ once: !0 }
|
|
801
803
|
);
|
|
802
804
|
return;
|
|
@@ -806,89 +808,89 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
806
808
|
v: "weekly"
|
|
807
809
|
});
|
|
808
810
|
o.src = `https://maps.googleapis.com/maps/api/js?${a.toString()}`, o.async = !0, o.defer = !0, o.dataset.rsGoogleMaps = "true", o.onload = () => {
|
|
809
|
-
window._rsGoogleMapsLoaded = !0,
|
|
811
|
+
window._rsGoogleMapsLoaded = !0, t();
|
|
810
812
|
}, o.onerror = () => {
|
|
811
|
-
|
|
813
|
+
A.googleMapsLoaderPromise = null, e(new Error("Error al cargar la API de Google Maps"));
|
|
812
814
|
}, document.head.appendChild(o);
|
|
813
|
-
})),
|
|
815
|
+
})), A.googleMapsLoaderPromise.then(() => {
|
|
814
816
|
window._rsGoogleMapsLoaded = !0, this.initMap();
|
|
815
|
-
}).catch((
|
|
816
|
-
console.error(
|
|
817
|
+
}).catch((t) => {
|
|
818
|
+
console.error(t instanceof Error ? t.message : "Error al cargar la API de Google Maps");
|
|
817
819
|
})) : (console.error('Falta la clave de Google Maps. Define el atributo "google-maps-key" en <rs-map>.'), Promise.resolve());
|
|
818
820
|
}
|
|
819
821
|
initMap() {
|
|
820
|
-
const
|
|
821
|
-
if (!
|
|
822
|
+
const t = window.google;
|
|
823
|
+
if (!t) {
|
|
822
824
|
console.error("Google Maps aun no esta disponible.");
|
|
823
825
|
return;
|
|
824
826
|
}
|
|
825
|
-
const
|
|
826
|
-
this.map = new
|
|
827
|
-
center:
|
|
827
|
+
const e = this.getInitialCenter();
|
|
828
|
+
this.map = new t.maps.Map(this.mapEl, {
|
|
829
|
+
center: e,
|
|
828
830
|
zoom: 14,
|
|
829
831
|
mapTypeId: "roadmap"
|
|
830
832
|
}), this.points.length && this.updateMarkers(this.points);
|
|
831
833
|
}
|
|
832
834
|
getInitialCenter() {
|
|
833
|
-
const
|
|
834
|
-
return
|
|
835
|
+
const t = this.getFirstValidPoint();
|
|
836
|
+
return t || { lat: -33.4489, lng: -70.6693 };
|
|
835
837
|
}
|
|
836
838
|
getFirstValidPoint() {
|
|
837
|
-
for (const
|
|
838
|
-
const
|
|
839
|
-
if (
|
|
840
|
-
return
|
|
839
|
+
for (const t of this.points) {
|
|
840
|
+
const e = this.getPointPosition(t);
|
|
841
|
+
if (e)
|
|
842
|
+
return e;
|
|
841
843
|
}
|
|
842
844
|
return null;
|
|
843
845
|
}
|
|
844
846
|
syncAttributesToState() {
|
|
845
|
-
var
|
|
846
|
-
this.isSyncingInitialAttributes = !0, this.setMarca((
|
|
847
|
+
var t, e;
|
|
848
|
+
this.isSyncingInitialAttributes = !0, this.setMarca((t = this.getAttribute("marca")) != null ? t : ""), this.setTipo((e = this.getAttribute("tipo")) != null ? e : ""), this.setGoogleMapsKey(this.getAttribute("google-maps-key")), this.setPointsApiUrl(this.getAttribute("points-api-url")), this.setCacheDays(this.getAttribute("cache-days")), this.setMarkerIconBase(this.getAttribute("marker-icon-base")), this.setDefaultMarkerIcon(this.getAttribute("marker-icon-default")), this.isSyncingInitialAttributes = !1, this.queueRefreshPoints();
|
|
847
849
|
}
|
|
848
|
-
setMapHeight(
|
|
849
|
-
const
|
|
850
|
-
if (!
|
|
850
|
+
setMapHeight(t) {
|
|
851
|
+
const e = (t != null ? t : "").trim();
|
|
852
|
+
if (!e) {
|
|
851
853
|
this.mapHeight = "", this.style.removeProperty("--map-height");
|
|
852
854
|
return;
|
|
853
855
|
}
|
|
854
|
-
this.mapHeight =
|
|
856
|
+
this.mapHeight = e, this.style.setProperty("--map-height", e);
|
|
855
857
|
}
|
|
856
|
-
setGoogleMapsKey(
|
|
857
|
-
this.googleMapsApiKey = (
|
|
858
|
+
setGoogleMapsKey(t) {
|
|
859
|
+
this.googleMapsApiKey = (t != null ? t : "").trim(), this.googleMapsApiKey && this.isConnected && this.loadGoogleMaps();
|
|
858
860
|
}
|
|
859
|
-
setPointsApiUrl(
|
|
860
|
-
const
|
|
861
|
-
this.pointsApiUrl =
|
|
861
|
+
setPointsApiUrl(t) {
|
|
862
|
+
const e = (t != null ? t : "").trim();
|
|
863
|
+
this.pointsApiUrl = e || q, this.pointsApiUrl && this.isConnected && !this.isSyncingInitialAttributes && this.queueRefreshPoints();
|
|
862
864
|
}
|
|
863
|
-
setCacheDays(
|
|
864
|
-
const
|
|
865
|
-
if (!
|
|
866
|
-
this.pointsCacheTtlMs =
|
|
865
|
+
setCacheDays(t) {
|
|
866
|
+
const e = (t != null ? t : "").trim();
|
|
867
|
+
if (!e) {
|
|
868
|
+
this.pointsCacheTtlMs = R;
|
|
867
869
|
return;
|
|
868
870
|
}
|
|
869
|
-
const n = Number(
|
|
871
|
+
const n = Number(e);
|
|
870
872
|
if (!Number.isFinite(n) || n < 0) {
|
|
871
|
-
this.pointsCacheTtlMs =
|
|
873
|
+
this.pointsCacheTtlMs = R;
|
|
872
874
|
return;
|
|
873
875
|
}
|
|
874
876
|
this.pointsCacheTtlMs = n * 24 * 60 * 60 * 1e3;
|
|
875
877
|
}
|
|
876
|
-
setMarkerIconBase(
|
|
877
|
-
const
|
|
878
|
-
if (!
|
|
878
|
+
setMarkerIconBase(t) {
|
|
879
|
+
const e = (t != null ? t : "").trim();
|
|
880
|
+
if (!e) {
|
|
879
881
|
this.markerIconBaseUrl = "";
|
|
880
882
|
return;
|
|
881
883
|
}
|
|
882
|
-
this.markerIconBaseUrl =
|
|
884
|
+
this.markerIconBaseUrl = e.endsWith("/") ? e : `${e}/`;
|
|
883
885
|
}
|
|
884
|
-
setDefaultMarkerIcon(
|
|
885
|
-
this.defaultMarkerIconUrl = (
|
|
886
|
+
setDefaultMarkerIcon(t) {
|
|
887
|
+
this.defaultMarkerIconUrl = (t != null ? t : "").trim();
|
|
886
888
|
}
|
|
887
|
-
setMarca(
|
|
888
|
-
this.marca =
|
|
889
|
+
setMarca(t) {
|
|
890
|
+
this.marca = t.trim(), this.marcaKey = this.normalizeBrandKey(this.marca), this.applyBrandColor(), this.isSyncingInitialAttributes || this.queueRefreshPoints();
|
|
889
891
|
}
|
|
890
|
-
setTipo(
|
|
891
|
-
this.tipo =
|
|
892
|
+
setTipo(t) {
|
|
893
|
+
this.tipo = t.trim(), this.tipoCode = this.normalizeTipo(this.tipo), this.updatePanelTitle(), this.isSyncingInitialAttributes || this.queueRefreshPoints();
|
|
892
894
|
}
|
|
893
895
|
queueRefreshPoints() {
|
|
894
896
|
this.refreshQueued || (this.refreshQueued = !0, queueMicrotask(() => {
|
|
@@ -904,27 +906,27 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
904
906
|
updatePanelTitle() {
|
|
905
907
|
if (!this.panelTitleEl)
|
|
906
908
|
return;
|
|
907
|
-
const
|
|
908
|
-
this.panelTitleEl.textContent =
|
|
909
|
+
const t = this.getTipoLabel();
|
|
910
|
+
this.panelTitleEl.textContent = t != null ? t : "Puntos del mapa";
|
|
909
911
|
}
|
|
910
912
|
getTipoLabel() {
|
|
911
|
-
if (this.tipoCode !== null && this.tipoCode in
|
|
912
|
-
return
|
|
913
|
-
const
|
|
914
|
-
return
|
|
913
|
+
if (this.tipoCode !== null && this.tipoCode in L)
|
|
914
|
+
return L[this.tipoCode];
|
|
915
|
+
const t = this.tipo.trim().toLowerCase(), e = t && t in N ? N[t] : null;
|
|
916
|
+
return e !== null && e in L ? L[e] : null;
|
|
915
917
|
}
|
|
916
918
|
applyBrandColor() {
|
|
917
|
-
var
|
|
918
|
-
const
|
|
919
|
-
this.style.setProperty("--rs-map-accent",
|
|
919
|
+
var e;
|
|
920
|
+
const t = (e = rt[this.marcaKey]) != null ? e : G;
|
|
921
|
+
this.style.setProperty("--rs-map-accent", t);
|
|
920
922
|
}
|
|
921
|
-
normalizeTipo(
|
|
922
|
-
if (!
|
|
923
|
+
normalizeTipo(t) {
|
|
924
|
+
if (!t)
|
|
923
925
|
return null;
|
|
924
|
-
const
|
|
925
|
-
if (
|
|
926
|
-
return
|
|
927
|
-
const n = Number(
|
|
926
|
+
const e = t.trim().toLowerCase();
|
|
927
|
+
if (e in N)
|
|
928
|
+
return N[e];
|
|
929
|
+
const n = Number(e);
|
|
928
930
|
return Number.isFinite(n) && (n === 0 || n === 1) ? n : null;
|
|
929
931
|
}
|
|
930
932
|
async refreshPoints() {
|
|
@@ -936,380 +938,380 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
936
938
|
return;
|
|
937
939
|
}
|
|
938
940
|
(g = this.pointsController) == null || g.abort();
|
|
939
|
-
const
|
|
940
|
-
this.pointsController =
|
|
941
|
-
const
|
|
942
|
-
marca:
|
|
941
|
+
const t = new AbortController();
|
|
942
|
+
this.pointsController = t;
|
|
943
|
+
const e = this.getMarcaRequestValue(), n = new URLSearchParams({
|
|
944
|
+
marca: e,
|
|
943
945
|
tipo: String(this.tipoCode)
|
|
944
|
-
}), o = this.pointsApiUrl.includes("?"), a = o && !/[?&]$/.test(this.pointsApiUrl),
|
|
945
|
-
if (
|
|
946
|
-
if (this.applyPointsPayload(
|
|
946
|
+
}), o = this.pointsApiUrl.includes("?"), a = o && !/[?&]$/.test(this.pointsApiUrl), s = o ? a ? "&" : "" : "?", i = `${this.pointsApiUrl}${s}${n.toString()}`, l = this.getPointsCacheKey(i), d = await this.readPointsCache(l), h = d && Date.now() - d.timestamp < this.pointsCacheTtlMs, m = d ? null : await this.getLocalPointsFallback(e, this.tipoCode);
|
|
947
|
+
if (d) {
|
|
948
|
+
if (this.applyPointsPayload(d.data), this.setComponentState("ready"), h)
|
|
947
949
|
return;
|
|
948
|
-
} else
|
|
950
|
+
} else m ? (this.applyPointsPayload(m), this.setComponentState("ready")) : this.setComponentState("loading");
|
|
949
951
|
try {
|
|
950
|
-
const
|
|
951
|
-
signal:
|
|
952
|
+
const f = await fetch(i, {
|
|
953
|
+
signal: t.signal
|
|
952
954
|
});
|
|
953
|
-
if (!
|
|
954
|
-
throw new Error(`Respuesta ${
|
|
955
|
-
const
|
|
956
|
-
if (!Array.isArray(
|
|
955
|
+
if (!f.ok)
|
|
956
|
+
throw new Error(`Respuesta ${f.status}`);
|
|
957
|
+
const r = await f.json();
|
|
958
|
+
if (!Array.isArray(r))
|
|
957
959
|
throw new Error("La respuesta de puntos no es valida.");
|
|
958
|
-
const
|
|
959
|
-
await this.writePointsCache(
|
|
960
|
-
} catch (
|
|
961
|
-
if (
|
|
960
|
+
const u = r;
|
|
961
|
+
await this.writePointsCache(l, u), this.applyPointsPayload(u), this.setComponentState("ready");
|
|
962
|
+
} catch (f) {
|
|
963
|
+
if (f instanceof DOMException && f.name === "AbortError")
|
|
962
964
|
return;
|
|
963
|
-
if (
|
|
964
|
-
console.warn("Se mantienen puntos locales por error al refrescar el mapa",
|
|
965
|
+
if (d || m) {
|
|
966
|
+
console.warn("Se mantienen puntos locales por error al refrescar el mapa", f);
|
|
965
967
|
return;
|
|
966
968
|
}
|
|
967
|
-
console.error("No se pudieron cargar los puntos del mapa",
|
|
969
|
+
console.error("No se pudieron cargar los puntos del mapa", f), this.setComponentState("error");
|
|
968
970
|
}
|
|
969
971
|
}
|
|
970
|
-
applyPointsPayload(
|
|
971
|
-
this.points = this.transformPoints(
|
|
972
|
+
applyPointsPayload(t) {
|
|
973
|
+
this.points = this.transformPoints(t), this.reportUnmappablePoints(this.points), this.renderPoints(this.points), this.initialViewApplied = !1, this.updateMarkers(this.points);
|
|
972
974
|
}
|
|
973
|
-
reportUnmappablePoints(
|
|
974
|
-
const
|
|
975
|
+
reportUnmappablePoints(t) {
|
|
976
|
+
const e = t.filter((n) => !this.getPointPosition(n)).map((n) => ({
|
|
975
977
|
id: n.id,
|
|
976
978
|
titulo: n.titulo,
|
|
977
979
|
direccion: n.direccion,
|
|
978
980
|
lat: n.lat,
|
|
979
981
|
lng: n.lng
|
|
980
982
|
}));
|
|
981
|
-
|
|
983
|
+
e.length && console.warn("Puntos con coordenadas fuera de rango o invalidas; no se muestran como markers.", e);
|
|
982
984
|
}
|
|
983
|
-
getPointsCacheKey(
|
|
984
|
-
return `rs-map:points:${
|
|
985
|
+
getPointsCacheKey(t) {
|
|
986
|
+
return `rs-map:points:${t}`;
|
|
985
987
|
}
|
|
986
|
-
async getLocalPointsFallback(
|
|
987
|
-
const o = `../json/PuntosMapas_${this.normalizeBrandKey(
|
|
988
|
+
async getLocalPointsFallback(t, e) {
|
|
989
|
+
const o = `../json/PuntosMapas_${this.normalizeBrandKey(t)}_${e}.json`, a = this.localPointsRequests.get(o);
|
|
988
990
|
if (a)
|
|
989
991
|
return a;
|
|
990
|
-
const
|
|
991
|
-
if (!
|
|
992
|
+
const s = it[o];
|
|
993
|
+
if (!s)
|
|
992
994
|
return null;
|
|
993
|
-
const
|
|
994
|
-
const
|
|
995
|
-
return
|
|
995
|
+
const i = s().then((l) => {
|
|
996
|
+
const d = this.parseLocalPointsPayload(l);
|
|
997
|
+
return d != null && d.length ? d : null;
|
|
996
998
|
}).catch(() => null);
|
|
997
|
-
return this.localPointsRequests.set(o,
|
|
999
|
+
return this.localPointsRequests.set(o, i), i;
|
|
998
1000
|
}
|
|
999
|
-
parseLocalPointsPayload(
|
|
1000
|
-
return Array.isArray(
|
|
1001
|
+
parseLocalPointsPayload(t) {
|
|
1002
|
+
return Array.isArray(t) ? t : null;
|
|
1001
1003
|
}
|
|
1002
|
-
async readPointsCache(
|
|
1003
|
-
const
|
|
1004
|
-
if (
|
|
1005
|
-
return
|
|
1004
|
+
async readPointsCache(t) {
|
|
1005
|
+
const e = await this.readPointsCacheFromIndexedDb(t);
|
|
1006
|
+
if (e)
|
|
1007
|
+
return e;
|
|
1006
1008
|
try {
|
|
1007
|
-
const n = window.localStorage.getItem(
|
|
1009
|
+
const n = window.localStorage.getItem(t);
|
|
1008
1010
|
if (!n)
|
|
1009
1011
|
return null;
|
|
1010
1012
|
const o = JSON.parse(n);
|
|
1011
|
-
return !o || !Array.isArray(o.data) || !Number.isFinite(o.timestamp) ? (window.localStorage.removeItem(
|
|
1013
|
+
return !o || !Array.isArray(o.data) || !Number.isFinite(o.timestamp) ? (window.localStorage.removeItem(t), null) : o;
|
|
1012
1014
|
} catch {
|
|
1013
1015
|
return null;
|
|
1014
1016
|
}
|
|
1015
1017
|
}
|
|
1016
|
-
async writePointsCache(
|
|
1018
|
+
async writePointsCache(t, e) {
|
|
1017
1019
|
const n = {
|
|
1018
1020
|
timestamp: Date.now(),
|
|
1019
|
-
data:
|
|
1021
|
+
data: e
|
|
1020
1022
|
};
|
|
1021
|
-
await this.writePointsCacheToIndexedDb(
|
|
1023
|
+
await this.writePointsCacheToIndexedDb(t, n);
|
|
1022
1024
|
try {
|
|
1023
|
-
window.localStorage.setItem(
|
|
1025
|
+
window.localStorage.setItem(t, JSON.stringify(n));
|
|
1024
1026
|
} catch {
|
|
1025
1027
|
}
|
|
1026
1028
|
}
|
|
1027
|
-
async readPointsCacheFromIndexedDb(
|
|
1028
|
-
const
|
|
1029
|
-
return
|
|
1030
|
-
const
|
|
1031
|
-
|
|
1032
|
-
const
|
|
1033
|
-
if (!
|
|
1029
|
+
async readPointsCacheFromIndexedDb(t) {
|
|
1030
|
+
const e = await A.openPointsCacheDb();
|
|
1031
|
+
return e ? new Promise((n) => {
|
|
1032
|
+
const s = e.transaction(v, "readonly").objectStore(v).get(t);
|
|
1033
|
+
s.onsuccess = () => {
|
|
1034
|
+
const i = s.result;
|
|
1035
|
+
if (!i || !Array.isArray(i.data) || !Number.isFinite(i.timestamp)) {
|
|
1034
1036
|
n(null);
|
|
1035
1037
|
return;
|
|
1036
1038
|
}
|
|
1037
1039
|
n({
|
|
1038
|
-
timestamp:
|
|
1039
|
-
data:
|
|
1040
|
+
timestamp: i.timestamp,
|
|
1041
|
+
data: i.data
|
|
1040
1042
|
});
|
|
1041
|
-
},
|
|
1043
|
+
}, s.onerror = () => n(null);
|
|
1042
1044
|
}) : null;
|
|
1043
1045
|
}
|
|
1044
|
-
async writePointsCacheToIndexedDb(
|
|
1045
|
-
const n = await
|
|
1046
|
+
async writePointsCacheToIndexedDb(t, e) {
|
|
1047
|
+
const n = await A.openPointsCacheDb();
|
|
1046
1048
|
n && await new Promise((o) => {
|
|
1047
|
-
const
|
|
1048
|
-
key:
|
|
1049
|
-
timestamp:
|
|
1050
|
-
data:
|
|
1049
|
+
const i = n.transaction(v, "readwrite").objectStore(v).put({
|
|
1050
|
+
key: t,
|
|
1051
|
+
timestamp: e.timestamp,
|
|
1052
|
+
data: e.data
|
|
1051
1053
|
});
|
|
1052
|
-
|
|
1054
|
+
i.onsuccess = () => o(), i.onerror = () => o();
|
|
1053
1055
|
});
|
|
1054
1056
|
}
|
|
1055
1057
|
static openPointsCacheDb() {
|
|
1056
|
-
return typeof window == "undefined" || !("indexedDB" in window) ? Promise.resolve(null) : (
|
|
1057
|
-
const
|
|
1058
|
-
|
|
1059
|
-
const n =
|
|
1060
|
-
n.objectStoreNames.contains(
|
|
1061
|
-
},
|
|
1062
|
-
})),
|
|
1063
|
-
}
|
|
1064
|
-
transformPoints(
|
|
1065
|
-
return
|
|
1066
|
-
...
|
|
1067
|
-
zone: this.getZoneForPoint(
|
|
1058
|
+
return typeof window == "undefined" || !("indexedDB" in window) ? Promise.resolve(null) : (A.pointsCacheDbPromise || (A.pointsCacheDbPromise = new Promise((t) => {
|
|
1059
|
+
const e = window.indexedDB.open(dt, 1);
|
|
1060
|
+
e.onupgradeneeded = () => {
|
|
1061
|
+
const n = e.result;
|
|
1062
|
+
n.objectStoreNames.contains(v) || n.createObjectStore(v, { keyPath: "key" });
|
|
1063
|
+
}, e.onsuccess = () => t(e.result), e.onerror = () => t(null);
|
|
1064
|
+
})), A.pointsCacheDbPromise);
|
|
1065
|
+
}
|
|
1066
|
+
transformPoints(t) {
|
|
1067
|
+
return t.map((e) => ({
|
|
1068
|
+
...e,
|
|
1069
|
+
zone: this.getZoneForPoint(e)
|
|
1068
1070
|
}));
|
|
1069
1071
|
}
|
|
1070
|
-
renderPoints(
|
|
1072
|
+
renderPoints(t) {
|
|
1071
1073
|
if (!this.zonesContainer)
|
|
1072
1074
|
return;
|
|
1073
|
-
const
|
|
1074
|
-
this.pointsByZone =
|
|
1075
|
+
const e = this.groupPoints(t);
|
|
1076
|
+
this.pointsByZone = e, this.updateZoneButtonCounts();
|
|
1075
1077
|
const n = document.createDocumentFragment();
|
|
1076
|
-
|
|
1078
|
+
lt.forEach((o) => {
|
|
1077
1079
|
const a = document.createElement("section");
|
|
1078
1080
|
a.className = "zone-section", a.dataset.zoneSection = o;
|
|
1079
|
-
const
|
|
1080
|
-
|
|
1081
|
-
const
|
|
1082
|
-
if (
|
|
1083
|
-
const
|
|
1084
|
-
|
|
1081
|
+
const s = document.createElement("div");
|
|
1082
|
+
s.className = "zone-section__header";
|
|
1083
|
+
const i = document.createElement("span");
|
|
1084
|
+
if (i.textContent = ct[o], s.appendChild(i), a.appendChild(s), e[o].length === 0) {
|
|
1085
|
+
const l = document.createElement("p");
|
|
1086
|
+
l.className = "zone-section__empty", l.textContent = "Sin puntos en esta zona.", a.appendChild(l);
|
|
1085
1087
|
} else {
|
|
1086
|
-
const
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
}), a.appendChild(
|
|
1088
|
+
const l = document.createElement("div");
|
|
1089
|
+
l.className = "zone-section__list", e[o].forEach((d) => {
|
|
1090
|
+
l.appendChild(this.createPointCard(d));
|
|
1091
|
+
}), a.appendChild(l);
|
|
1090
1092
|
}
|
|
1091
1093
|
n.appendChild(a);
|
|
1092
1094
|
}), this.zonesContainer.replaceChildren(n), this.updateZoneVisibility();
|
|
1093
1095
|
}
|
|
1094
|
-
groupPoints(
|
|
1095
|
-
const
|
|
1096
|
+
groupPoints(t) {
|
|
1097
|
+
const e = {
|
|
1096
1098
|
norte: [],
|
|
1097
1099
|
rm: [],
|
|
1098
1100
|
centro: [],
|
|
1099
1101
|
sur: []
|
|
1100
1102
|
};
|
|
1101
|
-
return
|
|
1102
|
-
|
|
1103
|
-
}),
|
|
1104
|
-
}
|
|
1105
|
-
createPointCard(
|
|
1106
|
-
var
|
|
1107
|
-
const
|
|
1108
|
-
|
|
1109
|
-
const n = this.getPointCoordinateWarning(
|
|
1110
|
-
o.className = "point-card__title", o.textContent =
|
|
1103
|
+
return t.forEach((n) => {
|
|
1104
|
+
e[n.zone].push(n);
|
|
1105
|
+
}), e;
|
|
1106
|
+
}
|
|
1107
|
+
createPointCard(t) {
|
|
1108
|
+
var f;
|
|
1109
|
+
const e = document.createElement("article");
|
|
1110
|
+
e.className = "point-card", e.dataset.pointId = String(t.id);
|
|
1111
|
+
const n = this.getPointCoordinateWarning(t), o = document.createElement("h3");
|
|
1112
|
+
o.className = "point-card__title", o.textContent = t.titulo || "Sin nombre", e.appendChild(o);
|
|
1111
1113
|
const a = document.createElement("div");
|
|
1112
1114
|
a.className = "point-card__address-block";
|
|
1113
|
-
const
|
|
1114
|
-
if (
|
|
1115
|
-
const
|
|
1116
|
-
|
|
1115
|
+
const s = document.createElement("p");
|
|
1116
|
+
if (s.className = "point-card__address", s.textContent = t.direccion || "Sin direccion", a.appendChild(s), t.comuna_name) {
|
|
1117
|
+
const r = document.createElement("p");
|
|
1118
|
+
r.className = "point-card__meta", r.textContent = t.comuna_name, a.appendChild(r);
|
|
1117
1119
|
}
|
|
1118
|
-
if (
|
|
1119
|
-
const
|
|
1120
|
-
|
|
1120
|
+
if (t.provincia_name) {
|
|
1121
|
+
const r = document.createElement("p");
|
|
1122
|
+
r.className = "point-card__meta", r.textContent = t.provincia_name, a.appendChild(r);
|
|
1121
1123
|
}
|
|
1122
|
-
if (
|
|
1123
|
-
const
|
|
1124
|
-
|
|
1124
|
+
if (t.region_name) {
|
|
1125
|
+
const r = document.createElement("p");
|
|
1126
|
+
r.className = "point-card__meta", r.textContent = t.region_name, a.appendChild(r);
|
|
1125
1127
|
}
|
|
1126
|
-
|
|
1127
|
-
let
|
|
1128
|
-
const
|
|
1129
|
-
if (
|
|
1130
|
-
const
|
|
1131
|
-
|
|
1132
|
-
const
|
|
1133
|
-
|
|
1134
|
-
const
|
|
1135
|
-
|
|
1136
|
-
this.focusPointWithZoom(
|
|
1137
|
-
}),
|
|
1128
|
+
e.appendChild(a);
|
|
1129
|
+
let i = null;
|
|
1130
|
+
const l = this.getPointPosition(t);
|
|
1131
|
+
if (l) {
|
|
1132
|
+
const r = document.createElement("div");
|
|
1133
|
+
r.className = "point-card__map-actions";
|
|
1134
|
+
const u = document.createElement("button");
|
|
1135
|
+
u.type = "button", u.className = "point-card__focus";
|
|
1136
|
+
const b = this.createIconElement("fa-solid fa-location-crosshairs");
|
|
1137
|
+
u.appendChild(b), u.appendChild(document.createTextNode(" Ver en el mapa")), u.addEventListener("click", () => {
|
|
1138
|
+
this.focusPointWithZoom(l.lat, l.lng), this.scrollToPointCard(t.id);
|
|
1139
|
+
}), r.appendChild(u), r.appendChild(this.createMobileNavigationActions(l)), i = r;
|
|
1138
1140
|
} else if (n) {
|
|
1139
|
-
const
|
|
1140
|
-
|
|
1141
|
-
const
|
|
1142
|
-
|
|
1143
|
-
const
|
|
1144
|
-
|
|
1141
|
+
const r = document.createElement("div");
|
|
1142
|
+
r.className = "point-card__coordinate-warning";
|
|
1143
|
+
const u = this.createIconElement("fa-solid fa-circle-info");
|
|
1144
|
+
r.appendChild(u);
|
|
1145
|
+
const b = document.createElement("span");
|
|
1146
|
+
b.textContent = n, r.appendChild(b), i = r;
|
|
1145
1147
|
}
|
|
1146
|
-
const
|
|
1147
|
-
|
|
1148
|
-
let
|
|
1149
|
-
const
|
|
1150
|
-
|
|
1148
|
+
const d = document.createElement("div");
|
|
1149
|
+
d.className = "point-card__details", d.hidden = !0;
|
|
1150
|
+
let h = !1;
|
|
1151
|
+
const m = document.createElement("div");
|
|
1152
|
+
m.className = "point-card__actions";
|
|
1151
1153
|
let g = null;
|
|
1152
|
-
if (
|
|
1153
|
-
const
|
|
1154
|
-
|
|
1155
|
-
const
|
|
1156
|
-
|
|
1154
|
+
if (t.url && t.url !== "#") {
|
|
1155
|
+
const r = document.createElement("a");
|
|
1156
|
+
r.href = t.url, r.target = "_blank", r.rel = "noopener noreferrer", r.className = "point-card__action";
|
|
1157
|
+
const u = this.createIconElement("fa-solid fa-globe");
|
|
1158
|
+
r.appendChild(u), r.appendChild(document.createTextNode("Sitio web")), m.appendChild(r);
|
|
1157
1159
|
}
|
|
1158
|
-
if (
|
|
1159
|
-
const
|
|
1160
|
-
|
|
1161
|
-
const
|
|
1162
|
-
|
|
1160
|
+
if (t.email) {
|
|
1161
|
+
const r = document.createElement("a");
|
|
1162
|
+
r.href = `mailto:${t.email}`, r.target = "_blank", r.rel = "noopener noreferrer", r.className = "point-card__action point-card__action--text";
|
|
1163
|
+
const u = this.createIconElement("fa-solid fa-envelope");
|
|
1164
|
+
r.appendChild(u), r.appendChild(document.createTextNode(t.email)), m.appendChild(r);
|
|
1163
1165
|
}
|
|
1164
|
-
if (
|
|
1165
|
-
const
|
|
1166
|
-
|
|
1167
|
-
const
|
|
1168
|
-
|
|
1169
|
-
const
|
|
1170
|
-
|
|
1166
|
+
if (m.childElementCount && (d.appendChild(m), h = !0), (f = t.telefonos) != null && f.length) {
|
|
1167
|
+
const r = document.createElement("div");
|
|
1168
|
+
r.className = "point-card__contact";
|
|
1169
|
+
const u = document.createElement("div");
|
|
1170
|
+
u.className = "point-card__contact-title";
|
|
1171
|
+
const b = this.createIconElement("fa-solid fa-phone");
|
|
1172
|
+
u.appendChild(b), u.appendChild(document.createTextNode("Telefonos")), r.appendChild(u);
|
|
1171
1173
|
const x = document.createElement("ul");
|
|
1172
|
-
x.className = "point-card__phone-list",
|
|
1173
|
-
const
|
|
1174
|
-
|
|
1175
|
-
const
|
|
1176
|
-
|
|
1177
|
-
const
|
|
1178
|
-
if (
|
|
1179
|
-
const
|
|
1180
|
-
|
|
1174
|
+
x.className = "point-card__phone-list", t.telefonos.slice().sort((w, y) => w.orden - y.orden).forEach((w) => {
|
|
1175
|
+
const y = document.createElement("li");
|
|
1176
|
+
y.className = "point-card__phone-item";
|
|
1177
|
+
const k = document.createElement("span");
|
|
1178
|
+
k.className = "point-card__phone-icon";
|
|
1179
|
+
const z = this.isWhatsappPhone(w);
|
|
1180
|
+
if (z) {
|
|
1181
|
+
const B = this.createIconElement("fa-brands fa-whatsapp");
|
|
1182
|
+
k.appendChild(B);
|
|
1181
1183
|
} else
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
const
|
|
1185
|
-
|
|
1186
|
-
const
|
|
1187
|
-
|
|
1188
|
-
const
|
|
1189
|
-
if (
|
|
1190
|
-
const
|
|
1191
|
-
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
}),
|
|
1184
|
+
k.textContent = "-";
|
|
1185
|
+
y.appendChild(k);
|
|
1186
|
+
const S = document.createElement("div");
|
|
1187
|
+
S.className = "point-card__phone-content";
|
|
1188
|
+
const U = document.createElement("span");
|
|
1189
|
+
U.className = "point-card__phone-name", U.textContent = w.nombre, S.appendChild(U);
|
|
1190
|
+
const E = z ? document.createElement("a") : document.createElement("span");
|
|
1191
|
+
if (E.className = "point-card__phone-number", z) {
|
|
1192
|
+
const B = this.getWhatsappLink(w.telefono);
|
|
1193
|
+
B && (E.href = B, E.target = "_blank", E.rel = "noopener noreferrer", E.classList.add("point-card__phone-number--link"));
|
|
1194
|
+
}
|
|
1195
|
+
E.textContent = w.telefono, S.appendChild(E), y.appendChild(S), x.appendChild(y);
|
|
1196
|
+
}), r.appendChild(x), d.appendChild(r), h = !0;
|
|
1195
1197
|
}
|
|
1196
|
-
if (
|
|
1197
|
-
const
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
const
|
|
1201
|
-
|
|
1202
|
-
}),
|
|
1198
|
+
if (t.adicional) {
|
|
1199
|
+
const r = document.createElement("p");
|
|
1200
|
+
r.className = "point-card__extra", r.innerHTML = t.adicional, r.querySelectorAll("a").forEach((u) => {
|
|
1201
|
+
u.classList.add("point-card__extra-link");
|
|
1202
|
+
const b = this.createIconElement("fa-solid fa-arrow-up-right-from-square");
|
|
1203
|
+
b.classList.add("point-card__extra-icon"), u.appendChild(b);
|
|
1204
|
+
}), d.appendChild(r), h = !0;
|
|
1203
1205
|
}
|
|
1204
|
-
if (
|
|
1205
|
-
g = document.createElement("a"), g.href =
|
|
1206
|
-
const
|
|
1207
|
-
g.appendChild(
|
|
1206
|
+
if (t.googlelink) {
|
|
1207
|
+
g = document.createElement("a"), g.href = t.googlelink, g.target = "_blank", g.rel = "noopener noreferrer", g.className = "point-card__action";
|
|
1208
|
+
const r = this.createIconElement("fa-solid fa-map-location-dot");
|
|
1209
|
+
g.appendChild(r), g.appendChild(document.createTextNode("Google Maps"));
|
|
1208
1210
|
}
|
|
1209
1211
|
if (g) {
|
|
1210
|
-
const
|
|
1211
|
-
|
|
1212
|
+
const r = document.createElement("div");
|
|
1213
|
+
r.className = "point-card__actions", r.appendChild(g), d.appendChild(r), h = !0;
|
|
1212
1214
|
}
|
|
1213
|
-
if (
|
|
1214
|
-
const
|
|
1215
|
-
|
|
1216
|
-
const
|
|
1217
|
-
|
|
1218
|
-
const x =
|
|
1219
|
-
|
|
1220
|
-
}),
|
|
1215
|
+
if (h) {
|
|
1216
|
+
const r = document.createElement("button");
|
|
1217
|
+
r.type = "button", r.className = "point-card__toggle";
|
|
1218
|
+
const u = this.createIconElement("fa-solid fa-circle-info"), b = document.createElement("span");
|
|
1219
|
+
b.textContent = "Mas informacion", r.appendChild(u), r.appendChild(b), r.addEventListener("click", () => {
|
|
1220
|
+
const x = d.hidden;
|
|
1221
|
+
d.hidden = !x, b.textContent = x ? "Ocultar informacion" : "Mas informacion", u.className = x ? "fa-solid fa-circle-xmark" : "fa-solid fa-circle-info";
|
|
1222
|
+
}), e.appendChild(r), e.appendChild(d);
|
|
1221
1223
|
}
|
|
1222
|
-
return
|
|
1224
|
+
return i && e.appendChild(i), e;
|
|
1223
1225
|
}
|
|
1224
|
-
createMobileNavigationActions(
|
|
1225
|
-
const
|
|
1226
|
-
return
|
|
1226
|
+
createMobileNavigationActions(t) {
|
|
1227
|
+
const e = document.createElement("div");
|
|
1228
|
+
return e.className = "point-card__mobile-navigation", e.appendChild(
|
|
1227
1229
|
this.createMobileNavigationLink(
|
|
1228
|
-
`https://www.google.com/maps/dir/?api=1&destination=${
|
|
1230
|
+
`https://www.google.com/maps/dir/?api=1&destination=${t.lat},${t.lng}&travelmode=driving`,
|
|
1229
1231
|
"Ir con Google Maps",
|
|
1230
1232
|
"fa-brands fa-google"
|
|
1231
1233
|
)
|
|
1232
|
-
),
|
|
1234
|
+
), e.appendChild(
|
|
1233
1235
|
this.createMobileNavigationLink(
|
|
1234
|
-
`https://waze.com/ul?ll=${
|
|
1236
|
+
`https://waze.com/ul?ll=${t.lat},${t.lng}&navigate=yes`,
|
|
1235
1237
|
"Ir con Waze",
|
|
1236
1238
|
"fa-brands fa-waze"
|
|
1237
1239
|
)
|
|
1238
|
-
),
|
|
1240
|
+
), e;
|
|
1239
1241
|
}
|
|
1240
|
-
createMobileNavigationLink(
|
|
1242
|
+
createMobileNavigationLink(t, e, n) {
|
|
1241
1243
|
const o = document.createElement("a");
|
|
1242
|
-
return o.href =
|
|
1244
|
+
return o.href = t, o.target = "_blank", o.rel = "noopener noreferrer", o.className = "point-card__mobile-nav-link", o.appendChild(this.createIconElement(n)), o.appendChild(document.createTextNode(e)), o;
|
|
1243
1245
|
}
|
|
1244
|
-
getZoneForPoint(
|
|
1245
|
-
const
|
|
1246
|
-
return
|
|
1246
|
+
getZoneForPoint(t) {
|
|
1247
|
+
const e = this.normalizeRegionName(t.region_name || "");
|
|
1248
|
+
return e && e in Y ? Y[e] : e.includes("metropolitana") ? "rm" : e.includes("araucania") || e.includes("rios") || e.includes("lagos") || e.includes("aysen") || e.includes("magallanes") ? "sur" : e.includes("arica") || e.includes("tarapaca") || e.includes("antofagasta") || e.includes("atacama") || e.includes("coquimbo") ? "norte" : "centro";
|
|
1247
1249
|
}
|
|
1248
|
-
normalizeRegionName(
|
|
1249
|
-
return
|
|
1250
|
+
normalizeRegionName(t) {
|
|
1251
|
+
return t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").trim();
|
|
1250
1252
|
}
|
|
1251
1253
|
getMarcaRequestValue() {
|
|
1252
|
-
var
|
|
1253
|
-
const
|
|
1254
|
-
return (
|
|
1254
|
+
var e;
|
|
1255
|
+
const t = this.normalizeBrandToken(this.marca);
|
|
1256
|
+
return (e = H[t]) != null ? e : this.marca;
|
|
1255
1257
|
}
|
|
1256
|
-
normalizeBrandKey(
|
|
1258
|
+
normalizeBrandKey(t) {
|
|
1257
1259
|
var n;
|
|
1258
|
-
const
|
|
1259
|
-
return
|
|
1260
|
+
const e = this.normalizeBrandToken(t);
|
|
1261
|
+
return e ? (n = H[e]) != null ? n : e : "default";
|
|
1260
1262
|
}
|
|
1261
|
-
normalizeBrandToken(
|
|
1262
|
-
return
|
|
1263
|
+
normalizeBrandToken(t) {
|
|
1264
|
+
return t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "");
|
|
1263
1265
|
}
|
|
1264
|
-
getMarkerIcon(
|
|
1265
|
-
const
|
|
1266
|
-
return n || (this.markerIconBaseUrl ? `${this.markerIconBaseUrl}${
|
|
1266
|
+
getMarkerIcon(t) {
|
|
1267
|
+
const e = this.marcaKey || "default", n = this.getLocalMarkerIconUrl(e, t);
|
|
1268
|
+
return n || (this.markerIconBaseUrl ? `${this.markerIconBaseUrl}${e}.png` : this.defaultMarkerIconUrl ? this.defaultMarkerIconUrl : null);
|
|
1267
1269
|
}
|
|
1268
|
-
getLocalMarkerIconUrl(
|
|
1269
|
-
var
|
|
1270
|
-
const n =
|
|
1271
|
-
return (
|
|
1270
|
+
getLocalMarkerIconUrl(t, e) {
|
|
1271
|
+
var s;
|
|
1272
|
+
const n = e ? Number(e.tipo) : NaN, a = (Number.isFinite(n) ? n : this.tipoCode) === 1 ? `${t}_distribuidor.png` : `${t}.png`;
|
|
1273
|
+
return (s = st[`../pin/${a}`]) != null ? s : null;
|
|
1272
1274
|
}
|
|
1273
|
-
getPointCoordinateWarning(
|
|
1274
|
-
if (this.getPointPosition(
|
|
1275
|
+
getPointCoordinateWarning(t) {
|
|
1276
|
+
if (this.getPointPosition(t))
|
|
1275
1277
|
return null;
|
|
1276
|
-
const
|
|
1277
|
-
return !Number.isFinite(
|
|
1278
|
+
const e = Number(t.lat), n = Number(t.lng), o = `lat ${t.lat || "sin dato"}, lng ${t.lng || "sin dato"}`;
|
|
1279
|
+
return !Number.isFinite(e) || !Number.isFinite(n) ? `Ubicacion por revisar: ${o}.` : `Ubicacion por revisar: ${o}.`;
|
|
1278
1280
|
}
|
|
1279
|
-
getPointPosition(
|
|
1280
|
-
const
|
|
1281
|
-
return this.isMappableCoordinate(
|
|
1281
|
+
getPointPosition(t) {
|
|
1282
|
+
const e = Number(t.lat), n = Number(t.lng);
|
|
1283
|
+
return this.isMappableCoordinate(e, n) ? { lat: e, lng: n } : null;
|
|
1282
1284
|
}
|
|
1283
|
-
isMappableCoordinate(
|
|
1284
|
-
return Number.isFinite(
|
|
1285
|
+
isMappableCoordinate(t, e) {
|
|
1286
|
+
return Number.isFinite(t) && Number.isFinite(e) && t >= T.minLat && t <= T.maxLat && e >= T.minLng && e <= T.maxLng;
|
|
1285
1287
|
}
|
|
1286
|
-
updateMarkers(
|
|
1287
|
-
const
|
|
1288
|
-
if (!
|
|
1288
|
+
updateMarkers(t) {
|
|
1289
|
+
const e = window.google;
|
|
1290
|
+
if (!e || !this.map)
|
|
1289
1291
|
return;
|
|
1290
1292
|
this.markers.forEach((a) => a.setMap(null)), this.markers = [];
|
|
1291
1293
|
const n = [];
|
|
1292
|
-
if (
|
|
1293
|
-
const
|
|
1294
|
-
|
|
1294
|
+
if (t.forEach((a) => {
|
|
1295
|
+
const s = this.getPointPosition(a);
|
|
1296
|
+
s && n.push({ point: a, position: s });
|
|
1295
1297
|
}), !n.length)
|
|
1296
1298
|
return;
|
|
1297
|
-
const o = new
|
|
1298
|
-
if (n.forEach(({ point: a, position:
|
|
1299
|
-
const { lat:
|
|
1300
|
-
url:
|
|
1301
|
-
scaledSize: new
|
|
1302
|
-
anchor: new
|
|
1303
|
-
} : void 0,
|
|
1299
|
+
const o = new e.maps.LatLngBounds();
|
|
1300
|
+
if (n.forEach(({ point: a, position: s }) => {
|
|
1301
|
+
const { lat: i, lng: l } = s, d = this.getMarkerIcon(a), h = d && this.map ? {
|
|
1302
|
+
url: d,
|
|
1303
|
+
scaledSize: new e.maps.Size(64, 64),
|
|
1304
|
+
anchor: new e.maps.Point(32, 64)
|
|
1305
|
+
} : void 0, m = new e.maps.Marker({
|
|
1304
1306
|
map: this.map,
|
|
1305
|
-
position: { lat:
|
|
1307
|
+
position: { lat: i, lng: l },
|
|
1306
1308
|
title: a.titulo,
|
|
1307
|
-
icon:
|
|
1309
|
+
icon: h
|
|
1308
1310
|
});
|
|
1309
|
-
|
|
1311
|
+
m.addListener("click", () => {
|
|
1310
1312
|
this.openPointModal(a), this.scrollToPointCard(a.id);
|
|
1311
|
-
}), this.markers.push(
|
|
1312
|
-
const g =
|
|
1313
|
+
}), this.markers.push(m);
|
|
1314
|
+
const g = m.getPosition();
|
|
1313
1315
|
g && o.extend(g);
|
|
1314
1316
|
}), !this.initialViewApplied && this.markers.length) {
|
|
1315
1317
|
const a = this.markers[0].getPosition();
|
|
@@ -1324,224 +1326,858 @@ const q = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAA
|
|
|
1324
1326
|
} else
|
|
1325
1327
|
this.map.fitBounds(o);
|
|
1326
1328
|
}
|
|
1327
|
-
openPointModal(
|
|
1328
|
-
var
|
|
1329
|
-
!this.pointModalOverlayEl || !this.pointModalTitleEl || !this.pointModalBodyEl || (this.pointModalTitleEl.textContent =
|
|
1329
|
+
openPointModal(t) {
|
|
1330
|
+
var e;
|
|
1331
|
+
!this.pointModalOverlayEl || !this.pointModalTitleEl || !this.pointModalBodyEl || (this.pointModalTitleEl.textContent = t.titulo || "Sin nombre", this.pointModalBodyEl.replaceChildren(this.createPointModalContent(t)), this.pointModalOverlayEl.removeAttribute("hidden"), (e = this.pointModalCloseButton) == null || e.focus());
|
|
1330
1332
|
}
|
|
1331
|
-
createPointModalContent(
|
|
1332
|
-
var
|
|
1333
|
-
const
|
|
1334
|
-
if (
|
|
1335
|
-
const
|
|
1336
|
-
|
|
1333
|
+
createPointModalContent(t) {
|
|
1334
|
+
var s;
|
|
1335
|
+
const e = document.createDocumentFragment();
|
|
1336
|
+
if (t.portada) {
|
|
1337
|
+
const i = document.createElement("img");
|
|
1338
|
+
i.className = "point-modal__cover", i.src = t.portada, i.alt = t.titulo || "Imagen del punto", i.loading = "lazy", i.addEventListener("error", () => i.remove(), { once: !0 }), e.appendChild(i);
|
|
1337
1339
|
}
|
|
1338
1340
|
const n = this.createPointModalSection();
|
|
1339
|
-
this.appendPointModalLine(n, "Direccion",
|
|
1341
|
+
this.appendPointModalLine(n, "Direccion", t.direccion), this.appendPointModalLine(n, "Comuna", t.comuna_name), this.appendPointModalLine(n, "Provincia", t.provincia_name), this.appendPointModalLine(n, "Region", t.region_name), this.appendPointModalLine(n, "RUT", t.rut), n.childElementCount && e.appendChild(n);
|
|
1340
1342
|
const o = this.createPointModalSection();
|
|
1341
|
-
if (this.appendPointModalLine(o, "Correo",
|
|
1342
|
-
const
|
|
1343
|
-
|
|
1344
|
-
const
|
|
1345
|
-
|
|
1346
|
-
const
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
}), o.appendChild(
|
|
1343
|
+
if (this.appendPointModalLine(o, "Correo", t.email), (s = t.telefonos) != null && s.length) {
|
|
1344
|
+
const i = document.createElement("p");
|
|
1345
|
+
i.className = "point-modal__line";
|
|
1346
|
+
const l = document.createElement("span");
|
|
1347
|
+
l.className = "point-modal__label", l.textContent = "Telefonos:", i.appendChild(l), o.appendChild(i);
|
|
1348
|
+
const d = document.createElement("ul");
|
|
1349
|
+
d.className = "point-modal__phone-list", t.telefonos.slice().sort((h, m) => h.orden - m.orden).forEach((h) => {
|
|
1350
|
+
d.appendChild(this.createPointModalPhoneItem(h));
|
|
1351
|
+
}), o.appendChild(d);
|
|
1350
1352
|
}
|
|
1351
|
-
if (o.childElementCount &&
|
|
1352
|
-
const
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
}),
|
|
1353
|
+
if (o.childElementCount && e.appendChild(o), t.adicional) {
|
|
1354
|
+
const i = this.createPointModalSection(), l = document.createElement("div");
|
|
1355
|
+
l.className = "point-modal__extra", l.innerHTML = t.adicional, l.querySelectorAll("a").forEach((d) => {
|
|
1356
|
+
d.target = "_blank", d.rel = "noopener noreferrer";
|
|
1357
|
+
}), i.appendChild(l), e.appendChild(i);
|
|
1356
1358
|
}
|
|
1357
|
-
const a = this.createPointModalActions(
|
|
1358
|
-
return a.childElementCount &&
|
|
1359
|
+
const a = this.createPointModalActions(t);
|
|
1360
|
+
return a.childElementCount && e.appendChild(a), e;
|
|
1359
1361
|
}
|
|
1360
1362
|
createPointModalSection() {
|
|
1361
|
-
const
|
|
1362
|
-
return
|
|
1363
|
+
const t = document.createElement("div");
|
|
1364
|
+
return t.className = "point-modal__section", t;
|
|
1363
1365
|
}
|
|
1364
|
-
appendPointModalLine(
|
|
1366
|
+
appendPointModalLine(t, e, n) {
|
|
1365
1367
|
const o = (n != null ? n : "").trim();
|
|
1366
1368
|
if (!o || o === "#")
|
|
1367
1369
|
return;
|
|
1368
1370
|
const a = document.createElement("p");
|
|
1369
1371
|
a.className = "point-modal__line";
|
|
1370
|
-
const
|
|
1371
|
-
|
|
1372
|
+
const s = document.createElement("span");
|
|
1373
|
+
s.className = "point-modal__label", s.textContent = `${e}: `, a.appendChild(s), a.appendChild(document.createTextNode(o)), t.appendChild(a);
|
|
1372
1374
|
}
|
|
1373
|
-
createPointModalPhoneItem(
|
|
1374
|
-
var
|
|
1375
|
-
const
|
|
1376
|
-
|
|
1375
|
+
createPointModalPhoneItem(t) {
|
|
1376
|
+
var s;
|
|
1377
|
+
const e = document.createElement("li");
|
|
1378
|
+
e.className = "point-modal__phone-item";
|
|
1377
1379
|
const n = document.createElement("span");
|
|
1378
|
-
n.className = "point-modal__label", n.textContent = `${
|
|
1379
|
-
const o = ((
|
|
1380
|
+
n.className = "point-modal__label", n.textContent = `${t.nombre || "Telefono"}: `, e.appendChild(n);
|
|
1381
|
+
const o = ((s = t.telefono) != null ? s : "").trim(), a = this.isWhatsappPhone(t) ? this.getWhatsappLink(o) : null;
|
|
1380
1382
|
if (a) {
|
|
1381
|
-
const
|
|
1382
|
-
|
|
1383
|
+
const i = document.createElement("a");
|
|
1384
|
+
i.href = a, i.target = "_blank", i.rel = "noopener noreferrer", i.className = "point-modal__link", i.textContent = o, e.appendChild(i);
|
|
1383
1385
|
} else
|
|
1384
|
-
|
|
1385
|
-
return
|
|
1386
|
+
e.appendChild(document.createTextNode(o));
|
|
1387
|
+
return e;
|
|
1386
1388
|
}
|
|
1387
|
-
createPointModalActions(
|
|
1388
|
-
const
|
|
1389
|
-
return
|
|
1389
|
+
createPointModalActions(t) {
|
|
1390
|
+
const e = document.createElement("div");
|
|
1391
|
+
return e.className = "point-modal__section point-modal__actions", t.url && t.url !== "#" && e.appendChild(this.createPointModalLink(t.url, "Sitio web")), t.googlelink && e.appendChild(this.createPointModalLink(t.googlelink, "Google Maps")), t.email && e.appendChild(this.createPointModalLink(`mailto:${t.email}`, "Enviar correo", !1)), e;
|
|
1390
1392
|
}
|
|
1391
|
-
createPointModalLink(
|
|
1393
|
+
createPointModalLink(t, e, n = !0) {
|
|
1392
1394
|
const o = document.createElement("a");
|
|
1393
|
-
return o.href =
|
|
1395
|
+
return o.href = t, o.className = "point-modal__link", o.textContent = e, n && (o.target = "_blank", o.rel = "noopener noreferrer"), o;
|
|
1394
1396
|
}
|
|
1395
|
-
setActiveZone(
|
|
1397
|
+
setActiveZone(t) {
|
|
1396
1398
|
}
|
|
1397
|
-
scrollToZoneSection(
|
|
1399
|
+
scrollToZoneSection(t) {
|
|
1398
1400
|
if (!this.zonesContainer)
|
|
1399
1401
|
return;
|
|
1400
|
-
const
|
|
1401
|
-
|
|
1402
|
+
const e = this.zonesContainer.querySelector(`[data-zone-section="${t}"]`);
|
|
1403
|
+
e && e.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
1402
1404
|
}
|
|
1403
1405
|
updateZoneButtons() {
|
|
1404
|
-
this.zoneButtons.forEach((
|
|
1405
|
-
const
|
|
1406
|
-
|
|
1406
|
+
this.zoneButtons.forEach((t) => {
|
|
1407
|
+
const e = t.dataset.zone, n = this.activeZone === e;
|
|
1408
|
+
t.classList.toggle("is-active", n), t.setAttribute("aria-pressed", String(n));
|
|
1407
1409
|
});
|
|
1408
1410
|
}
|
|
1409
1411
|
updateZoneButtonCounts() {
|
|
1410
|
-
this.zoneButtons.forEach((
|
|
1411
|
-
|
|
1412
|
-
const
|
|
1413
|
-
|
|
1412
|
+
this.zoneButtons.forEach((t) => {
|
|
1413
|
+
t.dataset.zone;
|
|
1414
|
+
const e = t.dataset.label || t.textContent || "";
|
|
1415
|
+
t.textContent = e;
|
|
1414
1416
|
});
|
|
1415
1417
|
}
|
|
1416
1418
|
updateZoneVisibility() {
|
|
1417
1419
|
if (!this.zonesContainer)
|
|
1418
1420
|
return;
|
|
1419
|
-
this.zonesContainer.querySelectorAll("[data-zone-section]").forEach((
|
|
1420
|
-
|
|
1421
|
+
this.zonesContainer.querySelectorAll("[data-zone-section]").forEach((e) => {
|
|
1422
|
+
e.removeAttribute("hidden");
|
|
1421
1423
|
});
|
|
1422
1424
|
}
|
|
1423
|
-
findNearestPoint(
|
|
1425
|
+
findNearestPoint(t, e) {
|
|
1424
1426
|
if (!this.points.length)
|
|
1425
1427
|
return null;
|
|
1426
1428
|
let n = null, o = 1 / 0;
|
|
1427
1429
|
return this.points.forEach((a) => {
|
|
1428
|
-
const
|
|
1429
|
-
if (!
|
|
1430
|
+
const s = this.getPointPosition(a);
|
|
1431
|
+
if (!s)
|
|
1430
1432
|
return;
|
|
1431
|
-
const
|
|
1432
|
-
|
|
1433
|
+
const i = this.haversine(t, e, s.lat, s.lng);
|
|
1434
|
+
i < o && (o = i, n = a);
|
|
1433
1435
|
}), n;
|
|
1434
1436
|
}
|
|
1435
|
-
haversine(
|
|
1436
|
-
const a = (
|
|
1437
|
-
return 6371e3 * (2 * Math.atan2(Math.sqrt(
|
|
1437
|
+
haversine(t, e, n, o) {
|
|
1438
|
+
const a = (m) => m * Math.PI / 180, i = a(n - t), l = a(o - e), d = Math.sin(i / 2) * Math.sin(i / 2) + Math.cos(a(t)) * Math.cos(a(n)) * Math.sin(l / 2) * Math.sin(l / 2);
|
|
1439
|
+
return 6371e3 * (2 * Math.atan2(Math.sqrt(d), Math.sqrt(1 - d)));
|
|
1438
1440
|
}
|
|
1439
|
-
scrollToPointCard(
|
|
1441
|
+
scrollToPointCard(t) {
|
|
1440
1442
|
if (!this.zonesContainer)
|
|
1441
1443
|
return;
|
|
1442
|
-
const
|
|
1443
|
-
|
|
1444
|
+
const e = this.zonesContainer.querySelector(`[data-point-id="${t}"]`);
|
|
1445
|
+
e && (e.scrollIntoView({ behavior: "smooth", block: "center" }), this.highlightPointCard(e));
|
|
1444
1446
|
}
|
|
1445
|
-
highlightPointCard(
|
|
1446
|
-
var
|
|
1447
|
-
this.highlightTimeout !== null && (clearTimeout(this.highlightTimeout), this.highlightTimeout = null), (
|
|
1447
|
+
highlightPointCard(t) {
|
|
1448
|
+
var e;
|
|
1449
|
+
this.highlightTimeout !== null && (clearTimeout(this.highlightTimeout), this.highlightTimeout = null), (e = this.zonesContainer) == null || e.querySelectorAll(".point-card--highlight").forEach((n) => {
|
|
1448
1450
|
n.classList.remove("point-card--highlight");
|
|
1449
|
-
}),
|
|
1450
|
-
|
|
1451
|
+
}), t.classList.add("point-card--highlight"), this.highlightTimeout = window.setTimeout(() => {
|
|
1452
|
+
t.classList.remove("point-card--highlight"), this.highlightTimeout = null;
|
|
1451
1453
|
}, 3500);
|
|
1452
1454
|
}
|
|
1453
|
-
setComponentState(
|
|
1455
|
+
setComponentState(t) {
|
|
1454
1456
|
if (!(!this.componentMessageEl || !this.mapLayoutEl))
|
|
1455
|
-
if (
|
|
1457
|
+
if (t === "ready")
|
|
1456
1458
|
this.componentMessageEl.setAttribute("hidden", ""), this.mapLayoutEl.removeAttribute("hidden");
|
|
1457
1459
|
else {
|
|
1458
|
-
const
|
|
1459
|
-
this.componentMessageEl.textContent =
|
|
1460
|
+
const e = t === "loading" ? "Cargando puntos..." : "Mapa temporalmente no disponible";
|
|
1461
|
+
this.componentMessageEl.textContent = e, this.componentMessageEl.removeAttribute("hidden"), this.mapLayoutEl.setAttribute("hidden", "");
|
|
1460
1462
|
}
|
|
1461
1463
|
}
|
|
1462
|
-
centerMapOnPoint(
|
|
1463
|
-
if (!window.google || !this.map || !Number.isFinite(
|
|
1464
|
+
centerMapOnPoint(t, e, n = 14) {
|
|
1465
|
+
if (!window.google || !this.map || !Number.isFinite(t) || !Number.isFinite(e))
|
|
1464
1466
|
return;
|
|
1465
|
-
const a = typeof this.map.getZoom == "function" ? this.map.getZoom() : null,
|
|
1466
|
-
this.animateMapPan(
|
|
1467
|
-
|
|
1467
|
+
const a = typeof this.map.getZoom == "function" ? this.map.getZoom() : null, s = !a || a < n;
|
|
1468
|
+
this.animateMapPan(t, e, () => {
|
|
1469
|
+
s && this.map.setZoom(n);
|
|
1468
1470
|
});
|
|
1469
1471
|
}
|
|
1470
|
-
async focusPointWithZoom(
|
|
1471
|
-
!window.google || !this.map || !Number.isFinite(
|
|
1472
|
-
this.animateMapPan(
|
|
1472
|
+
async focusPointWithZoom(t, e) {
|
|
1473
|
+
!window.google || !this.map || !Number.isFinite(t) || !Number.isFinite(e) || (await this.animateZoomTo(8, 800), await this.wait(500), await new Promise((o) => {
|
|
1474
|
+
this.animateMapPan(t, e, o);
|
|
1473
1475
|
}), await this.wait(500), await this.animateZoomTo(18, 800));
|
|
1474
1476
|
}
|
|
1475
|
-
wait(
|
|
1476
|
-
return new Promise((
|
|
1477
|
-
window.setTimeout(
|
|
1477
|
+
wait(t) {
|
|
1478
|
+
return new Promise((e) => {
|
|
1479
|
+
window.setTimeout(e, t);
|
|
1478
1480
|
});
|
|
1479
1481
|
}
|
|
1480
|
-
async animateZoomTo(
|
|
1482
|
+
async animateZoomTo(t, e = 600) {
|
|
1481
1483
|
if (!window.google || !this.map || typeof this.map.getZoom != "function" || typeof this.map.setZoom != "function")
|
|
1482
1484
|
return;
|
|
1483
1485
|
const o = this.map.getZoom();
|
|
1484
1486
|
if (!Number.isFinite(o)) {
|
|
1485
|
-
this.map.setZoom(
|
|
1487
|
+
this.map.setZoom(t);
|
|
1486
1488
|
return;
|
|
1487
1489
|
}
|
|
1488
|
-
const a =
|
|
1490
|
+
const a = t - o;
|
|
1489
1491
|
if (Math.abs(a) < 0.01) {
|
|
1490
|
-
this.map.setZoom(
|
|
1492
|
+
this.map.setZoom(t);
|
|
1491
1493
|
return;
|
|
1492
1494
|
}
|
|
1493
|
-
await new Promise((
|
|
1494
|
-
const
|
|
1495
|
-
const
|
|
1496
|
-
this.map.setZoom(Math.round(
|
|
1495
|
+
await new Promise((s) => {
|
|
1496
|
+
const i = performance.now(), l = (h) => 1 - Math.pow(1 - h, 3), d = (h) => {
|
|
1497
|
+
const m = h - i, g = Math.min(m / e, 1), f = l(g), r = o + a * f;
|
|
1498
|
+
this.map.setZoom(Math.round(r * 100) / 100), g < 1 ? requestAnimationFrame(d) : (this.map.setZoom(t), s());
|
|
1497
1499
|
};
|
|
1498
|
-
requestAnimationFrame(
|
|
1500
|
+
requestAnimationFrame(d);
|
|
1499
1501
|
});
|
|
1500
1502
|
}
|
|
1501
|
-
animateMapPan(
|
|
1503
|
+
animateMapPan(t, e, n) {
|
|
1502
1504
|
if (!window.google || !this.map)
|
|
1503
1505
|
return;
|
|
1504
1506
|
this.panAnimationFrame !== null && (cancelAnimationFrame(this.panAnimationFrame), this.panAnimationFrame = null);
|
|
1505
1507
|
const a = this.map.getCenter();
|
|
1506
1508
|
if (!a) {
|
|
1507
|
-
this.map.setCenter({ lat:
|
|
1509
|
+
this.map.setCenter({ lat: t, lng: e }), n == null || n();
|
|
1508
1510
|
return;
|
|
1509
1511
|
}
|
|
1510
|
-
const
|
|
1511
|
-
const
|
|
1512
|
-
this.map.setCenter({ lat:
|
|
1512
|
+
const s = a.lat(), i = a.lng(), l = t - s, d = e - i, h = 600, m = performance.now(), g = (r) => 1 - Math.pow(1 - r, 3), f = (r) => {
|
|
1513
|
+
const u = r - m, b = Math.min(u / h, 1), x = g(b), w = s + l * x, y = i + d * x;
|
|
1514
|
+
this.map.setCenter({ lat: w, lng: y }), b < 1 ? this.panAnimationFrame = requestAnimationFrame(f) : (this.panAnimationFrame = null, n == null || n());
|
|
1513
1515
|
};
|
|
1514
|
-
this.panAnimationFrame = requestAnimationFrame(
|
|
1516
|
+
this.panAnimationFrame = requestAnimationFrame(f);
|
|
1515
1517
|
}
|
|
1516
1518
|
static ensureFontAwesome() {
|
|
1517
|
-
if (
|
|
1519
|
+
if (A.fontAwesomeAttached)
|
|
1518
1520
|
return;
|
|
1519
|
-
if (document.querySelector(`link[href="${
|
|
1520
|
-
|
|
1521
|
+
if (document.querySelector(`link[href="${I}"]`)) {
|
|
1522
|
+
A.fontAwesomeAttached = !0;
|
|
1521
1523
|
return;
|
|
1522
1524
|
}
|
|
1523
|
-
const
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
}), document.head.appendChild(
|
|
1525
|
+
const e = document.createElement("link");
|
|
1526
|
+
e.rel = "stylesheet", e.href = I, e.crossOrigin = "anonymous", e.referrerPolicy = "no-referrer", e.addEventListener("load", () => {
|
|
1527
|
+
A.fontAwesomeAttached = !0;
|
|
1528
|
+
}), document.head.appendChild(e);
|
|
1527
1529
|
}
|
|
1528
|
-
createIconElement(
|
|
1529
|
-
const
|
|
1530
|
-
return
|
|
1530
|
+
createIconElement(t) {
|
|
1531
|
+
const e = document.createElement("i");
|
|
1532
|
+
return e.className = t, e.setAttribute("aria-hidden", "true"), e;
|
|
1531
1533
|
}
|
|
1532
|
-
isWhatsappPhone(
|
|
1533
|
-
return !!(
|
|
1534
|
+
isWhatsappPhone(t) {
|
|
1535
|
+
return !!(t.whatsapp || t.watshapp);
|
|
1534
1536
|
}
|
|
1535
|
-
getWhatsappLink(
|
|
1536
|
-
const
|
|
1537
|
-
return
|
|
1537
|
+
getWhatsappLink(t) {
|
|
1538
|
+
const e = t.replace(/\D+/g, "");
|
|
1539
|
+
return e ? `https://wa.me/${e}` : null;
|
|
1538
1540
|
}
|
|
1539
1541
|
};
|
|
1540
|
-
|
|
1541
|
-
let
|
|
1542
|
-
|
|
1542
|
+
c(A, "tag", "rs-map"), c(A, "googleMapsLoaderPromise", null), c(A, "pointsCacheDbPromise", null), c(A, "fontAwesomeAttached", !1);
|
|
1543
|
+
let _ = A;
|
|
1544
|
+
const pt = `<?xml version="1.0" encoding="utf-8"?>\r
|
|
1545
|
+
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->\r
|
|
1546
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r
|
|
1547
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve" style="fill: #ffffff;">\r
|
|
1548
|
+
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>\r
|
|
1549
|
+
<g><path d="M965.1,437.2c-24.9-8.4-52.2-8.7-78.1-13.5c-41.3-8.3-45.5-55.5-61.6-87c-17.4-27.9-1.8-58.7,17.9-80.2c16.7-22.2,45.4-50.8,21.8-78.9c-22.1-17.9-37.3-48.8-67.4-53.1c-30.2,2.7-50,30-74.7,45.2c-33.8,26.5-71.6-3.8-105.1-14.8c-30.2-6.9-45.2-36.2-45.6-65.2c-5.5-27.6-1.1-66.3-34.8-76.6c-36.1-3.3-99-13.6-104.1,37.7c-7.8,33.8-0.3,78.4-36.1,97.9c-30.8,10.5-59.5,30.1-92.3,31.9c-38.2-5.7-59.8-46-96.2-55.8c-32.6-2.2-48.3,31.8-70.7,49.7c-23.6,20.9-7.6,51.7,9.9,70.3c18.9,24.9,47.2,54.4,28.4,87.8c-16.4,31.3-19.6,75.8-57,89.7c-29.6,7.7-62.6,3.9-89.8,18.5c-25.6,30-28.1,94.8,5.4,120.4c36.3,14.9,84.8,0.8,111.7,35.3c13.3,29.6,28.4,59.5,35.6,91.1c-0.7,43.9-48.4,67.1-58.2,107.8c9.5,38.8,52.5,81.3,96.4,74.3c33.2-16.3,57.3-56.9,98.4-51.3c30.2,11.8,62.2,21.7,89.5,39.2c29.7,30.2,13.4,78.3,33.4,112.9c29.9,25.7,94.7,28.3,120.1-5.4c14.8-36.3,0.9-84.9,35.2-111.8c29.5-13.3,59.5-28.4,91-35.6c42.3,0,64.7,46,103.3,56c32.5,2.2,48.3-31.8,70.7-49.7c24.5-22.1,6.1-53.2-11.6-72.5c-18.9-24-45-53.3-26.7-85.6c16.4-31.3,19.6-75.7,57-89.6c29.6-7.7,62.6-4,89.8-18.5C996.1,527.5,998.6,462.7,965.1,437.2z M577.6,593.4c-21.6,18-49.5,28-77.5,27.9c-79.1,3-142.8-83.6-116.4-158.4c20.6-76,121.1-111.4,184.6-64.9C634.9,439.4,640,545.6,577.6,593.4z"/></g>\r
|
|
1550
|
+
</svg>`, ht = `<?xml version="1.0" encoding="utf-8"?>\r
|
|
1551
|
+
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->\r
|
|
1552
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r
|
|
1553
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve" style="fill: #ffffff;">\r
|
|
1554
|
+
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>\r
|
|
1555
|
+
<g><g><g><path d="M171.2,451.6c-89,0-161.2,72.2-161.2,161.2c0,89,72.2,161.2,161.2,161.2c65,0,120.9-38.6,146.4-94l38.3,29.5c0,0,281.5,2,296.9-6.7c0,0-34.9-95.4,9.4-135.7c4.7-4.2,10.5-9.1,17-14.2c-7.4,18.5-11.6,38.7-11.6,59.9c0,89,72.2,161.2,161.2,161.2c89,0,161.2-72.2,161.2-161.2c0-89.1-72.2-161.2-161.2-161.2c-1.5,0-2.9,0.2-4.3,0.2c11.6-7.6,19.1-12.3,19.1-12.3l-12.1-10.8c0,0,34.9-8,26.9-25.5c-8.1-17.5-92.7-122.3-92.7-122.3s15-32.2-16-55.1l-14.9,32.2c0,0-38-26.2-53.1-21.2c-15.1,5-37.8,7.6-44.8,18.6l-7,6.6c0,0-2,11.6,9.6,28.7c0,0,116.4,35.8,121.9,62c0,0,8.1,16.6-26.7,20.6l-7,9.1l-18.7,1l-33.7-77.1c0,0-32.3,8.6-48.9,21.7l2.5,13.1c0,0-135.5-92.2-263,44.3c0,0-94.2,27.2-160.2-56.4c0,0-1-27.2-160.2-22.2l11.1,11.6c0,0-11.1,1-15.6,8.1c-4.5,7,2.5,14.6,38.8,14.6c0,0,82.1,93.7,145.1,88.2l89.7,43.3l39.8,68c0,0,0.1,5.8,0.5,14.8c-9.2,2-19.6,4.2-30.6,6.5C302.9,497.9,242.5,451.6,171.2,451.6z M828.8,501c61.7,0,111.8,50.2,111.8,111.8c0,61.7-50.2,111.8-111.8,111.8c-61.7,0-111.8-50.2-111.8-111.8C717,551.2,767.1,501,828.8,501z M171.2,724.7c-61.6,0-111.8-50.2-111.8-111.8c0-61.7,50.2-111.8,111.8-111.8c47.4,0,87.9,29.7,104.1,71.4c-59.3,12.6-118.1,25.2-118.1,25.2l7.6,41.8l116.1-5.1C270.9,685.7,225.5,724.7,171.2,724.7z M364.8,630.6c3.3,11.2,7.6,20.1,13.2,23.9l-51.8,2c2.2-7.9,3.9-16.1,4.9-24.5L364.8,630.6z"/></g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></g>\r
|
|
1556
|
+
</svg>`, mt = "WhatsApp", ut = "Contactar por WhatsApp", gt = "compra de motos", ft = "En este momento no es posible atender su solicitud. Le invitamos a contactarnos dentro de nuestro horario de atencion.", O = "#25d366", At = "#000000", Z = "motorcycle", bt = "https://wa.me/", Ct = /* @__PURE__ */ Object.assign({
|
|
1557
|
+
"../ws/gear.svg": pt,
|
|
1558
|
+
"../ws/motorcycle.svg": ht
|
|
1559
|
+
}), xt = {
|
|
1560
|
+
gasgas: "#cb0d25",
|
|
1561
|
+
hqv: "#002550",
|
|
1562
|
+
ktm: "#ff6600",
|
|
1563
|
+
rs: "#000000",
|
|
1564
|
+
voge: "#000000"
|
|
1565
|
+
}, wt = {
|
|
1566
|
+
gas: "gasgas",
|
|
1567
|
+
gasgas: "gasgas",
|
|
1568
|
+
husqvarna: "hqv"
|
|
1569
|
+
}, yt = {
|
|
1570
|
+
0: 0,
|
|
1571
|
+
7: 0,
|
|
1572
|
+
dom: 0,
|
|
1573
|
+
domingo: 0,
|
|
1574
|
+
sun: 0,
|
|
1575
|
+
sunday: 0,
|
|
1576
|
+
1: 1,
|
|
1577
|
+
lun: 1,
|
|
1578
|
+
lunes: 1,
|
|
1579
|
+
mon: 1,
|
|
1580
|
+
monday: 1,
|
|
1581
|
+
2: 2,
|
|
1582
|
+
mar: 2,
|
|
1583
|
+
martes: 2,
|
|
1584
|
+
tue: 2,
|
|
1585
|
+
tuesday: 2,
|
|
1586
|
+
3: 3,
|
|
1587
|
+
mie: 3,
|
|
1588
|
+
miercoles: 3,
|
|
1589
|
+
wed: 3,
|
|
1590
|
+
wednesday: 3,
|
|
1591
|
+
4: 4,
|
|
1592
|
+
jue: 4,
|
|
1593
|
+
jueves: 4,
|
|
1594
|
+
thu: 4,
|
|
1595
|
+
thursday: 4,
|
|
1596
|
+
5: 5,
|
|
1597
|
+
vie: 5,
|
|
1598
|
+
viernes: 5,
|
|
1599
|
+
fri: 5,
|
|
1600
|
+
friday: 5,
|
|
1601
|
+
6: 6,
|
|
1602
|
+
sab: 6,
|
|
1603
|
+
sabado: 6,
|
|
1604
|
+
sat: 6,
|
|
1605
|
+
saturday: 6
|
|
1606
|
+
}, Et = {
|
|
1607
|
+
sun: 0,
|
|
1608
|
+
mon: 1,
|
|
1609
|
+
tue: 2,
|
|
1610
|
+
wed: 3,
|
|
1611
|
+
thu: 4,
|
|
1612
|
+
fri: 5,
|
|
1613
|
+
sat: 6
|
|
1614
|
+
}, vt = Object.fromEntries(
|
|
1615
|
+
Object.entries(Ct).map(([p, C]) => {
|
|
1616
|
+
var e, n;
|
|
1617
|
+
const t = (n = (e = p.split("/").pop()) == null ? void 0 : e.replace(/\.svg$/i, "")) != null ? n : "";
|
|
1618
|
+
return [P(t), Pt(C)];
|
|
1619
|
+
})
|
|
1620
|
+
);
|
|
1621
|
+
function Pt(p) {
|
|
1622
|
+
return p.replace(/<\?xml[\s\S]*?\?>\s*/i, "").replace(/<!DOCTYPE[\s\S]*?>\s*/i, "").replace(/<metadata>[\s\S]*?<\/metadata>\s*/i, "").replace(/<svg\b/i, '<svg class="menu-link-icon" aria-hidden="true" focusable="false"').replace(/style="fill:\s*#ffffff;?"/i, 'style="fill: currentColor;"');
|
|
1623
|
+
}
|
|
1624
|
+
function P(p) {
|
|
1625
|
+
return p.normalize("NFD").replace(/[\u0300-\u036f]/g, "").trim().toLowerCase().replace(/[^a-z0-9]+/g, "");
|
|
1626
|
+
}
|
|
1627
|
+
class Q extends HTMLElement {
|
|
1628
|
+
constructor() {
|
|
1629
|
+
super();
|
|
1630
|
+
c(this, "root");
|
|
1631
|
+
c(this, "buttonEl");
|
|
1632
|
+
c(this, "menuEl");
|
|
1633
|
+
c(this, "generatedOptionsEl");
|
|
1634
|
+
c(this, "customMenuSlotEl");
|
|
1635
|
+
c(this, "closedMessageEl");
|
|
1636
|
+
c(this, "closedMessageTextEl");
|
|
1637
|
+
c(this, "labelEl");
|
|
1638
|
+
c(this, "childrenObserver");
|
|
1639
|
+
c(this, "handleButtonClick", () => {
|
|
1640
|
+
this.menuEl.hidden && this.syncAttributesToState(), this.setMenuOpen(this.menuEl.hidden);
|
|
1641
|
+
});
|
|
1642
|
+
c(this, "handleMenuClick", (t) => {
|
|
1643
|
+
const e = t.composedPath();
|
|
1644
|
+
if (e.find((a) => a instanceof HTMLAnchorElement && a.getAttribute("aria-disabled") === "true")) {
|
|
1645
|
+
t.preventDefault();
|
|
1646
|
+
return;
|
|
1647
|
+
}
|
|
1648
|
+
e.find((a) => a instanceof HTMLAnchorElement || a instanceof HTMLButtonElement) && this.setMenuOpen(!1);
|
|
1649
|
+
});
|
|
1650
|
+
c(this, "handleCustomMenuSlotChange", () => {
|
|
1651
|
+
this.syncAttributesToState();
|
|
1652
|
+
});
|
|
1653
|
+
c(this, "handleChildrenMutation", () => {
|
|
1654
|
+
this.syncAttributesToState();
|
|
1655
|
+
});
|
|
1656
|
+
c(this, "handleDocumentClick", (t) => {
|
|
1657
|
+
this.menuEl.hidden || t.composedPath().includes(this) || this.setMenuOpen(!1);
|
|
1658
|
+
});
|
|
1659
|
+
c(this, "handleDocumentKeydown", (t) => {
|
|
1660
|
+
this.menuEl.hidden || t.key !== "Escape" || (this.setMenuOpen(!1), this.buttonEl.focus());
|
|
1661
|
+
});
|
|
1662
|
+
this.root = this.attachShadow({ mode: "open" }), this.root.innerHTML = `
|
|
1663
|
+
<style>
|
|
1664
|
+
:host {
|
|
1665
|
+
position: fixed;
|
|
1666
|
+
right: var(--rs-whatsapp-right, 24px);
|
|
1667
|
+
bottom: var(--rs-whatsapp-bottom, 24px);
|
|
1668
|
+
z-index: var(--rs-whatsapp-z-index, 9999);
|
|
1669
|
+
display: inline-block;
|
|
1670
|
+
--rs-whatsapp-brand-color: ${O};
|
|
1671
|
+
font-family: var(--rs-whatsapp-font-family, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
|
|
1672
|
+
}
|
|
1673
|
+
:host([position="bottom-left"]) {
|
|
1674
|
+
right: auto;
|
|
1675
|
+
left: var(--rs-whatsapp-left, 24px);
|
|
1676
|
+
bottom: var(--rs-whatsapp-bottom, 24px);
|
|
1677
|
+
top: auto;
|
|
1678
|
+
}
|
|
1679
|
+
:host([position="top-right"]) {
|
|
1680
|
+
right: var(--rs-whatsapp-right, 24px);
|
|
1681
|
+
left: auto;
|
|
1682
|
+
bottom: auto;
|
|
1683
|
+
top: var(--rs-whatsapp-top, 24px);
|
|
1684
|
+
}
|
|
1685
|
+
:host([position="top-left"]) {
|
|
1686
|
+
right: auto;
|
|
1687
|
+
left: var(--rs-whatsapp-left, 24px);
|
|
1688
|
+
bottom: auto;
|
|
1689
|
+
top: var(--rs-whatsapp-top, 24px);
|
|
1690
|
+
}
|
|
1691
|
+
.button {
|
|
1692
|
+
box-sizing: border-box;
|
|
1693
|
+
border: 0;
|
|
1694
|
+
width: var(--rs-whatsapp-size, 60px);
|
|
1695
|
+
min-width: var(--rs-whatsapp-size, 60px);
|
|
1696
|
+
height: var(--rs-whatsapp-size, 60px);
|
|
1697
|
+
display: inline-flex;
|
|
1698
|
+
align-items: center;
|
|
1699
|
+
justify-content: center;
|
|
1700
|
+
gap: 10px;
|
|
1701
|
+
border-radius: 999px;
|
|
1702
|
+
background: var(--rs-whatsapp-bg, ${O});
|
|
1703
|
+
color: var(--rs-whatsapp-color, #ffffff);
|
|
1704
|
+
box-shadow: var(--rs-whatsapp-shadow, 0 10px 24px rgb(0 0 0 / 22%));
|
|
1705
|
+
cursor: pointer;
|
|
1706
|
+
font: inherit;
|
|
1707
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
|
|
1708
|
+
outline: none;
|
|
1709
|
+
}
|
|
1710
|
+
.button:hover,
|
|
1711
|
+
.button:focus-visible {
|
|
1712
|
+
transform: translateY(-2px);
|
|
1713
|
+
filter: brightness(1.03);
|
|
1714
|
+
box-shadow: var(--rs-whatsapp-shadow-hover, 0 14px 28px rgb(0 0 0 / 26%));
|
|
1715
|
+
}
|
|
1716
|
+
.button:active {
|
|
1717
|
+
transform: translateY(0);
|
|
1718
|
+
}
|
|
1719
|
+
.icon-stack {
|
|
1720
|
+
width: calc(var(--rs-whatsapp-size, 60px) * 0.52);
|
|
1721
|
+
height: calc(var(--rs-whatsapp-size, 60px) * 0.52);
|
|
1722
|
+
position: relative;
|
|
1723
|
+
flex: 0 0 auto;
|
|
1724
|
+
display: block;
|
|
1725
|
+
}
|
|
1726
|
+
.icon-stack svg {
|
|
1727
|
+
position: absolute;
|
|
1728
|
+
inset: 0;
|
|
1729
|
+
width: 100%;
|
|
1730
|
+
height: 100%;
|
|
1731
|
+
display: block;
|
|
1732
|
+
transition: opacity 0.18s ease, transform 0.22s ease;
|
|
1733
|
+
}
|
|
1734
|
+
.whatsapp-icon {
|
|
1735
|
+
opacity: 1;
|
|
1736
|
+
transform: rotate(0deg) scale(1);
|
|
1737
|
+
}
|
|
1738
|
+
.close-icon {
|
|
1739
|
+
opacity: 0;
|
|
1740
|
+
transform: rotate(-90deg) scale(0.72);
|
|
1741
|
+
}
|
|
1742
|
+
:host([open]) .whatsapp-icon {
|
|
1743
|
+
opacity: 0;
|
|
1744
|
+
transform: rotate(90deg) scale(0.72);
|
|
1745
|
+
}
|
|
1746
|
+
:host([open]) .close-icon {
|
|
1747
|
+
opacity: 1;
|
|
1748
|
+
transform: rotate(0deg) scale(1);
|
|
1749
|
+
}
|
|
1750
|
+
.label {
|
|
1751
|
+
display: none;
|
|
1752
|
+
max-width: 180px;
|
|
1753
|
+
overflow: hidden;
|
|
1754
|
+
text-overflow: ellipsis;
|
|
1755
|
+
white-space: nowrap;
|
|
1756
|
+
font-size: 0.95rem;
|
|
1757
|
+
font-weight: 700;
|
|
1758
|
+
line-height: 1;
|
|
1759
|
+
}
|
|
1760
|
+
:host([show-label]) .button {
|
|
1761
|
+
width: auto;
|
|
1762
|
+
min-width: var(--rs-whatsapp-size, 60px);
|
|
1763
|
+
padding: 0 20px 0 16px;
|
|
1764
|
+
}
|
|
1765
|
+
:host([show-label]) .label {
|
|
1766
|
+
display: inline;
|
|
1767
|
+
}
|
|
1768
|
+
.menu {
|
|
1769
|
+
box-sizing: border-box;
|
|
1770
|
+
position: absolute;
|
|
1771
|
+
right: 0;
|
|
1772
|
+
bottom: calc(var(--rs-whatsapp-size, 60px) + 12px);
|
|
1773
|
+
width: min(var(--rs-whatsapp-menu-width, 280px), calc(100vw - 32px));
|
|
1774
|
+
padding: 8px;
|
|
1775
|
+
border: 1px solid var(--rs-whatsapp-menu-border, #e5e7eb);
|
|
1776
|
+
border-radius: var(--rs-whatsapp-menu-radius, 8px);
|
|
1777
|
+
background: var(--rs-whatsapp-menu-bg, #ffffff);
|
|
1778
|
+
color: var(--rs-whatsapp-menu-color, #111827);
|
|
1779
|
+
box-shadow: var(--rs-whatsapp-menu-shadow, 0 18px 38px rgb(0 0 0 / 18%));
|
|
1780
|
+
transform-origin: bottom right;
|
|
1781
|
+
}
|
|
1782
|
+
.menu[hidden] {
|
|
1783
|
+
display: none;
|
|
1784
|
+
}
|
|
1785
|
+
.menu-heading {
|
|
1786
|
+
padding: 10px 12px 12px;
|
|
1787
|
+
border-bottom: 1px solid var(--rs-whatsapp-menu-border, #e5e7eb);
|
|
1788
|
+
margin-bottom: 6px;
|
|
1789
|
+
text-align: center;
|
|
1790
|
+
}
|
|
1791
|
+
.menu-welcome,
|
|
1792
|
+
.menu-question {
|
|
1793
|
+
display: block;
|
|
1794
|
+
margin: 0;
|
|
1795
|
+
font-size: 0.92rem;
|
|
1796
|
+
font-weight: 600;
|
|
1797
|
+
line-height: 1.35;
|
|
1798
|
+
color: var(--rs-whatsapp-menu-muted, #4b5563);
|
|
1799
|
+
}
|
|
1800
|
+
.menu-brand {
|
|
1801
|
+
display: block;
|
|
1802
|
+
margin: 2px 0;
|
|
1803
|
+
font-size: 1.2rem;
|
|
1804
|
+
font-weight: 800;
|
|
1805
|
+
line-height: 1.2;
|
|
1806
|
+
color: var(--rs-whatsapp-menu-brand, #111827);
|
|
1807
|
+
}
|
|
1808
|
+
.menu-options {
|
|
1809
|
+
display: grid;
|
|
1810
|
+
gap: 2px;
|
|
1811
|
+
}
|
|
1812
|
+
.menu-options[hidden] {
|
|
1813
|
+
display: none;
|
|
1814
|
+
}
|
|
1815
|
+
.closed-message {
|
|
1816
|
+
margin: 0;
|
|
1817
|
+
padding: 14px 12px;
|
|
1818
|
+
border-radius: 6px;
|
|
1819
|
+
background: var(--rs-whatsapp-closed-bg, #f3f4f6);
|
|
1820
|
+
color: var(--rs-whatsapp-closed-color, #374151);
|
|
1821
|
+
font-size: 0.95rem;
|
|
1822
|
+
font-weight: 600;
|
|
1823
|
+
line-height: 1.35;
|
|
1824
|
+
text-align: center;
|
|
1825
|
+
white-space: pre-line;
|
|
1826
|
+
}
|
|
1827
|
+
.closed-message[hidden],
|
|
1828
|
+
slot[hidden] {
|
|
1829
|
+
display: none;
|
|
1830
|
+
}
|
|
1831
|
+
:host([position="bottom-left"]) .menu {
|
|
1832
|
+
right: auto;
|
|
1833
|
+
left: 0;
|
|
1834
|
+
transform-origin: bottom left;
|
|
1835
|
+
}
|
|
1836
|
+
:host([position="top-right"]) .menu {
|
|
1837
|
+
top: calc(var(--rs-whatsapp-size, 60px) + 12px);
|
|
1838
|
+
bottom: auto;
|
|
1839
|
+
transform-origin: top right;
|
|
1840
|
+
}
|
|
1841
|
+
:host([position="top-left"]) .menu {
|
|
1842
|
+
top: calc(var(--rs-whatsapp-size, 60px) + 12px);
|
|
1843
|
+
right: auto;
|
|
1844
|
+
bottom: auto;
|
|
1845
|
+
left: 0;
|
|
1846
|
+
transform-origin: top left;
|
|
1847
|
+
}
|
|
1848
|
+
.menu-link,
|
|
1849
|
+
::slotted(a),
|
|
1850
|
+
::slotted(button) {
|
|
1851
|
+
box-sizing: border-box;
|
|
1852
|
+
width: 100%;
|
|
1853
|
+
min-height: 44px;
|
|
1854
|
+
display: flex;
|
|
1855
|
+
align-items: center;
|
|
1856
|
+
gap: 10px;
|
|
1857
|
+
padding: 12px 14px;
|
|
1858
|
+
border: 0;
|
|
1859
|
+
border-radius: 6px;
|
|
1860
|
+
background: transparent;
|
|
1861
|
+
color: inherit;
|
|
1862
|
+
font: inherit;
|
|
1863
|
+
font-size: 0.95rem;
|
|
1864
|
+
font-weight: 700;
|
|
1865
|
+
line-height: 1.2;
|
|
1866
|
+
text-align: left;
|
|
1867
|
+
text-decoration: none;
|
|
1868
|
+
cursor: pointer;
|
|
1869
|
+
}
|
|
1870
|
+
.menu-link:hover,
|
|
1871
|
+
.menu-link:focus-visible,
|
|
1872
|
+
::slotted(a:hover),
|
|
1873
|
+
::slotted(a:focus-visible),
|
|
1874
|
+
::slotted(button:hover),
|
|
1875
|
+
::slotted(button:focus-visible) {
|
|
1876
|
+
background: var(--rs-whatsapp-menu-hover-bg, #f3f4f6);
|
|
1877
|
+
outline: none;
|
|
1878
|
+
}
|
|
1879
|
+
.menu-link[aria-disabled="true"] {
|
|
1880
|
+
cursor: not-allowed;
|
|
1881
|
+
opacity: 0.62;
|
|
1882
|
+
}
|
|
1883
|
+
.menu-link-icon {
|
|
1884
|
+
width: 44px;
|
|
1885
|
+
height: 32px;
|
|
1886
|
+
flex: 0 0 auto;
|
|
1887
|
+
color: var(--rs-whatsapp-menu-icon-color, var(--rs-whatsapp-brand-color));
|
|
1888
|
+
}
|
|
1889
|
+
@media (max-width: 640px) {
|
|
1890
|
+
:host {
|
|
1891
|
+
right: var(--rs-whatsapp-mobile-right, 16px);
|
|
1892
|
+
bottom: var(--rs-whatsapp-mobile-bottom, 16px);
|
|
1893
|
+
}
|
|
1894
|
+
:host([position="bottom-left"]) {
|
|
1895
|
+
left: var(--rs-whatsapp-mobile-left, 16px);
|
|
1896
|
+
}
|
|
1897
|
+
:host([position="top-right"]) {
|
|
1898
|
+
top: var(--rs-whatsapp-mobile-top, 16px);
|
|
1899
|
+
}
|
|
1900
|
+
:host([position="top-left"]) {
|
|
1901
|
+
left: var(--rs-whatsapp-mobile-left, 16px);
|
|
1902
|
+
top: var(--rs-whatsapp-mobile-top, 16px);
|
|
1903
|
+
}
|
|
1904
|
+
:host([show-label]) .label {
|
|
1905
|
+
max-width: 120px;
|
|
1906
|
+
}
|
|
1907
|
+
}
|
|
1908
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1909
|
+
.button,
|
|
1910
|
+
.icon-stack svg {
|
|
1911
|
+
transition: none;
|
|
1912
|
+
}
|
|
1913
|
+
}
|
|
1914
|
+
</style>
|
|
1915
|
+
<div class="menu" role="dialog" aria-labelledby="rs-whatsapp-menu-title" hidden>
|
|
1916
|
+
<div class="menu-heading" id="rs-whatsapp-menu-title">
|
|
1917
|
+
<span class="menu-welcome">Bienvenido a</span>
|
|
1918
|
+
<span class="menu-brand">RS-SHOP</span>
|
|
1919
|
+
<span class="menu-question">¿En que te podemos ayudar?</span>
|
|
1920
|
+
</div>
|
|
1921
|
+
<div class="closed-message" data-closed-message hidden>
|
|
1922
|
+
<slot name="fuera-horario">
|
|
1923
|
+
<span data-closed-message-text></span>
|
|
1924
|
+
</slot>
|
|
1925
|
+
</div>
|
|
1926
|
+
<div class="menu-options" data-generated-options></div>
|
|
1927
|
+
<slot name="menu"></slot>
|
|
1928
|
+
</div>
|
|
1929
|
+
<button class="button" type="button" aria-haspopup="dialog" aria-expanded="false">
|
|
1930
|
+
<span class="icon-stack" aria-hidden="true">
|
|
1931
|
+
<svg class="whatsapp-icon" viewBox="0 0 448 512" focusable="false">
|
|
1932
|
+
<path fill="currentColor" d="M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z" />
|
|
1933
|
+
</svg>
|
|
1934
|
+
<svg class="close-icon" viewBox="0 0 24 24" focusable="false">
|
|
1935
|
+
<path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.6" d="M6 6l12 12M18 6L6 18" />
|
|
1936
|
+
</svg>
|
|
1937
|
+
</span>
|
|
1938
|
+
<span class="label"></span>
|
|
1939
|
+
</button>
|
|
1940
|
+
`;
|
|
1941
|
+
}
|
|
1942
|
+
static get observedAttributes() {
|
|
1943
|
+
return [
|
|
1944
|
+
"telefono",
|
|
1945
|
+
"mensaje",
|
|
1946
|
+
"label",
|
|
1947
|
+
"menu-label",
|
|
1948
|
+
"aria-label",
|
|
1949
|
+
"position",
|
|
1950
|
+
"show-label",
|
|
1951
|
+
"target",
|
|
1952
|
+
"marca",
|
|
1953
|
+
"icon",
|
|
1954
|
+
"horario",
|
|
1955
|
+
"fuera-horario",
|
|
1956
|
+
"mensaje-fuera-horario",
|
|
1957
|
+
"time-zone"
|
|
1958
|
+
];
|
|
1959
|
+
}
|
|
1960
|
+
connectedCallback() {
|
|
1961
|
+
this.buttonEl = this.root.querySelector("button"), this.menuEl = this.root.querySelector(".menu"), this.generatedOptionsEl = this.root.querySelector("[data-generated-options]"), this.customMenuSlotEl = this.root.querySelector('slot[name="menu"]'), this.closedMessageEl = this.root.querySelector("[data-closed-message]"), this.closedMessageTextEl = this.root.querySelector("[data-closed-message-text]"), this.labelEl = this.root.querySelector(".label"), this.buttonEl.addEventListener("click", this.handleButtonClick), this.menuEl.addEventListener("click", this.handleMenuClick), this.customMenuSlotEl.addEventListener("slotchange", this.handleCustomMenuSlotChange), document.addEventListener("click", this.handleDocumentClick), document.addEventListener("keydown", this.handleDocumentKeydown), this.childrenObserver = new MutationObserver(this.handleChildrenMutation), this.childrenObserver.observe(this, {
|
|
1962
|
+
childList: !0,
|
|
1963
|
+
subtree: !0,
|
|
1964
|
+
characterData: !0,
|
|
1965
|
+
attributes: !0,
|
|
1966
|
+
attributeFilter: ["label", "telefono", "mensaje", "target", "icon", "dias", "desde", "hasta"]
|
|
1967
|
+
}), this.syncAttributesToState();
|
|
1968
|
+
}
|
|
1969
|
+
disconnectedCallback() {
|
|
1970
|
+
var t, e, n, o;
|
|
1971
|
+
(t = this.buttonEl) == null || t.removeEventListener("click", this.handleButtonClick), (e = this.menuEl) == null || e.removeEventListener("click", this.handleMenuClick), (n = this.customMenuSlotEl) == null || n.removeEventListener("slotchange", this.handleCustomMenuSlotChange), document.removeEventListener("click", this.handleDocumentClick), document.removeEventListener("keydown", this.handleDocumentKeydown), (o = this.childrenObserver) == null || o.disconnect();
|
|
1972
|
+
}
|
|
1973
|
+
attributeChangedCallback() {
|
|
1974
|
+
this.isConnected && this.syncAttributesToState();
|
|
1975
|
+
}
|
|
1976
|
+
syncAttributesToState() {
|
|
1977
|
+
var i, l, d, h, m;
|
|
1978
|
+
const t = ((i = this.getAttribute("label")) != null ? i : "").trim() || mt, e = ((l = this.getAttribute("menu-label")) != null ? l : "").trim() || gt, n = ((d = this.getAttribute("aria-label")) != null ? d : "").trim() || ut, o = ((h = this.getAttribute("target")) != null ? h : "_blank").trim() || "_blank", a = ((m = this.getAttribute("icon")) != null ? m : Z).trim() || Z, s = this.isOutsideBusinessHours();
|
|
1979
|
+
if (this.labelEl.textContent = t, this.buttonEl.setAttribute("aria-label", n), this.buttonEl.setAttribute("title", n), this.syncBrandVariant(), this.closedMessageTextEl.textContent = this.getClosedMessage(), this.closedMessageEl.hidden = !s, this.customMenuSlotEl.hidden = s, s) {
|
|
1980
|
+
this.generatedOptionsEl.hidden = !0, this.generatedOptionsEl.replaceChildren();
|
|
1981
|
+
return;
|
|
1982
|
+
}
|
|
1983
|
+
this.renderMenuOptions(e, o, a);
|
|
1984
|
+
}
|
|
1985
|
+
buildWhatsappUrl(t, e) {
|
|
1986
|
+
const n = this.sanitizePhone(t);
|
|
1987
|
+
if (!n)
|
|
1988
|
+
return "";
|
|
1989
|
+
const o = (e != null ? e : "").trim(), a = o ? `?text=${encodeURIComponent(o)}` : "";
|
|
1990
|
+
return `${bt}${n}${a}`;
|
|
1991
|
+
}
|
|
1992
|
+
sanitizePhone(t) {
|
|
1993
|
+
return (t != null ? t : "").replace(/[^\d]/g, "");
|
|
1994
|
+
}
|
|
1995
|
+
syncBrandVariant() {
|
|
1996
|
+
var o, a;
|
|
1997
|
+
const t = ((o = this.getAttribute("marca")) != null ? o : "").trim();
|
|
1998
|
+
if (!t) {
|
|
1999
|
+
this.style.setProperty("--rs-whatsapp-brand-color", O);
|
|
2000
|
+
return;
|
|
2001
|
+
}
|
|
2002
|
+
const e = this.normalizeBrandKey(t), n = (a = xt[e]) != null ? a : At;
|
|
2003
|
+
this.style.setProperty("--rs-whatsapp-brand-color", n);
|
|
2004
|
+
}
|
|
2005
|
+
normalizeBrandKey(t) {
|
|
2006
|
+
var n;
|
|
2007
|
+
const e = P(t);
|
|
2008
|
+
return (n = wt[e]) != null ? n : e;
|
|
2009
|
+
}
|
|
2010
|
+
renderMenuOptions(t, e, n) {
|
|
2011
|
+
if (this.customMenuSlotEl.assignedElements({ flatten: !0 }).length > 0) {
|
|
2012
|
+
this.generatedOptionsEl.hidden = !0, this.generatedOptionsEl.replaceChildren();
|
|
2013
|
+
return;
|
|
2014
|
+
}
|
|
2015
|
+
const s = this.getWhatsappOptions(t, e, n).filter((i) => this.sanitizePhone(i.telefono)).map((i) => this.createMenuLink(i));
|
|
2016
|
+
this.generatedOptionsEl.replaceChildren(...s), this.generatedOptionsEl.hidden = !1;
|
|
2017
|
+
}
|
|
2018
|
+
getWhatsappOptions(t, e, n) {
|
|
2019
|
+
var a, s;
|
|
2020
|
+
const o = Array.from(this.querySelectorAll(D.tag));
|
|
2021
|
+
return o.length ? o.map((i) => {
|
|
2022
|
+
var l, d, h, m, g, f;
|
|
2023
|
+
return {
|
|
2024
|
+
label: ((d = (l = i.getAttribute("label")) != null ? l : i.textContent) != null ? d : "").trim() || t,
|
|
2025
|
+
telefono: ((h = i.getAttribute("telefono")) != null ? h : "").trim(),
|
|
2026
|
+
mensaje: ((m = i.getAttribute("mensaje")) != null ? m : "").trim(),
|
|
2027
|
+
target: ((g = i.getAttribute("target")) != null ? g : e).trim() || e,
|
|
2028
|
+
icon: ((f = i.getAttribute("icon")) != null ? f : n).trim() || n
|
|
2029
|
+
};
|
|
2030
|
+
}) : [
|
|
2031
|
+
{
|
|
2032
|
+
label: t,
|
|
2033
|
+
telefono: ((a = this.getAttribute("telefono")) != null ? a : "").trim(),
|
|
2034
|
+
mensaje: ((s = this.getAttribute("mensaje")) != null ? s : "").trim(),
|
|
2035
|
+
target: e,
|
|
2036
|
+
icon: n
|
|
2037
|
+
}
|
|
2038
|
+
];
|
|
2039
|
+
}
|
|
2040
|
+
createMenuLink(t) {
|
|
2041
|
+
const e = document.createElement("a"), n = document.createElement("span"), o = this.buildWhatsappUrl(t.telefono, t.mensaje);
|
|
2042
|
+
e.className = "menu-link", e.rel = "noopener noreferrer", e.target = t.target, n.className = "menu-label", n.textContent = t.label;
|
|
2043
|
+
const a = this.createOptionIcon(t.icon);
|
|
2044
|
+
return a && e.append(a), e.append(n), o ? (e.href = o, e.tabIndex = 0, e) : (e.setAttribute("aria-disabled", "true"), e.tabIndex = -1, e);
|
|
2045
|
+
}
|
|
2046
|
+
createOptionIcon(t) {
|
|
2047
|
+
var a, s;
|
|
2048
|
+
const e = P(t), n = e === "none" ? "" : vt[e || Z];
|
|
2049
|
+
if (!n)
|
|
2050
|
+
return null;
|
|
2051
|
+
const o = document.createElement("template");
|
|
2052
|
+
return o.innerHTML = n, (s = (a = o.content.firstElementChild) == null ? void 0 : a.cloneNode(!0)) != null ? s : document.createElement("span");
|
|
2053
|
+
}
|
|
2054
|
+
getClosedMessage() {
|
|
2055
|
+
var n;
|
|
2056
|
+
const t = ((n = this.getAttribute("mensaje-fuera-horario")) != null ? n : "").trim() || ft, e = this.getScheduleSummary();
|
|
2057
|
+
return e ? `${t}
|
|
2058
|
+
Horario de atencion:
|
|
2059
|
+
${e}` : t;
|
|
2060
|
+
}
|
|
2061
|
+
isOutsideBusinessHours() {
|
|
2062
|
+
const t = this.getAttribute("fuera-horario");
|
|
2063
|
+
if (t !== null) {
|
|
2064
|
+
const n = P(t);
|
|
2065
|
+
return n !== "false" && n !== "0" && n !== "no";
|
|
2066
|
+
}
|
|
2067
|
+
const e = this.getScheduleSegments().join(";");
|
|
2068
|
+
return e ? !this.isWithinBusinessHours(e) : !1;
|
|
2069
|
+
}
|
|
2070
|
+
getScheduleSegments() {
|
|
2071
|
+
var e;
|
|
2072
|
+
const t = Array.from(this.querySelectorAll(M.tag));
|
|
2073
|
+
return t.length ? t.map((n) => {
|
|
2074
|
+
var i, l, d;
|
|
2075
|
+
const o = ((i = n.getAttribute("dias")) != null ? i : "").trim(), a = ((l = n.getAttribute("desde")) != null ? l : "").trim(), s = ((d = n.getAttribute("hasta")) != null ? d : "").trim();
|
|
2076
|
+
return !o || !a || !s ? "" : `${o} ${a}-${s}`;
|
|
2077
|
+
}).filter(Boolean) : ((e = this.getAttribute("horario")) != null ? e : "").split(";").map((n) => n.trim()).filter(Boolean);
|
|
2078
|
+
}
|
|
2079
|
+
getScheduleSummary() {
|
|
2080
|
+
var e;
|
|
2081
|
+
const t = Array.from(this.querySelectorAll(M.tag));
|
|
2082
|
+
return t.length ? t.map((n) => {
|
|
2083
|
+
var i, l, d;
|
|
2084
|
+
const o = ((i = n.getAttribute("dias")) != null ? i : "").trim(), a = ((l = n.getAttribute("desde")) != null ? l : "").trim(), s = ((d = n.getAttribute("hasta")) != null ? d : "").trim();
|
|
2085
|
+
return !o || !a || !s ? "" : `${o} ${a}-${s}`;
|
|
2086
|
+
}).filter(Boolean).join(`
|
|
2087
|
+
`) : ((e = this.getAttribute("horario")) != null ? e : "").split(";").map((n) => n.trim()).filter(Boolean).join(`
|
|
2088
|
+
`);
|
|
2089
|
+
}
|
|
2090
|
+
isWithinBusinessHours(t) {
|
|
2091
|
+
const e = this.getCurrentTimeParts();
|
|
2092
|
+
return t.split(";").some((n) => this.isScheduleSegmentActive(n, e.day, e.minutes));
|
|
2093
|
+
}
|
|
2094
|
+
getCurrentTimeParts() {
|
|
2095
|
+
var e, n, o, a, s, i;
|
|
2096
|
+
const t = ((e = this.getAttribute("time-zone")) != null ? e : "").trim();
|
|
2097
|
+
if (!t) {
|
|
2098
|
+
const l = /* @__PURE__ */ new Date();
|
|
2099
|
+
return {
|
|
2100
|
+
day: l.getDay(),
|
|
2101
|
+
minutes: l.getHours() * 60 + l.getMinutes()
|
|
2102
|
+
};
|
|
2103
|
+
}
|
|
2104
|
+
try {
|
|
2105
|
+
const l = /* @__PURE__ */ new Date(), d = new Intl.DateTimeFormat("en-US", {
|
|
2106
|
+
timeZone: t,
|
|
2107
|
+
weekday: "short"
|
|
2108
|
+
}).format(l).toLowerCase(), h = new Intl.DateTimeFormat("en-US", {
|
|
2109
|
+
timeZone: t,
|
|
2110
|
+
hour12: !1,
|
|
2111
|
+
hour: "2-digit",
|
|
2112
|
+
minute: "2-digit"
|
|
2113
|
+
}).formatToParts(l), m = Number((o = (n = h.find((f) => f.type === "hour")) == null ? void 0 : n.value) != null ? o : 0) % 24, g = Number((s = (a = h.find((f) => f.type === "minute")) == null ? void 0 : a.value) != null ? s : 0);
|
|
2114
|
+
return {
|
|
2115
|
+
day: (i = Et[d]) != null ? i : l.getDay(),
|
|
2116
|
+
minutes: m * 60 + g
|
|
2117
|
+
};
|
|
2118
|
+
} catch {
|
|
2119
|
+
const l = /* @__PURE__ */ new Date();
|
|
2120
|
+
return {
|
|
2121
|
+
day: l.getDay(),
|
|
2122
|
+
minutes: l.getHours() * 60 + l.getMinutes()
|
|
2123
|
+
};
|
|
2124
|
+
}
|
|
2125
|
+
}
|
|
2126
|
+
isScheduleSegmentActive(t, e, n) {
|
|
2127
|
+
const o = t.trim().normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().match(/^(.+?)\s+(\d{1,2}:\d{2})\s*-\s*(\d{1,2}:\d{2})$/);
|
|
2128
|
+
if (!o)
|
|
2129
|
+
return !1;
|
|
2130
|
+
const a = this.parseScheduleDays(o[1]), s = this.parseScheduleTime(o[2]), i = this.parseScheduleTime(o[3]);
|
|
2131
|
+
return !a.includes(e) || s === null || i === null ? !1 : s <= i ? n >= s && n <= i : n >= s || n <= i;
|
|
2132
|
+
}
|
|
2133
|
+
parseScheduleDays(t) {
|
|
2134
|
+
const e = t.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/\s+/g, "");
|
|
2135
|
+
return e === "*" || e === "todos" || e === "all" ? [0, 1, 2, 3, 4, 5, 6] : e.split(",").flatMap((n) => {
|
|
2136
|
+
const [o, a] = n.split("-"), s = this.parseScheduleDay(o), i = a ? this.parseScheduleDay(a) : s;
|
|
2137
|
+
if (s === null || i === null)
|
|
2138
|
+
return [];
|
|
2139
|
+
if (s === i)
|
|
2140
|
+
return [s];
|
|
2141
|
+
const l = [];
|
|
2142
|
+
let d = s;
|
|
2143
|
+
for (; ; ) {
|
|
2144
|
+
if (l.push(d), d === i)
|
|
2145
|
+
return l;
|
|
2146
|
+
d = (d + 1) % 7;
|
|
2147
|
+
}
|
|
2148
|
+
});
|
|
2149
|
+
}
|
|
2150
|
+
parseScheduleDay(t) {
|
|
2151
|
+
var n;
|
|
2152
|
+
if (!t)
|
|
2153
|
+
return null;
|
|
2154
|
+
const e = P(t);
|
|
2155
|
+
return (n = yt[e]) != null ? n : null;
|
|
2156
|
+
}
|
|
2157
|
+
parseScheduleTime(t) {
|
|
2158
|
+
const [e, n] = t.split(":"), o = Number(e), a = Number(n);
|
|
2159
|
+
return !Number.isInteger(o) || !Number.isInteger(a) || o < 0 || o > 23 || a < 0 || a > 59 ? null : o * 60 + a;
|
|
2160
|
+
}
|
|
2161
|
+
setMenuOpen(t) {
|
|
2162
|
+
this.menuEl.hidden = !t, this.buttonEl.setAttribute("aria-expanded", String(t)), this.toggleAttribute("open", t);
|
|
2163
|
+
}
|
|
2164
|
+
}
|
|
2165
|
+
c(Q, "tag", "rs-whatsapp");
|
|
2166
|
+
class D extends HTMLElement {
|
|
2167
|
+
}
|
|
2168
|
+
c(D, "tag", "rs-whatsapp-option");
|
|
2169
|
+
class M extends HTMLElement {
|
|
2170
|
+
}
|
|
2171
|
+
c(M, "tag", "rs-whatsapp-schedule");
|
|
2172
|
+
F(_.tag, _);
|
|
2173
|
+
F(D.tag, D);
|
|
2174
|
+
F(M.tag, M);
|
|
2175
|
+
F(Q.tag, Q);
|
|
1543
2176
|
export {
|
|
1544
|
-
|
|
1545
|
-
Q as
|
|
2177
|
+
_ as RsMap,
|
|
2178
|
+
Q as RsWhatsapp,
|
|
2179
|
+
D as RsWhatsappOption,
|
|
2180
|
+
M as RsWhatsappSchedule,
|
|
2181
|
+
F as safeDefine
|
|
1546
2182
|
};
|
|
1547
2183
|
//# sourceMappingURL=rs-components.es.js.map
|