@rsltda/components 1.0.15 → 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.
@@ -1,10 +1,10 @@
1
- var D = Object.defineProperty;
2
- var q = (p, _, t) => _ in p ? D(p, _, { enumerable: !0, configurable: !0, writable: !0, value: t }) : p[_] = t;
3
- var r = (p, _, t) => q(p, typeof _ != "symbol" ? _ + "" : _, t);
4
- function U(p, _) {
5
- customElements.get(p) || customElements.define(p, _);
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 O = /* @__PURE__ */ Object.assign({
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
8
  "../json/PuntosMapas_gasgas_0.json": () => import("./PuntosMapas_gasgas_0-CjccjpQ8.js").then((p) => p.default),
9
9
  "../json/PuntosMapas_gasgas_1.json": () => import("./PuntosMapas_gasgas_1-inakGBZ_.js").then((p) => p.default),
10
10
  "../json/PuntosMapas_hqv_0.json": () => import("./PuntosMapas_hqv_0-OSIxCcrz.js").then((p) => p.default),
@@ -13,20 +13,41 @@ const O = /* @__PURE__ */ Object.assign({
13
13
  "../json/PuntosMapas_ktm_1.json": () => import("./PuntosMapas_ktm_1-DCq6GRnp.js").then((p) => p.default),
14
14
  "../json/PuntosMapas_voge_0.json": () => import("./PuntosMapas_voge_0-DL0EWJWf.js").then((p) => p.default),
15
15
  "../json/PuntosMapas_voge_1.json": () => import("./PuntosMapas_voge_1-Clawdtrj.js").then((p) => p.default)
16
- }), I = "#1e88e5", S = "/assets/fontawesome/css/all.min.css", F = "https://cdn.rsltda.cl/logos/marker/", B = "https://ap2.rs-shop.cl/web/PuntosMapas", R = {
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 = {
28
+ gasgas: "#cb0d25",
17
29
  ktm: "#ff6600"
18
- }, z = {
30
+ }, H = {
31
+ gas: "gasgas",
32
+ gasgas: "gasgas",
33
+ husqvarna: "hqv"
34
+ }, N = {
19
35
  sucursal: 0,
20
36
  distribuidor: 1
21
- }, j = ["norte", "rm", "centro", "sur"], $ = {
37
+ }, lt = ["norte", "rm", "centro", "sur"], ct = {
22
38
  norte: "Zona Norte",
23
39
  rm: "RM",
24
40
  centro: "Zona Centro",
25
41
  sur: "Zona Sur"
26
- }, N = {
42
+ }, L = {
27
43
  0: "Sucursales",
28
44
  1: "Distribuidores"
29
- }, T = 720 * 60 * 60 * 1e3, G = "rs-map-cache", E = "points", Z = {
45
+ }, T = {
46
+ minLat: -56.5,
47
+ maxLat: -17,
48
+ minLng: -76,
49
+ maxLng: -66
50
+ }, R = 720 * 60 * 60 * 1e3, dt = "rs-map-cache", v = "points", Y = {
30
51
  "region de arica y parinacota": "norte",
31
52
  "arica y parinacota": "norte",
32
53
  "region de tarapaca": "norte",
@@ -64,71 +85,90 @@ const O = /* @__PURE__ */ Object.assign({
64
85
  aysen: "sur",
65
86
  "region de magallanes y la antartica chilena": "sur",
66
87
  magallanes: "sur"
67
- }, u = class u extends HTMLElement {
88
+ }, A = class A extends HTMLElement {
68
89
  constructor() {
69
90
  super();
70
- r(this, "root");
71
- r(this, "mapEl");
72
- r(this, "map");
73
- r(this, "markers", []);
74
- r(this, "marca", "");
75
- r(this, "marcaKey", "default");
76
- r(this, "tipo", "");
77
- r(this, "tipoCode", null);
78
- r(this, "pointsController");
79
- r(this, "points", []);
80
- r(this, "pointsByZone", {
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", {
81
106
  norte: [],
82
107
  rm: [],
83
108
  centro: [],
84
109
  sur: []
85
110
  });
86
- r(this, "initialViewApplied", !1);
87
- r(this, "zonesContainer");
88
- r(this, "componentMessageEl");
89
- r(this, "mapLayoutEl");
90
- r(this, "zoneButtons", []);
91
- r(this, "nearestButton");
92
- r(this, "panelTitleEl");
93
- r(this, "activeZone", "all");
94
- r(this, "mapHeight", "");
95
- r(this, "googleMapsApiKey", "");
96
- r(this, "pointsApiUrl", B);
97
- r(this, "markerIconBaseUrl", F);
98
- r(this, "defaultMarkerIconUrl", "");
99
- r(this, "pointsCacheTtlMs", T);
100
- r(this, "panAnimationFrame", null);
101
- r(this, "highlightTimeout", null);
102
- r(this, "isSyncingInitialAttributes", !1);
103
- r(this, "refreshQueued", !1);
104
- r(this, "localPointsRequests", /* @__PURE__ */ new Map());
105
- r(this, "handleZoneButtonClick", (t) => {
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());
133
+ });
134
+ c(this, "handlePointModalOverlayClick", (t) => {
135
+ t.target === this.pointModalOverlayEl && this.closePointModal();
136
+ });
137
+ c(this, "handlePointModalKeydown", (t) => {
138
+ t.key === "Escape" && this.pointModalOverlayEl && !this.pointModalOverlayEl.hasAttribute("hidden") && this.closePointModal();
139
+ });
140
+ c(this, "handleZoneButtonClick", (t) => {
106
141
  const n = t.currentTarget.dataset.zone;
107
142
  n && (this.setActiveZone(n), this.scrollToZoneSection(n));
108
143
  });
109
- r(this, "handleNearestClick", () => {
144
+ c(this, "handleNearestClick", () => {
110
145
  if (!navigator.geolocation) {
111
146
  alert("La geolocalizacion no esta soportada en este navegador.");
112
147
  return;
113
148
  }
114
149
  navigator.geolocation.getCurrentPosition(
115
150
  (t) => {
116
- const { latitude: e, longitude: n } = t.coords, a = this.findNearestPoint(e, n);
117
- a ? (this.centerMapOnPoint(Number(a.lat), Number(a.lng)), this.scrollToPointCard(a.id)) : alert("No hay puntos disponibles para calcular la tienda cercana.");
151
+ const { latitude: e, longitude: n } = t.coords, o = this.findNearestPoint(e, n);
152
+ if (o) {
153
+ const a = this.getPointPosition(o);
154
+ a && this.centerMapOnPoint(a.lat, a.lng), this.scrollToPointCard(o.id);
155
+ } else
156
+ alert("No hay puntos disponibles para calcular la tienda cercana.");
118
157
  },
119
158
  () => {
120
159
  alert("No se pudo obtener tu ubicacion.");
121
160
  }
122
161
  );
123
162
  });
124
- u.ensureFontAwesome(), this.root = this.attachShadow({ mode: "open" }), this.root.innerHTML = `
125
- <link rel="stylesheet" href="${S}" />
163
+ A.ensureFontAwesome(), this.root = this.attachShadow({ mode: "open" }), this.root.innerHTML = `
164
+ <link rel="stylesheet" href="${I}" />
126
165
  <style>
127
166
  :host {
128
167
  display: block;
168
+ position: relative;
129
169
  width: 100%;
130
170
  height: var(--map-height, 520px);
131
- --rs-map-accent: ${I};
171
+ --rs-map-accent: ${G};
132
172
  }
133
173
  .map-layout {
134
174
  display: grid;
@@ -327,14 +367,59 @@ const O = /* @__PURE__ */ Object.assign({
327
367
  background: transparent;
328
368
  color: var(--rs-map-accent);
329
369
  cursor: pointer;
330
- align-self: flex-start;
331
- margin-top: 8px;
332
370
  }
333
371
  .point-card__focus:hover,
334
372
  .point-card__focus:focus-visible {
335
373
  background: var(--rs-map-accent);
336
374
  color: #fff;
337
375
  }
376
+ .point-card__map-actions {
377
+ display: flex;
378
+ align-items: center;
379
+ flex-wrap: wrap;
380
+ gap: 8px;
381
+ align-self: flex-start;
382
+ margin-top: 8px;
383
+ }
384
+ .point-card__mobile-navigation {
385
+ display: none;
386
+ align-items: center;
387
+ flex-wrap: wrap;
388
+ gap: 8px;
389
+ }
390
+ .point-card__mobile-nav-link {
391
+ display: inline-flex;
392
+ align-items: center;
393
+ gap: 6px;
394
+ border: 1px solid var(--rs-map-accent);
395
+ border-radius: 999px;
396
+ padding: 4px 12px;
397
+ background: var(--rs-map-accent);
398
+ color: #fff;
399
+ font-size: 0.8rem;
400
+ text-decoration: none;
401
+ }
402
+ .point-card__mobile-nav-link:hover,
403
+ .point-card__mobile-nav-link:focus-visible {
404
+ filter: brightness(0.94);
405
+ }
406
+ .point-card__coordinate-warning {
407
+ display: flex;
408
+ align-items: center;
409
+ gap: 6px;
410
+ border: 1px solid #d6dbe3;
411
+ border-radius: 999px;
412
+ padding: 4px 12px;
413
+ background: #f8fafc;
414
+ color: #4b5563;
415
+ font-size: 0.8rem;
416
+ line-height: 1.35;
417
+ align-self: flex-start;
418
+ margin-top: 8px;
419
+ }
420
+ .point-card__coordinate-warning i {
421
+ color: #6b7280;
422
+ }
338
423
  @media (max-width: 768px) {
339
424
  .map-layout {
340
425
  grid-template-columns: 1fr;
@@ -352,6 +437,9 @@ const O = /* @__PURE__ */ Object.assign({
352
437
  .point-card__focus {
353
438
  display: none;
354
439
  }
440
+ .point-card__mobile-navigation {
441
+ display: flex;
442
+ }
355
443
  }
356
444
  .point-card__address,
357
445
  .point-card__meta,
@@ -505,6 +593,143 @@ const O = /* @__PURE__ */ Object.assign({
505
593
  color: #666;
506
594
  font-size: 0.9rem;
507
595
  }
596
+ .point-modal-overlay {
597
+ position: absolute;
598
+ inset: 0;
599
+ z-index: 30;
600
+ display: flex;
601
+ align-items: center;
602
+ justify-content: center;
603
+ padding: 16px;
604
+ background: rgba(0, 0, 0, 0.48);
605
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
606
+ }
607
+ .point-modal-overlay[hidden] {
608
+ display: none;
609
+ }
610
+ .point-modal {
611
+ width: min(560px, 100%);
612
+ max-height: calc(100% - 16px);
613
+ border-radius: 8px;
614
+ overflow: hidden;
615
+ background: #f7f7fb;
616
+ color: #151515;
617
+ box-shadow: 0 18px 48px rgba(0, 0, 0, 0.32);
618
+ display: flex;
619
+ flex-direction: column;
620
+ }
621
+ .point-modal__header {
622
+ display: flex;
623
+ align-items: center;
624
+ justify-content: space-between;
625
+ gap: 12px;
626
+ padding: 14px 18px;
627
+ background: #000;
628
+ color: #fff;
629
+ }
630
+ .point-modal__title {
631
+ margin: 0;
632
+ font-size: 1.15rem;
633
+ font-weight: 700;
634
+ line-height: 1.2;
635
+ }
636
+ .point-modal__close {
637
+ border: 0;
638
+ width: 34px;
639
+ height: 34px;
640
+ border-radius: 50%;
641
+ background: transparent;
642
+ color: #fff;
643
+ cursor: pointer;
644
+ font-size: 1.1rem;
645
+ display: inline-flex;
646
+ align-items: center;
647
+ justify-content: center;
648
+ }
649
+ .point-modal__close:hover,
650
+ .point-modal__close:focus-visible {
651
+ background: rgba(255, 255, 255, 0.14);
652
+ }
653
+ .point-modal__body {
654
+ padding: 20px 24px 24px;
655
+ overflow-y: auto;
656
+ line-height: 1.45;
657
+ }
658
+ .point-modal__cover {
659
+ width: calc(100% + 48px);
660
+ max-height: 300px;
661
+ object-fit: cover;
662
+ margin: -20px -24px 18px;
663
+ display: block;
664
+ background: #e5e7eb;
665
+ }
666
+ .point-modal__section {
667
+ margin: 0 0 20px;
668
+ display: flex;
669
+ flex-direction: column;
670
+ gap: 6px;
671
+ }
672
+ .point-modal__section:last-child {
673
+ margin-bottom: 0;
674
+ }
675
+ .point-modal__line {
676
+ margin: 0;
677
+ font-size: 0.95rem;
678
+ color: #242424;
679
+ }
680
+ .point-modal__label {
681
+ font-weight: 700;
682
+ }
683
+ .point-modal__phone-list {
684
+ list-style: none;
685
+ padding: 0;
686
+ margin: 4px 0 0;
687
+ display: flex;
688
+ flex-direction: column;
689
+ gap: 3px;
690
+ }
691
+ .point-modal__phone-item {
692
+ font-size: 0.94rem;
693
+ color: #222;
694
+ }
695
+ .point-modal__extra {
696
+ margin: 0;
697
+ font-size: 0.94rem;
698
+ color: #242424;
699
+ }
700
+ .point-modal__extra a,
701
+ .point-modal__link {
702
+ color: #111;
703
+ font-weight: 600;
704
+ text-decoration: none;
705
+ border-bottom: 1px solid currentColor;
706
+ }
707
+ .point-modal__extra a:hover,
708
+ .point-modal__extra a:focus-visible,
709
+ .point-modal__link:hover,
710
+ .point-modal__link:focus-visible {
711
+ color: var(--rs-map-accent);
712
+ }
713
+ .point-modal__actions {
714
+ display: flex;
715
+ flex-wrap: wrap;
716
+ gap: 10px;
717
+ }
718
+ @media (max-width: 768px) {
719
+ .point-modal-overlay {
720
+ position: fixed;
721
+ }
722
+ .point-modal {
723
+ max-height: calc(100dvh - 24px);
724
+ }
725
+ .point-modal__body {
726
+ padding: 16px 18px 20px;
727
+ }
728
+ .point-modal__cover {
729
+ width: calc(100% + 36px);
730
+ margin: -16px -18px 16px;
731
+ }
732
+ }
508
733
  </style>
509
734
  <div class="component-shell">
510
735
  <p class="component-message" data-component-message>Cargando puntos...</p>
@@ -530,6 +755,17 @@ const O = /* @__PURE__ */ Object.assign({
530
755
  </aside>
531
756
  </div>
532
757
  </div>
758
+ <div class="point-modal-overlay" data-point-modal-overlay hidden>
759
+ <section class="point-modal" role="dialog" aria-modal="true" aria-labelledby="rs-map-point-modal-title">
760
+ <header class="point-modal__header">
761
+ <h2 class="point-modal__title" id="rs-map-point-modal-title" data-point-modal-title></h2>
762
+ <button class="point-modal__close" type="button" data-point-modal-close aria-label="Cerrar">
763
+ <i class="fa-solid fa-xmark" aria-hidden="true"></i>
764
+ </button>
765
+ </header>
766
+ <div class="point-modal__body" data-point-modal-body></div>
767
+ </section>
768
+ </div>
533
769
  `;
534
770
  }
535
771
  static get observedAttributes() {
@@ -545,11 +781,11 @@ const O = /* @__PURE__ */ Object.assign({
545
781
  ];
546
782
  }
547
783
  connectedCallback() {
548
- 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.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.updateZoneButtons(), this.setMapHeight(this.getAttribute("height")), this.setComponentState("loading"), this.syncAttributesToState();
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();
549
785
  }
550
786
  disconnectedCallback() {
551
- var t;
552
- (t = this.pointsController) == null || t.abort(), this.zoneButtons.forEach((e) => e.removeEventListener("click", this.handleZoneButtonClick)), this.nearestButton && this.nearestButton.removeEventListener("click", this.handleNearestClick);
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);
553
789
  }
554
790
  attributeChangedCallback(t, e, n) {
555
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);
@@ -557,7 +793,7 @@ const O = /* @__PURE__ */ Object.assign({
557
793
  loadGoogleMaps() {
558
794
  return window._rsGoogleMapsLoaded ? Promise.resolve().then(() => {
559
795
  this.initMap();
560
- }) : this.googleMapsApiKey ? (u.googleMapsLoaderPromise || (u.googleMapsLoaderPromise = new Promise((t, e) => {
796
+ }) : this.googleMapsApiKey ? (A.googleMapsLoaderPromise || (A.googleMapsLoaderPromise = new Promise((t, e) => {
561
797
  const n = document.querySelector('script[data-rs-google-maps="true"]');
562
798
  if (n) {
563
799
  n.addEventListener("load", () => t(), { once: !0 }), n.addEventListener(
@@ -567,16 +803,16 @@ const O = /* @__PURE__ */ Object.assign({
567
803
  );
568
804
  return;
569
805
  }
570
- const a = document.createElement("script"), s = new URLSearchParams({
806
+ const o = document.createElement("script"), a = new URLSearchParams({
571
807
  key: this.googleMapsApiKey,
572
808
  v: "weekly"
573
809
  });
574
- a.src = `https://maps.googleapis.com/maps/api/js?${s.toString()}`, a.async = !0, a.defer = !0, a.dataset.rsGoogleMaps = "true", a.onload = () => {
810
+ o.src = `https://maps.googleapis.com/maps/api/js?${a.toString()}`, o.async = !0, o.defer = !0, o.dataset.rsGoogleMaps = "true", o.onload = () => {
575
811
  window._rsGoogleMapsLoaded = !0, t();
576
- }, a.onerror = () => {
577
- u.googleMapsLoaderPromise = null, e(new Error("Error al cargar la API de Google Maps"));
578
- }, document.head.appendChild(a);
579
- })), u.googleMapsLoaderPromise.then(() => {
812
+ }, o.onerror = () => {
813
+ A.googleMapsLoaderPromise = null, e(new Error("Error al cargar la API de Google Maps"));
814
+ }, document.head.appendChild(o);
815
+ })), A.googleMapsLoaderPromise.then(() => {
580
816
  window._rsGoogleMapsLoaded = !0, this.initMap();
581
817
  }).catch((t) => {
582
818
  console.error(t instanceof Error ? t.message : "Error al cargar la API de Google Maps");
@@ -601,9 +837,9 @@ const O = /* @__PURE__ */ Object.assign({
601
837
  }
602
838
  getFirstValidPoint() {
603
839
  for (const t of this.points) {
604
- const e = Number(t.lat), n = Number(t.lng);
605
- if (Number.isFinite(e) && Number.isFinite(n))
606
- return { lat: e, lng: n };
840
+ const e = this.getPointPosition(t);
841
+ if (e)
842
+ return e;
607
843
  }
608
844
  return null;
609
845
  }
@@ -624,17 +860,17 @@ const O = /* @__PURE__ */ Object.assign({
624
860
  }
625
861
  setPointsApiUrl(t) {
626
862
  const e = (t != null ? t : "").trim();
627
- this.pointsApiUrl = e || B, this.pointsApiUrl && this.isConnected && !this.isSyncingInitialAttributes && this.queueRefreshPoints();
863
+ this.pointsApiUrl = e || q, this.pointsApiUrl && this.isConnected && !this.isSyncingInitialAttributes && this.queueRefreshPoints();
628
864
  }
629
865
  setCacheDays(t) {
630
866
  const e = (t != null ? t : "").trim();
631
867
  if (!e) {
632
- this.pointsCacheTtlMs = T;
868
+ this.pointsCacheTtlMs = R;
633
869
  return;
634
870
  }
635
871
  const n = Number(e);
636
872
  if (!Number.isFinite(n) || n < 0) {
637
- this.pointsCacheTtlMs = T;
873
+ this.pointsCacheTtlMs = R;
638
874
  return;
639
875
  }
640
876
  this.pointsCacheTtlMs = n * 24 * 60 * 60 * 1e3;
@@ -642,7 +878,7 @@ const O = /* @__PURE__ */ Object.assign({
642
878
  setMarkerIconBase(t) {
643
879
  const e = (t != null ? t : "").trim();
644
880
  if (!e) {
645
- this.markerIconBaseUrl = F;
881
+ this.markerIconBaseUrl = "";
646
882
  return;
647
883
  }
648
884
  this.markerIconBaseUrl = e.endsWith("/") ? e : `${e}/`;
@@ -674,22 +910,22 @@ const O = /* @__PURE__ */ Object.assign({
674
910
  this.panelTitleEl.textContent = t != null ? t : "Puntos del mapa";
675
911
  }
676
912
  getTipoLabel() {
677
- if (this.tipoCode !== null && this.tipoCode in N)
678
- return N[this.tipoCode];
679
- const t = this.tipo.trim().toLowerCase(), e = t && t in z ? z[t] : null;
680
- return e !== null && e in N ? N[e] : null;
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;
681
917
  }
682
918
  applyBrandColor() {
683
919
  var e;
684
- const t = (e = R[this.marcaKey]) != null ? e : I;
920
+ const t = (e = rt[this.marcaKey]) != null ? e : G;
685
921
  this.style.setProperty("--rs-map-accent", t);
686
922
  }
687
923
  normalizeTipo(t) {
688
924
  if (!t)
689
925
  return null;
690
926
  const e = t.trim().toLowerCase();
691
- if (e in z)
692
- return z[e];
927
+ if (e in N)
928
+ return N[e];
693
929
  const n = Number(e);
694
930
  return Number.isFinite(n) && (n === 0 || n === 1) ? n : null;
695
931
  }
@@ -704,53 +940,63 @@ const O = /* @__PURE__ */ Object.assign({
704
940
  (g = this.pointsController) == null || g.abort();
705
941
  const t = new AbortController();
706
942
  this.pointsController = t;
707
- const e = new URLSearchParams({
708
- marca: this.marca,
943
+ const e = this.getMarcaRequestValue(), n = new URLSearchParams({
944
+ marca: e,
709
945
  tipo: String(this.tipoCode)
710
- }), n = this.pointsApiUrl.includes("?"), a = n && !/[?&]$/.test(this.pointsApiUrl), s = n ? a ? "&" : "" : "?", c = `${this.pointsApiUrl}${s}${e.toString()}`, i = this.getPointsCacheKey(c), l = await this.readPointsCache(i), d = l && Date.now() - l.timestamp < this.pointsCacheTtlMs, h = l ? null : await this.getLocalPointsFallback(this.marca, this.tipoCode);
711
- if (l) {
712
- if (this.applyPointsPayload(l.data), this.setComponentState("ready"), d)
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)
713
949
  return;
714
- } else h ? (this.applyPointsPayload(h), this.setComponentState("ready")) : this.setComponentState("loading");
950
+ } else m ? (this.applyPointsPayload(m), this.setComponentState("ready")) : this.setComponentState("loading");
715
951
  try {
716
- const m = await fetch(c, {
952
+ const f = await fetch(i, {
717
953
  signal: t.signal
718
954
  });
719
- if (!m.ok)
720
- throw new Error(`Respuesta ${m.status}`);
721
- const y = await m.json();
722
- if (!Array.isArray(y))
955
+ if (!f.ok)
956
+ throw new Error(`Respuesta ${f.status}`);
957
+ const r = await f.json();
958
+ if (!Array.isArray(r))
723
959
  throw new Error("La respuesta de puntos no es valida.");
724
- const o = y;
725
- await this.writePointsCache(i, o), this.applyPointsPayload(o), this.setComponentState("ready");
726
- } catch (m) {
727
- if (m instanceof DOMException && m.name === "AbortError")
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")
728
964
  return;
729
- if (l || h) {
730
- console.warn("Se mantienen puntos locales por error al refrescar el mapa", m);
965
+ if (d || m) {
966
+ console.warn("Se mantienen puntos locales por error al refrescar el mapa", f);
731
967
  return;
732
968
  }
733
- console.error("No se pudieron cargar los puntos del mapa", m), this.setComponentState("error");
969
+ console.error("No se pudieron cargar los puntos del mapa", f), this.setComponentState("error");
734
970
  }
735
971
  }
736
972
  applyPointsPayload(t) {
737
- this.points = this.transformPoints(t), this.renderPoints(this.points), this.initialViewApplied = !1, this.updateMarkers(this.points);
973
+ this.points = this.transformPoints(t), this.reportUnmappablePoints(this.points), this.renderPoints(this.points), this.initialViewApplied = !1, this.updateMarkers(this.points);
974
+ }
975
+ reportUnmappablePoints(t) {
976
+ const e = t.filter((n) => !this.getPointPosition(n)).map((n) => ({
977
+ id: n.id,
978
+ titulo: n.titulo,
979
+ direccion: n.direccion,
980
+ lat: n.lat,
981
+ lng: n.lng
982
+ }));
983
+ e.length && console.warn("Puntos con coordenadas fuera de rango o invalidas; no se muestran como markers.", e);
738
984
  }
739
985
  getPointsCacheKey(t) {
740
986
  return `rs-map:points:${t}`;
741
987
  }
742
988
  async getLocalPointsFallback(t, e) {
743
- const a = `../json/PuntosMapas_${this.normalizeBrandKey(t)}_${e}.json`, s = this.localPointsRequests.get(a);
744
- if (s)
745
- return s;
746
- const c = O[a];
747
- if (!c)
989
+ const o = `../json/PuntosMapas_${this.normalizeBrandKey(t)}_${e}.json`, a = this.localPointsRequests.get(o);
990
+ if (a)
991
+ return a;
992
+ const s = it[o];
993
+ if (!s)
748
994
  return null;
749
- const i = c().then((l) => {
995
+ const i = s().then((l) => {
750
996
  const d = this.parseLocalPointsPayload(l);
751
997
  return d != null && d.length ? d : null;
752
998
  }).catch(() => null);
753
- return this.localPointsRequests.set(a, i), i;
999
+ return this.localPointsRequests.set(o, i), i;
754
1000
  }
755
1001
  parseLocalPointsPayload(t) {
756
1002
  return Array.isArray(t) ? t : null;
@@ -763,8 +1009,8 @@ const O = /* @__PURE__ */ Object.assign({
763
1009
  const n = window.localStorage.getItem(t);
764
1010
  if (!n)
765
1011
  return null;
766
- const a = JSON.parse(n);
767
- return !a || !Array.isArray(a.data) || !Number.isFinite(a.timestamp) ? (window.localStorage.removeItem(t), null) : a;
1012
+ const o = JSON.parse(n);
1013
+ return !o || !Array.isArray(o.data) || !Number.isFinite(o.timestamp) ? (window.localStorage.removeItem(t), null) : o;
768
1014
  } catch {
769
1015
  return null;
770
1016
  }
@@ -781,11 +1027,11 @@ const O = /* @__PURE__ */ Object.assign({
781
1027
  }
782
1028
  }
783
1029
  async readPointsCacheFromIndexedDb(t) {
784
- const e = await u.openPointsCacheDb();
1030
+ const e = await A.openPointsCacheDb();
785
1031
  return e ? new Promise((n) => {
786
- const c = e.transaction(E, "readonly").objectStore(E).get(t);
787
- c.onsuccess = () => {
788
- const i = c.result;
1032
+ const s = e.transaction(v, "readonly").objectStore(v).get(t);
1033
+ s.onsuccess = () => {
1034
+ const i = s.result;
789
1035
  if (!i || !Array.isArray(i.data) || !Number.isFinite(i.timestamp)) {
790
1036
  n(null);
791
1037
  return;
@@ -794,28 +1040,28 @@ const O = /* @__PURE__ */ Object.assign({
794
1040
  timestamp: i.timestamp,
795
1041
  data: i.data
796
1042
  });
797
- }, c.onerror = () => n(null);
1043
+ }, s.onerror = () => n(null);
798
1044
  }) : null;
799
1045
  }
800
1046
  async writePointsCacheToIndexedDb(t, e) {
801
- const n = await u.openPointsCacheDb();
802
- n && await new Promise((a) => {
803
- const i = n.transaction(E, "readwrite").objectStore(E).put({
1047
+ const n = await A.openPointsCacheDb();
1048
+ n && await new Promise((o) => {
1049
+ const i = n.transaction(v, "readwrite").objectStore(v).put({
804
1050
  key: t,
805
1051
  timestamp: e.timestamp,
806
1052
  data: e.data
807
1053
  });
808
- i.onsuccess = () => a(), i.onerror = () => a();
1054
+ i.onsuccess = () => o(), i.onerror = () => o();
809
1055
  });
810
1056
  }
811
1057
  static openPointsCacheDb() {
812
- return typeof window == "undefined" || !("indexedDB" in window) ? Promise.resolve(null) : (u.pointsCacheDbPromise || (u.pointsCacheDbPromise = new Promise((t) => {
813
- const e = window.indexedDB.open(G, 1);
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);
814
1060
  e.onupgradeneeded = () => {
815
1061
  const n = e.result;
816
- n.objectStoreNames.contains(E) || n.createObjectStore(E, { keyPath: "key" });
1062
+ n.objectStoreNames.contains(v) || n.createObjectStore(v, { keyPath: "key" });
817
1063
  }, e.onsuccess = () => t(e.result), e.onerror = () => t(null);
818
- })), u.pointsCacheDbPromise);
1064
+ })), A.pointsCacheDbPromise);
819
1065
  }
820
1066
  transformPoints(t) {
821
1067
  return t.map((e) => ({
@@ -829,22 +1075,22 @@ const O = /* @__PURE__ */ Object.assign({
829
1075
  const e = this.groupPoints(t);
830
1076
  this.pointsByZone = e, this.updateZoneButtonCounts();
831
1077
  const n = document.createDocumentFragment();
832
- j.forEach((a) => {
833
- const s = document.createElement("section");
834
- s.className = "zone-section", s.dataset.zoneSection = a;
835
- const c = document.createElement("div");
836
- c.className = "zone-section__header";
1078
+ lt.forEach((o) => {
1079
+ const a = document.createElement("section");
1080
+ a.className = "zone-section", a.dataset.zoneSection = o;
1081
+ const s = document.createElement("div");
1082
+ s.className = "zone-section__header";
837
1083
  const i = document.createElement("span");
838
- if (i.textContent = $[a], c.appendChild(i), s.appendChild(c), e[a].length === 0) {
1084
+ if (i.textContent = ct[o], s.appendChild(i), a.appendChild(s), e[o].length === 0) {
839
1085
  const l = document.createElement("p");
840
- l.className = "zone-section__empty", l.textContent = "Sin puntos en esta zona.", s.appendChild(l);
1086
+ l.className = "zone-section__empty", l.textContent = "Sin puntos en esta zona.", a.appendChild(l);
841
1087
  } else {
842
1088
  const l = document.createElement("div");
843
- l.className = "zone-section__list", e[a].forEach((d) => {
1089
+ l.className = "zone-section__list", e[o].forEach((d) => {
844
1090
  l.appendChild(this.createPointCard(d));
845
- }), s.appendChild(l);
1091
+ }), a.appendChild(l);
846
1092
  }
847
- n.appendChild(s);
1093
+ n.appendChild(a);
848
1094
  }), this.zonesContainer.replaceChildren(n), this.updateZoneVisibility();
849
1095
  }
850
1096
  groupPoints(t) {
@@ -859,164 +1105,294 @@ const O = /* @__PURE__ */ Object.assign({
859
1105
  }), e;
860
1106
  }
861
1107
  createPointCard(t) {
862
- var y;
1108
+ var f;
863
1109
  const e = document.createElement("article");
864
1110
  e.className = "point-card", e.dataset.pointId = String(t.id);
865
- const n = document.createElement("h3");
866
- n.className = "point-card__title", n.textContent = t.titulo || "Sin nombre", e.appendChild(n);
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);
867
1113
  const a = document.createElement("div");
868
1114
  a.className = "point-card__address-block";
869
1115
  const s = document.createElement("p");
870
1116
  if (s.className = "point-card__address", s.textContent = t.direccion || "Sin direccion", a.appendChild(s), t.comuna_name) {
871
- const o = document.createElement("p");
872
- o.className = "point-card__meta", o.textContent = t.comuna_name, a.appendChild(o);
1117
+ const r = document.createElement("p");
1118
+ r.className = "point-card__meta", r.textContent = t.comuna_name, a.appendChild(r);
873
1119
  }
874
1120
  if (t.provincia_name) {
875
- const o = document.createElement("p");
876
- o.className = "point-card__meta", o.textContent = t.provincia_name, a.appendChild(o);
1121
+ const r = document.createElement("p");
1122
+ r.className = "point-card__meta", r.textContent = t.provincia_name, a.appendChild(r);
877
1123
  }
878
1124
  if (t.region_name) {
879
- const o = document.createElement("p");
880
- o.className = "point-card__meta", o.textContent = t.region_name, a.appendChild(o);
1125
+ const r = document.createElement("p");
1126
+ r.className = "point-card__meta", r.textContent = t.region_name, a.appendChild(r);
881
1127
  }
882
1128
  e.appendChild(a);
883
- let c = null;
884
- const i = Number(t.lat), l = Number(t.lng);
885
- if (Number.isFinite(i) && Number.isFinite(l)) {
886
- c = document.createElement("button"), c.type = "button", c.className = "point-card__focus";
887
- const o = this.createIconElement("fa-solid fa-location-crosshairs");
888
- c.appendChild(o), c.appendChild(document.createTextNode(" Ver en el mapa")), c.addEventListener("click", () => {
889
- this.focusPointWithZoom(i, l), this.scrollToPointCard(t.id);
890
- });
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;
1140
+ } else if (n) {
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;
891
1147
  }
892
1148
  const d = document.createElement("div");
893
1149
  d.className = "point-card__details", d.hidden = !0;
894
1150
  let h = !1;
895
- const g = document.createElement("div");
896
- g.className = "point-card__actions";
897
- let m = null;
1151
+ const m = document.createElement("div");
1152
+ m.className = "point-card__actions";
1153
+ let g = null;
898
1154
  if (t.url && t.url !== "#") {
899
- const o = document.createElement("a");
900
- o.href = t.url, o.target = "_blank", o.rel = "noopener noreferrer", o.className = "point-card__action";
901
- const f = this.createIconElement("fa-solid fa-globe");
902
- o.appendChild(f), o.appendChild(document.createTextNode("Sitio web")), g.appendChild(o);
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);
903
1159
  }
904
1160
  if (t.email) {
905
- const o = document.createElement("a");
906
- o.href = `mailto:${t.email}`, o.target = "_blank", o.rel = "noopener noreferrer", o.className = "point-card__action point-card__action--text";
907
- const f = this.createIconElement("fa-solid fa-envelope");
908
- o.appendChild(f), o.appendChild(document.createTextNode(t.email)), g.appendChild(o);
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);
909
1165
  }
910
- if (g.childElementCount && (d.appendChild(g), h = !0), (y = t.telefonos) != null && y.length) {
911
- const o = document.createElement("div");
912
- o.className = "point-card__contact";
913
- const f = document.createElement("div");
914
- f.className = "point-card__contact-title";
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";
915
1171
  const b = this.createIconElement("fa-solid fa-phone");
916
- f.appendChild(b), f.appendChild(document.createTextNode("Telefonos")), o.appendChild(f);
1172
+ u.appendChild(b), u.appendChild(document.createTextNode("Telefonos")), r.appendChild(u);
917
1173
  const x = document.createElement("ul");
918
- x.className = "point-card__phone-list", t.telefonos.slice().sort((C, P) => C.orden - P.orden).forEach((C) => {
919
- const P = document.createElement("li");
920
- P.className = "point-card__phone-item";
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";
921
1177
  const k = document.createElement("span");
922
- if (k.className = "point-card__phone-icon", C.whatsapp) {
923
- const M = this.createIconElement("fa-brands fa-whatsapp");
924
- k.appendChild(M);
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);
925
1183
  } else
926
1184
  k.textContent = "-";
927
- P.appendChild(k);
928
- const A = document.createElement("div");
929
- A.className = "point-card__phone-content";
930
- const L = document.createElement("span");
931
- L.className = "point-card__phone-name", L.textContent = C.nombre, A.appendChild(L);
932
- const w = C.whatsapp ? document.createElement("a") : document.createElement("span");
933
- if (w.className = "point-card__phone-number", C.whatsapp) {
934
- const M = this.getWhatsappLink(C.telefono);
935
- M && (w.href = M, w.target = "_blank", w.rel = "noopener noreferrer", w.classList.add("point-card__phone-number--link"));
936
- }
937
- w.textContent = C.telefono, A.appendChild(w), P.appendChild(A), x.appendChild(P);
938
- }), o.appendChild(x), d.appendChild(o), h = !0;
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;
939
1197
  }
940
1198
  if (t.adicional) {
941
- const o = document.createElement("p");
942
- o.className = "point-card__extra", o.innerHTML = t.adicional, o.querySelectorAll("a").forEach((f) => {
943
- f.classList.add("point-card__extra-link");
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");
944
1202
  const b = this.createIconElement("fa-solid fa-arrow-up-right-from-square");
945
- b.classList.add("point-card__extra-icon"), f.appendChild(b);
946
- }), d.appendChild(o), h = !0;
1203
+ b.classList.add("point-card__extra-icon"), u.appendChild(b);
1204
+ }), d.appendChild(r), h = !0;
947
1205
  }
948
1206
  if (t.googlelink) {
949
- m = document.createElement("a"), m.href = t.googlelink, m.target = "_blank", m.rel = "noopener noreferrer", m.className = "point-card__action";
950
- const o = this.createIconElement("fa-solid fa-map-location-dot");
951
- m.appendChild(o), m.appendChild(document.createTextNode("Google Maps"));
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"));
952
1210
  }
953
- if (m) {
954
- const o = document.createElement("div");
955
- o.className = "point-card__actions", o.appendChild(m), d.appendChild(o), h = !0;
1211
+ if (g) {
1212
+ const r = document.createElement("div");
1213
+ r.className = "point-card__actions", r.appendChild(g), d.appendChild(r), h = !0;
956
1214
  }
957
1215
  if (h) {
958
- const o = document.createElement("button");
959
- o.type = "button", o.className = "point-card__toggle";
960
- const f = this.createIconElement("fa-solid fa-circle-info"), b = document.createElement("span");
961
- b.textContent = "Mas informacion", o.appendChild(f), o.appendChild(b), o.addEventListener("click", () => {
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", () => {
962
1220
  const x = d.hidden;
963
- d.hidden = !x, b.textContent = x ? "Ocultar informacion" : "Mas informacion", f.className = x ? "fa-solid fa-circle-xmark" : "fa-solid fa-circle-info";
964
- }), e.appendChild(o), e.appendChild(d);
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);
965
1223
  }
966
- return c && e.appendChild(c), e;
1224
+ return i && e.appendChild(i), e;
1225
+ }
1226
+ createMobileNavigationActions(t) {
1227
+ const e = document.createElement("div");
1228
+ return e.className = "point-card__mobile-navigation", e.appendChild(
1229
+ this.createMobileNavigationLink(
1230
+ `https://www.google.com/maps/dir/?api=1&destination=${t.lat},${t.lng}&travelmode=driving`,
1231
+ "Ir con Google Maps",
1232
+ "fa-brands fa-google"
1233
+ )
1234
+ ), e.appendChild(
1235
+ this.createMobileNavigationLink(
1236
+ `https://waze.com/ul?ll=${t.lat},${t.lng}&navigate=yes`,
1237
+ "Ir con Waze",
1238
+ "fa-brands fa-waze"
1239
+ )
1240
+ ), e;
1241
+ }
1242
+ createMobileNavigationLink(t, e, n) {
1243
+ const o = document.createElement("a");
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;
967
1245
  }
968
1246
  getZoneForPoint(t) {
969
1247
  const e = this.normalizeRegionName(t.region_name || "");
970
- return e && e in Z ? Z[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";
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";
971
1249
  }
972
1250
  normalizeRegionName(t) {
973
1251
  return t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").trim();
974
1252
  }
1253
+ getMarcaRequestValue() {
1254
+ var e;
1255
+ const t = this.normalizeBrandToken(this.marca);
1256
+ return (e = H[t]) != null ? e : this.marca;
1257
+ }
975
1258
  normalizeBrandKey(t) {
976
- return t && t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "") || "default";
1259
+ var n;
1260
+ const e = this.normalizeBrandToken(t);
1261
+ return e ? (n = H[e]) != null ? n : e : "default";
1262
+ }
1263
+ normalizeBrandToken(t) {
1264
+ return t.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "");
1265
+ }
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);
1269
+ }
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;
977
1274
  }
978
- getMarkerIcon() {
979
- const t = this.marcaKey || "default";
980
- return this.markerIconBaseUrl ? `${this.markerIconBaseUrl}${t}.png` : this.defaultMarkerIconUrl ? this.defaultMarkerIconUrl : null;
1275
+ getPointCoordinateWarning(t) {
1276
+ if (this.getPointPosition(t))
1277
+ return null;
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}.`;
1280
+ }
1281
+ getPointPosition(t) {
1282
+ const e = Number(t.lat), n = Number(t.lng);
1283
+ return this.isMappableCoordinate(e, n) ? { lat: e, lng: n } : null;
1284
+ }
1285
+ isMappableCoordinate(t, e) {
1286
+ return Number.isFinite(t) && Number.isFinite(e) && t >= T.minLat && t <= T.maxLat && e >= T.minLng && e <= T.maxLng;
981
1287
  }
982
1288
  updateMarkers(t) {
983
1289
  const e = window.google;
984
1290
  if (!e || !this.map)
985
1291
  return;
986
- this.markers.forEach((i) => i.setMap(null)), this.markers = [];
987
- const n = t.filter((i) => {
988
- const l = Number(i.lat), d = Number(i.lng);
989
- return Number.isFinite(l) && Number.isFinite(d);
990
- });
991
- if (!n.length)
1292
+ this.markers.forEach((a) => a.setMap(null)), this.markers = [];
1293
+ const n = [];
1294
+ if (t.forEach((a) => {
1295
+ const s = this.getPointPosition(a);
1296
+ s && n.push({ point: a, position: s });
1297
+ }), !n.length)
992
1298
  return;
993
- const a = new e.maps.LatLngBounds(), s = this.getMarkerIcon(), c = s && this.map ? {
994
- url: s,
995
- scaledSize: new e.maps.Size(36, 36),
996
- anchor: new e.maps.Point(18, 36)
997
- } : void 0;
998
- if (n.forEach((i) => {
999
- const l = Number(i.lat), d = Number(i.lng), h = new e.maps.Marker({
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({
1000
1306
  map: this.map,
1001
- position: { lat: l, lng: d },
1002
- title: i.titulo,
1003
- icon: c
1307
+ position: { lat: i, lng: l },
1308
+ title: a.titulo,
1309
+ icon: h
1004
1310
  });
1005
- this.markers.push(h);
1006
- const g = h.getPosition();
1007
- g && a.extend(g);
1311
+ m.addListener("click", () => {
1312
+ this.openPointModal(a), this.scrollToPointCard(a.id);
1313
+ }), this.markers.push(m);
1314
+ const g = m.getPosition();
1315
+ g && o.extend(g);
1008
1316
  }), !this.initialViewApplied && this.markers.length) {
1009
- const i = this.markers[0].getPosition();
1010
- if (i) {
1011
- this.map.setCenter(i), this.map.setZoom(14), this.initialViewApplied = !0;
1317
+ const a = this.markers[0].getPosition();
1318
+ if (a) {
1319
+ this.map.setCenter(a), this.map.setZoom(14), this.initialViewApplied = !0;
1012
1320
  return;
1013
1321
  }
1014
1322
  }
1015
1323
  if (this.markers.length === 1) {
1016
- const i = this.markers[0].getPosition();
1017
- i && this.map.setCenter(i), this.map.setZoom(14);
1324
+ const a = this.markers[0].getPosition();
1325
+ a && this.map.setCenter(a), this.map.setZoom(14);
1018
1326
  } else
1019
- this.map.fitBounds(a);
1327
+ this.map.fitBounds(o);
1328
+ }
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());
1332
+ }
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);
1339
+ }
1340
+ const n = this.createPointModalSection();
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);
1342
+ const o = this.createPointModalSection();
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);
1352
+ }
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);
1358
+ }
1359
+ const a = this.createPointModalActions(t);
1360
+ return a.childElementCount && e.appendChild(a), e;
1361
+ }
1362
+ createPointModalSection() {
1363
+ const t = document.createElement("div");
1364
+ return t.className = "point-modal__section", t;
1365
+ }
1366
+ appendPointModalLine(t, e, n) {
1367
+ const o = (n != null ? n : "").trim();
1368
+ if (!o || o === "#")
1369
+ return;
1370
+ const a = document.createElement("p");
1371
+ a.className = "point-modal__line";
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);
1374
+ }
1375
+ createPointModalPhoneItem(t) {
1376
+ var s;
1377
+ const e = document.createElement("li");
1378
+ e.className = "point-modal__phone-item";
1379
+ const n = document.createElement("span");
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;
1382
+ if (a) {
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);
1385
+ } else
1386
+ e.appendChild(document.createTextNode(o));
1387
+ return e;
1388
+ }
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;
1392
+ }
1393
+ createPointModalLink(t, e, n = !0) {
1394
+ const o = document.createElement("a");
1395
+ return o.href = t, o.className = "point-modal__link", o.textContent = e, n && (o.target = "_blank", o.rel = "noopener noreferrer"), o;
1020
1396
  }
1021
1397
  setActiveZone(t) {
1022
1398
  }
@@ -1049,17 +1425,17 @@ const O = /* @__PURE__ */ Object.assign({
1049
1425
  findNearestPoint(t, e) {
1050
1426
  if (!this.points.length)
1051
1427
  return null;
1052
- let n = null, a = 1 / 0;
1053
- return this.points.forEach((s) => {
1054
- const c = Number(s.lat), i = Number(s.lng);
1055
- if (!Number.isFinite(c) || !Number.isFinite(i))
1428
+ let n = null, o = 1 / 0;
1429
+ return this.points.forEach((a) => {
1430
+ const s = this.getPointPosition(a);
1431
+ if (!s)
1056
1432
  return;
1057
- const l = this.haversine(t, e, c, i);
1058
- l < a && (a = l, n = s);
1433
+ const i = this.haversine(t, e, s.lat, s.lng);
1434
+ i < o && (o = i, n = a);
1059
1435
  }), n;
1060
1436
  }
1061
- haversine(t, e, n, a) {
1062
- const s = (g) => g * Math.PI / 180, i = s(n - t), l = s(a - e), d = Math.sin(i / 2) * Math.sin(i / 2) + Math.cos(s(t)) * Math.cos(s(n)) * Math.sin(l / 2) * Math.sin(l / 2);
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);
1063
1439
  return 6371e3 * (2 * Math.atan2(Math.sqrt(d), Math.sqrt(1 - d)));
1064
1440
  }
1065
1441
  scrollToPointCard(t) {
@@ -1088,14 +1464,14 @@ const O = /* @__PURE__ */ Object.assign({
1088
1464
  centerMapOnPoint(t, e, n = 14) {
1089
1465
  if (!window.google || !this.map || !Number.isFinite(t) || !Number.isFinite(e))
1090
1466
  return;
1091
- const s = typeof this.map.getZoom == "function" ? this.map.getZoom() : null, c = !s || s < n;
1467
+ const a = typeof this.map.getZoom == "function" ? this.map.getZoom() : null, s = !a || a < n;
1092
1468
  this.animateMapPan(t, e, () => {
1093
- c && this.map.setZoom(n);
1469
+ s && this.map.setZoom(n);
1094
1470
  });
1095
1471
  }
1096
1472
  async focusPointWithZoom(t, e) {
1097
- !window.google || !this.map || !Number.isFinite(t) || !Number.isFinite(e) || (await this.animateZoomTo(8, 800), await this.wait(500), await new Promise((a) => {
1098
- this.animateMapPan(t, e, a);
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);
1099
1475
  }), await this.wait(500), await this.animateZoomTo(18, 800));
1100
1476
  }
1101
1477
  wait(t) {
@@ -1106,20 +1482,20 @@ const O = /* @__PURE__ */ Object.assign({
1106
1482
  async animateZoomTo(t, e = 600) {
1107
1483
  if (!window.google || !this.map || typeof this.map.getZoom != "function" || typeof this.map.setZoom != "function")
1108
1484
  return;
1109
- const a = this.map.getZoom();
1110
- if (!Number.isFinite(a)) {
1485
+ const o = this.map.getZoom();
1486
+ if (!Number.isFinite(o)) {
1111
1487
  this.map.setZoom(t);
1112
1488
  return;
1113
1489
  }
1114
- const s = t - a;
1115
- if (Math.abs(s) < 0.01) {
1490
+ const a = t - o;
1491
+ if (Math.abs(a) < 0.01) {
1116
1492
  this.map.setZoom(t);
1117
1493
  return;
1118
1494
  }
1119
- await new Promise((c) => {
1495
+ await new Promise((s) => {
1120
1496
  const i = performance.now(), l = (h) => 1 - Math.pow(1 - h, 3), d = (h) => {
1121
- const g = h - i, m = Math.min(g / e, 1), y = l(m), o = a + s * y;
1122
- this.map.setZoom(Math.round(o * 100) / 100), m < 1 ? requestAnimationFrame(d) : (this.map.setZoom(t), c());
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());
1123
1499
  };
1124
1500
  requestAnimationFrame(d);
1125
1501
  });
@@ -1128,43 +1504,680 @@ const O = /* @__PURE__ */ Object.assign({
1128
1504
  if (!window.google || !this.map)
1129
1505
  return;
1130
1506
  this.panAnimationFrame !== null && (cancelAnimationFrame(this.panAnimationFrame), this.panAnimationFrame = null);
1131
- const s = this.map.getCenter();
1132
- if (!s) {
1507
+ const a = this.map.getCenter();
1508
+ if (!a) {
1133
1509
  this.map.setCenter({ lat: t, lng: e }), n == null || n();
1134
1510
  return;
1135
1511
  }
1136
- const c = s.lat(), i = s.lng(), l = t - c, d = e - i, h = 600, g = performance.now(), m = (o) => 1 - Math.pow(1 - o, 3), y = (o) => {
1137
- const f = o - g, b = Math.min(f / h, 1), x = m(b), C = c + l * x, P = i + d * x;
1138
- this.map.setCenter({ lat: C, lng: P }), b < 1 ? this.panAnimationFrame = requestAnimationFrame(y) : (this.panAnimationFrame = null, n == null || n());
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());
1139
1515
  };
1140
- this.panAnimationFrame = requestAnimationFrame(y);
1516
+ this.panAnimationFrame = requestAnimationFrame(f);
1141
1517
  }
1142
1518
  static ensureFontAwesome() {
1143
- if (u.fontAwesomeAttached)
1519
+ if (A.fontAwesomeAttached)
1144
1520
  return;
1145
- if (document.querySelector(`link[href="${S}"]`)) {
1146
- u.fontAwesomeAttached = !0;
1521
+ if (document.querySelector(`link[href="${I}"]`)) {
1522
+ A.fontAwesomeAttached = !0;
1147
1523
  return;
1148
1524
  }
1149
1525
  const e = document.createElement("link");
1150
- e.rel = "stylesheet", e.href = S, e.crossOrigin = "anonymous", e.referrerPolicy = "no-referrer", e.addEventListener("load", () => {
1151
- u.fontAwesomeAttached = !0;
1526
+ e.rel = "stylesheet", e.href = I, e.crossOrigin = "anonymous", e.referrerPolicy = "no-referrer", e.addEventListener("load", () => {
1527
+ A.fontAwesomeAttached = !0;
1152
1528
  }), document.head.appendChild(e);
1153
1529
  }
1154
1530
  createIconElement(t) {
1155
1531
  const e = document.createElement("i");
1156
1532
  return e.className = t, e.setAttribute("aria-hidden", "true"), e;
1157
1533
  }
1534
+ isWhatsappPhone(t) {
1535
+ return !!(t.whatsapp || t.watshapp);
1536
+ }
1158
1537
  getWhatsappLink(t) {
1159
1538
  const e = t.replace(/\D+/g, "");
1160
1539
  return e ? `https://wa.me/${e}` : null;
1161
1540
  }
1162
1541
  };
1163
- r(u, "tag", "rs-map"), r(u, "googleMapsLoaderPromise", null), r(u, "pointsCacheDbPromise", null), r(u, "fontAwesomeAttached", !1);
1164
- let v = u;
1165
- U(v.tag, v);
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);
1166
2176
  export {
1167
- v as RsMap,
1168
- U as safeDefine
2177
+ _ as RsMap,
2178
+ Q as RsWhatsapp,
2179
+ D as RsWhatsappOption,
2180
+ M as RsWhatsappSchedule,
2181
+ F as safeDefine
1169
2182
  };
1170
2183
  //# sourceMappingURL=rs-components.es.js.map