From e4d50c36609b86acc20b69fe00fb63336d24d0e0 Mon Sep 17 00:00:00 2001 From: acelaya Date: Wed, 10 Nov 2021 21:29:48 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20preview-env=20from=20@=20shlin?= =?UTF-8?q?kio/shlink-web-client@5906921eece99ed3657fdac4fb95fbf80ff53c3e?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- feature/reset-page/asset-manifest.json | 4 ++-- feature/reset-page/index.html | 2 +- feature/reset-page/static/js/main.69a07e0e.chunk.js | 2 -- feature/reset-page/static/js/main.69a07e0e.chunk.js.map | 1 - feature/reset-page/static/js/main.706c5543.chunk.js | 2 ++ feature/reset-page/static/js/main.706c5543.chunk.js.map | 1 + 6 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 feature/reset-page/static/js/main.69a07e0e.chunk.js delete mode 100644 feature/reset-page/static/js/main.69a07e0e.chunk.js.map create mode 100644 feature/reset-page/static/js/main.706c5543.chunk.js create mode 100644 feature/reset-page/static/js/main.706c5543.chunk.js.map diff --git a/feature/reset-page/asset-manifest.json b/feature/reset-page/asset-manifest.json index 1d548952..fdc990df 100644 --- a/feature/reset-page/asset-manifest.json +++ b/feature/reset-page/asset-manifest.json @@ -1,7 +1,7 @@ { "main.css": "/shlink-web-client/feature/reset-page/static/css/main.5d42e79a.chunk.css", - "main.js": "/shlink-web-client/feature/reset-page/static/js/main.69a07e0e.chunk.js", - "main.js.map": "/shlink-web-client/feature/reset-page/static/js/main.69a07e0e.chunk.js.map", + "main.js": "/shlink-web-client/feature/reset-page/static/js/main.706c5543.chunk.js", + "main.js.map": "/shlink-web-client/feature/reset-page/static/js/main.706c5543.chunk.js.map", "runtime~main.js": "/shlink-web-client/feature/reset-page/static/js/runtime~main.c839ca3f.js", "runtime~main.js.map": "/shlink-web-client/feature/reset-page/static/js/runtime~main.c839ca3f.js.map", "static/css/2.04c5acbe.chunk.css": "/shlink-web-client/feature/reset-page/static/css/2.04c5acbe.chunk.css", diff --git a/feature/reset-page/index.html b/feature/reset-page/index.html index d43fad91..05b0bb52 100644 --- a/feature/reset-page/index.html +++ b/feature/reset-page/index.html @@ -1 +1 @@ -Shlink — The URL shortener
\ No newline at end of file +Shlink — The URL shortener
\ No newline at end of file diff --git a/feature/reset-page/static/js/main.69a07e0e.chunk.js b/feature/reset-page/static/js/main.69a07e0e.chunk.js deleted file mode 100644 index bea21e4f..00000000 --- a/feature/reset-page/static/js/main.69a07e0e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{103:function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(3),c=r(0),a=r(1);function s(e){return function(t){return Object(a.useEffect)((function(){t.resetSelectedServer()}),[]),Object(c.jsx)(e,Object(n.a)({},t))}}},104:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"a",(function(){return c}));var n=function(e,t,r){var n=e.document,c=n.createElement("a");c.setAttribute("href",t),c.setAttribute("download",r),c.style.visibility="hidden",n.body.appendChild(c),c.click(),n.body.removeChild(c)},c=function(e,t,r){var c=new Blob([t],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(c);n(e,a,r)}},147:function(e){e.exports=JSON.parse('{"a":"/shlink-web-client/feature/reset-page"}')},150:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(0),c=r(46),a=function(e){var t=e.color,r=void 0===t?c.c:t,a=e.className;return Object(n.jsx)("svg",{className:a,viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:Object(n.jsxs)("g",{fill:r,children:[Object(n.jsx)("path",{d:" M 23.71 85.08 C 17.22 49.81 49.44 14.86 85.08 18.12 C 118.83 19.21 145.72 53.33 139.45 86.37 C 155.64 102.30 171.32 118.83 187.87 134.36 C 198.32 111.73 208.84 89.12 219.57 66.62 C 226.05 53.84 243.47 48.74 255.73 56.27 C 263.76 62.10 270.34 69.69 277.25 76.75 C 286.28 86.61 285.72 102.89 276.31 112.31 C 223.38 165.37 170.38 218.37 117.35 271.34 C 107.72 280.99 91.01 281.25 81.11 271.86 C 74.39 264.94 66.82 258.69 61.24 250.77 C 53.72 238.52 58.85 221.07 71.64 214.62 C 94.11 203.87 116.72 193.38 139.33 182.91 C 123.81 166.36 107.30 150.68 91.37 134.49 C 60.20 140.28 27.37 116.78 23.71 85.08 Z"}),Object(n.jsx)("path",{d:" M 205.21 201.23 C 225.32 181.36 260.88 181.11 281.14 200.86 C 299.25 218.75 317.37 236.65 335.10 254.93 C 356.73 278.01 352.01 318.70 326.03 336.56 C 320.07 330.47 313.73 324.65 308.12 318.28 C 323.86 309.39 328.76 286.18 316.63 272.39 C 301.73 256.95 286.30 242.03 271.24 226.75 C 264.49 219.65 256.80 212.00 246.37 211.52 C 224.65 208.64 205.52 233.36 214.49 253.58 C 221.09 266.81 234.22 275.12 243.62 286.24 C 240.43 295.96 238.09 306.13 238.29 316.46 C 225.55 304.29 213.16 291.73 200.89 279.09 C 180.97 257.57 183.10 220.45 205.21 201.23 Z"}),Object(n.jsx)("path",{d:" M 273.90 352.07 C 252.28 328.99 256.98 288.31 282.96 270.46 C 288.93 276.54 295.26 282.36 300.88 288.72 C 285.14 297.62 280.23 320.82 292.38 334.61 C 307.27 350.05 322.70 364.96 337.75 380.25 C 344.51 387.35 352.20 395.00 362.64 395.48 C 384.35 398.37 403.49 373.64 394.51 353.42 C 387.92 340.18 374.78 331.88 365.38 320.76 C 368.56 311.04 370.91 300.86 370.71 290.54 C 383.45 302.70 395.84 315.27 408.11 327.91 C 428.03 349.43 425.90 386.55 403.78 405.77 C 383.68 425.64 348.13 425.89 327.86 406.14 C 309.75 388.25 291.60 370.37 273.90 352.07 Z"}),Object(n.jsx)("path",{d:" M 422.11 403.83 C 431.96 394.07 441.60 384.06 451.66 374.51 C 460.90 383.74 471.89 392.70 474.89 406.11 C 480.16 429.97 484.08 454.13 488.76 478.12 C 490.00 483.41 484.47 488.29 479.35 486.63 C 454.66 481.52 429.55 478.12 405.14 471.84 C 393.17 467.97 385.20 457.75 376.55 449.27 C 386.39 439.49 396.13 429.60 406.06 419.91 C 416.37 433.45 435.74 414.00 422.11 403.83 Z"})]})})}},151:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(3),c=r(0),a=r(1),s=r(54),i=r(30),o=r(60);function l(e,t){return function(r){var l=r.selectServer,u=r.selectedServer,d=r.match;return Object(a.useEffect)((function(){l(d.params.serverId)}),[d.params.serverId]),u?Object(i.c)(u)?Object(c.jsx)(t,{}):Object(c.jsx)(e,Object(n.a)({},r)):Object(c.jsx)(o.a,{children:Object(c.jsx)(s.a,{loading:!0})})}}},153:function(e,t,r){"use strict";var n=r(0),c=r(22),a=r(32);t.a=function(e){var t=e.to,r=void 0===t?"/":t,s=e.children,i=void 0===s?"Home":s;return Object(n.jsx)("div",{className:"home",children:Object(n.jsxs)(a.a,{className:"p-4",children:[Object(n.jsx)("h2",{children:"Oops! We could not find requested route."}),Object(n.jsx)("p",{children:"Use your browser's back button to navigate to the page you have previously come from, or just press this button."}),Object(n.jsx)("br",{}),Object(n.jsx)(c.b,{to:r,className:"btn btn-outline-primary btn-lg",children:i})]})})}},165:function(e,t,r){"use strict";var n=r(0),c=r(554),a=r(555),s=r(22),i=r(8),o=r.n(i),l=r(12),u=r(11),d=function(e){var t=e.id,r=e.name;return Object(n.jsxs)(c.a,{tag:s.b,to:"/server/".concat(t),className:"servers-list__server-item",children:[r,Object(n.jsx)(l.a,{icon:u.j,className:"servers-list__server-item-icon"})]})};t.a=function(e){var t=e.servers,r=e.children,c=e.embedded,s=void 0!==c&&c;return Object(n.jsxs)(n.Fragment,{children:[r&&Object(n.jsx)("h5",{className:"mb-md-3",children:r}),t.length>0&&Object(n.jsx)(a.a,{className:o()("servers-list__list-group",{"servers-list__list-group--embedded":s}),children:t.map((function(e){var t=e.id,r=e.name;return Object(n.jsx)(d,{id:t,name:r},t)}))})]})}},25:function(e,t,r){"use strict";r.d(t,"b",(function(){return i})),r.d(t,"d",(function(){return o})),r.d(t,"c",(function(){return l})),r.d(t,"a",(function(){return u}));var n=r(9),c=r(1),a=r(279),s=r(51),i=function(e,t){return function(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,s=Object(c.useState)(r),i=Object(n.a)(s,2),o=i[0],l=i[1],u=Object(c.useRef)(void 0),d=function(){l(!r),u.current&&t(u.current),u.current=e((function(){return l(r)}),a)};return[o,d]}},o=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Object(c.useState)(e),r=Object(n.a)(t,2),a=r[0],s=r[1];return[a,function(){return s(!a)},function(){return s(!0)},function(){return s(!1)}]},l=function(e,t){var r=function(e){return function(t){t.event.composedPath().some((function(e){var t=e.classList;return null===t||void 0===t?void 0:t.contains("visits-table")}))||document.querySelector(".modal")||e()}};return Object(a.useSwipeable)({delta:40,onSwipedLeft:r(t),onSwipedRight:r(e)})},u=function(e,t){var r=Object(c.useState)(t),a=Object(n.a)(r,2),i=a[0],o=a[1];return[i,function(t){var r=window,n=r.location,c=r.history,a=Object(s.a)(n.search);a[e]=t,c.pushState(null,"","".concat(n.pathname,"?").concat(Object(s.b)(a))),o(t)}]}},276:function(e,t,r){"use strict";(function(e){var n=r(277),c=r.n(n),a=r(278),s=r(309),i=r(310),o=r(311),l=r(312),u=r(280),d=r(307),j=r(103),b=r(282);t.a=function(t,r,n){t.constant("window",e.window),t.constant("console",e.console),t.constant("axios",c.a),t.service("ImageDownloader",b.a,"axios","window"),t.serviceFactory("ScrollToTop",a.a),t.decorator("ScrollToTop",n),t.serviceFactory("MainHeader",s.a,"ServersDropdown"),t.decorator("MainHeader",n),t.serviceFactory("Home",(function(){return i.a})),t.decorator("Home",j.a),t.decorator("Home",n),t.decorator("Home",r(["servers"],["resetSelectedServer"])),t.serviceFactory("MenuLayout",o.a,"TagsList","ShortUrlsList","AsideMenu","CreateShortUrl","ShortUrlVisits","TagVisits","OrphanVisits","ServerError","Overview","EditShortUrl","ManageDomains"),t.decorator("MenuLayout",r(["selectedServer","shortUrlsListParams"],["selectServer"])),t.decorator("MenuLayout",n),t.serviceFactory("AsideMenu",l.a,"DeleteServerButton"),t.serviceFactory("ShlinkVersionsContainer",(function(){return d.a})),t.decorator("ShlinkVersionsContainer",r(["selectedServer"])),t.serviceFactory("ErrorHandler",u.a,"window","console")}}).call(this,r(49))},278:function(e,t,r){"use strict";var n=r(0),c=r(1);t.a=function(){return function(e){var t=e.location,r=e.children;return Object(c.useEffect)((function(){scrollTo(0,0)}),[t]),Object(n.jsx)(n.Fragment,{children:r})}}},280:function(e,t,r){"use strict";var n=r(19),c=r(27),a=r(37),s=r(36),i=r(0),o=r(1),l=r(216),u=r(32);t.a=function(e,t){var r=e.location,d=t.error;return function(e){Object(a.a)(o,e);var t=Object(s.a)(o);function o(e){var r;return Object(n.a)(this,o),(r=t.call(this,e)).state={hasError:!1},r}return Object(c.a)(o,[{key:"componentDidCatch",value:function(e){d(e)}},{key:"render",value:function(){return this.state.hasError?Object(i.jsx)("div",{className:"home",children:Object(i.jsxs)(u.a,{className:"p-4",children:[Object(i.jsx)("h1",{children:"Oops! This is awkward :S"}),Object(i.jsx)("p",{children:"It seems that something went wrong. Try refreshing the page or just click this button."}),Object(i.jsx)("br",{}),Object(i.jsx)(l.a,{outline:!0,color:"primary",onClick:function(){return r.reload()},children:"Take me back"})]})}):this.props.children}}],[{key:"getDerivedStateFromError",value:function(){return{hasError:!0}}}]),o}(o.Component)}},282:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(6),c=r.n(n),a=r(15),s=r(19),i=r(27),o=r(104),l=function(){function e(t,r){Object(s.a)(this,e),this.axios=t,this.window=r}return Object(i.a)(e,[{key:"saveImage",value:function(){var e=Object(a.a)(c.a.mark((function e(t,r){var n,a,s;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.axios.get(t,{responseType:"blob"});case 2:n=e.sent,a=n.data,s=URL.createObjectURL(a),Object(o.b)(this.window,s,r);case 6:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}()}]),e}()},298:function(e,t,r){"use strict";(function(e){var n=r(25),c=r(299),a=r(300);t.a=function(t){t.constant("localStorage",e.localStorage),t.service("Storage",c.a,"localStorage"),t.service("ColorGenerator",a.a,"Storage"),t.constant("setTimeout",e.setTimeout),t.constant("clearTimeout",e.clearTimeout),t.serviceFactory("useStateFlagTimeout",n.b,"setTimeout","clearTimeout")}}).call(this,r(49))},299:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(19),c=function(e){return"".concat("shlink",".").concat(e)},a=function e(t){var r=this;Object(n.a)(this,e),this.localStorage=t,this.get=function(e){var t=r.localStorage.getItem(c(e));return t?JSON.parse(t):void 0},this.set=function(e,t){return r.localStorage.setItem(c(e),JSON.stringify(t))}}},30:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"e",(function(){return c})),r.d(t,"d",(function(){return a})),r.d(t,"c",(function(){return s})),r.d(t,"a",(function(){return i}));var n=function(e){return!(null===e||void 0===e||!e.url)&&!(null===e||void 0===e||!e.apiKey)},c=function(e){return!(null===e||void 0===e||!e.hasOwnProperty("id"))},a=function(e){return!(null===e||void 0===e||!e.hasOwnProperty("version"))},s=function(e){return!(null===e||void 0===e||!e.hasOwnProperty("serverNotFound"))},i=function(e){return c(e)?e.id:""}},300:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(19),c=r(31),a=Math.floor,s=Math.random,i="0123456789ABCDEF",o=function(e){return e.toLowerCase().trim()},l=function e(t){var r,l=this;Object(n.a)(this,e),this.storage=t,this.colors=void 0,this.getColorForKey=function(e){var t=o(e),r=l.colors[t];return r||l.setColorForKey(t,"#".concat(Object(c.e)(6,(function(){return i[a(s()*i.length)]})).join("")))},this.setColorForKey=function(e,t){var r=o(e);return l.colors[r]=t,l.storage.set("colors",l.colors),t},this.colors=null!==(r=this.storage.get("colors"))&&void 0!==r?r:{}}},307:function(e,t,r){"use strict";var n=r(0),c=r(8),a=r.n(c),s=r(30),i=r(542),o=r(52),l=r(70),u=Object(i.a)(Object(l.c)(),l.b),d=function(e){var t=e.project,r=e.version;return Object(n.jsx)(o.a,{href:"https://github.com/shlinkio/".concat(t,"/releases/").concat(r),className:"text-muted",children:Object(n.jsx)("b",{children:r})})},j=function(e){var t=e.selectedServer,r=e.clientVersion,c=u(void 0===r?"%_VERSION_%":r);return Object(n.jsxs)("small",{className:"text-muted",children:[Object(s.d)(t)&&Object(n.jsxs)(n.Fragment,{children:["Server: ",Object(n.jsx)(d,{project:"shlink",version:t.printableVersion})," - "]}),"Client: ",Object(n.jsx)(d,{project:"shlink-web-client",version:c})]})};t.a=function(e){var t=e.selectedServer,r=a()("text-center",{"shlink-versions-container--with-server":Object(s.d)(t)});return Object(n.jsx)("div",{className:r,children:Object(n.jsx)(j,{selectedServer:t})})}},309:function(e,t,r){"use strict";var n=r(9),c=r(0),a=r(11),s=r(12),i=r(1),o=r(22),l=r(547),u=r(548),d=r(549),j=r(550),b=r(551),h=r(552),O=r(553),v=r(8),f=r.n(v),m=r(25),x=r(150);t.a=function(e){return function(t){var r=t.location,v=Object(m.d)(),g=Object(n.a)(v,4),p=g[0],y=g[1],S=g[3],C=r.pathname;Object(i.useEffect)(S,[r]);var N="/settings",w=f()("main-header__toggle-icon",{"main-header__toggle-icon--opened":p});return Object(c.jsxs)(l.a,{color:"primary",dark:!0,fixed:"top",className:"main-header",expand:"md",children:[Object(c.jsxs)(u.a,{tag:o.b,to:"/",children:[Object(c.jsx)(x.a,{className:"main-header__brand-logo",color:"white"})," Shlink"]}),Object(c.jsx)(d.a,{onClick:y,children:Object(c.jsx)(s.a,{icon:a.i,className:w})}),Object(c.jsx)(j.a,{navbar:!0,isOpen:p,children:Object(c.jsxs)(b.a,{navbar:!0,className:"ml-auto",children:[Object(c.jsx)(h.a,{children:Object(c.jsxs)(O.a,{tag:o.b,to:N,active:C===N,children:[Object(c.jsx)(s.a,{icon:a.l}),"\xa0 Settings"]})}),Object(c.jsx)(e,{})]})})]})}}},31:function(e,t,r){"use strict";r.d(t,"e",(function(){return i})),r.d(t,"c",(function(){return o})),r.d(t,"b",(function(){return l})),r.d(t,"d",(function(){return u})),r.d(t,"a",(function(){return d}));var n=r(543),c=r(212),a=r(317),s=r(542),i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Object(n.a)(r,e+1).map(t)},o=function(e){return!Object(c.a)(e)&&!Object(a.a)(e)},l=function(e){return Object(s.a)((function(e){return e.preventDefault()}),e)},u=function(e){return Object(a.a)(e)?null:e},d=function(e){return"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1))}},310:function(e,t,r){"use strict";var n=r(0),c=r(1),a=r(556),s=r(317),i=r(22),o=r(315),l=r(538),u=r(52),d=r(12),j=r(11),b=r(165),h=r(150);t.a=function(e){var t=e.servers,r=e.history,O=Object(a.a)(t),v=!Object(s.a)(O);return Object(c.useEffect)((function(){var e=O.find((function(e){return e.autoConnect}));e&&r.push("/server/".concat(e.id))}),[]),Object(n.jsx)("div",{className:"home",children:Object(n.jsx)(o.a,{className:"home__main-card",children:Object(n.jsxs)(l.a,{noGutters:!0,children:[Object(n.jsx)("div",{className:"col-md-5 d-none d-md-block",children:Object(n.jsx)("div",{className:"p-4",children:Object(n.jsx)(h.a,{})})}),Object(n.jsxs)("div",{className:"col-md-7 home__servers-container",children:[Object(n.jsx)("div",{className:"p-4",children:Object(n.jsx)("h1",{className:"home__title",children:"Welcome!"})}),Object(n.jsx)(b.a,{embedded:!0,servers:O,children:!v&&Object(n.jsxs)("div",{className:"p-4 text-center",children:[Object(n.jsx)("p",{className:"mb-5",children:"This application will help you manage your Shlink servers."}),Object(n.jsx)("p",{children:Object(n.jsxs)(i.b,{to:"/server/create",className:"btn btn-outline-primary btn-lg mr-2",children:[Object(n.jsx)(d.a,{icon:j.E})," ",Object(n.jsx)("span",{className:"ml-1",children:"Add a server"})]})}),Object(n.jsx)("p",{className:"mb-0 mt-5",children:Object(n.jsx)(u.a,{href:"https://shlink.io/documentation",children:Object(n.jsxs)("small",{children:[Object(n.jsx)("span",{className:"mr-1",children:"Learn more about Shlink"})," ",Object(n.jsx)(d.a,{icon:j.o})]})})})]})})]})]})})})}},311:function(e,t,r){"use strict";var n=r(3),c=r(9),a=r(0),s=r(1),i=r(42),o=r(11),l=r(12),u=r(8),d=r.n(u),j=r(151),b=r(25),h=r(43),O=r(30),v=r(153);t.a=function(e,t,r,u,f,m,x,g,p,y,S){return Object(j.a)((function(j){var C=j.location,N=j.selectedServer,w=Object(b.d)(),k=Object(c.a)(w,4),_=k[0],U=k[1],T=k[2],R=k[3];if(Object(s.useEffect)((function(){return R()}),[C]),!Object(O.d)(N))return Object(a.jsx)(g,{});var E=Object(h.e)(N),D=Object(h.c)(N),L=d()("menu-layout__burger-icon",{"menu-layout__burger-icon--active":_}),V=Object(b.c)(T,R);return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(l.a,{icon:o.c,className:L,onClick:U}),Object(a.jsx)("div",Object(n.a)(Object(n.a)({},V),{},{className:"menu-layout__swipeable",children:Object(a.jsxs)("div",{className:"menu-layout__swipeable-inner",children:[Object(a.jsx)(r,{selectedServer:N,showOnMobile:_}),Object(a.jsx)("div",{className:"menu-layout__container",onClick:function(){return R()},children:Object(a.jsx)("div",{className:"container-xl",children:Object(a.jsxs)(i.d,{children:[Object(a.jsx)(i.a,{exact:!0,from:"/server/:serverId",to:"/server/:serverId/overview"}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/overview",component:p}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/list-short-urls/:page",component:t}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/create-short-url",component:u}),Object(a.jsx)(i.b,{path:"/server/:serverId/short-code/:shortCode/visits",component:f}),Object(a.jsx)(i.b,{path:"/server/:serverId/short-code/:shortCode/edit",component:y}),Object(a.jsx)(i.b,{path:"/server/:serverId/tag/:tag/visits",component:m}),E&&Object(a.jsx)(i.b,{path:"/server/:serverId/orphan-visits",component:x}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/manage-tags",component:e}),D&&Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/manage-domains",component:S}),Object(a.jsx)(i.b,{render:function(){return Object(a.jsx)(v.a,{to:"/server/".concat(N.id,"/list-short-urls/1"),children:"List short URLs"})}})]})})})]})}))]})}),g)}},312:function(e,t,r){"use strict";var n=r(3),c=r(39),a=r(0),s=r(11),i=r(12),o=r(22),l=r(8),u=r.n(l),d=r(30),j=r(43),b=function(e){var t=e.children,r=e.to,s=e.className,i=Object(c.a)(e,["children","to","className"]);return Object(a.jsx)(o.c,Object(n.a)(Object(n.a)({className:u()("aside-menu__item",s),activeClassName:"aside-menu__item--selected",to:r},i),{},{children:t}))};t.a=function(e){return function(t){var r=t.selectedServer,n=t.showOnMobile,c=void 0!==n&&n,o=Object(d.e)(r),l=o?r.id:"",h=Object(j.c)(r),O=u()("aside-menu",{"aside-menu--hidden":!c}),v=function(e){return"/server/".concat(l).concat(e)};return Object(a.jsx)("aside",{className:O,children:Object(a.jsxs)("nav",{className:"nav flex-column aside-menu__nav",children:[Object(a.jsxs)(b,{to:v("/overview"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.t}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Overview"})]}),Object(a.jsxs)(b,{to:v("/list-short-urls/1"),isActive:function(e,t){return null!==t.pathname.match("/list-short-urls")},children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.w}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"List short URLs"})]}),Object(a.jsxs)(b,{to:v("/create-short-url"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.v,flip:"horizontal"}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Create short URL"})]}),Object(a.jsxs)(b,{to:v("/manage-tags"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.N}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Manage tags"})]}),h&&Object(a.jsxs)(b,{to:v("/manage-domains"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.s}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Manage domains"})]}),Object(a.jsxs)(b,{to:v("/edit"),className:"aside-menu__item--push",children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.B}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Edit this server"})]}),o&&Object(a.jsx)(e,{className:"aside-menu__item aside-menu__item--danger",textClassName:"aside-menu__item-text",server:r})]})})}}},318:function(e,t,r){e.exports=r(534)},32:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(3),c=r(39),a=r(0),s=r(315),i=r(540),o=r(541),l=function(e){var t=e.title,r=e.children,l=e.bodyClassName,u=Object(c.a)(e,["title","children","bodyClassName"]);return Object(a.jsxs)(s.a,Object(n.a)(Object(n.a)({},u),{},{children:[t&&Object(a.jsx)(i.a,{children:t}),Object(a.jsx)(o.a,{className:l,children:r})]}))}},403:function(e,t){},405:function(e,t){},43:function(e,t,r){"use strict";r.d(t,"g",(function(){return s})),r.d(t,"i",(function(){return i})),r.d(t,"e",(function(){return o})),r.d(t,"f",(function(){return l})),r.d(t,"j",(function(){return u})),r.d(t,"a",(function(){return d})),r.d(t,"b",(function(){return j})),r.d(t,"h",(function(){return b})),r.d(t,"c",(function(){return h})),r.d(t,"d",(function(){return O}));var n=r(30),c=r(70),a=function(e){return function(t){return Object(n.d)(t)&&Object(c.a)(t.version,e)}},s=a({minVersion:"2.5.0"}),i=a({minVersion:"2.6.0"}),o=i,l=i,u=i,d=a({minVersion:"2.7.0"}),j=d,b=a({minVersion:"2.8.0"}),h=b,O=a({minVersion:"2.9.0"})},46:function(e,t,r){"use strict";r.d(t,"c",(function(){return n})),r.d(t,"d",(function(){return c})),r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return s})),r.d(t,"f",(function(){return i})),r.d(t,"e",(function(){return o})),r.d(t,"g",(function(){return l})),r.d(t,"h",(function(){return u}));var n="#4696e5",c="rgba(70, 150, 229, 0.4)",a="#f77f28",s="rgba(247, 127, 40, 0.4)",i="white",o="#161b22",l=function(e){var t,r=document.getElementsByTagName("html");null===r||void 0===r||null===(t=r[0])||void 0===t||t.setAttribute("data-theme",e)},u=function(){var e,t=document.getElementsByTagName("html");return"dark"===(null===t||void 0===t||null===(e=t[0])||void 0===e?void 0:e.getAttribute("data-theme"))}},51:function(e,t,r){"use strict";r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return s}));var n=r(211),c=r.n(n),a=function(e){return c.a.parse(e,{ignoreQueryPrefix:!0})},s=function(e){return c.a.stringify(e,{arrayFormat:"brackets"})}},534:function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"processStatsFromVisits",(function(){return Ra})),r.d(n,"normalizeVisits",(function(){return Ea}));var c,a=r(0),s=r(48),i=r(163),o=r(22),l=r(147),u=r(10),d=r(3),j=r(275),b=r(42),h=r(605),O=r(610),v=r(30),f=r(6),m=r.n(f),x=r(15),g=r(19),p=r(308),y=r(212),S=r(317),C=r(51),N=function(e,t){return e?"".concat(e,"/rest/v").concat(t):""},w=Object(p.a)(y.a),k=function e(t,r,n){var c=this;Object(g.a)(this,e),this.axios=t,this.baseUrl=r,this.apiKey=n,this.apiVersion=void 0,this.listShortUrls=Object(x.a)(m.a.mark((function e(){var t,r=arguments;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},e.abrupt("return",c.performRequest("/short-urls","GET",t).then((function(e){return e.data.shortUrls})));case 2:case"end":return e.stop()}}),e)}))),this.createShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t){var r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Object(p.a)((function(e){return Object(S.a)(e)||Object(y.a)(e)}),t),e.abrupt("return",c.performRequest("/short-urls","POST",{},r).then((function(e){return e.data})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.getShortUrlVisits=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t,"/visits"),"GET",r).then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.getTagVisits=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags/".concat(t,"/visits"),"GET",r).then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.getOrphanVisits=function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/visits/orphan","GET",t).then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.getVisitsOverview=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/visits","GET").then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)}))),this.getShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t),"GET",{domain:r}).then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.deleteShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t),"DELETE",{domain:r}).then((function(){})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.updateShortUrlTags=function(){var e=Object(x.a)(m.a.mark((function e(t,r,n){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t,"/tags"),"PUT",{domain:r},{tags:n}).then((function(e){return e.data.tags})));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),this.updateShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t,r,n){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t),"PATCH",{domain:r},n).then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),this.listTags=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags","GET",{withStats:"true"}).then((function(e){return e.data.tags})).then((function(e){return{tags:e.data,stats:e.stats}})));case 1:case"end":return e.stop()}}),e)}))),this.deleteTags=function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags","DELETE",{tags:t}).then((function(){return{tags:t}})));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.editTag=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags","PUT",{},{oldName:t,newName:r}).then((function(){return{oldName:t,newName:r}})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.health=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/health","GET").then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)}))),this.mercureInfo=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/mercure-info","GET").then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)}))),this.listDomains=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/domains","GET").then((function(e){return e.data.domains.data})));case 1:case"end":return e.stop()}}),e)}))),this.editDomainRedirects=function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/domains/redirects","PATCH",{},t).then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.performRequest=function(){var e=Object(x.a)(m.a.mark((function e(t){var r,n,a,s,i=arguments;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:"GET",n=i.length>2&&void 0!==i[2]?i[2]:{},a=i.length>3&&void 0!==i[3]?i[3]:{},e.prev=3,e.next=6,c.axios({method:r,url:"".concat(N(c.baseUrl,c.apiVersion)).concat(t),headers:{"X-Api-Key":c.apiKey},params:w(n),data:a,paramsSerializer:C.b});case 6:return e.abrupt("return",e.sent);case 9:if(e.prev=9,e.t0=e.catch(3),s=e.t0.response,!s&&2!==c.apiVersion){e.next=15;break}throw e.t0;case 15:return c.apiVersion=c.apiVersion-1,e.next=18,c.performRequest(t,r,n,a);case 18:return e.abrupt("return",e.sent);case 19:case"end":return e.stop()}}),e,null,[[3,9]])})));return function(t){return e.apply(this,arguments)}}(),this.apiVersion=2},_={},U=function(e){return function(t){var r,n=function(e){return"function"===typeof e}(t)?(r=t,Object(O.a)("selectedServer",r())):t;if(!Object(v.b)(n))throw new Error("There's no selected server or it is not found");var c=n.url,a=n.apiKey,s="".concat(c,"_").concat(a);return _[s]||(_[s]=new k(e,c,a)),_[s]}},T=function(e){e.serviceFactory("buildShlinkApiClient",U,"axios")},R=r(276),E=r(9),D=r(39),L=r(11),V=r(12),I=r(542),F=r(359),A=r(1),M=r(8),G=r.n(M),P=function(e){var t=e.onChange,r=e.className,n=e.large,s=void 0===n||n,i=e.noBorder,o=void 0!==i&&i,l=e.initialValue,u=void 0===l?"":l,d=Object(A.useState)(u),j=Object(E.a)(d,2),b=j[0],h=j[1],O=function(){c&&clearTimeout(c),c=null},v=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500;h(e),O(),c=setTimeout((function(){t(e),O()}),r)};return Object(a.jsxs)("div",{className:G()("search-field",r),children:[Object(a.jsx)("input",{type:"text",className:G()("form-control search-field__input",{"form-control-lg":s,"search-field__input--no-border":o}),placeholder:"Search...",value:b,onChange:function(e){return v(e.target.value)}}),Object(a.jsx)(V.a,{icon:L.H,className:"search-field__icon"}),Object(a.jsx)("div",{className:"close search-field__close",hidden:""===b,id:"search-field__close",onClick:function(){return v("",0)},children:"\xd7"})]})},B=function(e){var t=e.text,r=e.children,n=e.clearable,c=e.className,s=void 0===c?"":c,i=e.colorGenerator,o=e.onClick,l=e.onClose;return Object(a.jsxs)("span",{className:"badge tag ".concat(s),style:{backgroundColor:i.getColorForKey(t),cursor:n||!o?"auto":"pointer"},onClick:o,children:[null!==r&&void 0!==r?r:t,n&&Object(a.jsx)("span",{className:"close tag__close-selected-tag",onClick:l,children:"\xd7"})]})},H=r(560),W=r(130),q=r(557),z=r(558),Q=r(25),K=function(e){var t=e.text,r=e.disabled,n=void 0!==r&&r,c=e.className,s=void 0===c?"":c,i=e.children,o=e.dropdownClassName,l=e.right,u=void 0!==l&&l,d=e.minWidth,j=Object(Q.d)(),b=Object(E.a)(j,2),h=b[0],O=b[1],v="dropdown-btn__toggle btn-block ".concat(s),f={minWidth:d&&"".concat(d,"px")};return Object(a.jsxs)(W.a,{isOpen:h,toggle:O,disabled:n,className:o,children:[Object(a.jsx)(q.a,{caret:!0,className:v,color:"primary",children:t}),Object(a.jsx)(z.a,{className:"w-100",right:u,style:f,children:i})]})},J=r(91),Z=r(363),Y=r(199),X=r(306),$=r(536),ee=r(559),te=(r(535),r(360)),re=r(361),ne=r(362),ce=function(e){return"string"!==typeof e},ae=function(e,t){return e&&ce(e)?t?Object($.default)(e,t):Object(ee.a)(e):e},se=function(e){return ae(e,void 0)},ie=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"yyyy-MM-dd";return function(t){return ae(t,e)}}(),oe=function(e){return ce(e)?e:Object(F.default)(e)},le=function(e,t,r){return!t&&r?Object(te.default)(oe(e),oe(r)):t&&!r?Object(re.default)(oe(e),oe(t)):!t||!r||Object(ne.default)(oe(e),{start:oe(t),end:oe(r)})},ue=function(e){return void 0===e||Object(S.a)(Object(X.a)(Boolean,e))},de=function(e){return"string"===typeof e},je={today:"Today",yesterday:"Yesterday",last7Days:"Last 7 days",last30Days:"Last 30 days",last90Days:"Last 90 days",last180days:"Last 180 days",last365Days:"Last 365 days",all:void 0},be=Object.keys(je).filter((function(e){return"all"!==e})),he=function(e){if(e&&"all"!==e)return de(e)?je[e]:function(e){if(e&&!ue(e))return e.startDate&&!e.endDate?"Since ".concat(ie(e.startDate)):!e.startDate&&e.endDate?"Until ".concat(ie(e.endDate)):"".concat(ie(e.startDate)," - ").concat(ie(e.endDate))}(e)},Oe=function(e){return Object(J.default)(Object(Z.default)(new Date,e))},ve=function(e){return{startDate:e,endDate:Object(Y.default)(new Date)}},fe=function(e){if(!e||"all"===e)return{};switch(e){case"today":return ve(Object(J.default)(new Date));case"yesterday":return{startDate:Oe(1),endDate:Object(Y.default)(Object(Z.default)(new Date,1))};case"last7Days":return ve(Oe(7));case"last30Days":return ve(Oe(30));case"last90Days":return ve(Oe(90));case"last180days":return ve(Oe(180));case"last365Days":return ve(Oe(365))}return{}},me=r(284),xe=r.n(me),ge=r(78),pe=function(e){var t=e.className,r=e.isClearable,n=e.selected,c=!r||Object(y.a)(n),s=Object(A.useRef)();return Object(a.jsxs)("div",{className:"date-input-container",children:[Object(a.jsx)(xe.a,Object(d.a)(Object(d.a)({},e),{},{dateFormat:"yyyy-MM-dd",className:G()("date-input-container__input form-control",t),ref:s})),c&&Object(a.jsx)(V.a,{icon:ge.a,className:"date-input-container__icon",onClick:function(){var e;return null===(e=s.current)||void 0===e?void 0:e.input.focus()}})]})},ye=function(e){var t=e.startDate,r=void 0===t?null:t,n=e.endDate,c=void 0===n?null:n,s=e.disabled,i=void 0!==s&&s,o=e.onStartDateChange,l=e.onEndDateChange;return Object(a.jsxs)("div",{className:"row",children:[Object(a.jsx)("div",{className:"col-md-6",children:Object(a.jsx)(pe,{selected:r,placeholderText:"Since...",isClearable:!0,maxDate:null!==c&&void 0!==c?c:void 0,disabled:i,onChange:o})}),Object(a.jsx)("div",{className:"col-md-6",children:Object(a.jsx)(pe,{className:"mt-2 mt-md-0",selected:c,placeholderText:"Until...",isClearable:!0,minDate:null!==r&&void 0!==r?r:void 0,disabled:i,onChange:l})})]})},Se=function(e){var t=e.active,r=e.allText,n=e.onChange;return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(H.a,{active:"all"===t,onClick:function(){return n("all")},children:r}),Object(a.jsx)(H.a,{divider:!0}),be.map((function(e){return Object(a.jsx)(H.a,{active:t===e,onClick:function(){return n(e)},children:he(e)},e)}))]})},Ce=function(e){var t,r=e.onDatesChange,n=e.initialDateRange,c=e.defaultText,s=e.disabled,i=Object(A.useState)(de(n)?n:void 0),o=Object(E.a)(i,2),l=o[0],u=o[1],j=Object(A.useState)(de(n)?void 0:n),b=Object(E.a)(j,2),h=b[0],O=b[1],v=function(e){u(ue(e)?"all":void 0),O(e),r(e)};return Object(a.jsxs)(K,{disabled:s,text:null!==(t=he(null!==l&&void 0!==l?l:h))&&void 0!==t?t:c,children:[Object(a.jsx)(Se,{allText:c,active:l,onChange:function(e){return(t=e,function(){u(t),O(void 0),r(fe(t))})();var t}}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{header:!0,children:"Custom:"}),Object(a.jsx)(H.a,{text:!0,children:Object(a.jsx)(ye,Object(d.a)(Object(d.a)({},h),{},{onStartDateChange:function(e){return v(Object(d.a)(Object(d.a)({},h),{},{startDate:e}))},onEndDateChange:function(e){return v(Object(d.a)(Object(d.a)({},h),{},{endDate:e}))}}))})]})},Ne=function(e){var t=e.history,r=e.location,n=e.match,c=Object(A.useMemo)((function(){return Object(C.a)(r.search)}),[r]);return[c,function(e){var r=Object(C.b)(Object(d.a)(Object(d.a)({},c),e)),a=Object(S.a)(r)?"":"?".concat(r);t.push("/server/".concat(null===n||void 0===n?void 0:n.params.serverId,"/list-short-urls/1").concat(a))}]},we=function(e){return e?Object(F.default)(e):null},ke=function(e){return function(t){var r,n=t.listShortUrls,c=t.shortUrlsListParams,s=Object(D.a)(t,["listShortUrls","shortUrlsListParams"]),i=Ne(s),o=Object(E.a)(i,2),l=o[0],u=l.search,j=l.tags,b=o[1],h=null!==(r=null===j||void 0===j?void 0:j.split(",").map(decodeURIComponent))&&void 0!==r?r:[],O=Object(I.a)((function(e){var t,r,n=e.startDate,c=e.endDate;return{startDate:null!==(t=se(n))&&void 0!==t?t:void 0,endDate:null!==(r=se(c))&&void 0!==r?r:void 0}}),(function(e){return n(Object(d.a)(Object(d.a)({},c),e))})),v=Object(I.a)((function(e){return Object(S.a)(e)?void 0:e}),(function(e){return b({search:e})})),f=Object(I.a)((function(e){return h.filter((function(t){return t!==e}))}),(function(e){return 0===e.length?void 0:e.join(",")}),(function(e){return b({tags:e})}));return Object(a.jsxs)("div",{className:"search-bar-container",children:[Object(a.jsx)(P,{initialValue:u,onChange:v}),Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsx)("div",{className:"row",children:Object(a.jsx)("div",{className:"col-lg-8 offset-lg-4 col-xl-6 offset-xl-6",children:Object(a.jsx)(Ce,{defaultText:"All short URLs",initialDateRange:{startDate:we(c.startDate),endDate:we(c.endDate)},onDatesChange:O})})})}),h.length>0&&Object(a.jsxs)("h4",{className:"search-bar__selected-tag mt-3",children:[Object(a.jsx)(V.a,{icon:L.N,className:"search-bar__tags-icon"}),"\xa0",h.map((function(t){return Object(a.jsx)(B,{colorGenerator:e,text:t,clearable:!0,onClose:function(){return f(t)}},t)}))]})]})}},_e=r(26),Ue=r(570),Te=r(61),Re=r(556),Ee=r(315),De=r(561),Le=r(562),Ve=function(e,t,r){return e!==t?"ASC":r?{ASC:"DESC",DESC:void 0}[r]:"ASC"},Ie=function(e,t){var r=t.field,n=t.dir;return r&&n?e.sort((function(e,t){var c="ASC"===n?1:-1,a="ASC"===n?-1:1;return e[r]>t[r]?c:a})):e};function Fe(e){var t,r=e.items,n=e.order,c=e.onChange,s=e.isButton,i=void 0===s||s,o=e.right,l=void 0!==o&&o,u=function(e){return function(){var t=Ve(e,n.field,n.dir);c(t?e:void 0,t)}};return Object(a.jsxs)(De.a,{children:[Object(a.jsxs)(q.a,{caret:!0,color:i?"primary":"link",className:G()({"dropdown-btn__toggle btn-block":i,"btn-sm p-0":!i}),children:[!i&&Object(a.jsx)(a.Fragment,{children:"Order by"}),i&&!n.field&&Object(a.jsx)(a.Fragment,{children:"Order by..."}),i&&n.field&&'Order by: "'.concat(r[n.field],'" - "').concat(null!==(t=n.dir)&&void 0!==t?t:"DESC",'"')]}),Object(a.jsxs)(z.a,{right:l,className:G()("w-100",{"sorting-dropdown__menu--link":!i}),children:[Object(Le.a)(r).map((function(e){var t=Object(E.a)(e,2),r=t[0],c=t[1];return Object(a.jsxs)(H.a,{active:n.field===r,onClick:u(r),children:[c,n.field===r&&Object(a.jsx)(V.a,{icon:"ASC"===n.dir?L.K:L.J,className:"sorting-dropdown__sort-icon"})]},r)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{disabled:!n.field,onClick:function(){return c()},children:Object(a.jsx)("i",{children:"Clear selection"})})]})]})}var Ae=r(285);function Me(e,t){var r=new Set;return function(n){var c=n.createNewVisits,s=n.loadMercureInfo,i=n.mercureInfo,o=i.interval;return Object(A.useEffect)((function(){var e=function(e,t,r,n){var c=e.mercureHubUrl,a=e.token,s=e.loading,i=e.error;if(!s&&!i&&c){var o=function(e){var t=e.data;return r(JSON.parse(t))},l=function(e){return 401===e.status&&n()},u=t.map((function(e){var t=new URL(c);t.searchParams.append("topic",e);var r=new Ae.EventSourcePolyfill(t,{headers:{Authorization:"Bearer ".concat(a)}});return r.onmessage=o,r.onerror=l,r}));return function(){return u.forEach((function(e){return e.close()}))}}}(i,t(n),(function(e){return o?r.add(e):c([e])}),s);if(!o)return e;var a=setInterval((function(){c(Object(_e.a)(r)),r.clear()}),1e3*o*60);return Object(I.a)((function(){return clearInterval(a)}),(function(){return null===e||void 0===e?void 0:e()}))}),[i]),Object(a.jsx)(e,Object(d.a)({},n))}}var Ge=function e(){Object(g.a)(this,e)};function Pe(e){var t=e.currentOrder,r=e.field,n=e.className,c=void 0===n?"ml-1":n;return t.dir&&t.field===r?Object(a.jsx)(V.a,{icon:"ASC"===t.dir?L.f:L.e,className:c}):null}Ge.visits="https://shlink.io/new-visit",Ge.orphanVisits="https://shlink.io/new-orphan-visit",Ge.shortUrlVisits=function(e){return"https://shlink.io/new-visit/".concat(e)};var Be,He,We,qe,ze,Qe,Ke,Je,Ze,Ye,Xe,$e,et,tt,rt,nt,ct,at,st,it=function(e,t){return function(r,n){var c=n.type,a=e[c],s=null!==r&&void 0!==r?r:t;return a?a(s,n):s}},ot=function(e){return function(){return{type:e}}},lt=r(563),ut=r(564),dt=r(286),jt=r(565),bt=function(e,t,r){return Object(y.a)(r)?e.shortCode===t&&!e.domain:e.shortCode===t&&e.domain===r},ht="shlink/visitCreation/CREATE_VISITS",Ot=function(e){return{type:ht,createdVisits:e}},vt=function(e){var t;return null===(t=e.response)||void 0===t?void 0:t.data},ft=function(e){return"INVALID_SHORTCODE_DELETION"===(null===e||void 0===e?void 0:e.type)},mt="shlink/deleteShortUrl/DELETE_SHORT_URL_START",xt="shlink/deleteShortUrl/DELETE_SHORT_URL_ERROR",gt="shlink/deleteShortUrl/SHORT_URL_DELETED",pt="shlink/deleteShortUrl/RESET_DELETE_SHORT_URL",yt={shortCode:"",loading:!1,error:!1},St=it((Be={},Object(u.a)(Be,mt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!0,error:!1})})),Object(u.a)(Be,xt,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{errorData:r,loading:!1,error:!0})})),Object(u.a)(Be,gt,(function(e,t){var r=t.shortCode;return Object(d.a)(Object(d.a)({},e),{},{shortCode:r,loading:!1,error:!1})})),Object(u.a)(Be,pt,(function(){return yt})),Be),yt),Ct=function(e){return function(t,r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c({type:mt}),s=e(a),i=s.deleteShortUrl,n.prev=2,n.next=5,i(t,r);case 5:c({type:gt,shortCode:t,domain:r}),n.next=12;break;case 8:throw n.prev=8,n.t0=n.catch(2),c({type:xt,errorData:vt(n.t0)}),n.t0;case 12:case"end":return n.stop()}}),n,null,[[2,8]])})));return function(e,t){return n.apply(this,arguments)}}()}},Nt=ot(pt),wt="shlink/createShortUrl/CREATE_SHORT_URL_START",kt="shlink/createShortUrl/CREATE_SHORT_URL_ERROR",_t="shlink/createShortUrl/CREATE_SHORT_URL",Ut="shlink/createShortUrl/RESET_CREATE_SHORT_URL",Tt={result:null,saving:!1,error:!1},Rt=it((He={},Object(u.a)(He,wt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{saving:!0,error:!1})})),Object(u.a)(He,kt,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{saving:!1,error:!0,errorData:r})})),Object(u.a)(He,_t,(function(e,t){return{result:t.result,saving:!1,error:!1}})),Object(u.a)(He,Ut,(function(){return Tt})),He),Tt),Et=function(e){return function(t){return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s,i;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n({type:wt}),a=e(c),s=a.createShortUrl,r.prev=2,r.next=5,s(t);case 5:i=r.sent,n({type:_t,result:i}),r.next=13;break;case 9:throw r.prev=9,r.t0=r.catch(2),n({type:kt,errorData:vt(r.t0)}),r.t0;case 13:case"end":return r.stop()}}),r,null,[[2,9]])})));return function(e,t){return r.apply(this,arguments)}}()}},Dt=ot(Ut),Lt=r(43),Vt="shlink/shortUrlEdition/EDIT_SHORT_URL_START",It="shlink/shortUrlEdition/EDIT_SHORT_URL_ERROR",Ft="shlink/shortUrlEdition/SHORT_URL_EDITED",At=it((We={},Object(u.a)(We,Vt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{saving:!0,error:!1})})),Object(u.a)(We,It,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{saving:!1,error:!0,errorData:r})})),Object(u.a)(We,Ft,(function(e,t){return{shortUrl:t.shortUrl,saving:!1,error:!1}})),We),{saving:!1,error:!1}),Mt=function(e){return function(t,r,n){return function(){var c=Object(x.a)(m.a.mark((function c(a,s){var i,o,l,u,d,j,b,h,O;return m.a.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:return a({type:Vt}),i=s(),o=i.selectedServer,l=!Object(Lt.j)(o),u=e(s),d=u.updateShortUrl,j=u.updateShortUrlTags,c.prev=4,c.next=7,Promise.all([d(t,r,n),l&&n.tags?j(t,r,n.tags):void 0]);case 7:b=c.sent,h=Object(E.a)(b,1),O=h[0],a({shortUrl:O,type:Ft}),c.next=17;break;case 13:throw c.prev=13,c.t0=c.catch(4),a({type:It,errorData:vt(c.t0)}),c.t0;case 17:case"end":return c.stop()}}),c,null,[[4,13]])})));return function(e,t){return c.apply(this,arguments)}}()}},Gt="shlink/shortUrlsList/LIST_SHORT_URLS_START",Pt="shlink/shortUrlsList/LIST_SHORT_URLS_ERROR",Bt="shlink/shortUrlsList/LIST_SHORT_URLS",Ht=it((qe={},Object(u.a)(qe,Gt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!0,error:!1})})),Object(u.a)(qe,Pt,(function(){return{loading:!1,error:!0}})),Object(u.a)(qe,Bt,(function(e,t){return{loading:!1,error:!1,shortUrls:t.shortUrls}})),Object(u.a)(qe,gt,Object(I.a)((function(e,t){var r=t.shortCode,n=t.domain;return e.shortUrls?Object(lt.a)(["shortUrls","data"],Object(p.a)((function(e){return bt(e,r,n)}),e.shortUrls.data),e):e}),(function(e){return e.shortUrls?Object(lt.a)(["shortUrls","pagination","totalItems"],e.shortUrls.pagination.totalItems-1,e):e}))),Object(u.a)(qe,ht,(function(e,t){var r,n,c=t.createdVisits;return Object(lt.a)(["shortUrls","data"],null===(r=e.shortUrls)||void 0===r||null===(n=r.data)||void 0===n?void 0:n.map((function(e){var t=Object(ut.a)(c.filter((function(t){var r=t.shortUrl;return r&&bt(e,r.shortCode,r.domain)})));return null!==t&&void 0!==t&&t.shortUrl?Object(dt.a)("visitsCount",t.shortUrl.visitsCount,e):e})),e)})),Object(u.a)(qe,_t,Object(I.a)((function(e,t){var r=t.result;return e.shortUrls?Object(lt.a)(["shortUrls","data"],[r].concat(Object(_e.a)(Object(jt.a)(e.shortUrls.data))),e):e}),(function(e){return e.shortUrls?Object(lt.a)(["shortUrls","pagination","totalItems"],e.shortUrls.pagination.totalItems+1,e):e}))),Object(u.a)(qe,Ft,(function(e,t){var r=t.shortUrl;return e.shortUrls?Object(lt.a)(["shortUrls","data"],e.shortUrls.data.map((function(e){var t=r.shortCode,n=r.domain;return bt(e,t,n)?r:e})),e):e})),qe),{loading:!0,error:!1}),Wt=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s,i;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n({type:Gt}),a=e(c),s=a.listShortUrls,r.prev=2,r.next=5,s(t);case 5:i=r.sent,n({type:Bt,shortUrls:i,params:t}),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),n({type:Pt,params:t});case 12:case"end":return r.stop()}}),r,null,[[2,9]])})));return function(e,t){return r.apply(this,arguments)}}()}},qt="shlink/shortUrlsListParams/RESET_SHORT_URL_PARAMS",zt={dateCreated:"Created at",shortCode:"Short URL",longUrl:"Long URL",title:"Title",visits:"Visits"},Qt={page:"1",orderBy:{dateCreated:"DESC"}},Kt=it((ze={},Object(u.a)(ze,Bt,(function(e,t){var r=t.params;return Object(d.a)(Object(d.a)({},e),r)})),Object(u.a)(ze,qt,(function(){return Qt})),ze),Qt),Jt=ot(qt),Zt=r(567),Yt=r(568),Xt=r(569),$t=r(543),er=r(287),tr=r(566),rr=Math.ceil,nr=new Intl.NumberFormat("en-US"),cr=function(e){return nr.format(Number(e))},ar="...",sr=function(e,t){var r=Object($t.a)(Object(er.a)(2,e-2),Object(tr.a)(t-1,e+2)+1);return e-2>2&&r.unshift(ar),e+2=d,children:Object(a.jsx)(Yt.a,{next:!0,tag:o.b,to:j(l+1)})})]})},dr=function(e,t){return Me((function(r){var n,c=r.listShortUrls,s=r.resetShortUrlParams,i=r.shortUrlsListParams,o=r.match,l=r.location,j=r.history,b=r.shortUrlsList,h=r.selectedServer,O=Object(v.a)(h),f=i.orderBy,m=Object(A.useState)({field:f&&Object(Ue.a)(Object(Te.a)(f)),dir:f&&Object(Ue.a)(Object(Re.a)(f))}),x=Object(E.a)(m,2),g=x[0],p=x[1],y=Ne({history:j,match:o,location:l}),S=Object(E.a)(y,2),C=S[0],N=C.tags,w=C.search,k=S[1],_=Object(A.useMemo)((function(){var e;return null!==(e=null===N||void 0===N?void 0:N.split(",").map(decodeURIComponent))&&void 0!==e?e:[]}),[N]),U=(null!==(n=null===b||void 0===b?void 0:b.shortUrls)&&void 0!==n?n:{}).pagination,T=function(e){return c(Object(d.a)(Object(d.a)({},i),e))},R=function(e,t){p({field:e,dir:t}),T({orderBy:e?Object(u.a)({},e,t):void 0})},D=Object(I.a)((function(e){return Object(_e.a)(new Set([].concat(Object(_e.a)(_),[e]))).join(",")}),(function(e){return k({tags:e})}));return Object(A.useEffect)((function(){return s}),[]),Object(A.useEffect)((function(){T({page:o.params.page,searchTerm:w,tags:_,itemsPerPage:void 0})}),[o.params.page,w,_]),Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("div",{className:"mb-3",children:Object(a.jsx)(t,{})}),Object(a.jsx)("div",{className:"d-block d-lg-none mb-3",children:Object(a.jsx)(Fe,{items:zt,order:g,onChange:R})}),Object(a.jsxs)(Ee.a,{body:!0,className:"pb-1",children:[Object(a.jsx)(e,{selectedServer:h,shortUrlsList:b,orderByColumn:function(e){return function(){return R(e,Ve(e,g.field,g.dir))}},renderOrderIcon:function(e){return Object(a.jsx)(Pe,{currentOrder:g,field:e})},onTagClick:D}),Object(a.jsx)(ur,{paginator:U,serverId:O,currentQueryString:l.search})]})]})}),(function(){return[Ge.visits]}))},jr=r(52),br=r(159),hr=r.n(br),Or=function(e){var t=e.text,r=e.onCopy;return Object(a.jsx)(hr.a,{text:t,onCopy:r,children:Object(a.jsx)(V.a,{icon:ge.c,className:"ml-2 copy-to-clipboard-icon"})})},vr=r(571),fr=r(612),mr=function(e){var t=e.date,r=e.format,n=void 0===r?"yyyy-MM-dd HH:mm":r,c=e.relative,s=void 0!==c&&c,i=ce(t)?t:Object(F.default)(t);return Object(a.jsx)("time",{dateTime:"".concat(Object(vr.a)(i),"000"),children:s?"".concat(Object(fr.a)(new Date,i)," ago"):Object($.default)(i,n)})},xr=r(572),gr=function(e,t,r){var n=e.id,c=t.shortCode,a=t.domain,s=a?"?domain=".concat(a):"";return"/server/".concat(n,"/short-code/").concat(c,"/").concat(r).concat(s)},pr=function(e){var t=e.selectedServer,r=e.shortUrl,n=e.suffix,c=e.children,s=Object(D.a)(e,["selectedServer","shortUrl","suffix","children"]);return t&&Object(v.e)(t)&&r?Object(a.jsx)(o.b,Object(d.a)(Object(d.a)({to:gr(t,r,n)},s),{},{children:c})):Object(a.jsx)("span",Object(d.a)(Object(d.a)({},s),{},{children:c}))},yr=function(e){var t,r=e.visitsCount,n=e.shortUrl,c=e.selectedServer,s=e.active,i=void 0!==s&&s,o=null===n||void 0===n||null===(t=n.meta)||void 0===t?void 0:t.maxVisits,l=Object(a.jsx)(pr,{selectedServer:c,shortUrl:n,suffix:"visits",children:Object(a.jsx)("strong",{className:G()("short-url-visits-count__amount",{"short-url-visits-count__amount--big":i}),children:cr(r)})});if(!o)return l;var u=cr(o),d=Object(A.useRef)();return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)("span",{className:"indivisible",children:[l,Object(a.jsxs)("small",{className:"short-urls-visits-count__max-visits-control",ref:function(e){d.current=e},children:[" ","/ ",u," ",Object(a.jsx)("sup",{children:Object(a.jsx)(V.a,{icon:L.u})})]})]}),Object(a.jsxs)(xr.a,{target:function(){return d.current},placement:"bottom",children:["This short URL will not accept more than ",Object(a.jsx)("b",{children:u})," visits."]})]})},Sr=function(e,t,r){return function(n){var c,s,i=n.shortUrl,o=n.selectedServer,l=n.onTagClick,u=r(),d=Object(E.a)(u,2),j=d[0],b=d[1],h=r(!1,500),O=Object(E.a)(h,2),v=O[0],f=O[1],m=Object(A.useRef)(!0);return Object(A.useEffect)((function(){m.current?m.current=!1:f()}),[i.visitsCount]),Object(a.jsxs)("tr",{className:"responsive-table__row",children:[Object(a.jsx)("td",{className:"indivisible short-urls-row__cell responsive-table__cell","data-th":"Created at",children:Object(a.jsx)(mr,{date:i.dateCreated})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell","data-th":"Short URL",children:Object(a.jsxs)("span",{className:"indivisible short-urls-row__cell--relative",children:[Object(a.jsx)(jr.a,{href:i.shortUrl}),Object(a.jsx)(Or,{text:i.shortUrl,onCopy:b}),Object(a.jsx)("span",{className:"badge badge-warning short-urls-row__copy-hint",hidden:!j,children:"Copied short URL!"})]})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell short-urls-row__cell--break","data-th":"".concat(i.title?"Title":"Long URL"),children:Object(a.jsx)(jr.a,{href:i.longUrl,children:null!==(c=i.title)&&void 0!==c?c:i.longUrl})}),i.title&&Object(a.jsx)("td",{className:"short-urls-row__cell responsive-table__cell short-urls-row__cell--break d-lg-none","data-th":"Long URL",children:Object(a.jsx)(jr.a,{href:i.longUrl})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell","data-th":"Tags",children:(s=i.tags,Object(S.a)(s)?Object(a.jsx)("i",{className:"indivisible",children:Object(a.jsx)("small",{children:"No tags"})}):s.map((function(e){return Object(a.jsx)(B,{colorGenerator:t,text:e,onClick:function(){return null===l||void 0===l?void 0:l(e)}},e)})))}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell text-lg-right","data-th":"Visits",children:Object(a.jsx)(yr,{visitsCount:i.visitsCount,shortUrl:i,selectedServer:o,active:v})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell",children:Object(a.jsx)(e,{selectedServer:o,shortUrl:i})})]})}},Cr=r(573),Nr=function(e){var t=e.isOpen,r=e.toggle,n=e.children,c=e.right,s=void 0===c||c;return Object(a.jsxs)(Cr.a,{toggle:r,isOpen:t,children:[Object(a.jsxs)(q.a,{size:"sm",caret:!0,outline:!0,className:"dropdown-btn-menu__dropdown-toggle",children:["\xa0",Object(a.jsx)(V.a,{icon:L.n}),"\xa0"]}),Object(a.jsx)(z.a,{right:s,children:n})]})},wr=function(e,t){return function(r){var n=r.shortUrl,c=r.selectedServer,s=Object(Q.d)(),i=Object(E.a)(s,2),o=i[0],l=i[1],u=Object(Q.d)(),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(Q.d)(),O=Object(E.a)(h,2),v=O[0],f=O[1];return Object(a.jsxs)(Nr,{toggle:l,isOpen:o,children:[Object(a.jsxs)(H.a,{tag:pr,selectedServer:c,shortUrl:n,suffix:"visits",children:[Object(a.jsx)(V.a,{icon:L.g,fixedWidth:!0})," Visit stats"]}),Object(a.jsxs)(H.a,{tag:pr,selectedServer:c,shortUrl:n,suffix:"edit",children:[Object(a.jsx)(V.a,{icon:L.m,fixedWidth:!0})," Edit short URL"]}),Object(a.jsxs)(H.a,{onClick:b,children:[Object(a.jsx)(V.a,{icon:L.F,fixedWidth:!0})," QR code"]}),Object(a.jsx)(t,{shortUrl:n,isOpen:j,toggle:b}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsxs)(H.a,{className:"dropdown-item--danger",onClick:f,children:[Object(a.jsx)(V.a,{icon:L.y,fixedWidth:!0})," Delete short URL"]}),Object(a.jsx)(e,{shortUrl:n,isOpen:v,toggle:f})]})}},kr=function(e,t){return function(r){var n=r.createShortUrl,c=r.shortUrlCreationResult,s=r.resetCreateShortUrl,i=r.selectedServer,o=r.basicMode,l=void 0!==o&&o,u=r.settings.shortUrlCreation,j=Object(A.useMemo)((function(){return function(e){var t,r;return{longUrl:"",tags:[],customSlug:"",title:void 0,shortCodeLength:void 0,domain:"",validSince:void 0,validUntil:void 0,maxVisits:void 0,findIfExists:!1,validateUrl:null!==(t=null===e||void 0===e?void 0:e.validateUrls)&&void 0!==t&&t,forwardQuery:null===(r=null===e||void 0===e?void 0:e.forwardQuery)||void 0===r||r}}(u)}),[u]);return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(e,{initialState:j,saving:c.saving,selectedServer:i,mode:l?"create-basic":"create",onSave:function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s(),e.abrupt("return",n(t));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}),Object(a.jsx)(t,Object(d.a)(Object(d.a)({},c),{},{resetCreateShortUrl:s,canBeClosed:l}))]})}},_r=r(614),Ur=r(574),Tr=r(575),Rr=r(576),Er=r(544),Dr=r(31),Lr=r(538),Vr=r(32),Ir=function(e){var t=e.children,r=e.type,n=e.className,c=e.small,s=void 0!==c&&c;return Object(a.jsx)(Lr.a,{className:n,children:Object(a.jsx)("div",{className:G()({"col-md-10 offset-md-1":!s,"col-12":s}),children:Object(a.jsx)(Vr.a,{className:G()("text-center",{"bg-main":"success"===r,"bg-danger":"error"===r,"bg-warning":"warning"===r,"text-white":"warning"!==r}),bodyClassName:G()({"p-2":s}),children:t})})})},Fr=function(e){var t,r,n=e.errorData,c=e.fallbackMessage;return Object(a.jsxs)(a.Fragment,{children:[null!==(t=null===n||void 0===n?void 0:n.detail)&&void 0!==t?t:c,(r=n,"INVALID_ARGUMENT"===(null===r||void 0===r?void 0:r.type)&&Object(a.jsxs)("p",{className:"mb-0",children:["Invalid elements: [",n.invalidElements.join(", "),"]"]}))]})},Ar=function(e){var t=e.shortUrl,r=e.toggle,n=e.isOpen,c=e.shortUrlDeletion,s=e.resetDeleteShortUrl,i=e.deleteShortUrl,o=Object(A.useState)(""),l=Object(E.a)(o,2),u=l[0],d=l[1];Object(A.useEffect)((function(){return s}),[]);var j=c.error,b=c.errorData,h=Object(I.a)(s,r),O=Object(Dr.b)((function(){var e=t.shortCode,n=t.domain;i(e,n).then(r).catch(Er.a)}));return Object(a.jsx)(_r.a,{isOpen:n,toggle:h,centered:!0,children:Object(a.jsxs)("form",{onSubmit:O,children:[Object(a.jsx)(Ur.a,{toggle:h,children:Object(a.jsx)("span",{className:"text-danger",children:"Delete short URL"})}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("p",{children:[Object(a.jsx)("b",{className:"text-danger",children:"Caution!"})," You are about to delete a short URL."]}),Object(a.jsx)("p",{children:"This action cannot be undone. Once you have deleted it, all the visits stats will be lost."}),Object(a.jsxs)("p",{children:["Write ",Object(a.jsx)("b",{children:t.shortCode})," to confirm deletion."]}),Object(a.jsx)("input",{type:"text",className:"form-control",placeholder:"Insert the short code (".concat(t.shortCode,")"),value:u,onChange:function(e){return d(e.target.value)}}),j&&Object(a.jsx)(Ir,{type:ft(b)?"warning":"error",small:!0,className:"mt-2",children:Object(a.jsx)(Fr,{errorData:b,fallbackMessage:"Something went wrong while deleting the URL :("})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)("button",{type:"button",className:"btn btn-link",onClick:h,children:"Cancel"}),Object(a.jsx)("button",{type:"submit",className:"btn btn-danger",disabled:u!==t.shortCode||c.loading,children:c.loading?"Deleting...":"Delete"})]})]})})},Mr=r(219),Gr=function(e){return function(t){var r=t.error,n=t.errorData,c=t.result,s=t.resetCreateShortUrl,i=t.canBeClosed,o=void 0!==i&&i,l=e(),u=Object(E.a)(l,2),d=u[0],j=u[1];if(Object(A.useEffect)((function(){s()}),[]),r)return Object(a.jsxs)(Ir,{type:"error",className:"mt-3",children:[o&&Object(a.jsx)(V.a,{icon:L.P,className:"float-right pointer",onClick:s}),Object(a.jsx)(Fr,{errorData:n,fallbackMessage:"An error occurred while creating the URL :("})]});if(Object(y.a)(c))return null;var b=c.shortUrl;return Object(a.jsxs)(Ir,{type:"success",className:"mt-3",children:[o&&Object(a.jsx)(V.a,{icon:L.P,className:"float-right pointer",onClick:s}),Object(a.jsx)("b",{children:"Great!"})," The short URL is ",Object(a.jsx)("b",{children:b}),Object(a.jsx)(hr.a,{text:b,onCopy:j,children:Object(a.jsxs)("button",{className:"btn btn-light btn-sm create-short-url-result__copy-btn",id:"copyBtn",type:"button",children:[Object(a.jsx)(V.a,{icon:ge.c})," Copy"]})}),Object(a.jsx)(Mr.a,{placement:"left",isOpen:d,target:"copyBtn",children:"Copied!"})]})}},Pr=function(e){return function(t){var r=t.orderByColumn,n=t.renderOrderIcon,c=t.shortUrlsList,s=t.onTagClick,i=t.selectedServer,o=t.className,l=c.error,u=c.loading,d=c.shortUrls,j=G()({"short-urls-table__header-cell--with-action":!!r}),b=G()("short-urls-table__header-cell",j),h=G()("table table-hover",o),O=Object(Lt.i)(i);return Object(a.jsxs)("table",{className:h,children:[Object(a.jsx)("thead",{className:"responsive-table__header short-urls-table__header",children:Object(a.jsxs)("tr",{children:[Object(a.jsxs)("th",{className:b,onClick:null===r||void 0===r?void 0:r("dateCreated"),children:["Created at ",null===n||void 0===n?void 0:n("dateCreated")]}),Object(a.jsxs)("th",{className:b,onClick:null===r||void 0===r?void 0:r("shortCode"),children:["Short URL ",null===n||void 0===n?void 0:n("shortCode")]}),!O&&Object(a.jsxs)("th",{className:b,onClick:null===r||void 0===r?void 0:r("longUrl"),children:["Long URL ",null===n||void 0===n?void 0:n("longUrl")]})||Object(a.jsxs)("th",{className:"short-urls-table__header-cell",children:[Object(a.jsxs)("span",{className:j,onClick:null===r||void 0===r?void 0:r("title"),children:["Title ",null===n||void 0===n?void 0:n("title")]}),"\xa0\xa0/\xa0\xa0",Object(a.jsxs)("span",{className:j,onClick:null===r||void 0===r?void 0:r("longUrl"),children:[Object(a.jsx)("span",{className:"indivisible",children:"Long URL"})," ",null===n||void 0===n?void 0:n("longUrl")]})]}),Object(a.jsx)("th",{className:"short-urls-table__header-cell",children:"Tags"}),Object(a.jsx)("th",{className:b,onClick:null===r||void 0===r?void 0:r("visits"),children:Object(a.jsxs)("span",{className:"indivisible",children:["Visits ",null===n||void 0===n?void 0:n("visits")]})}),Object(a.jsx)("th",{className:"short-urls-table__header-cell",children:"\xa0"})]})}),Object(a.jsx)("tbody",{children:l?Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:6,className:"text-center table-danger text-dark",children:"Something went wrong while loading short URLs :("})}):u?Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:6,className:"text-center",children:"Loading..."})}):!u&&Object(S.a)(null===d||void 0===d?void 0:d.data)?Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:6,className:"text-center",children:"No results found"})}):null===d||void 0===d?void 0:d.data.map((function(t){return Object(a.jsx)(e,{shortUrl:t,selectedServer:i,onTagClick:s},t.shortUrl)}))})]})}},Br=r(577),Hr=r(216),Wr=function(e){var t=e.format,r=e.setFormat;return Object(a.jsxs)(K,{text:"Format (".concat(t,")"),children:[Object(a.jsx)(H.a,{active:"png"===t,onClick:function(){return r("png")},children:"PNG"}),Object(a.jsx)(H.a,{active:"svg"===t,onClick:function(){return r("svg")},children:"SVG"})]})},qr=function(e){var t=e.errorCorrection,r=e.setErrorCorrection;return Object(a.jsxs)(K,{text:"Error correction (".concat(t,")"),children:[Object(a.jsxs)(H.a,{active:"L"===t,onClick:function(){return r("L")},children:[Object(a.jsx)("b",{children:"L"}),"ow"]}),Object(a.jsxs)(H.a,{active:"M"===t,onClick:function(){return r("M")},children:[Object(a.jsx)("b",{children:"M"}),"edium"]}),Object(a.jsxs)(H.a,{active:"Q"===t,onClick:function(){return r("Q")},children:[Object(a.jsx)("b",{children:"Q"}),"uartile"]}),Object(a.jsxs)(H.a,{active:"H"===t,onClick:function(){return r("H")},children:[Object(a.jsx)("b",{children:"H"}),"igh"]})]})},zr=function(e,t){return function(r){var n=r.shortUrl,c=n.shortUrl,s=n.shortCode,i=r.toggle,o=r.isOpen,l=r.selectedServer,u=Object(A.useState)(300),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(A.useState)(0),O=Object(E.a)(h,2),v=O[0],f=O[1],g=Object(A.useState)("png"),p=Object(E.a)(g,2),y=p[0],N=p[1],w=Object(A.useState)("L"),k=Object(E.a)(w,2),_=k[0],U=k[1],T=Object(A.useMemo)((function(){return{useSizeInPath:!Object(Lt.g)(l),marginIsSupported:Object(Lt.f)(l),errorCorrectionIsSupported:Object(Lt.h)(l)}}),[l]),R=T.marginIsSupported!==T.errorCorrectionIsSupported,D=Object(A.useMemo)((function(){return function(e,t,r){var n=t.size,c=t.format,a=t.margin,s=t.errorCorrection,i=r.useSizeInPath,o=r.marginIsSupported,l=r.errorCorrectionIsSupported,u="".concat(e,"/qr-code").concat(i?"/".concat(n):""),d=Object(C.b)({size:i?void 0:n,format:c,margin:o&&a>0?a:void 0,errorCorrection:l?s:void 0});return"".concat(u).concat(Object(S.a)(d)?"":"?".concat(d))}(c,{size:j,format:y,margin:v,errorCorrection:_},T)}),[c,j,y,v,_,T]),I=Object(A.useMemo)((function(){return j+v}),[j,v]),F=Object(A.useMemo)((function(){if(!(I<500))return I<800?"lg":"xl"}),[I]);return Object(a.jsxs)(_r.a,{isOpen:o,toggle:i,centered:!0,size:F,children:[Object(a.jsxs)(Ur.a,{toggle:i,children:["QR code for ",Object(a.jsx)(jr.a,{href:c,children:c})]}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)(Lr.a,{children:[Object(a.jsxs)(Br.a,{className:G()({"col-md-4":R,"col-md-6":!R}),children:[Object(a.jsxs)("label",{className:"mb-0",children:["Size: ",j,"px"]}),Object(a.jsx)("input",{type:"range",className:"form-control-range",value:j,step:10,min:50,max:1e3,onChange:function(e){return b(Number(e.target.value))}})]}),T.marginIsSupported&&Object(a.jsxs)(Br.a,{className:R?"col-md-4":"col-md-6",children:[Object(a.jsxs)("label",{className:"mb-0",children:["Margin: ",v,"px"]}),Object(a.jsx)("input",{type:"range",className:"form-control-range",value:v,step:1,min:0,max:100,onChange:function(e){return f(Number(e.target.value))}})]}),Object(a.jsx)(Br.a,{className:R?"col-md-4":"col-md-6",children:Object(a.jsx)(Wr,{format:y,setFormat:N})}),T.errorCorrectionIsSupported&&Object(a.jsx)(Br.a,{className:"col-md-6",children:Object(a.jsx)(qr,{errorCorrection:_,setErrorCorrection:U})})]}),Object(a.jsxs)("div",{className:"text-center",children:[Object(a.jsxs)("div",{className:"mb-3",children:[Object(a.jsx)(jr.a,{href:D}),Object(a.jsx)(Or,{text:D})]}),Object(a.jsx)("img",{src:D,className:"qr-code-modal__img",alt:"QR code"}),Object(a.jsx)(t,{minVersion:"2.9.0",children:Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsxs)(Hr.a,{block:!0,color:"primary",onClick:Object(x.a)(m.a.mark((function t(){return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.saveImage(D,"".concat(s,"-qr-code.").concat(y)));case 1:case"end":return t.stop()}}),t)}))),children:["Download ",Object(a.jsx)(V.a,{icon:L.q,className:"ml-1"})]})})})]})]})]})}},Qr=r(582),Kr=r(578),Jr=r(579),Zr=r(580),Yr=r(581),Xr=r(609),$r=function(e){var t=e.checked,r=void 0!==t&&t,n=e.onChange,c=void 0===n?Er.a:n,s=e.className,i=e.children,o=e.type,l=e.inline,u=void 0!==l&&l,d=Object(A.useRef)(Object(Xr.a)()).current,j={"custom-switch":"switch"===o,"custom-checkbox":"checkbox"===o},b=u?{display:"inline-block"}:{};return Object(a.jsxs)("span",{className:G()("custom-control",j,s),style:b,children:[Object(a.jsx)("input",{type:"checkbox",className:"custom-control-input",id:d,checked:r,onChange:function(e){return c(e.target.checked,e)}}),Object(a.jsx)("label",{className:"custom-control-label",htmlFor:d,children:i})]})},en=function(e){return Object(a.jsx)($r,Object(d.a)({type:"checkbox"},e))},tn=function(e){var t=e.isOpen,r=e.toggle;return Object(a.jsxs)(_r.a,{isOpen:t,toggle:r,centered:!0,size:"lg",children:[Object(a.jsx)(Ur.a,{toggle:r,children:"Info"}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("p",{children:["When the\xa0",Object(a.jsx)("b",{children:Object(a.jsx)("i",{children:'"Use existing URL if found"'})}),"\xa0checkbox is checked, the server will return an existing short URL if it matches provided params."]}),Object(a.jsx)("p",{children:"These are the checks performed by Shlink in order to determine if an existing short URL should be returned:"}),Object(a.jsxs)("ul",{children:[Object(a.jsx)("li",{children:"When only the long URL is provided: The most recent match will be returned, or a new short URL will be created if none is found."}),Object(a.jsxs)("li",{children:["When long URL and custom slug and/or domain are provided: Same as in previous case, but it will try to match the short URL using both the long URL and the slug, the long URL and the domain, or the three of them.",Object(a.jsx)("br",{}),"If the slug is being used by another long URL, an error will be returned."]}),Object(a.jsx)("li",{children:"When other params are provided: Same as in previous cases, but it will try to match existing short URLs with all provided data. If any of them does not match, a new short URL will be created"})]})]})]})},rn=function(){var e=Object(Q.d)(),t=Object(E.a)(e,2),r=t[0],n=t[1];return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("span",{title:"What does this mean?",children:Object(a.jsx)(V.a,{icon:L.u,style:{cursor:"pointer"},onClick:n})}),Object(a.jsx)(tn,{isOpen:r,toggle:n})]})},nn=function(e){var t=e.className,r=void 0===t?"":t,n=e.placement,c=e.children,s=Object(A.useRef)();return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("span",{className:r,ref:function(e){s.current=e},children:Object(a.jsx)(V.a,{icon:L.u})}),Object(a.jsx)(xr.a,{target:function(){return s.current},placement:n,children:c})]})},cn=function(e){var t=e.children,r=e.infoTooltip,n=e.checked,c=e.onChange;return Object(a.jsxs)("p",{children:[Object(a.jsx)(en,{inline:!0,checked:n,className:r?"mr-2":"",onChange:c,children:t}),r&&Object(a.jsx)(nn,{placement:"right",children:r})]})},an=Object(I.a)(Kr.a,Object(Jr.a)(/ /g,"-")),sn=function(e){return"string"===typeof e?Object(F.default)(e):e},on=function(e){return{"col-sm-6":e,"col-sm-12":!e}},ln=function(e,t){return function(r){var n,c=r.mode,s=r.saving,i=r.onSave,o=r.initialState,l=r.selectedServer,j=Object(A.useState)(o),b=Object(E.a)(j,2),h=b[0],O=b[1],v="edit"===c,f=Object(Dr.c)(o.title),g=function(){var e=Object(Dr.c)(h.title);return Object(Zr.a)([[function(){return!e&&!f},function(){}],[function(){return!e&&f},function(){return null}],[Yr.a,function(){return h.title}]])()},p=Object(Dr.b)(Object(x.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(Object(d.a)(Object(d.a)({},h),{},{validSince:null!==(t=se(h.validSince))&&void 0!==t?t:null,validUntil:null!==(r=se(h.validUntil))&&void 0!==r?r:null,maxVisits:Object(Dr.c)(h.maxVisits)?Number(h.maxVisits):null,title:g()})).then((function(){return!v&&O(o)})).catch((function(){})));case 1:case"end":return e.stop()}}),e)}))));Object(A.useEffect)((function(){O(o)}),[o]);var y=function(e,t){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"text",c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Object(a.jsx)(Br.a,{children:Object(a.jsx)(Qr.a,Object(d.a)({id:e,type:n,placeholder:t,value:null!==(r=h[e])&&void 0!==r?r:"",onChange:function(t){return O(Object(d.a)(Object(d.a)({},h),{},Object(u.a)({},e,t.target.value)))}},c))})},C=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object(a.jsx)("div",{className:"form-group",children:Object(a.jsx)(pe,Object(d.a)({selected:h[e]?sn(h[e]):null,placeholderText:t,isClearable:!0,onChange:function(t){return O(Object(d.a)(Object(d.a)({},h),{},Object(u.a)({},e,t)))}},r))})},N=Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Br.a,{children:Object(a.jsx)(Qr.a,{bsSize:"lg",type:"url",placeholder:"URL to be shortened",required:!0,value:h.longUrl,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{longUrl:e.target.value}))}})}),Object(a.jsx)(Br.a,{children:Object(a.jsx)(e,{selectedTags:null!==(n=h.tags)&&void 0!==n?n:[],onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{tags:e.map(an)}))}})})]}),w=Object(Lt.i)(l),k=w||!v,_=G()("mb-3",on(k)),U=Object(Lt.b)(l),T=Object(Lt.d)(l),R=U||T,D=G()("mb-3",on(R));return Object(a.jsxs)("form",{className:"short-url-form",onSubmit:p,children:["create-basic"===c&&N,"create-basic"!==c&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Vr.a,{title:"Basic options",className:"mb-3",children:N}),Object(a.jsxs)(Lr.a,{children:[k&&Object(a.jsx)("div",{className:"col-sm-6 mb-3",children:Object(a.jsxs)(Vr.a,{title:"Customize the short URL",children:[w&&y("title","Title"),!v&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)(Lr.a,{children:[Object(a.jsx)("div",{className:"col-lg-6",children:y("customSlug","Custom slug","text",{disabled:Object(Dr.c)(h.shortCodeLength)})}),Object(a.jsx)("div",{className:"col-lg-6",children:y("shortCodeLength","Short code length","number",{min:4,disabled:Object(Dr.c)(h.customSlug)})})]}),Object(a.jsx)(Br.a,{children:Object(a.jsx)(t,{value:h.domain,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{domain:e}))}})})]})]})}),Object(a.jsx)("div",{className:_,children:Object(a.jsxs)(Vr.a,{title:"Limit access to the short URL",children:[y("maxVisits","Maximum number of visits allowed","number",{min:1}),C("validSince","Enabled since...",{maxDate:h.validUntil?sn(h.validUntil):void 0}),C("validUntil","Enabled until...",{minDate:h.validSince?sn(h.validSince):void 0})]})})]}),Object(a.jsxs)(Lr.a,{children:[Object(a.jsx)("div",{className:D,children:Object(a.jsxs)(Vr.a,{title:"Extra checks",children:[Object(a.jsx)(cn,{infoTooltip:"If checked, Shlink will try to reach the long URL, failing in case it's not publicly accessible.",checked:h.validateUrl,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{validateUrl:e}))},children:"Validate URL"}),!v&&Object(a.jsxs)("p",{children:[Object(a.jsx)(en,{inline:!0,className:"mr-2",checked:h.findIfExists,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{findIfExists:e}))},children:"Use existing URL if found"}),Object(a.jsx)(rn,{})]})]})}),R&&Object(a.jsx)("div",{className:"col-sm-6 mb-3",children:Object(a.jsxs)(Vr.a,{title:"Configure behavior",children:[U&&Object(a.jsx)(cn,{infoTooltip:"This short URL will be included in the robots.txt for your Shlink instance, allowing web crawlers (like Google) to index it.",checked:h.crawlable,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{crawlable:e}))},children:"Make it crawlable"}),T&&Object(a.jsx)(cn,{infoTooltip:"When this short URL is visited, any query params appended to it will be forwarded to the long URL.",checked:h.forwardQuery,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{forwardQuery:e}))},children:"Forward query params on redirect"})]})})]})]}),Object(a.jsx)("div",{className:"text-center",children:Object(a.jsx)(Hr.a,{outline:!0,color:"primary",disabled:s||Object(S.a)(h.longUrl),className:"btn-xs-block",children:s?"Saving...":"Save"})})]})}},un=r(54),dn=function(e){return function(t){var r,n=t.history.goBack,c=t.match.params,s=t.location.search,i=t.settings.shortUrlCreation,o=t.selectedServer,l=t.shortUrlDetail,u=t.getShortUrlDetail,d=t.shortUrlEdition,j=t.editShortUrl,b=l.loading,h=l.error,O=l.errorData,v=l.shortUrl,f=d.saving,g=d.error,p=d.errorData,y=Object(C.a)(s).domain,S=Object(A.useMemo)((function(){return function(e,t){var r,n,c,a,s,i,o=null!==(r=null===t||void 0===t?void 0:t.validateUrls)&&void 0!==r&&r;return e?{longUrl:e.longUrl,tags:e.tags,title:null!==(n=e.title)&&void 0!==n?n:void 0,domain:null!==(c=e.domain)&&void 0!==c?c:void 0,validSince:null!==(a=e.meta.validSince)&&void 0!==a?a:void 0,validUntil:null!==(s=e.meta.validUntil)&&void 0!==s?s:void 0,maxVisits:null!==(i=e.meta.maxVisits)&&void 0!==i?i:void 0,crawlable:e.crawlable,forwardQuery:e.forwardQuery,validateUrl:o}:{longUrl:"",validateUrl:o}}(v,i)}),[v,i]),N=Object(Q.d)(),w=Object(E.a)(N,4),k=w[0],_=w[2],U=w[3];return Object(A.useEffect)((function(){u(c.shortCode,y)}),[]),b?Object(a.jsx)(un.a,{loading:!0}):h?Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:O,fallbackMessage:"An error occurred while loading short URL detail :("})}):Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("header",{className:"mb-3",children:Object(a.jsx)(Ee.a,{body:!0,children:Object(a.jsxs)("h2",{className:"d-sm-flex justify-content-between align-items-center mb-0",children:[Object(a.jsx)(Hr.a,{color:"link",size:"lg",className:"p-0 mr-3",onClick:n,children:Object(a.jsx)(V.a,{icon:L.a})}),Object(a.jsx)("span",{className:"text-center",children:Object(a.jsxs)("small",{children:["Edit ",Object(a.jsx)(jr.a,{href:null!==(r=null===v||void 0===v?void 0:v.shortUrl)&&void 0!==r?r:""})]})}),Object(a.jsx)("span",{})]})})}),Object(a.jsx)(e,{initialState:S,saving:f,selectedServer:o,mode:"edit",onSave:function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(v){e.next=2;break}return e.abrupt("return");case 2:U(),j(v.shortCode,v.domain,t).then(_).catch(U);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}),g&&Object(a.jsx)(Ir,{type:"error",className:"mt-3",children:Object(a.jsx)(Fr,{errorData:p,fallbackMessage:"An error occurred while updating short URL :("})}),k&&Object(a.jsx)(Ir,{type:"success",className:"mt-3",children:"Short URL properly edited."})]})}},jn="shlink/shortUrlDetail/GET_SHORT_URL_DETAIL_START",bn="shlink/shortUrlDetail/GET_SHORT_URL_DETAIL_ERROR",hn="shlink/shortUrlDetail/GET_SHORT_URL_DETAIL",On={loading:!1,error:!1},vn=it((Qe={},Object(u.a)(Qe,jn,(function(){return{loading:!0,error:!1}})),Object(u.a)(Qe,bn,(function(e,t){return{loading:!1,error:!0,errorData:t.errorData}})),Object(u.a)(Qe,hn,(function(e,t){var r=t.shortUrl;return Object(d.a)({shortUrl:r},On)})),Qe),On),fn=function(e){return function(t,r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(c({type:jn}),n.prev=1,o=a(),l=o.shortUrlsList,null===(s=null===l||void 0===l||null===(i=l.shortUrls)||void 0===i?void 0:i.data.find((function(e){return bt(e,t,r)})))||void 0===s){n.next=7;break}n.t0=s,n.next=10;break;case 7:return n.next=9,e(a).getShortUrl(t,r);case 9:n.t0=n.sent;case 10:u=n.t0,c({shortUrl:u,type:hn}),n.next=17;break;case 14:n.prev=14,n.t1=n.catch(1),c({type:bn,errorData:vt(n.t1)});case 17:case"end":return n.stop()}}),n,null,[[1,14]])})));return function(e,t){return n.apply(this,arguments)}}()}},mn=function(e,t,r){e.serviceFactory("ShortUrlsList",dr,"ShortUrlsTable","SearchBar"),e.decorator("ShortUrlsList",t(["selectedServer","shortUrlsListParams","mercureInfo","shortUrlsList"],["listShortUrls","resetShortUrlParams","createNewVisits","loadMercureInfo"])),e.serviceFactory("ShortUrlsTable",Pr,"ShortUrlsRow"),e.serviceFactory("ShortUrlsRow",Sr,"ShortUrlsRowMenu","ColorGenerator","useStateFlagTimeout"),e.serviceFactory("ShortUrlsRowMenu",wr,"DeleteShortUrlModal","QrCodeModal"),e.serviceFactory("CreateShortUrlResult",Gr,"useStateFlagTimeout"),e.serviceFactory("ShortUrlForm",ln,"TagsSelector","DomainSelector"),e.serviceFactory("CreateShortUrl",kr,"ShortUrlForm","CreateShortUrlResult"),e.decorator("CreateShortUrl",t(["shortUrlCreationResult","selectedServer","settings"],["createShortUrl","resetCreateShortUrl"])),e.serviceFactory("EditShortUrl",dn,"ShortUrlForm"),e.decorator("EditShortUrl",t(["shortUrlDetail","shortUrlEdition","selectedServer","settings"],["getShortUrlDetail","editShortUrl"])),e.serviceFactory("DeleteShortUrlModal",(function(){return Ar})),e.decorator("DeleteShortUrlModal",t(["shortUrlDeletion"],["deleteShortUrl","resetDeleteShortUrl"])),e.serviceFactory("QrCodeModal",zr,"ImageDownloader","ForServerVersion"),e.decorator("QrCodeModal",t(["selectedServer"])),e.serviceFactory("SearchBar",ke,"ColorGenerator"),e.decorator("SearchBar",t(["shortUrlsListParams"],["listShortUrls"])),e.decorator("SearchBar",r),e.serviceFactory("listShortUrls",Wt,"buildShlinkApiClient"),e.serviceFactory("resetShortUrlParams",(function(){return Jt})),e.serviceFactory("createShortUrl",Et,"buildShlinkApiClient"),e.serviceFactory("resetCreateShortUrl",(function(){return Dt})),e.serviceFactory("deleteShortUrl",Ct,"buildShlinkApiClient"),e.serviceFactory("resetDeleteShortUrl",(function(){return Nt})),e.serviceFactory("getShortUrlDetail",fn,"buildShlinkApiClient"),e.serviceFactory("editShortUrl",Mt,"buildShlinkApiClient")},xn=r(288),gn=r.n(xn),pn=r(60),yn=function(e){var t=e.children,r=e.value,n=e.onChange,c=e.id,s=e.type,i=e.required,o=e.placeholder,l=e.className,u=e.labelClassName,d=Object(A.useRef)(null!==c&&void 0!==c?c:Object(Xr.a)());return Object(a.jsxs)(Br.a,{className:null!==l&&void 0!==l?l:"",children:[Object(a.jsxs)("label",{htmlFor:d.current,className:null!==u&&void 0!==u?u:"",children:[t,":"]}),Object(a.jsx)("input",{className:"form-control",type:null!==s&&void 0!==s?s:"text",id:d.current,value:r,required:null===i||void 0===i||i,placeholder:o,onChange:function(e){return n(e.target.value)}})]})},Sn=function(e){return Object(a.jsx)(yn,Object(d.a)(Object(d.a)({},e),{},{labelClassName:"create-server__label"}))},Cn=function(e){var t=e.onSubmit,r=e.initialValues,n=e.children,c=e.title,s=Object(A.useState)(""),i=Object(E.a)(s,2),o=i[0],l=i[1],u=Object(A.useState)(""),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(A.useState)(""),O=Object(E.a)(h,2),v=O[0],f=O[1],m=Object(Dr.b)((function(){return t({name:o,url:j,apiKey:v})}));return Object(A.useEffect)((function(){r&&l(r.name),r&&b(r.url),r&&f(r.apiKey)}),[r]),Object(a.jsxs)("form",{className:"server-form",onSubmit:m,children:[Object(a.jsxs)(Vr.a,{className:"mb-3",title:c,children:[Object(a.jsx)(Sn,{value:o,onChange:l,children:"Name"}),Object(a.jsx)(Sn,{type:"url",value:j,onChange:b,children:"URL"}),Object(a.jsx)(Sn,{value:v,onChange:f,children:"API key"})]}),Object(a.jsx)("div",{className:"text-right",children:n})]})},Nn=function(e){var t=e.type;return Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsxs)(Ir,{type:t,children:["success"===t&&"Servers properly imported. You can now select one from the list :)","error"===t&&"The servers could not be imported. Make sure the format is correct."]})})},wn=function(e,t){return function(r){var n=r.servers,c=r.createServer,s=r.history,i=s.push,o=s.goBack,l=!!Object.keys(n).length,u=t(!1,4e3),j=Object(E.a)(u,2),b=j[0],h=j[1],O=t(!1,4e3),v=Object(E.a)(O,2),f=v[0],m=v[1];return Object(a.jsxs)(pn.a,{children:[Object(a.jsxs)(Cn,{title:Object(a.jsx)("h5",{className:"mb-0",children:"Add new server"}),onSubmit:function(e){var t=Object(Xr.a)();c(Object(d.a)(Object(d.a)({},e),{},{id:t})),i("/server/".concat(t))},children:[!l&&Object(a.jsx)(e,{tooltipPlacement:"top",onImport:h,onImportError:m}),l&&Object(a.jsx)(Hr.a,{outline:!0,onClick:o,children:"Cancel"}),Object(a.jsx)(Hr.a,{outline:!0,color:"primary",className:"ml-2",children:"Create server"})]}),b&&Object(a.jsx)(Nn,{type:"success"}),f&&Object(a.jsx)(Nn,{type:"error"})]})}},kn=function(e){var t=e.servers,r=e.selectedServer,n=Object(Re.a)(t);return Object(a.jsxs)(De.a,{nav:!0,inNavbar:!0,children:[Object(a.jsxs)(q.a,{nav:!0,caret:!0,children:[Object(a.jsx)(V.a,{icon:L.I})," ",Object(a.jsx)("span",{className:"ml-1",children:"Servers"})]}),Object(a.jsx)(z.a,{right:!0,children:Object(S.a)(n)?Object(a.jsxs)(H.a,{tag:o.b,to:"/server/create",children:[Object(a.jsx)(V.a,{icon:L.E})," ",Object(a.jsx)("span",{className:"ml-1",children:"Add a server"})]}):Object(a.jsxs)(a.Fragment,{children:[n.map((function(e){var t=e.name,n=e.id;return Object(a.jsx)(H.a,{tag:o.b,to:"/server/".concat(n),active:Object(v.a)(r)===n,children:t},n)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsxs)(H.a,{tag:o.b,to:"/manage-servers",children:[Object(a.jsx)(V.a,{icon:L.I})," ",Object(a.jsx)("span",{className:"ml-1",children:"Manage servers"})]})]})})]})},_n=function(e){var t=e.server,r=e.toggle,n=e.isOpen,c=e.deleteServer,s=e.history,i=e.redirectHome,o=void 0===i||i;return Object(a.jsxs)(_r.a,{isOpen:n,toggle:r,centered:!0,children:[Object(a.jsx)(Ur.a,{toggle:r,children:Object(a.jsx)("span",{className:"text-danger",children:"Remove server"})}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("p",{children:["Are you sure you want to remove ",Object(a.jsx)("b",{children:t?t.name:""}),"?"]}),Object(a.jsx)("p",{children:Object(a.jsx)("i",{children:"No data will be deleted, only the access to this server will be removed from this device. You can create it again at any moment."})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)("button",{className:"btn btn-link",onClick:r,children:"Cancel"}),Object(a.jsx)("button",{className:"btn btn-danger",onClick:function(){return c(t),r(),void(o&&s.push("/"))},children:"Delete"})]})]})},Un=function(e){return function(t){var r=t.server,n=t.className,c=t.children,s=t.textClassName,i=Object(Q.d)(),o=Object(E.a)(i,4),l=o[0],u=o[2],d=o[3];return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)("span",{className:n,onClick:u,children:[!c&&Object(a.jsx)(V.a,{fixedWidth:!0,icon:L.y}),Object(a.jsx)("span",{className:s,children:null!==c&&void 0!==c?c:"Remove this server"})]}),Object(a.jsx)(e,{server:r,isOpen:l,toggle:d})]})}},Tn=r(151),Rn=function(e){return Object(Tn.a)((function(e){var t=e.editServer,r=e.selectedServer,n=e.history.goBack;if(!Object(v.e)(r))return null;return Object(a.jsx)(pn.a,{children:Object(a.jsxs)(Cn,{title:Object(a.jsxs)("h5",{className:"mb-0",children:['Edit "',r.name,'"']}),initialValues:r,onSubmit:function(e){t(r.id,e),n()},children:[Object(a.jsx)(Hr.a,{outline:!0,className:"mr-2",onClick:n,children:"Cancel"}),Object(a.jsx)(Hr.a,{outline:!0,color:"primary",children:"Save"})]})})}),e)},En=function(e){var t=e.importServersFromFile;return function(e){var r=e.createServers,n=e.fileRef,c=e.children,s=e.onImport,i=void 0===s?function(){}:s,o=e.onImportError,l=void 0===o?function(){}:o,u=e.tooltipPlacement,d=void 0===u?"bottom":u,j=e.className,b=void 0===j?"":j,h=null!==n&&void 0!==n?n:Object(A.useRef)(),O=function(){var e=Object(x.a)(m.a.mark((function e(n){var c,a;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.target,e.abrupt("return",t(null===(c=a.files)||void 0===c?void 0:c[0]).then(Object(I.a)(r,i)).then((function(){a.value=null})).catch(l));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)(Hr.a,{outline:!0,id:"importBtn",className:b,onClick:function(){var e;return null===(e=h.current)||void 0===e?void 0:e.click()},children:[Object(a.jsx)(V.a,{icon:L.r,fixedWidth:!0})," ",null!==c&&void 0!==c?c:"Import from file"]}),Object(a.jsxs)(xr.a,{placement:d,target:"importBtn",children:["You can create servers by importing a CSV file with columns ",Object(a.jsx)("b",{children:"name"}),", ",Object(a.jsx)("b",{children:"apiKey"})," and ",Object(a.jsx)("b",{children:"url"}),"."]}),Object(a.jsx)("input",{type:"file",accept:"text/csv",className:"import-servers-btn__csv-select",ref:h,onChange:O})]})}},Dn=r(539),Ln=r(70),Vn="shlink/selectedServer/SELECT_SERVER",In="shlink/selectedServer/RESET_SELECTED_SERVER",Fn=Object(I.a)((function(e){return"latest"===e?"999.999.999":e}),Object(Ln.c)("1.0.0")),An=Object(Dn.a)(Er.a,function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",r().then((function(e){var t=e.version;return{version:Fn(t),printableVersion:Object(Ln.b)(t)}})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()),Mn=it((Ke={},Object(u.a)(Ke,In,(function(){return null})),Object(u.a)(Ke,Vn,(function(e,t){return t.selectedServer})),Ke),null),Gn=ot(In),Pn=function(e,t){return function(r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j,b,h;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(c(Gn()),c(Jt()),s=a(),i=s.servers,o=i[r]){n.next=7;break}return c({type:Vn,selectedServer:{serverNotFound:!0}}),n.abrupt("return");case 7:return n.prev=7,l=e(o),u=l.health,n.next=11,An(r,u);case 11:j=n.sent,b=j.version,h=j.printableVersion,c({type:Vn,selectedServer:Object(d.a)(Object(d.a)({},o),{},{version:b,printableVersion:h})}),c(t()),n.next=21;break;case 18:n.prev=18,n.t0=n.catch(7),c({type:Vn,selectedServer:Object(d.a)(Object(d.a)({},o),{},{serverNotReachable:!0})});case 21:case"end":return n.stop()}}),n,null,[[7,18]])})));return function(e,t){return n.apply(this,arguments)}}()}},Bn=r(583),Hn=r(584),Wn=r(152),qn=r(313),zn="shlink/servers/EDIT_SERVER",Qn="shlink/servers/DELETE_SERVER",Kn="shlink/servers/CREATE_SERVERS",Jn="shlink/servers/SET_AUTO_CONNECT",Zn=it((Je={},Object(u.a)(Je,Kn,(function(e,t){var r=t.newServers;return Object(d.a)(Object(d.a)({},e),r)})),Object(u.a)(Je,Qn,(function(e,t){var r=t.serverId;return Object(Bn.a)(r,e)})),Object(u.a)(Je,zn,(function(e,t){var r=t.serverId,n=t.serverData;return e[r]?Object(dt.a)(r,Object(d.a)(Object(d.a)({},e[r]),n),e):e})),Object(u.a)(Je,Jn,(function(e,t){var r=t.serverId,n=t.autoConnect;return e[r]?n?Object(Hn.a)(Object(Le.a)(e).map((function(e){var t=Object(E.a)(e,2),n=t[0],c=t[1];return[n,Object(d.a)(Object(d.a)({},c),{},{autoConnect:n===r})]}))):Object(dt.a)(r,Object(d.a)(Object(d.a)({},e[r]),{},{autoConnect:n}),e):e})),Je),{}),Yn=Object(Wn.a)((function(e,t){return Object(dt.a)(t.id,t,e)}),{}),Xn=Object(I.a)(Object(qn.a)((function(e){return e.id?e:Object(dt.a)("id",Object(Xr.a)(),e)})),Yn,(function(e){return{type:Kn,newServers:e}})),$n=function(e){return Xn([e])},ec=function(e,t){return{type:zn,serverId:e,serverData:t}},tc=function(e){var t=e.id;return{type:Qn,serverId:t}},rc=function(e,t){var r=e.id;return{type:Jn,serverId:r,autoConnect:t}},nc=Object(I.a)(Object(O.a)("data"),(function(e){return Array.isArray(e)?e.filter(v.b):[]})),cc=function(e){var t=e.get;return function(){return function(){var e=Object(x.a)(m.a.mark((function e(r){var n,c;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t("".concat(l.a,"/servers.json"));case 2:n=e.sent,c=nc(n),r(Xn(c));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}},ac=function(e){var t=e.minVersion,r=e.maxVersion,n=e.selectedServer,c=e.children;if(!Object(v.d)(n))return null;var s=n.version;return Object(Ln.a)(s,{maxVersion:r,minVersion:t})?Object(a.jsx)(a.Fragment,{children:c}):null},sc=r(165),ic=function(e){return function(t){var r=t.servers,n=t.selectedServer;return Object(a.jsx)(pn.a,{children:Object(a.jsxs)("div",{className:"server-error__container flex-column",children:[Object(a.jsxs)(un.a,{className:"w-100 mb-3 mb-md-5",type:"error",fullWidth:!0,children:[!Object(v.e)(n)&&"Could not find this Shlink server.",Object(v.e)(n)&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("p",{children:"Oops! Could not connect to this Shlink server."}),"Make sure you have internet connection, and the server is properly configured and on-line."]})]}),Object(a.jsxs)(sc.a,{servers:Object.values(r),children:["These are the Shlink servers currently configured. Choose one of them or ",Object(a.jsx)(o.b,{to:"/server/create",children:"add a new one"}),"."]}),Object(v.e)(n)&&Object(a.jsx)("div",{className:"container mt-3 mt-md-5",children:Object(a.jsxs)("h5",{children:["Alternatively, if you think you may have miss-configured this server, you can ",Object(a.jsx)(e,{server:n,className:"server-error__delete-btn",children:"remove it"})," or\xa0",Object(a.jsx)(o.b,{to:"/server/".concat(n.id,"/edit"),children:"edit it"}),"."]})})]})})}},oc=r(103),lc=r(585),uc=r(586),dc=r(540),jc=r(541),bc=function(e,t,r){return Me((function(n){var c,s=n.shortUrlsList,i=n.listShortUrls,l=n.listTags,u=n.tagsList,d=n.selectedServer,j=n.loadVisitsOverview,h=n.visitsOverview,O=s.loading,f=s.shortUrls,m=u.loading,x=h.loading,g=h.visitsCount,p=h.orphanVisitsCount,y=Object(v.a)(d),S=Object(b.g)();return Object(A.useEffect)((function(){i({itemsPerPage:5,orderBy:{dateCreated:"DESC"}}),l(),j()}),[]),Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)(Lr.a,{children:[Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Visits"}),Object(a.jsx)(uc.a,{tag:"h2",children:x?"Loading...":cr(g)})]})}),Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,tag:o.b,to:"/server/".concat(y,"/orphan-visits"),children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Orphan visits"}),Object(a.jsxs)(uc.a,{tag:"h2",children:[Object(a.jsx)(r,{minVersion:"2.6.0",children:x?"Loading...":cr(null!==p&&void 0!==p?p:0)}),Object(a.jsx)(r,{maxVersion:"2.5.*",children:Object(a.jsx)("small",{className:"text-muted",children:Object(a.jsx)("i",{children:"Shlink 2.6 is needed"})})})]})]})}),Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,tag:o.b,to:"/server/".concat(y,"/list-short-urls/1"),children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Short URLs"}),Object(a.jsx)(uc.a,{tag:"h2",children:O?"Loading...":cr(null!==(c=null===f||void 0===f?void 0:f.pagination.totalItems)&&void 0!==c?c:0)})]})}),Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,tag:o.b,to:"/server/".concat(y,"/manage-tags"),children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Tags"}),Object(a.jsx)(uc.a,{tag:"h2",children:m?"Loading...":cr(u.tags.length)})]})})]}),Object(a.jsxs)(Ee.a,{className:"mb-3",children:[Object(a.jsxs)(dc.a,{children:[Object(a.jsx)("span",{className:"d-sm-none",children:"Create a short URL"}),Object(a.jsx)("h5",{className:"d-none d-sm-inline",children:"Create a short URL"}),Object(a.jsx)(o.b,{className:"float-right",to:"/server/".concat(y,"/create-short-url"),children:"Advanced options \xbb"})]}),Object(a.jsx)(jc.a,{children:Object(a.jsx)(t,{basicMode:!0})})]}),Object(a.jsxs)(Ee.a,{children:[Object(a.jsxs)(dc.a,{children:[Object(a.jsx)("span",{className:"d-sm-none",children:"Recently created URLs"}),Object(a.jsx)("h5",{className:"d-none d-sm-inline",children:"Recently created URLs"}),Object(a.jsx)(o.b,{className:"float-right",to:"/server/".concat(y,"/list-short-urls/1"),children:"See all \xbb"})]}),Object(a.jsx)(jc.a,{children:Object(a.jsx)(e,{shortUrlsList:s,selectedServer:d,className:"mb-0",onTagClick:function(e){return S.push("/server/".concat(y,"/list-short-urls/1?tags=").concat(encodeURIComponent(e)))}})})]})]})}),(function(){return[Ge.visits,Ge.orphanVisits]}))},hc=function(e,t,r,n){return function(c){var s=c.servers,i=Object.values(s),l=Object(A.useState)(i),u=Object(E.a)(l,2),d=u[0],j=u[1],b=d.some((function(e){return!!e.autoConnect})),h=r(!1,4e3),O=Object(E.a)(h,2),v=O[0],f=O[1];return Object(A.useEffect)((function(){j(Object.values(s))}),[s]),Object(a.jsxs)(pn.a,{children:[Object(a.jsx)(P,{className:"mb-3",onChange:function(e){return j(i.filter((function(t){var r=t.name,n=t.url;return"".concat(r," ").concat(n).match(e)})))}}),Object(a.jsxs)(Lr.a,{className:"mb-3",children:[Object(a.jsxs)("div",{className:"col-md-6 d-flex d-md-block mb-2 mb-md-0",children:[Object(a.jsx)(t,{className:"flex-fill",onImportError:f,children:"Import servers"}),i.length>0&&Object(a.jsxs)(Hr.a,{outline:!0,className:"ml-2 flex-fill",onClick:Object(x.a)(m.a.mark((function t(){return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.exportServers());case 1:case"end":return t.stop()}}),t)}))),children:[Object(a.jsx)(V.a,{icon:L.q,fixedWidth:!0})," Export servers"]})]}),Object(a.jsx)("div",{className:"col-md-6 text-md-right d-flex d-md-block",children:Object(a.jsxs)(Hr.a,{outline:!0,color:"primary",className:"flex-fill",tag:o.b,to:"/server/create",children:[Object(a.jsx)(V.a,{icon:L.E,fixedWidth:!0})," Add a server"]})})]}),Object(a.jsx)(Vr.a,{children:Object(a.jsxs)("table",{className:"table table-hover mb-0",children:[Object(a.jsx)("thead",{className:"responsive-table__header",children:Object(a.jsxs)("tr",{children:[b&&Object(a.jsx)("th",{style:{width:"50px"}}),Object(a.jsx)("th",{children:"Name"}),Object(a.jsx)("th",{children:"Base URL"}),Object(a.jsx)("th",{})]})}),Object(a.jsxs)("tbody",{children:[!d.length&&Object(a.jsx)("tr",{className:"text-center",children:Object(a.jsx)("td",{colSpan:4,children:"No servers found."})}),d.map((function(e){return Object(a.jsx)(n,{server:e,hasAutoConnect:b},e.id)}))]})]})}),v&&Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsx)(Ir,{type:"error",children:"The servers could not be imported. Make sure the format is correct."})})]})}},Oc=function(e){return function(t){var r=t.server,n=t.hasAutoConnect;return Object(a.jsxs)("tr",{className:"responsive-table__row",children:[n&&Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Auto-connect",children:r.autoConnect&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(V.a,{icon:L.h,className:"text-primary",id:"autoConnectIcon"}),Object(a.jsx)(xr.a,{target:"autoConnectIcon",placement:"right",children:"Auto-connect to this server"})]})}),Object(a.jsx)("th",{className:"responsive-table__cell","data-th":"Name",children:Object(a.jsx)(o.b,{to:"/server/".concat(r.id),children:r.name})}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Base URL",children:r.url}),Object(a.jsx)("td",{className:"responsive-table__cell text-right",children:Object(a.jsx)(e,{server:r})})]})}},vc=function(e){return function(t){var r=t.server,n=t.setAutoConnect,c=Object(Q.d)(),s=Object(E.a)(c,2),i=s[0],l=s[1],u=Object(Q.d)(),d=Object(E.a)(u,4),j=d[0],b=d[2],h=d[3],O="/server/".concat(r.id),v=r.autoConnect,f=v?L.b:ge.b;return Object(a.jsxs)(Nr,{isOpen:i,toggle:l,children:[Object(a.jsxs)(H.a,{tag:o.b,to:O,children:[Object(a.jsx)(V.a,{icon:L.D,fixedWidth:!0})," Connect"]}),Object(a.jsxs)(H.a,{tag:o.b,to:"".concat(O,"/edit"),children:[Object(a.jsx)(V.a,{icon:L.m,fixedWidth:!0})," Edit server"]}),Object(a.jsxs)(H.a,{onClick:function(){return n(r,!r.autoConnect)},children:[Object(a.jsx)(V.a,{icon:f,fixedWidth:!0})," ",v?"Do not a":"A","uto-connect"]}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsxs)(H.a,{className:"dropdown-item--danger",onClick:b,children:[Object(a.jsx)(V.a,{icon:L.y,fixedWidth:!0})," Remove server"]}),Object(a.jsx)(e,{redirectHome:!1,server:r,isOpen:j,toggle:h})]})}},fc=function(e){return"string"===typeof e.url&&"string"===typeof e.apiKey&&"string"===typeof e.name},mc=function(e){return Array.isArray(e)&&e.every(fc)},xc=function e(t,r){var n=this;Object(g.a)(this,e),this.csvJson=t,this.fileReaderFactory=r,this.importServersFromFile=function(){var e=Object(x.a)(m.a.mark((function e(t){var r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No file provided");case 2:return r=n.fileReaderFactory(),e.abrupt("return",new Promise((function(e,c){r.addEventListener("loadend",(function(t){try{var r,a,s,i=null!==(r=null===(a=t.target)||void 0===a||null===(s=a.result)||void 0===s?void 0:s.toString())&&void 0!==r?r:"",o=n.csvJson.toObject(i);if(!mc(o))throw new Error("Provided file does not have the right format.");e(o)}catch(t){c(t)}})),r.readAsText(t)})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},gc=r(104),pc=function e(t,r,n){var c=this;Object(g.a)(this,e),this.storage=t,this.window=r,this.csvjson=n,this.exportServers=Object(x.a)(m.a.mark((function e(){var t,r,n;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=Object(Re.a)(null!==(t=c.storage.get("servers"))&&void 0!==t?t:{}).map(Object(Bn.a)("id"));try{n=c.csvjson.toCSV(r,{headers:"key"}),Object(gc.a)(c.window,n,"shlink-servers.csv")}catch(a){console.error(a)}case 2:case"end":return e.stop()}}),e)})))},yc=function(e,t,r){e.serviceFactory("ManageServers",hc,"ServersExporter","ImportServersBtn","useStateFlagTimeout","ManageServersRow"),e.decorator("ManageServers",t(["servers"])),e.serviceFactory("ManageServersRow",Oc,"ManageServersRowDropdown"),e.serviceFactory("ManageServersRowDropdown",vc,"DeleteServerModal"),e.decorator("ManageServersRowDropdown",t(null,["setAutoConnect"])),e.serviceFactory("CreateServer",wn,"ImportServersBtn","useStateFlagTimeout"),e.decorator("CreateServer",oc.a),e.decorator("CreateServer",t(["selectedServer","servers"],["createServer","resetSelectedServer"])),e.serviceFactory("EditServer",Rn,"ServerError"),e.decorator("EditServer",t(["selectedServer"],["editServer","selectServer"])),e.serviceFactory("ServersDropdown",(function(){return kn})),e.decorator("ServersDropdown",t(["servers","selectedServer"])),e.serviceFactory("DeleteServerModal",(function(){return _n})),e.decorator("DeleteServerModal",r),e.decorator("DeleteServerModal",t(null,["deleteServer"])),e.serviceFactory("DeleteServerButton",Un,"DeleteServerModal"),e.serviceFactory("ImportServersBtn",En,"ServersImporter"),e.decorator("ImportServersBtn",t(null,["createServers"])),e.serviceFactory("ForServerVersion",(function(){return ac})),e.decorator("ForServerVersion",t(["selectedServer"])),e.serviceFactory("ServerError",ic,"DeleteServerButton"),e.decorator("ServerError",t(["servers","selectedServer"])),e.serviceFactory("Overview",bc,"ShortUrlsTable","CreateShortUrl","ForServerVersion"),e.decorator("Overview",t(["shortUrlsList","tagsList","selectedServer","mercureInfo","visitsOverview"],["listShortUrls","listTags","createNewVisits","loadMercureInfo","loadVisitsOverview"])),e.constant("csvjson",gn.a),e.constant("fileReaderFactory",(function(){return new FileReader})),e.service("ServersImporter",xc,"csvjson","fileReaderFactory"),e.service("ServersExporter",pc,"Storage","window","csvjson"),e.serviceFactory("selectServer",Pn,"buildShlinkApiClient","loadMercureInfo"),e.serviceFactory("createServer",(function(){return $n})),e.serviceFactory("createServers",(function(){return Xn})),e.serviceFactory("deleteServer",(function(){return tc})),e.serviceFactory("editServer",(function(){return ec})),e.serviceFactory("setAutoConnect",(function(){return rc})),e.serviceFactory("fetchServers",cc,"axios"),e.serviceFactory("resetSelectedServer",(function(){return Gn}))},Sc=function(e){var t=e.visits,r=e.goBack,n=e.shortUrl,c=e.children,s=e.title;return Object(a.jsx)("header",{children:Object(a.jsxs)(Ee.a,{body:!0,children:[Object(a.jsxs)("h2",{className:"d-flex justify-content-between align-items-center mb-0",children:[Object(a.jsx)(Hr.a,{color:"link",size:"lg",className:"p-0 mr-3",onClick:r,children:Object(a.jsx)(V.a,{icon:L.a})}),Object(a.jsx)("span",{className:"text-center d-none d-sm-block",children:Object(a.jsx)("small",{children:s})}),Object(a.jsxs)("span",{className:"badge badge-main ml-3",children:["Visits:"," ",Object(a.jsx)(yr,{visitsCount:t.length,shortUrl:n})]})]}),Object(a.jsx)("h3",{className:"text-center d-block d-sm-none mb-0 mt-3",children:Object(a.jsx)("small",{children:s})}),c&&Object(a.jsx)("div",{className:"mt-md-2",children:c})]})})},Cc=function(e){var t,r,n=e.shortUrlDetail,c=e.shortUrlVisits,s=e.goBack,i=n.shortUrl,o=n.loading,l=c.visits,u=null!==(t=null===i||void 0===i?void 0:i.shortUrl)&&void 0!==t?t:"",d=null!==(r=null===i||void 0===i?void 0:i.longUrl)&&void 0!==r?r:"",j=null===i||void 0===i?void 0:i.title,b=Object(a.jsxs)(a.Fragment,{children:["Visits for ",Object(a.jsx)(jr.a,{href:u})]});return Object(a.jsxs)(Sc,{title:b,goBack:s,visits:l,shortUrl:i,children:[Object(a.jsx)("hr",{}),Object(a.jsxs)("div",{children:["Created: ",i?Object(a.jsxs)("span",{children:[Object(a.jsx)("b",{id:"created",className:"short-url-visits-header__created-at",children:Object(a.jsx)(mr,{date:i.dateCreated,relative:!0})}),Object(a.jsx)(xr.a,{placement:"bottom",target:"created",children:Object(a.jsx)(mr,{date:i.dateCreated})})]}):Object(a.jsx)("small",{children:"Loading..."})]}),Object(a.jsxs)("div",{children:["".concat(j?"Title":"Long URL",": "),o&&Object(a.jsx)("small",{children:"Loading..."}),!o&&Object(a.jsx)(jr.a,{href:d,children:null!==j&&void 0!==j?j:d})]})]})},Nc=r(602),wc=r(553),kc=r(603),_c=r(551),Uc=r(113),Tc=r(591),Rc=r(592),Ec=r(594),Dc=r(588),Lc=r(292),Vc=r(589),Ic=r(314),Fc=r(92),Ac=r(590),Mc=r(593),Gc=r(291),Pc=r.n(Gc),Bc=r(587),Hc="Others",Wc=["Android Browser","Chrome","Chromium","Firefox","Internet Explorer","Microsoft Edge","Opera","Safari","Samsung Internet for Android","Vivaldi","WeChat"],qc=function(e){var t,r;return Object(Dr.c)(e)?null!==(t=null===(r=e.split("/")[e.includes("://")?2:0])||void 0===r?void 0:r.split(":")[0])&&void 0!==t?t:"":"Direct"},zc=function(e,t){return Object.values(Object(d.a)(Object(d.a)({},Object(Bc.a)(t,t.map((function(){return 0})))),e))},Qc=function(e){return Object(a.jsx)($r,Object(d.a)({type:"switch"},e))},Kc=function(e,t){var r=e.native,n=Object(E.a)(t,1)[0];null!==r&&void 0!==r&&r.target&&(r.target.style.cursor=n?"pointer":"default")},Jc=function(e){var t=e.dataset,r=e.formattedValue;return"".concat(t.label,": ").concat(cr(r))},Zc=function(e){var t=e.label,r=e.formattedValue;return"".concat(t,": ").concat(cr(r))},Yc=r(46),Xc={monthly:"Month",weekly:"Week",daily:"Day",hourly:"Hour"},$c={hourly:function(e){return{hours:e}},daily:function(e){return{days:e}},weekly:function(e){return{weeks:e}},monthly:function(e){return{months:e}}},ea={hourly:Dc.a,daily:Lc.a,weekly:Vc.a,monthly:Ic.a},ta={hourly:function(e){return Object($.default)(e,"yyyy-MM-dd HH:00")},daily:function(e){return Object($.default)(e,"yyyy-MM-dd")},weekly:function(e){var t=Object($.default)(Object(Fc.a)(e),"yyyy-MM-dd"),r=Object($.default)(Object(Ac.a)(e),"yyyy-MM-dd");return"".concat(t," - ").concat(r)},monthly:function(e){return Object($.default)(e,"yyyy-MM")}},ra=function(e,t){return Object(Rc.a)((function(t){return ta[e](Object(F.default)(t.date))}),t)},na=function(e,t,r,n){if(n)return[Object.keys(t),Object.values(t)];var c=function(e,t){var r=ea[e],n=ta[e],c=Object(F.default)(t[0].date),a=Object(F.default)(t[t.length-1].date),s=r(c,a),i=$c[e];return[n(a)].concat(Object(_e.a)(Object(Dr.e)(s,(function(e){return n(Object(Mc.a)(a,i(e)))}))))}(r,e);return[c,zc(t,c)]},ca=function(e,t,r){return{label:t,data:e,fill:!1,tension:.2,borderColor:r,backgroundColor:r}},aa=null,sa=function(e,t,r){return function(n){var c=Object(E.a)(n,1)[0];if(r&&c){var a,s=c.index;if(aa===e[s])r([]),aa=null;else r(e[s]&&t[e[s]]||[]),aa=null!==(a=e[s])&&void 0!==a?a:null}}},ia=function(e){var t=e.title,r=e.visits,n=e.highlightedVisits,c=e.highlightedLabel,s=void 0===c?"Selected":c,i=e.setSelectedVisits,o=Object(A.useState)(r.length>0?function(e){var t,r=new Date,n=Object(F.default)(e);return null!==(t=Object(Zr.a)([[function(){return Object(Lc.a)(r,n)<=2},Object(Tc.a)("hourly")],[function(){return Object(Ic.a)(r,n)<=1},Object(Tc.a)("daily")],[function(){return Object(Ic.a)(r,n)<=6},Object(Tc.a)("weekly")]])())&&void 0!==t?t:"monthly"}(r[r.length-1].date):"monthly"),l=Object(E.a)(o,2),u=l[0],d=l[1],j=Object(Q.d)(!0),b=Object(E.a)(j,2),h=b[0],O=b[1],v=Object(A.useMemo)((function(){return function(e,t){return t.reduce((function(t,r){var n,c=ta[e](Object(F.default)(r.date));return t[c]=null!==(n=t[c])&&void 0!==n?n:[],t[c].push(r),t}),{})}(u,r)}),[u,r]),f=Object(A.useMemo)((function(){return ra(u,Object(Ec.a)(r))}),[u,r]),m=Object(A.useMemo)((function(){return na(r,f,u,h)}),[r,u,h]),x=Object(E.a)(m,2),g=x[0],p=x[1],y=Object(A.useMemo)((function(){return zc(ra(u,Object(Ec.a)(n)),g)}),[n,u,g]),S=function(){var e=ca(p,"Visits",Yc.c);return 0===n.length?[e]:[e,ca(y,s,Yc.a)]},C={maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{intersect:!1,axis:"x",callbacks:{label:Jc}}},scales:{y:{beginAtZero:!0,ticks:{precision:0,callback:cr}},x:{title:{display:!0,text:Xc[u]}}},onHover:Kc},N=function(){return Object(a.jsx)(Uc.c,{data:{labels:g,datasets:S()},options:C,getElementAtEvent:sa(g,v,i)})};return Object(a.jsxs)(Ee.a,{children:[Object(a.jsxs)(dc.a,{children:[t,Object(a.jsx)("div",{className:"float-right",children:Object(a.jsxs)(De.a,{children:[Object(a.jsx)(q.a,{caret:!0,color:"link",className:"btn-sm p-0",children:"Group by"}),Object(a.jsx)(z.a,{right:!0,children:Object.entries(Xc).map((function(e){var t=Object(E.a)(e,2),r=t[0],n=t[1];return Object(a.jsx)(H.a,{active:u===r,onClick:function(){return d(r)},children:n},r)}))})]})}),Object(a.jsx)("div",{className:"float-right mr-2",children:Object(a.jsx)(Qc,{checked:h,onChange:O,children:Object(a.jsx)("small",{children:"Skip dates with no visits"})})})]}),Object(a.jsxs)(jc.a,{className:"line-chart-card__body",children:[n.length>0&&N(),0===n.length&&N()]})]})},oa=r(595),la=function(e){var t=e.pagesCount,r=e.currentPage,n=e.setCurrentPage,c=e.centered,s=void 0===c||c;if(t<2)return null;var i=function(e){return function(){return!ir(e)&&n(e)}};return Object(a.jsxs)(Xt.a,{listClassName:G()("flex-wrap mb-0 simple-paginator",{"justify-content-center":s}),children:[Object(a.jsx)(Zt.a,{disabled:r<=1,children:Object(a.jsx)(Yt.a,{previous:!0,tag:"span",onClick:i(r-1)})}),sr(r,t).map((function(e,t){return Object(a.jsx)(Zt.a,{disabled:ir(e),active:r===e,children:Object(a.jsx)(Yt.a,{tag:"span",onClick:i(e),children:or(e)})},lr(e,t))})),Object(a.jsx)(Zt.a,{disabled:r>=t,children:Object(a.jsx)(Yt.a,{next:!0,tag:"span",onClick:i(r+1)})})]})},ua=function(e,t){return t.filter((function(t){return function(e,t){var r=e.browser,n=e.os,c=e.referer,a=e.country,s=e.city,i=Object(D.a)(e,["browser","os","referer","country","city"]);return"".concat(r," ").concat(n," ").concat(c," ").concat(a," ").concat(s," ").concat(i.visitedUrl).toLowerCase().includes(t.toLowerCase())}(t,e)}))},da=function(e,t,r){var n=function(e,t){return Ie(t,e)}(r,t?ua(t,e):Object(_e.a)(e)),c=n.length;return{visitsGroups:Object(oa.a)(20,n),total:c}},ja=function(e){var t,r,n=e.visits,c=e.selectedVisits,s=void 0===c?[]:c,i=e.setSelectedVisits,o=e.selectedServer,l=e.matchMedia,u=void 0===l?window.matchMedia:l,d=e.isOrphanVisits,j=void 0!==d&&d,b="visits-table__header-cell visits-table__sticky",h=function(){return u("(max-width: 767px)").matches},O=Object(A.useState)(h()),v=Object(E.a)(O,2),f=v[0],m=v[1],x=Object(A.useState)(void 0),g=Object(E.a)(x,2),p=g[0],y=g[1],S=Object(A.useState)({}),C=Object(E.a)(S,2),N=C[0],w=C[1],k=Object(A.useMemo)((function(){return da(n,p,N)}),[p,N]),_=Object(A.useRef)(!0),U=Object(A.useState)(1),T=Object(E.a)(U,2),R=T[0],D=T[1],I=20*R,F=I-20,M=Object(Lt.a)(o),B=7+Number(M)+Number(j),H=function(e){return function(){return w({field:e,dir:Ve(e,N.field,N.dir)})}},W=function(e){return Object(a.jsx)(Pe,{currentOrder:N,field:e,className:"visits-table__header-icon"})};return Object(A.useEffect)((function(){var e=function(){return m(h())};return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}),[]),Object(A.useEffect)((function(){D(1),!_.current&&i([]),_.current=!1}),[p]),Object(a.jsxs)("table",{className:"table table-bordered table-hover table-sm table-responsive-sm visits-table",children:[Object(a.jsxs)("thead",{className:"visits-table__header",children:[Object(a.jsxs)("tr",{children:[Object(a.jsx)("th",{className:"".concat(b," text-center"),onClick:function(){return i(s.length0})})}),M&&Object(a.jsxs)("th",{className:"".concat(b," text-center"),onClick:H("potentialBot"),children:[Object(a.jsx)(V.a,{icon:L.G}),W("potentialBot")]}),Object(a.jsxs)("th",{className:b,onClick:H("date"),children:["Date",W("date")]}),Object(a.jsxs)("th",{className:b,onClick:H("country"),children:["Country",W("country")]}),Object(a.jsxs)("th",{className:b,onClick:H("city"),children:["City",W("city")]}),Object(a.jsxs)("th",{className:b,onClick:H("browser"),children:["Browser",W("browser")]}),Object(a.jsxs)("th",{className:b,onClick:H("os"),children:["OS",W("os")]}),Object(a.jsxs)("th",{className:b,onClick:H("referer"),children:["Referrer",W("referer")]}),j&&Object(a.jsxs)("th",{className:b,onClick:H("visitedUrl"),children:["Visited URL",W("visitedUrl")]})]}),Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:B,className:"p-0",children:Object(a.jsx)(P,{noBorder:!0,large:!1,onChange:y})})})]}),Object(a.jsxs)("tbody",{children:[!(null!==(t=k.visitsGroups[R-1])&&void 0!==t&&t.length)&&Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:B,className:"text-center",children:"No visits found with current filtering"})}),null===(r=k.visitsGroups[R-1])||void 0===r?void 0:r.map((function(e,t){var r=s.includes(e);return Object(a.jsxs)("tr",{style:{cursor:"pointer"},className:G()({"table-active":r}),onClick:function(){return i(r?s.filter((function(t){return t!==e})):[].concat(Object(_e.a)(s),[e]))},children:[Object(a.jsx)("td",{className:"text-center",children:r&&Object(a.jsx)(V.a,{icon:L.h,className:"text-primary"})}),M&&Object(a.jsx)("td",{className:"text-center",children:e.potentialBot&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(V.a,{icon:L.G,id:"botIcon".concat(t)}),Object(a.jsx)(xr.a,{placement:"right",target:"botIcon".concat(t),children:"Potentially a visit from a bot or crawler"})]})}),Object(a.jsx)("td",{children:Object(a.jsx)(mr,{date:e.date})}),Object(a.jsx)("td",{children:e.country}),Object(a.jsx)("td",{children:e.city}),Object(a.jsx)("td",{children:e.browser}),Object(a.jsx)("td",{children:e.os}),Object(a.jsx)("td",{children:e.referer}),j&&Object(a.jsx)("td",{children:e.visitedUrl})]},t)}))]}),k.total>20&&Object(a.jsx)("tfoot",{children:Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:B,className:"visits-table__footer-cell visits-table__sticky",children:Object(a.jsxs)("div",{className:"row",children:[Object(a.jsx)("div",{className:"col-md-6",children:Object(a.jsx)(la,{pagesCount:Math.ceil(k.total/20),currentPage:R,setCurrentPage:D,centered:f})}),Object(a.jsx)("div",{className:G()("col-md-6",{"d-flex align-items-center flex-row-reverse":!f,"text-center mt-3":f}),children:Object(a.jsxs)("div",{children:["Visits ",Object(a.jsx)("b",{children:cr(F+1)})," to"," ",Object(a.jsx)("b",{children:cr(Object(tr.a)(I,k.total))})," of"," ",Object(a.jsx)("b",{children:cr(k.total)})]})})]})})})})]})},ba=r(615),ha=r(596),Oa=r(597),va=r(598),fa=function(){return Object(a.jsx)(ba.a,{attribution:'© OpenStreetMap contributors',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"})},ma=function(e){return 0===e.length?{}:e.length>1?{bounds:e.map(Object(O.a)("latLong"))}:{zoom:10,center:Object(E.a)(e,1)[0].latLong}},xa=function(e){var t=e.toggle,r=e.isOpen,n=e.title,c=e.locations,s=void 0===c?[]:c;return Object(a.jsx)(_r.a,{toggle:t,isOpen:r,className:"map-modal__modal",contentClassName:"map-modal__modal-content",children:Object(a.jsxs)(Tr.a,{className:"map-modal__modal-body",children:[Object(a.jsxs)("h3",{className:"map-modal__modal-title",children:[n,Object(a.jsx)("button",{type:"button",className:"close",onClick:t,children:"\xd7"})]}),Object(a.jsxs)(ha.a,Object(d.a)(Object(d.a)({},ma(s)),{},{children:[Object(a.jsx)(fa,{}),s.map((function(e,t){var r=e.cityName,n=e.latLong,c=e.count;return Object(a.jsx)(Oa.a,{position:n,children:Object(a.jsxs)(va.a,{children:[Object(a.jsx)("b",{children:c})," visit",c>1?"s":""," from ",Object(a.jsx)("b",{children:r})]})},t)}))]}))]})})},ga=function(e){var t=e.modalTitle,r=e.activeCities,n=e.locations,c=void 0===n?[]:n,s=Object(Q.d)(),i=Object(E.a)(s,4),o=i[0],l=i[2],u=i[3],d=Object(Q.d)(),j=Object(E.a)(d,3),b=j[0],h=j[1],O=j[2],v=Object(A.useState)([]),f=Object(E.a)(v,2),m=f[0],x=f[1],g=Object(A.useRef)(),p=function(e){return function(){x(e?c.filter((function(e){var t=e.cityName;return r.includes(t)})):c),l()}};return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("button",{className:"btn btn-link open-map-modal-btn__btn",ref:g,onClick:function(){if(!r)return x(c),void l();O()},children:Object(a.jsx)(V.a,{icon:L.x})}),Object(a.jsx)(xr.a,{placement:"left",target:function(){return g.current},children:"Show in map"}),Object(a.jsx)(W.a,{isOpen:b,toggle:h,inNavbar:!0,children:Object(a.jsxs)(z.a,{right:!0,children:[Object(a.jsx)(H.a,{onClick:p(!1),children:"Show all locations"}),Object(a.jsx)(H.a,{onClick:p(!0),children:"Show locations in current page"})]})}),Object(a.jsx)(xa,{toggle:u,isOpen:o,title:t,locations:m})]})},pa=r(599),ya=function(e){return e.hasOwnProperty("visitedUrl")},Sa=Object(I.a)(Object(pa.a)((function(e){return ya(e.visit)?"orphanVisits":"regularVisits"})),(function(e){return Object(d.a)({orphanVisits:[],regularVisits:[]},e)})),Ca=function(e,t){return Object(Rc.a)(Object(O.a)(t),e)},Na=function(e){var t,r,n=e.page,c=e.itemsPerPage,a=e.filter,s=e.dateRange;return{page:n,itemsPerPage:c,startDate:null!==(t=(null===s||void 0===s?void 0:s.startDate)&&se(null===s||void 0===s?void 0:s.startDate))&&void 0!==t?t:void 0,endDate:null!==(r=(null===s||void 0===s?void 0:s.endDate)&&se(null===s||void 0===s?void 0:s.endDate))&&void 0!==r?r:void 0,excludeBots:(null===a||void 0===a?void 0:a.excludeBots)||void 0}},wa=function(e,t){return!Object(y.a)(e)&&Object(Dr.c)(e[t])},ka=function(e){return"number"===typeof e?e:e?parseFloat(e):0},_a=function(e){return function(t,r){var n=wa(r,e)?r[e]:"Unknown";t[n]=(t[n]||0)+1}},Ua=_a("country"),Ta=_a("city"),Ra=function(e){return e.reduce((function(e,t){return function(e,t){var r=t.os;e[r]=(e[r]||0)+1}(e.os,t),function(e,t){var r=t.browser;e[r]=(e[r]||0)+1}(e.browsers,t),function(e,t){var r=t.referer;e[r]=(e[r]||0)+1}(e.referrers,t),Ua(e.countries,t),Ta(e.cities,t),function(e,t){if(wa(t,"city")&&"Unknown"!==t.city){var r=t.city,n=t.latitude,c=t.longitude,a=e[r]||{cityName:r,count:0,latLong:[ka(n),ka(c)]};a.count++,e[r]=a}}(e.citiesForMap,t),function(e,t){if(function(e){return e.hasOwnProperty("visitedUrl")}(t)){var r=t.visitedUrl;e[r]=(e[r]||0)+1}}(e.visitedUrls,t),e}),{os:{},browsers:{},referrers:{},countries:{},cities:{},citiesForMap:{},visitedUrls:{}})},Ea=Object(qn.a)((function(e){var t=e.userAgent,r=e.date,n=e.referer,c=e.visitLocation,a=e.potentialBot,s=void 0!==a&&a,i=Object(d.a)(Object(d.a)({date:r,potentialBot:s},function(e){if(!Object(Dr.c)(e))return{browser:Hc,os:Hc};var t=Pc.a.parse(e),r=t.browser.name,n=t.os.name;return{os:null!==n&&void 0!==n?n:Hc,browser:r&&Wc.includes(r)?r:Hc}}(t)),{},{referer:qc(n),country:(null===c||void 0===c?void 0:c.countryName)||"Unknown",city:(null===c||void 0===c?void 0:c.cityName)||"Unknown",latitude:null===c||void 0===c?void 0:c.latitude,longitude:null===c||void 0===c?void 0:c.longitude});return ya(e)?Object(d.a)(Object(d.a)({},i),{},{type:e.type,visitedUrl:e.visitedUrl}):i})),Da=function(e){var t=e.onChange,r=e.selected,n=void 0===r?{}:r,c=e.className,s=e.isOrphanVisits,i=e.botsSupported;if(!i&&!s)return null;var o=n.orphanVisitsType,l=n.excludeBots,u=void 0!==l&&l,j=function(e){return{active:o===e,onClick:function(){return t(Object(d.a)(Object(d.a)({},n),{},{orphanVisitsType:e===(null===n||void 0===n?void 0:n.orphanVisitsType)?void 0:e}))}}};return Object(a.jsxs)(K,{text:"Filters",dropdownClassName:c,className:"mr-3",right:!0,minWidth:250,children:[i&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(H.a,{header:!0,children:"Bots:"}),Object(a.jsx)(H.a,{active:u,onClick:function(){return t(Object(d.a)(Object(d.a)({},n),{},{excludeBots:!(null!==n&&void 0!==n&&n.excludeBots)}))},children:"Exclude potential bots"})]}),i&&s&&Object(a.jsx)(H.a,{divider:!0}),s&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(H.a,{header:!0,children:"Orphan visits type:"}),Object(a.jsx)(H.a,Object(d.a)(Object(d.a)({},j("base_url")),{},{children:"Base URL"})),Object(a.jsx)(H.a,Object(d.a)(Object(d.a)({},j("invalid_short_url")),{},{children:"Invalid short URL"})),Object(a.jsx)(H.a,Object(d.a)(Object(d.a)({},j("regular_404")),{},{children:"Regular 404"}))]}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{disabled:!Object(Dr.c)(n),onClick:function(){return t({})},children:Object(a.jsx)("i",{children:"Clear filters"})})]})},La=function(e){var t,r,n=e.chart.config,c=null!==(t=n.data)&&void 0!==t?t:{},s=c.labels,i=void 0===s?[]:s,o=c.datasets,l=void 0===o?[]:o,u=Object(E.a)(l,1)[0].backgroundColor,d=(null!==(r=n.options)&&void 0!==r?r:{}).defaultColor;return Object(a.jsx)("ul",{className:"doughnut-chart-legend",children:i.map((function(e,t){var r;return Object(a.jsxs)("li",{className:"doughnut-chart-legend__item d-flex",children:[Object(a.jsx)("div",{className:"doughnut-chart-legend__item-color",style:{backgroundColor:null!==(r=u[t])&&void 0!==r?r:d}}),Object(a.jsx)("small",{className:"doughnut-chart-legend__item-text flex-fill",children:e})]},e)}))})},Va=function(e){return[{data:e,backgroundColor:["#97BBCD","#F7464A","#46BFBD","#FDB45C","#949FB1","#57A773","#414066","#08B2E3","#B6C454","#DCDCDC","#463730"],borderColor:Object(Yc.h)()?Yc.e:Yc.f,borderWidth:2}]},Ia=Object(A.memo)((function(e){var t=e.stats,r=Object(A.useState)(),n=Object(E.a)(r,2),c=n[0],s=n[1],i=Object(Te.a)(t),o=Object(Re.a)(t),l={plugins:{legend:{display:!1},tooltip:{intersect:!0,callbacks:{label:Zc}}}},u=function(e,t){return{labels:e,datasets:Va(t)}}(i,o);return Object(a.jsxs)("div",{className:"row",children:[Object(a.jsx)("div",{className:"col-sm-12 col-md-7",children:Object(a.jsx)(Uc.b,{height:300,data:u,options:l,ref:function(e){s(null!==e&&void 0!==e?e:void 0)}})}),Object(a.jsx)("div",{className:"col-sm-12 col-md-5",children:c&&Object(a.jsx)(La,{chart:c})})]})})),Fa=r(600),Aa=function(e){var t=e.title,r=e.footer,n=e.children;return Object(a.jsxs)(Ee.a,{children:[Object(a.jsx)(dc.a,{className:"chart-card__header",children:"function"===typeof t?t():t}),Object(a.jsx)(jc.a,{children:n}),r&&Object(a.jsx)(Fa.a,{className:"chart-card__footer--sticky",children:r})]})},Ma=function(e){var t=e.title,r=e.stats;return Object(a.jsx)(Aa,{title:t,children:Object(a.jsx)(Ia,{stats:r})})},Ga=r(127),Pa=r(608),Ba=r(601),Ha=function(e){var t=e.toggleClassName,r=e.ranges,n=e.value,c=e.setValue;return Object(a.jsxs)(De.a,{children:[Object(a.jsx)(q.a,{caret:!0,color:"link",className:t,children:"Paginate"}),Object(a.jsxs)(z.a,{right:!0,children:[r.map((function(e){return Object(a.jsxs)(H.a,{active:e===n,onClick:function(){return c(e)},children:[Object(a.jsx)("b",{children:e})," items per page"]},e)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{disabled:n===1/0,onClick:function(){return c(1/0)},children:Object(a.jsx)("i",{children:"Clear pagination"})})]})]})},Wa=function(e){return e.startsWith("hidden")?"":e},qa=function(e,t,r){var n={data:e,label:r?"Non-selected":"Visits",backgroundColor:Yc.d,borderColor:Yc.c,borderWidth:2};return t.every((function(e){return 0===e}))?[n]:[n,{label:null!==r&&void 0!==r?r:"Selected",data:t,backgroundColor:Yc.b,borderColor:Yc.a,borderWidth:2}]},za=function(e,t){return function(r){var n=Object(E.a)(r,1)[0];t&&n&&t(e[n.index])}},Qa=function(e){var t=e.stats,r=e.highlightedStats,n=e.highlightedLabel,c=e.onClick,s=e.max,i=Object(Te.a)(t).map(Wa),o=Object(Re.a)(function(e){return!!e&&Object.keys(e).length>0}(r)?Object(Te.a)(r).reduce((function(e,t){return e[t]&&(e[t]-=r[t]),e}),Object(d.a)({},t)):t),l=zc(null!==r&&void 0!==r?r:{},i),u={plugins:{legend:{display:!1},tooltip:{mode:"y",filter:function(e){return""!==e.label},callbacks:{label:Jc}}},scales:{x:{beginAtZero:!0,stacked:!0,max:s,ticks:{precision:0,callback:cr}},y:{stacked:!0}},onHover:Kc,indexAxis:"y"},j=function(e,t,r,n){return{labels:e,datasets:qa(t,r,n)}}(i,o,l,n),b=function(e){return e.length>20?10*e.length:void 0}(i),h=function(e){return Object(a.jsx)(Uc.a,{data:j,options:u,height:b,getElementAtEvent:za(i,c)},"".concat(b,"_").concat(e))};return Object(a.jsxs)(a.Fragment,{children:[void 0!==r&&h("with_stats"),void 0===r&&h("without_stats")]})},Ka=function(e){return"String"===Object(Ga.a)(e)?Object(Pa.a)(e):e},Ja=function(e){return Object(E.a)(e,1)[0]},Za=function(e){return Object(E.a)(e,2)[1]},Ya=function(e){var t=e.stats,r=e.highlightedStats,n=e.title,c=e.sortingItems,s=e.extraHeaderContent,i=e.withPagination,o=void 0===i||i,l=Object(D.a)(e,["stats","highlightedStats","title","sortingItems","extraHeaderContent","withPagination"]),u=Object(A.useState)({}),j=Object(E.a)(u,2),b=j[0],h=j[1],O=Object(A.useState)(1),v=Object(E.a)(O,2),f=v[0],m=v[1],x=Object(A.useState)(50),g=Object(E.a)(x,2),p=g[0],y=g[1],S=function(e){var t=e[f-1];if(f0?r:void 0,c),N=C.currentPageStats,w=C.currentPageHighlightedStats,k=C.pagination,_=C.max,U=Object.keys(N);return Object(a.jsx)(Aa,{title:function(){return Object(a.jsxs)(a.Fragment,{children:[n,Object(a.jsx)("div",{className:"float-right",children:Object(a.jsx)(Fe,{isButton:!1,right:!0,items:c,order:b,onChange:function(e,t){h({field:e,dir:t}),m(1)}})}),o&&Object.keys(t).length>50&&Object(a.jsx)("div",{className:"float-right",children:Object(a.jsx)(Ha,{toggleClassName:"btn-sm p-0 mr-3",ranges:[50,100,200,500],value:p,setValue:function(e){y(e),m(1)}})}),s&&Object(a.jsx)("div",{className:"float-right",children:s(k?U:void 0)})]})},footer:k,children:Object(a.jsx)(Qa,Object(d.a)({stats:N,highlightedStats:w,max:_},l))})},Xa={byTime:{title:"By time",subPath:"",icon:L.d},byContext:{title:"By context",subPath:"/by-context",icon:L.g},byLocation:{title:"By location",subPath:"/by-location",icon:L.x},list:{title:"List",subPath:"/list",icon:L.w}},$a=function(e){var t=e.subPath,r=e.title,n=e.icon,c=e.to;return Object(a.jsxs)(wc.a,{tag:o.c,className:"visits-stats__nav-link",to:c,isActive:function(e,r){return r.pathname.endsWith("visits".concat(t))},replace:!0,children:[Object(a.jsx)(V.a,{icon:n}),Object(a.jsx)("span",{className:"ml-2 d-none d-sm-inline",children:r})]})},es=function(e){var t,r,n=e.children,c=e.visitsInfo,s=e.getVisits,i=e.cancelGetVisits,o=e.baseUrl,l=e.domain,u=e.settings,j=e.exportCsv,h=e.selectedServer,O=e.isOrphanVisits,v=void 0!==O&&O,f=null!==(t=null===(r=u.visits)||void 0===r?void 0:r.defaultInterval)&&void 0!==t?t:"last30Days",m=Object(A.useState)(fe(f)),x=Object(E.a)(m,2),g=x[0],p=x[1],y=Object(A.useState)([]),C=Object(E.a)(y,2),N=C[0],w=C[1],k=Object(A.useState)(),_=Object(E.a)(k,2),U=_[0],T=_[1],R=Object(A.useState)({}),D=Object(E.a)(R,2),I=D[0],F=D[1],M=Object(Lt.a)(h),P=function(e){var t=l?"?domain=".concat(l):"";return e?"".concat(o).concat(e).concat(t):"".concat(o).concat(t)},B=c.visits,H=c.loading,W=c.loadingLarge,q=c.error,z=c.errorData,Q=c.progress,K=Object(A.useMemo)((function(){return Ea(B)}),[B]),J=Object(A.useMemo)((function(){return Ra(K)}),[K]),Z=J.os,Y=J.browsers,X=J.referrers,$=J.countries,ee=J.cities,te=J.citiesForMap,re=J.visitedUrls,ne=Object(Re.a)(te),ce=function(e){Ze=void 0,w(e)},ae=function(e){return function(t){var r="".concat(e,"_").concat(t);Ze===r?(w([]),T(void 0),Ze=void 0):(w(K.filter(Object(Nc.a)(e,t))),T(t),Ze=r)}};Object(A.useEffect)((function(){return i}),[]),Object(A.useEffect)((function(){s({dateRange:g,filter:I})}),[g,I]);return Object(a.jsxs)(a.Fragment,{children:[n,Object(a.jsx)("section",{className:"mt-3",children:Object(a.jsxs)("div",{className:"row flex-md-row-reverse",children:[Object(a.jsx)("div",{className:"col-lg-7 col-xl-6",children:Object(a.jsxs)("div",{className:"d-md-flex",children:[Object(a.jsx)("div",{className:"flex-fill",children:Object(a.jsx)(Ce,{disabled:H,initialDateRange:f,defaultText:"All visits",onDatesChange:p})}),Object(a.jsx)(Da,{className:"ml-0 ml-md-2 mt-3 mt-md-0",isOrphanVisits:v,botsSupported:M,selected:I,onChange:F})]})}),B.length>0&&Object(a.jsx)("div",{className:"col-lg-5 col-xl-6 mt-3 mt-lg-0",children:Object(a.jsxs)("div",{className:"d-flex",children:[Object(a.jsxs)(Hr.a,{outline:!0,disabled:0===N.length,className:"btn-md-block mr-2",onClick:function(){return ce([])},children:["Clear selection ",N.length>0&&Object(a.jsxs)(a.Fragment,{children:["(",cr(N.length),")"]})]}),Object(a.jsxs)(Hr.a,{outline:!0,color:"primary",className:"btn-md-block",onClick:function(){return j(K)},children:[Object(a.jsx)(V.a,{icon:L.q})," Export (",cr(K.length),")"]})]})})]})}),Object(a.jsx)("section",{className:"mt-3",children:W?Object(a.jsxs)(un.a,{loading:!0,children:["This is going to take a while... :S",Object(a.jsx)(kc.a,{value:Q,striped:100===Q,className:"mt-3"})]}):H?Object(a.jsx)(un.a,{loading:!0}):q?Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:z,fallbackMessage:"An error occurred while loading visits :("})}):Object(S.a)(B)?Object(a.jsx)(un.a,{children:"There are no visits matching current filter :("}):Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Ee.a,{className:"visits-stats__nav p-0 overflow-hidden",body:!0,children:Object(a.jsx)(_c.a,{pills:!0,fill:!0,children:Object.entries(Xa).map((function(e){var t=Object(E.a)(e,2),r=t[0],n=t[1];return Object(a.jsx)($a,Object(d.a)(Object(d.a)({},n),{},{to:P(n.subPath)}),r)}))})}),Object(a.jsx)(Lr.a,{children:Object(a.jsxs)(b.d,{children:[Object(a.jsx)(b.b,{exact:!0,path:o,children:Object(a.jsx)("div",{className:"col-12 mt-3",children:Object(a.jsx)(ia,{title:"Visits during time",visits:K,highlightedVisits:N,highlightedLabel:U,setSelectedVisits:ce})})}),Object(a.jsxs)(b.b,{exact:!0,path:"".concat(o).concat(Xa.byContext.subPath),children:[Object(a.jsx)("div",{className:G()("mt-3 col-lg-6",{"col-xl-4":!v}),children:Object(a.jsx)(Ma,{title:"Operating systems",stats:Z})}),Object(a.jsx)("div",{className:G()("mt-3 col-lg-6",{"col-xl-4":!v}),children:Object(a.jsx)(Ma,{title:"Browsers",stats:Y})}),Object(a.jsx)("div",{className:G()("mt-3",{"col-xl-4":!v,"col-lg-6":v}),children:Object(a.jsx)(Ya,{title:"Referrers",stats:X,withPagination:!1,highlightedStats:Ca(N,"referer"),highlightedLabel:U,sortingItems:{name:"Referrer name",amount:"Visits amount"},onClick:ae("referer")})}),v&&Object(a.jsx)("div",{className:"mt-3 col-lg-6",children:Object(a.jsx)(Ya,{title:"Visited URLs",stats:re,highlightedLabel:U,highlightedStats:Ca(N,"visitedUrl"),sortingItems:{visitedUrl:"Visited URL",amount:"Visits amount"},onClick:ae("visitedUrl")})})]}),Object(a.jsxs)(b.b,{exact:!0,path:"".concat(o).concat(Xa.byLocation.subPath),children:[Object(a.jsx)("div",{className:"col-lg-6 mt-3",children:Object(a.jsx)(Ya,{title:"Countries",stats:$,highlightedStats:Ca(N,"country"),highlightedLabel:U,sortingItems:{name:"Country name",amount:"Visits amount"},onClick:ae("country")})}),Object(a.jsx)("div",{className:"col-lg-6 mt-3",children:Object(a.jsx)(Ya,{title:"Cities",stats:ee,highlightedStats:Ca(N,"city"),highlightedLabel:U,extraHeaderContent:function(e){return ne.length>0&&Object(a.jsx)(ga,{modalTitle:"Cities",locations:ne,activeCities:e})},sortingItems:{name:"City name",amount:"Visits amount"},onClick:ae("city")})})]}),Object(a.jsx)(b.b,{exact:!0,path:"".concat(o).concat(Xa.list.subPath),children:Object(a.jsx)("div",{className:"col-12",children:Object(a.jsx)(ja,{visits:K,selectedVisits:N,setSelectedVisits:ce,isOrphanVisits:v,selectedServer:h})})}),Object(a.jsx)(b.a,{to:o})]})})]})})]})},ts=function(e){var t=e.exportVisits;return Me((function(e){var r=e.history.goBack,n=e.match,c=n.params,s=n.url,i=e.location.search,o=e.shortUrlVisits,l=e.shortUrlDetail,u=e.getShortUrlVisits,j=e.getShortUrlDetail,b=e.cancelGetShortUrlVisits,h=e.settings,O=e.selectedServer,v=c.shortCode,f=Object(C.a)(i).domain;return Object(A.useEffect)((function(){j(v,f)}),[]),Object(a.jsx)(es,{getVisits:function(e){return u(v,Object(d.a)(Object(d.a)({},Na(e)),{},{domain:f}))},cancelGetVisits:b,visitsInfo:o,baseUrl:s,domain:f,settings:h,exportCsv:function(e){var r;return t("short-url_".concat(null===(r=l.shortUrl)||void 0===r?void 0:r.shortUrl.replace(/https?:\/\//g,""),"_visits.csv"),e)},selectedServer:O,children:Object(a.jsx)(Cc,{shortUrlDetail:l,shortUrlVisits:o,goBack:r})})}),(function(e){var t=e.match;return[Ge.shortUrlVisits(t.params.shortCode)]}))},rs=r(613),ns=5e3,cs=function(e){return e.currentPage>=e.pagesCount},as=function(e,t){return 100*t/e},ss=function(){var e=Object(x.a)(m.a.mark((function e(t,r,n,c,a){var s,i,o,l;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c({type:n.start}),s=function(){var e=Object(x.a)(m.a.mark((function e(r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(r.map(function(){var e=Object(x.a)(m.a.mark((function e(r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t(r,ns).then(Object(O.a)("data")));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then(rs.a));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i=function(){var e=Object(x.a)(m.a.mark((function e(t){var r,o,l=arguments;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=l.length>1&&void 0!==l[1]?l[1]:0,!a()){e.next=3;break}return e.abrupt("return",[]);case 3:return e.next=5,s(t[r]);case 5:if(o=e.sent,c({type:n.progress,progress:as(t.length,r+2)}),!(r0&&void 0!==d[0]?d[0]:1,e.next=3,t(r,ns);case 3:if(a=e.sent,s=a.pagination,o=a.data,s&&!cs(s)){e.next=8;break}return e.abrupt("return",o);case 8:return l=Object($t.a)(2,s.pagesCount+1),u=Object(oa.a)(4,l),s.pagesCount-1>4&&c({type:n.large}),e.t0=o,e.next=14,i(u);case 14:return e.t1=e.sent,e.abrupt("return",e.t0.concat.call(e.t0,e.t1));case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),e.prev=4,e.next=7,o();case 7:l=e.sent,c(Object(d.a)(Object(d.a)({},r),{},{visits:l,type:n.finish})),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(4),c({type:n.error,errorData:vt(e.t0)});case 14:case"end":return e.stop()}}),e,null,[[4,11]])})));return function(t,r,n,c,a){return e.apply(this,arguments)}}(),is="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_START",os="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_ERROR",ls="shlink/shortUrlVisits/GET_SHORT_URL_VISITS",us="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_LARGE",ds="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_CANCEL",js="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_PROGRESS_CHANGED",bs={visits:[],shortCode:"",domain:void 0,loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},hs=it((Ye={},Object(u.a)(Ye,is,(function(){return Object(d.a)(Object(d.a)({},bs),{},{loading:!0})})),Object(u.a)(Ye,os,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},bs),{},{error:!0,errorData:r})})),Object(u.a)(Ye,ls,(function(e,t){var r=t.visits,n=t.query,c=t.shortCode,a=t.domain;return Object(d.a)(Object(d.a)({},bs),{},{visits:r,shortCode:c,domain:a,query:n})})),Object(u.a)(Ye,us,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loadingLarge:!0})})),Object(u.a)(Ye,ds,(function(e){return Object(d.a)(Object(d.a)({},e),{},{cancelLoad:!0})})),Object(u.a)(Ye,js,(function(e,t){var r=t.progress;return Object(d.a)(Object(d.a)({},e),{},{progress:r})})),Object(u.a)(Ye,ht,(function(e,t){var r=t.createdVisits,n=e.shortCode,c=e.domain,a=e.visits,s=e.query,i=void 0===s?{}:s,o=i.startDate,l=i.endDate,u=r.filter((function(e){var t=e.shortUrl,r=e.visit;return t&&bt(t,n,c)&&le(r.date,o,l)})).map((function(e){return e.visit}));return 0===u.length?e:Object(d.a)(Object(d.a)({},e),{},{visits:[].concat(Object(_e.a)(u),Object(_e.a)(a))})})),Ye),bs),Os=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=e(a),i=s.getShortUrlVisits,o=function(){var e=Object(x.a)(m.a.mark((function e(n,c){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(t,Object(d.a)(Object(d.a)({},r),{},{page:n,itemsPerPage:c})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),l=function(){return a().shortUrlVisits.cancelLoad},u={shortCode:t,query:r,domain:r.domain},j={start:is,large:us,finish:ls,error:os,progress:js},n.abrupt("return",ss(o,u,j,c,l));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()}},vs=ot(ds),fs=function(e){var t=e.tagVisits,r=e.goBack,n=e.colorGenerator,c=t.visits,s=t.tag,i=Object(a.jsxs)("span",{className:"d-flex align-items-center justify-content-center",children:[Object(a.jsx)("span",{className:"mr-2",children:"Visits for"}),Object(a.jsx)(B,{text:s,colorGenerator:n})]});return Object(a.jsx)(Sc,{title:i,goBack:r,visits:c})},ms=function(e,t){var r=t.exportVisits;return Me((function(t){var n=t.history.goBack,c=t.match,s=c.params,i=c.url,o=t.getTagVisits,l=t.tagVisits,u=t.cancelGetTagVisits,d=t.settings,j=t.selectedServer,b=s.tag;return Object(a.jsx)(es,{getVisits:function(e){return o(b,Na(e))},cancelGetVisits:u,visitsInfo:l,baseUrl:i,settings:d,exportCsv:function(e){return r("tag_".concat(b,"_visits.csv"),e)},selectedServer:j,children:Object(a.jsx)(fs,{tagVisits:l,goBack:n,colorGenerator:e})})}),(function(){return[Ge.visits]}))},xs="shlink/tagVisits/GET_TAG_VISITS_START",gs="shlink/tagVisits/GET_TAG_VISITS_ERROR",ps="shlink/tagVisits/GET_TAG_VISITS",ys="shlink/tagVisits/GET_TAG_VISITS_LARGE",Ss="shlink/tagVisits/GET_TAG_VISITS_CANCEL",Cs="shlink/tagVisits/GET_TAG_VISITS_PROGRESS_CHANGED",Ns={visits:[],tag:"",loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},ws=it((Xe={},Object(u.a)(Xe,xs,(function(){return Object(d.a)(Object(d.a)({},Ns),{},{loading:!0})})),Object(u.a)(Xe,gs,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},Ns),{},{error:!0,errorData:r})})),Object(u.a)(Xe,ps,(function(e,t){var r=t.visits,n=t.tag,c=t.query;return Object(d.a)(Object(d.a)({},Ns),{},{visits:r,tag:n,query:c})})),Object(u.a)(Xe,ys,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loadingLarge:!0})})),Object(u.a)(Xe,Ss,(function(e){return Object(d.a)(Object(d.a)({},e),{},{cancelLoad:!0})})),Object(u.a)(Xe,Cs,(function(e,t){var r=t.progress;return Object(d.a)(Object(d.a)({},e),{},{progress:r})})),Object(u.a)(Xe,ht,(function(e,t){var r=t.createdVisits,n=e.tag,c=e.visits,a=e.query,s=void 0===a?{}:a,i=s.startDate,o=s.endDate,l=r.filter((function(e){var t=e.shortUrl,r=e.visit;return(null===t||void 0===t?void 0:t.tags.includes(n))&&le(r.date,i,o)})).map((function(e){return e.visit}));return Object(d.a)(Object(d.a)({},e),{},{visits:[].concat(Object(_e.a)(l),Object(_e.a)(c))})})),Xe),Ns),ks=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=e(a),i=s.getTagVisits,o=function(){var e=Object(x.a)(m.a.mark((function e(n,c){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(t,Object(d.a)(Object(d.a)({},r),{},{page:n,itemsPerPage:c})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),l=function(){return a().tagVisits.cancelLoad},u={tag:t,query:r},j={start:xs,large:ys,finish:ps,error:gs,progress:Cs},n.abrupt("return",ss(o,u,j,c,l));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()}},_s=ot(Ss),Us=function(e){var t=e.orphanVisits,r=e.goBack,n=t.visits;return Object(a.jsx)(Sc,{title:"Orphan visits",goBack:r,visits:n})},Ts=function(e){var t=e.exportVisits;return Me((function(e){var r=e.history.goBack,n=e.match.url,c=e.getOrphanVisits,s=e.orphanVisits,i=e.cancelGetOrphanVisits,o=e.settings,l=e.selectedServer;return Object(a.jsx)(es,{getVisits:function(e){var t;return c(Na(e),null===(t=e.filter)||void 0===t?void 0:t.orphanVisitsType)},cancelGetVisits:i,visitsInfo:s,baseUrl:n,settings:o,exportCsv:function(e){return t("orphan_visits.csv",e)},selectedServer:l,isOrphanVisits:!0,children:Object(a.jsx)(Us,{orphanVisits:s,goBack:r})})}),(function(){return[Ge.orphanVisits]}))},Rs="shlink/orphanVisits/GET_ORPHAN_VISITS_START",Es="shlink/orphanVisits/GET_ORPHAN_VISITS_ERROR",Ds="shlink/orphanVisits/GET_ORPHAN_VISITS",Ls="shlink/orphanVisits/GET_ORPHAN_VISITS_LARGE",Vs="shlink/orphanVisits/GET_ORPHAN_VISITS_CANCEL",Is="shlink/orphanVisits/GET_ORPHAN_VISITS_PROGRESS_CHANGED",Fs={visits:[],loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},As=it(($e={},Object(u.a)($e,Rs,(function(){return Object(d.a)(Object(d.a)({},Fs),{},{loading:!0})})),Object(u.a)($e,Es,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},Fs),{},{error:!0,errorData:r})})),Object(u.a)($e,Ds,(function(e,t){var r=t.visits,n=t.query;return Object(d.a)(Object(d.a)({},Fs),{},{visits:r,query:n})})),Object(u.a)($e,Ls,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loadingLarge:!0})})),Object(u.a)($e,Vs,(function(e){return Object(d.a)(Object(d.a)({},e),{},{cancelLoad:!0})})),Object(u.a)($e,Is,(function(e,t){var r=t.progress;return Object(d.a)(Object(d.a)({},e),{},{progress:r})})),Object(u.a)($e,ht,(function(e,t){var r=t.createdVisits,n=e.visits,c=e.query,a=void 0===c?{}:c,s=a.startDate,i=a.endDate,o=r.filter((function(e){var t=e.visit;return le(t.date,s,i)})).map((function(e){return e.visit}));return Object(d.a)(Object(d.a)({},e),{},{visits:[].concat(Object(_e.a)(o),Object(_e.a)(n))})})),$e),Fs),Ms=function(e,t){return!t||t===e.type},Gs=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=e(a),i=s.getOrphanVisits,o=function(){var e=Object(x.a)(m.a.mark((function e(n,c){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(Object(d.a)(Object(d.a)({},t),{},{page:n,itemsPerPage:c})).then((function(e){var t=e.data.filter((function(e){return ya(e)&&Ms(e,r)}));return Object(d.a)(Object(d.a)({},e),{},{data:t})})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),l=function(){return a().orphanVisits.cancelLoad},u={query:t},j={start:Rs,large:Ls,finish:Ds,error:Es,progress:Is},n.abrupt("return",ss(o,u,j,c,l));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()}},Ps=ot(Vs),Bs="shlink/visitsOverview/GET_OVERVIEW_START",Hs="shlink/visitsOverview/GET_OVERVIEW_ERROR",Ws="shlink/visitsOverview/GET_OVERVIEW",qs={visitsCount:0,orphanVisitsCount:0,loading:!1,error:!1},zs=it((et={},Object(u.a)(et,Bs,(function(){return Object(d.a)(Object(d.a)({},qs),{},{loading:!0})})),Object(u.a)(et,Hs,(function(){return Object(d.a)(Object(d.a)({},qs),{},{error:!0})})),Object(u.a)(et,Ws,(function(e,t){var r=t.visitsCount,n=t.orphanVisitsCount;return Object(d.a)(Object(d.a)({},qs),{},{visitsCount:r,orphanVisitsCount:n})})),Object(u.a)(et,ht,(function(e,t){var r=e.visitsCount,n=e.orphanVisitsCount,c=void 0===n?0:n,a=Object(D.a)(e,["visitsCount","orphanVisitsCount"]),s=t.createdVisits,i=Sa(s),o=i.regularVisits,l=i.orphanVisits;return Object(d.a)(Object(d.a)({},a),{},{visitsCount:r+o.length,orphanVisitsCount:c+l.length})})),et),qs),Qs=function(e){return function(){return function(){var t=Object(x.a)(m.a.mark((function t(r,n){var c,a,s;return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r({type:Bs}),t.prev=1,c=e(n),a=c.getVisitsOverview,t.next=5,a();case 5:s=t.sent,r(Object(d.a)({type:Ws},s)),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(1),r({type:Hs});case 12:case"end":return t.stop()}}),t,null,[[1,9]])})));return function(e,r){return t.apply(this,arguments)}}()}},Ks=function e(t,r){var n=this;Object(g.a)(this,e),this.window=t,this.csvjson=r,this.exportVisits=function(e,t){if(t.length){var r=n.csvjson.toCSV(t,{headers:"key"});Object(gc.a)(n.window,r,e)}}},Js=function(e,t){e.serviceFactory("MapModal",(function(){return xa})),e.serviceFactory("ShortUrlVisits",ts,"VisitsExporter"),e.decorator("ShortUrlVisits",t(["shortUrlVisits","shortUrlDetail","mercureInfo","settings","selectedServer"],["getShortUrlVisits","getShortUrlDetail","cancelGetShortUrlVisits","createNewVisits","loadMercureInfo"])),e.serviceFactory("TagVisits",ms,"ColorGenerator","VisitsExporter"),e.decorator("TagVisits",t(["tagVisits","mercureInfo","settings","selectedServer"],["getTagVisits","cancelGetTagVisits","createNewVisits","loadMercureInfo"])),e.serviceFactory("OrphanVisits",Ts,"VisitsExporter"),e.decorator("OrphanVisits",t(["orphanVisits","mercureInfo","settings","selectedServer"],["getOrphanVisits","cancelGetOrphanVisits","createNewVisits","loadMercureInfo"])),e.serviceFactory("VisitsParser",(function(){return n})),e.service("VisitsExporter",Ks,"window","csvjson"),e.serviceFactory("getShortUrlVisits",Os,"buildShlinkApiClient"),e.serviceFactory("cancelGetShortUrlVisits",(function(){return vs})),e.serviceFactory("getTagVisits",ks,"buildShlinkApiClient"),e.serviceFactory("cancelGetTagVisits",(function(){return _s})),e.serviceFactory("getOrphanVisits",Gs,"buildShlinkApiClient"),e.serviceFactory("cancelGetOrphanVisits",(function(){return Ps})),e.serviceFactory("createNewVisits",(function(){return Ot})),e.serviceFactory("loadVisitsOverview",Qs,"buildShlinkApiClient")},Zs=r(293),Ys=r.n(Zs),Xs=function(e){var t=e.tag,r=e.colorGenerator;return Object(a.jsx)("div",{style:{backgroundColor:r.getColorForKey(t)},className:"tag-bullet"})},$s=function(e){return{id:e,name:e}},ei=function(e){return function(t){var r,n,c=t.selectedTags,s=t.onChange,i=t.placeholder,o=t.listTags,l=t.tagsList,u=t.settings;Object(A.useEffect)((function(){o()}),[]);var d=null!==(r=null===(n=u.shortUrlCreation)||void 0===n?void 0:n.tagFilteringMode)&&void 0!==r?r:"startsWith";return Object(a.jsx)(Ys.a,{tags:c.map($s),tagComponent:function(t){var r=t.tag,n=t.onDelete;return Object(a.jsx)(B,{colorGenerator:e,text:r.name,clearable:!0,className:"react-tags__tag",onClose:n})},suggestions:l.tags.filter((function(e){return!c.includes(e)})).map($s),suggestionComponent:function(t){var r=t.item;return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Xs,{tag:"".concat(r.name),colorGenerator:e}),r.name]})},allowNew:!0,addOnBlur:!0,placeholderText:null!==i&&void 0!==i?i:"Add tags to the URL",minQueryLength:1,delimiters:["Enter","Tab",","],suggestionsTransform:"includes"===d?function(e,t){return t.filter((function(t){return t.name.includes(e)}))}:void 0,onDelete:function(e){var t=Object(_e.a)(c);t.splice(e,1),s(t)},onAddition:function(e){var t=e.name;return s(Object(_e.a)(new Set([].concat(Object(_e.a)(c),Object(_e.a)(t.toLowerCase().split(","))))))}})}},ti=r(550),ri=function(e,t,r){return function(n){var c=n.tag,s=n.selectedServer,i=n.displayed,l=n.toggle,u=Object(Q.d)(),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(Q.d)(),O=Object(E.a)(h,2),f=O[0],m=O[1],x=Object(Q.d)(),g=Object(E.a)(x,3),p=g[0],y=g[2],S=Object(A.useRef)(),C=Object(v.a)(s);return Object(A.useEffect)((function(){var e;(e=S.current)&&e.scrollWidth>e.clientWidth&&y()}),[S.current]),Object(a.jsxs)(Ee.a,{className:"tag-card",children:[Object(a.jsxs)(dc.a,{className:"tag-card__header",children:[Object(a.jsx)(Hr.a,{color:"link",size:"sm",className:"tag-card__btn tag-card__btn--last",onClick:b,children:Object(a.jsx)(V.a,{icon:L.Q})}),Object(a.jsx)(Hr.a,{color:"link",size:"sm",className:"tag-card__btn",onClick:m,children:Object(a.jsx)(V.a,{icon:L.C})}),Object(a.jsxs)("h5",{className:"tag-card__tag-title text-ellipsis",title:p?c.tag:void 0,ref:function(e){S.current=null!==e&&void 0!==e?e:void 0},children:[Object(a.jsx)(Xs,{tag:c.tag,colorGenerator:r}),Object(a.jsx)("span",{className:"tag-card__tag-name",onClick:l,children:c.tag})]})]}),Object(a.jsx)(ti.a,{isOpen:i,children:Object(a.jsxs)(jc.a,{className:"tag-card__body",children:[Object(a.jsxs)(o.b,{to:"/server/".concat(C,"/list-short-urls/1?tags=").concat(encodeURIComponent(c.tag)),className:"btn btn-outline-secondary btn-block d-flex justify-content-between align-items-center mb-1",children:[Object(a.jsxs)("span",{className:"text-ellipsis",children:[Object(a.jsx)(V.a,{icon:L.v,className:"mr-2"}),"Short URLs"]}),Object(a.jsx)("b",{children:cr(c.shortUrls)})]}),Object(a.jsxs)(o.b,{to:"/server/".concat(C,"/tag/").concat(c.tag,"/visits"),className:"btn btn-outline-secondary btn-block d-flex justify-content-between align-items-center",children:[Object(a.jsxs)("span",{className:"text-ellipsis",children:[Object(a.jsx)(V.a,{icon:L.p,className:"mr-2"}),"Visits"]}),Object(a.jsx)("b",{children:cr(c.visits)})]})]})}),Object(a.jsx)(e,{tag:c.tag,toggle:b,isOpen:j}),Object(a.jsx)(t,{tag:c.tag,toggle:m,isOpen:f})]})}},ni=function(e){var t=e.tag,r=e.toggle,n=e.isOpen,c=e.deleteTag,s=e.tagDelete,i=e.tagDeleted,o=s.deleting,l=s.error,u=s.errorData,d=function(){var e=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(t);case 2:i(t),r();case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return Object(a.jsxs)(_r.a,{toggle:r,isOpen:n,centered:!0,children:[Object(a.jsx)(Ur.a,{toggle:r,children:Object(a.jsx)("span",{className:"text-danger",children:"Delete tag"})}),Object(a.jsxs)(Tr.a,{children:["Are you sure you want to delete tag ",Object(a.jsx)("b",{children:t}),"?",l&&Object(a.jsx)(Ir,{type:"error",small:!0,className:"mt-2",children:Object(a.jsx)(Fr,{errorData:u,fallbackMessage:"Something went wrong while deleting the tag :("})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)("button",{className:"btn btn-link",onClick:r,children:"Cancel"}),Object(a.jsx)("button",{className:"btn btn-danger",disabled:o,onClick:d,children:o?"Deleting tag...":"Delete tag"})]})]})},ci=r(604),ai=r(305),si=function(e){var t=e.getColorForKey;return function(e){var r=e.tag,n=e.editTag,c=e.toggle,s=e.tagEdited,i=e.isOpen,o=e.tagEdit,l=Object(A.useState)(r),u=Object(E.a)(l,2),d=u[0],j=u[1],b=Object(A.useState)(t(r)),h=Object(E.a)(b,2),O=h[0],v=h[1],f=Object(Q.d)(),g=Object(E.a)(f,4),p=g[0],y=g[1],S=g[3],C=o.editing,N=o.error,w=o.errorData,k=Object(Dr.b)(Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n(r,d,O).then((function(){return s(r,d,O)})).then(c).catch((function(){})));case 1:case"end":return e.stop()}}),e)}))));return Object(a.jsx)(_r.a,{isOpen:i,toggle:c,centered:!0,onClosed:S,children:Object(a.jsxs)("form",{onSubmit:k,children:[Object(a.jsx)(Ur.a,{toggle:c,children:"Edit tag"}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("div",{className:"input-group",children:[Object(a.jsx)("div",{className:"input-group-prepend",id:"colorPickerBtn",onClick:y,children:Object(a.jsx)("div",{className:"input-group-text edit-tag-modal__color-picker-toggle",style:{backgroundColor:O,borderColor:O},children:Object(a.jsx)(V.a,{icon:L.A,className:"edit-tag-modal__color-icon"})})}),Object(a.jsx)(ci.a,{isOpen:p,toggle:y,target:"colorPickerBtn",placement:"right",children:Object(a.jsx)(ai.a,{color:O,disableAlpha:!0,onChange:function(e){var t=e.hex;return v(t)}})}),Object(a.jsx)(Qr.a,{value:d,placeholder:"Tag",required:!0,onChange:function(e){var t=e.target;return j(t.value)}})]}),N&&Object(a.jsx)(Ir,{type:"error",small:!0,className:"mt-2",children:Object(a.jsx)(Fr,{errorData:w,fallbackMessage:"Something went wrong while editing the tag :("})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)(Hr.a,{type:"button",color:"link",onClick:c,children:"Cancel"}),Object(a.jsx)(Hr.a,{color:"primary",disabled:C,children:C?"Saving...":"Save"})]})]})})}},ii={tag:"Tag",shortUrls:"Short URLs",visits:"Visits"},oi=function(e){var t,r=e.mode,n=e.onChange,c=e.renderTitle;return Object(a.jsxs)(K,{text:null!==(t=null===c||void 0===c?void 0:c(r))&&void 0!==t?t:"Display mode: ".concat(r),children:[Object(a.jsxs)(H.a,{active:"cards"===r,onClick:function(){return n("cards")},children:[Object(a.jsx)(V.a,{icon:L.O,fixedWidth:!0,className:"mr-1"})," Cards"]}),Object(a.jsxs)(H.a,{active:"list"===r,onClick:function(){return n("list")},children:[Object(a.jsx)(V.a,{icon:L.c,fixedWidth:!0,className:"mr-1"})," List"]})]})},li=function(e,t){return Me((function(r){var n,c,s=r.filterTags,i=r.forceListTags,o=r.tagsList,l=r.selectedServer,u=r.settings,d=Object(A.useState)(null!==(n=null===(c=u.ui)||void 0===c?void 0:c.tagsMode)&&void 0!==n?n:"cards"),j=Object(E.a)(d,2),b=j[0],h=j[1],O=Object(A.useState)({}),v=Object(E.a)(O,2),f=v[0],m=v[1],x=Object(I.a)((function(){return o.filteredTags.map((function(e){var t,r,n,c;return{tag:e,shortUrls:null!==(t=null===(r=o.stats[e])||void 0===r?void 0:r.shortUrlsCount)&&void 0!==t?t:0,visits:null!==(n=null===(c=o.stats[e])||void 0===c?void 0:c.visitsCount)&&void 0!==n?n:0}}))}),(function(e){return Ie(e,f)}));if(Object(A.useEffect)((function(){i()}),[]),o.loading)return Object(a.jsx)(un.a,{loading:!0});if(o.error)return Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:o.errorData,fallbackMessage:"Error loading tags :("})});var g=function(e){return function(){var t=Ve(e,f.field,f.dir);m({field:t?e:void 0,dir:t})}};return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(P,{className:"mb-3",onChange:s}),Object(a.jsxs)(Lr.a,{className:"mb-3",children:[Object(a.jsx)("div",{className:"col-lg-6",children:Object(a.jsx)(oi,{mode:b,onChange:h})}),Object(a.jsx)("div",{className:"col-lg-6 mt-3 mt-lg-0",children:Object(a.jsx)(Fe,{items:ii,order:f,onChange:function(e,t){return m({field:e,dir:t})}})})]}),function(){if(o.filteredTags.length<1)return Object(a.jsx)(un.a,{children:"No tags found"});var r=x();return"cards"===b?Object(a.jsx)(e,{sortedTags:r,selectedServer:l}):Object(a.jsx)(t,{sortedTags:r,selectedServer:l,currentOrder:f,orderByColumn:g})}()]})}),(function(){return[Ge.visits]}))},ui="shlink/deleteTag/DELETE_TAG_START",di="shlink/deleteTag/DELETE_TAG_ERROR",ji="shlink/deleteTag/DELETE_TAG",bi="shlink/deleteTag/TAG_DELETED",hi=it((tt={},Object(u.a)(tt,ui,(function(){return{deleting:!0,error:!1}})),Object(u.a)(tt,di,(function(e,t){return{deleting:!1,error:!0,errorData:t.errorData}})),Object(u.a)(tt,ji,(function(){return{deleting:!1,error:!1}})),tt),{deleting:!1,error:!1}),Oi=function(e){return function(t){return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n({type:ui}),a=e(c),s=a.deleteTags,r.prev=2,r.next=5,s([t]);case 5:n({type:ji}),r.next=12;break;case 8:throw r.prev=8,r.t0=r.catch(2),n({type:di,errorData:vt(r.t0)}),r.t0;case 12:case"end":return r.stop()}}),r,null,[[2,8]])})));return function(e,t){return r.apply(this,arguments)}}()}},vi=function(e){return{type:bi,tag:e}},fi="shlink/editTag/EDIT_TAG_START",mi="shlink/editTag/EDIT_TAG_ERROR",xi="shlink/editTag/EDIT_TAG",gi="shlink/editTag/TAG_EDITED",pi=it((rt={},Object(u.a)(rt,fi,(function(e){return Object(d.a)(Object(d.a)({},e),{},{editing:!0,error:!1})})),Object(u.a)(rt,mi,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{editing:!1,error:!0,errorData:r})})),Object(u.a)(rt,xi,(function(e,t){return Object(d.a)(Object(d.a)({},Object(h.a)(["oldName","newName"],t)),{},{editing:!1,error:!1})})),rt),{oldName:"",newName:"",editing:!1,error:!1}),yi=function(e,t){return function(r,n,c){return function(){var a=Object(x.a)(m.a.mark((function a(s,i){var o,l;return m.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return s({type:fi}),o=e(i),l=o.editTag,a.prev=2,a.next=5,l(r,n);case 5:t.setColorForKey(n,c),s({type:xi,oldName:r,newName:n}),a.next=13;break;case 9:throw a.prev=9,a.t0=a.catch(2),s({type:mi,errorData:vt(a.t0)}),a.t0;case 13:case"end":return a.stop()}}),a,null,[[2,9]])})));return function(e,t){return a.apply(this,arguments)}}()}},Si=function(e,t,r){return{type:gi,oldName:e,newName:t,color:r}},Ci="shlink/tagsList/LIST_TAGS_START",Ni="shlink/tagsList/LIST_TAGS_ERROR",wi="shlink/tagsList/LIST_TAGS",ki="shlink/tagsList/FILTER_TAGS",_i={tags:[],filteredTags:[],stats:{},loading:!1,error:!1},Ui=function(e,t){return function(r){return r===e?t:r}},Ti=function(e,t){return Object(p.a)((function(e){return e===t}),e)},Ri=function(e){return Object.entries(e.reduce((function(e,t){var r=t.shortUrl;return null===r||void 0===r||r.tags.forEach((function(t){e[t]=(e[t]||0)+1})),e}),{}))},Ei=it((nt={},Object(u.a)(nt,Ci,(function(){return Object(d.a)(Object(d.a)({},_i),{},{loading:!0})})),Object(u.a)(nt,Ni,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},_i),{},{error:!0,errorData:r})})),Object(u.a)(nt,wi,(function(e,t){var r=t.tags,n=t.stats;return Object(d.a)(Object(d.a)({},_i),{},{stats:n,tags:r,filteredTags:r})})),Object(u.a)(nt,bi,(function(e,t){var r=t.tag;return Object(d.a)(Object(d.a)({},e),{},{tags:Ti(e.tags,r),filteredTags:Ti(e.filteredTags,r)})})),Object(u.a)(nt,gi,(function(e,t){var r=t.oldName,n=t.newName;return Object(d.a)(Object(d.a)({},e),{},{tags:e.tags.map(Ui(r,n)).sort(),filteredTags:e.filteredTags.map(Ui(r,n)).sort()})})),Object(u.a)(nt,ki,(function(e,t){var r=t.searchTerm;return Object(d.a)(Object(d.a)({},e),{},{filteredTags:e.tags.filter((function(e){return e.toLowerCase().match(r)}))})})),Object(u.a)(nt,ht,(function(e,t){var r,n,c=t.createdVisits;return Object(d.a)(Object(d.a)({},e),{},{stats:(r=Ri(c),n=e.stats,r.reduce((function(e,t){var r=Object(E.a)(t,2),n=r[0],c=r[1];if(!e[n])return e;var a=e[n];return a.visitsCount=a.visitsCount+c,e[n]=a,e}),Object(d.a)({},n)))})})),nt),_i),Di=function(e){return{type:ki,searchTerm:e}},Li=Math.ceil,Vi=function(e){return function(t){var r=t.sortedTags,n=t.selectedServer,c=Object(A.useState)(),s=Object(E.a)(c,2),i=s[0],o=s[1],l=r.length,u=Object(oa.a)(Li(l/4),r);return Object(a.jsx)(Lr.a,{children:u.map((function(t,r){return Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:t.map((function(t){return Object(a.jsx)(e,{tag:t,selectedServer:n,displayed:i===t.tag,toggle:function(){return o(i!==t.tag?t.tag:void 0)}},t.tag)}))},r)}))})}},Ii=function(e){return function(t){var r,n=t.sortedTags,c=t.selectedServer,s=t.location,i=t.orderByColumn,o=t.currentOrder,l=Object(A.useRef)(!0),u=Object(C.a)(s.search).page,d=void 0===u?1:u,j=Object(Q.a)("page",Number(d)),b=Object(E.a)(j,2),h=b[0],O=b[1],v=Object(oa.a)(20,n),f=v.length>1,m=null!==(r=v[h-1])&&void 0!==r?r:[];return Object(A.useEffect)((function(){!l.current&&O(1),l.current=!1}),[n]),Object(A.useEffect)((function(){scrollTo(0,0)}),[h]),Object(a.jsxs)(Vr.a,{bodyClassName:f?"pb-1":"",children:[Object(a.jsxs)("table",{className:"table table-hover mb-0",children:[Object(a.jsxs)("thead",{className:"responsive-table__header",children:[Object(a.jsxs)("tr",{children:[Object(a.jsxs)("th",{className:"tags-table__header-cell",onClick:i("tag"),children:["Tag ",Object(a.jsx)(Pe,{currentOrder:o,field:"tag"})]}),Object(a.jsxs)("th",{className:"tags-table__header-cell text-lg-right",onClick:i("shortUrls"),children:["Short URLs ",Object(a.jsx)(Pe,{currentOrder:o,field:"shortUrls"})]}),Object(a.jsxs)("th",{className:"tags-table__header-cell text-lg-right",onClick:i("visits"),children:["Visits ",Object(a.jsx)(Pe,{currentOrder:o,field:"visits"})]}),Object(a.jsx)("th",{className:"tags-table__header-cell"})]}),Object(a.jsx)("tr",{children:Object(a.jsx)("th",{colSpan:4,className:"p-0 border-top-0"})})]}),Object(a.jsxs)("tbody",{children:[0===m.length&&Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:4,className:"text-center",children:"No results found"})}),m.map((function(t){return Object(a.jsx)(e,{tag:t,selectedServer:c},t.tag)}))]})]}),f&&Object(a.jsx)("div",{className:"sticky-card-paginator",children:Object(a.jsx)(la,{pagesCount:v.length,currentPage:h,setCurrentPage:O})})]},h)}},Fi=function(e,t,r){return function(n){var c=n.tag,s=n.selectedServer,i=Object(Q.d)(),l=Object(E.a)(i,2),u=l[0],d=l[1],j=Object(Q.d)(),b=Object(E.a)(j,2),h=b[0],O=b[1],f=Object(Q.d)(),m=Object(E.a)(f,2),x=m[0],g=m[1],p=Object(v.a)(s);return Object(a.jsxs)("tr",{className:"responsive-table__row",children:[Object(a.jsxs)("th",{className:"responsive-table__cell","data-th":"Tag",children:[Object(a.jsx)(Xs,{tag:c.tag,colorGenerator:r})," ",c.tag]}),Object(a.jsx)("td",{className:"responsive-table__cell text-lg-right","data-th":"Short URLs",children:Object(a.jsx)(o.b,{to:"/server/".concat(p,"/list-short-urls/1?tags=").concat(encodeURIComponent(c.tag)),children:cr(c.shortUrls)})}),Object(a.jsx)("td",{className:"responsive-table__cell text-lg-right","data-th":"Visits",children:Object(a.jsx)(o.b,{to:"/server/".concat(p,"/tag/").concat(c.tag,"/visits"),children:cr(c.visits)})}),Object(a.jsx)("td",{className:"responsive-table__cell text-lg-right",children:Object(a.jsxs)(Nr,{toggle:g,isOpen:x,children:[Object(a.jsxs)(H.a,{onClick:O,children:[Object(a.jsx)(V.a,{icon:L.C,fixedWidth:!0,className:"mr-1"})," Edit"]}),Object(a.jsxs)(H.a,{onClick:d,children:[Object(a.jsx)(V.a,{icon:L.Q,fixedWidth:!0,className:"mr-1"})," Delete"]})]})}),Object(a.jsx)(t,{tag:c.tag,toggle:O,isOpen:h}),Object(a.jsx)(e,{tag:c.tag,toggle:d,isOpen:u})]})}},Ai=function(e,t){e.serviceFactory("TagsSelector",ei,"ColorGenerator"),e.decorator("TagsSelector",t(["tagsList","settings"],["listTags"])),e.serviceFactory("TagCard",ri,"DeleteTagConfirmModal","EditTagModal","ColorGenerator"),e.serviceFactory("DeleteTagConfirmModal",(function(){return ni})),e.decorator("DeleteTagConfirmModal",t(["tagDelete"],["deleteTag","tagDeleted"])),e.serviceFactory("EditTagModal",si,"ColorGenerator"),e.decorator("EditTagModal",t(["tagEdit"],["editTag","tagEdited"])),e.serviceFactory("TagsCards",Vi,"TagCard"),e.serviceFactory("TagsTableRow",Fi,"DeleteTagConfirmModal","EditTagModal","ColorGenerator"),e.serviceFactory("TagsTable",Ii,"TagsTableRow"),e.decorator("TagsTable",b.h),e.serviceFactory("TagsList",li,"TagsCards","TagsTable"),e.decorator("TagsList",t(["tagsList","selectedServer","mercureInfo","settings"],["forceListTags","filterTags","createNewVisits","loadMercureInfo"]));var r=function(e){return function(t){return function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function(){return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s,i,o,l,u,d,j;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(a=c(),s=a.tagsList,t||!s.loading&&Object(S.a)(s.tags)){r.next=3;break}return r.abrupt("return");case 3:return n({type:Ci}),r.prev=4,i=e(c),o=i.listTags,r.next=8,o();case 8:l=r.sent,u=l.tags,d=l.stats,j=(void 0===d?[]:d).reduce((function(e,t){var r=t.tag,n=t.shortUrlsCount,c=t.visitsCount;return e[r]={shortUrlsCount:n,visitsCount:c},e}),{}),n({tags:u,stats:j,type:wi}),r.next=19;break;case 16:r.prev=16,r.t0=r.catch(4),n({type:Ni,errorData:vt(r.t0)});case 19:case"end":return r.stop()}}),r,null,[[4,16]])})));return function(e,t){return r.apply(this,arguments)}}()}}(t.buildShlinkApiClient,e)}};e.factory("listTags",r(!1)),e.factory("forceListTags",r(!0)),e.serviceFactory("filterTags",(function(){return Di})),e.serviceFactory("tagDeleted",(function(){return vi})),e.serviceFactory("tagEdited",(function(){return Si})),e.serviceFactory("deleteTag",Oi,"buildShlinkApiClient"),e.serviceFactory("editTag",yi,"buildShlinkApiClient","ColorGenerator")},Mi=r(298),Gi="shlink/mercure/GET_MERCURE_INFO_START",Pi="shlink/mercure/GET_MERCURE_INFO_ERROR",Bi="shlink/mercure/GET_MERCURE_INFO",Hi=it((ct={},Object(u.a)(ct,Gi,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!0,error:!1})})),Object(u.a)(ct,Pi,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!1,error:!0})})),Object(u.a)(ct,Bi,(function(e,t){return Object(d.a)(Object(d.a)({},t),{},{loading:!1,error:!1})})),ct),{loading:!0,error:!1}),Wi=function(e){return function(){return function(){var t=Object(x.a)(m.a.mark((function t(r,n){var c,a,s,i,o;return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r({type:Gi}),c=n(),a=c.settings,s=e(n),i=s.mercureInfo,a.realTimeUpdates.enabled){t.next=6;break}return r({type:Pi}),t.abrupt("return");case 6:return t.prev=6,t.next=9,i();case 9:o=t.sent,r(Object(d.a)({type:Bi,interval:a.realTimeUpdates.interval},o)),t.next=16;break;case 13:t.prev=13,t.t0=t.catch(6),r({type:Pi});case 16:case"end":return t.stop()}}),t,null,[[6,13]])})));return function(e,r){return t.apply(this,arguments)}}()}},qi=function(e){e.serviceFactory("loadMercureInfo",Wi,"buildShlinkApiClient")},zi=function(e){var t,r=e.settings.realTimeUpdates,n=e.toggleRealTimeUpdates,c=e.setRealTimeUpdatesInterval;return Object(a.jsxs)(Vr.a,{title:"Real-time updates",className:"h-100",children:[Object(a.jsx)(Br.a,{children:Object(a.jsxs)(Qc,{checked:r.enabled,onChange:n,children:["Enable or disable real-time updates.",Object(a.jsxs)("small",{className:"form-text text-muted",children:["Real-time updates are currently being ",Object(a.jsx)("b",{children:r.enabled?"processed":"ignored"}),"."]})]})}),Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{className:G()({"text-muted":!r.enabled}),children:"Real-time updates frequency (in minutes):"}),Object(a.jsx)(Qr.a,{type:"number",min:0,placeholder:"Immediate",disabled:!r.enabled,value:(t=r.interval,t?"".concat(t):""),onChange:function(e){var t=e.target;return c(Number(t.value))}}),r.enabled&&Object(a.jsxs)("small",{className:"form-text text-muted",children:[void 0!==r.interval&&r.interval>0&&Object(a.jsxs)("span",{children:["Updates will be reflected in the UI every ",Object(a.jsx)("b",{children:r.interval})," minute",r.interval>1&&"s","."]}),!r.interval&&"Updates will be reflected in the UI as soon as they happen."]})]})]})},Qi=function(e){var t=e.items;return Object(a.jsx)(a.Fragment,{children:t.map((function(e,t){return Object(a.jsx)(Lr.a,{children:e.map((function(e,t){return Object(a.jsx)("div",{className:"col-lg-6 mb-3",children:e},t)}))},t)}))})},Ki=function(e,t,r,n){return function(){return Object(a.jsx)(pn.a,{children:Object(a.jsx)(Qi,{items:[[Object(a.jsx)(r,{}),Object(a.jsx)(n,{})],[Object(a.jsx)(t,{}),Object(a.jsx)(e,{})]]})})}},Ji=r(611),Zi="shlink/realTimeUpdates/SET_SETTINGS",Yi=it(Object(u.a)({},Zi,(function(e,t){return Object(Ji.a)(e,Object(Bn.a)("type",t))})),{realTimeUpdates:{enabled:!0},shortUrlCreation:{validateUrls:!1},ui:{theme:"light"},visits:{defaultInterval:"last30Days"}}),Xi=function(e){return{type:Zi,realTimeUpdates:{enabled:e}}},$i=function(e){return{type:Zi,realTimeUpdates:{interval:e}}},eo=function(e){return{type:Zi,shortUrlCreation:e}},to=function(e){return{type:Zi,ui:e}},ro=function(e){return{type:Zi,visits:e}},no=function(e){return"includes"===e?"Suggest tags including input":"Suggest tags starting with input"},co=function(e){var t,r,n,c,s,i=e.settings,o=e.setShortUrlCreationSettings,l=null!==(t=i.shortUrlCreation)&&void 0!==t?t:{validateUrls:!1},u=function(e){return function(){return o(Object(d.a)(Object(d.a)({},null!==l&&void 0!==l?l:{validateUrls:!1}),{},{tagFilteringMode:e}))}};return Object(a.jsxs)(Vr.a,{title:"Short URLs form",className:"h-100",children:[Object(a.jsx)(Br.a,{children:Object(a.jsxs)(Qc,{checked:null!==(r=l.validateUrls)&&void 0!==r&&r,onChange:function(e){return o(Object(d.a)(Object(d.a)({},l),{},{validateUrls:e}))},children:["Request validation on long URLs when creating new short URLs.",Object(a.jsxs)("small",{className:"form-text text-muted",children:["The initial state of the ",Object(a.jsx)("b",{children:"Validate URL"})," checkbox will be ",Object(a.jsx)("b",{children:l.validateUrls?"checked":"unchecked"}),"."]})]})}),Object(a.jsx)(Br.a,{children:Object(a.jsxs)(Qc,{checked:null===(n=l.forwardQuery)||void 0===n||n,onChange:function(e){return o(Object(d.a)(Object(d.a)({},l),{},{forwardQuery:e}))},children:["Make all new short URLs forward their query params to the long URL.",Object(a.jsxs)("small",{className:"form-text text-muted",children:["The initial state of the ",Object(a.jsx)("b",{children:"Forward query params on redirect"})," checkbox will be ",Object(a.jsx)("b",{children:null===(c=l.forwardQuery)||void 0===c||c?"checked":"unchecked"}),"."]})]})}),Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{children:"Tag suggestions search mode:"}),Object(a.jsxs)(K,{text:no(l.tagFilteringMode),children:[Object(a.jsx)(H.a,{active:!l.tagFilteringMode||"startsWith"===l.tagFilteringMode,onClick:u("startsWith"),children:no("startsWith")}),Object(a.jsx)(H.a,{active:"includes"===l.tagFilteringMode,onClick:u("includes"),children:no("includes")})]}),Object(a.jsx)("small",{className:"form-text text-muted",children:(s=l.tagFilteringMode,"includes"===s?Object(a.jsxs)(a.Fragment,{children:["The list of suggested tags will contain those ",Object(a.jsx)("b",{children:"including"})," provided input."]}):Object(a.jsxs)(a.Fragment,{children:["The list of suggested tags will contain those ",Object(a.jsx)("b",{children:"starting with"})," provided input."]}))})]})]})},ao=function(e){var t,r,n=e.settings.ui,c=e.setUiSettings;return Object(a.jsxs)(Vr.a,{title:"User interface",className:"h-100",children:[Object(a.jsxs)(Br.a,{children:[Object(a.jsx)(V.a,{icon:"dark"===(null===n||void 0===n?void 0:n.theme)?L.z:L.L,className:"user-interface__theme-icon"}),Object(a.jsx)(Qc,{checked:"dark"===(null===n||void 0===n?void 0:n.theme),onChange:function(e){var t=e?"dark":"light";c(Object(d.a)(Object(d.a)({},n),{},{theme:t})),Object(Yc.g)(t)},children:"Use dark theme."})]}),Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{children:"Default display mode when managing tags:"}),Object(a.jsx)(oi,{mode:null!==(t=null===n||void 0===n?void 0:n.tagsMode)&&void 0!==t?t:"cards",renderTitle:function(e){return Object(Dr.a)(e)},onChange:function(e){return c(Object(d.a)(Object(d.a)({},null!==n&&void 0!==n?n:{theme:"light"}),{},{tagsMode:e}))}}),Object(a.jsxs)("small",{className:"form-text text-muted",children:["Tags will be displayed as ",Object(a.jsx)("b",{children:null!==(r=null===n||void 0===n?void 0:n.tagsMode)&&void 0!==r?r:"cards"}),"."]})]})]})},so=function(e){var t,r=e.onChange,n=e.active,c=e.allText;return Object(a.jsx)(K,{text:null!==(t=he(n))&&void 0!==t?t:c,children:Object(a.jsx)(Se,{allText:c,active:n,onChange:r})})},io=function(e){var t,r,n=e.settings,c=e.setVisitsSettings;return Object(a.jsx)(Vr.a,{title:"Visits",className:"h-100",children:Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{children:"Default interval to load on visits sections:"}),Object(a.jsx)(so,{allText:"All visits",active:null!==(t=null===(r=n.visits)||void 0===r?void 0:r.defaultInterval)&&void 0!==t?t:"last30Days",onChange:function(e){return c({defaultInterval:e})}})]})})},oo=function(e,t){e.serviceFactory("Settings",Ki,"RealTimeUpdates","ShortUrlCreation","UserInterface","Visits"),e.decorator("Settings",oc.a),e.decorator("Settings",t(null,["resetSelectedServer"])),e.serviceFactory("RealTimeUpdates",(function(){return zi})),e.decorator("RealTimeUpdates",t(["settings"],["toggleRealTimeUpdates","setRealTimeUpdatesInterval"])),e.serviceFactory("ShortUrlCreation",(function(){return co})),e.decorator("ShortUrlCreation",t(["settings"],["setShortUrlCreationSettings"])),e.serviceFactory("UserInterface",(function(){return ao})),e.decorator("UserInterface",t(["settings"],["setUiSettings"])),e.serviceFactory("Visits",(function(){return io})),e.decorator("Visits",t(["settings"],["setVisitsSettings"])),e.serviceFactory("toggleRealTimeUpdates",(function(){return Xi})),e.serviceFactory("setRealTimeUpdatesInterval",(function(){return $i})),e.serviceFactory("setShortUrlCreationSettings",(function(){return eo})),e.serviceFactory("setUiSettings",(function(){return to})),e.serviceFactory("setVisitsSettings",(function(){return ro}))},lo="shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS",uo=function(e){return function(t,r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c({type:"shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_START"}),s=e(a),i=s.editDomainRedirects,n.prev=2,n.next=5,i(Object(d.a)({domain:t},r));case 5:o=n.sent,c({type:lo,domain:t,redirects:o}),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),c({type:"shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_ERROR",errorData:vt(n.t0)});case 12:case"end":return n.stop()}}),n,null,[[2,9]])})));return function(e,t){return n.apply(this,arguments)}}()}},jo="shlink/domainsList/LIST_DOMAINS_START",bo="shlink/domainsList/LIST_DOMAINS_ERROR",ho="shlink/domainsList/LIST_DOMAINS",Oo="shlink/domainsList/FILTER_DOMAINS",vo={domains:[],filteredDomains:[],loading:!1,error:!1},fo=function(e,t){return function(r){return r.domain!==e?r:Object(d.a)(Object(d.a)({},r),{},{redirects:t})}},mo=it((at={},Object(u.a)(at,jo,(function(){return Object(d.a)(Object(d.a)({},vo),{},{loading:!0})})),Object(u.a)(at,bo,(function(e){var t=e.errorData;return Object(d.a)(Object(d.a)({},vo),{},{error:!0,errorData:t})})),Object(u.a)(at,ho,(function(e,t){var r=t.domains;return Object(d.a)(Object(d.a)({},vo),{},{domains:r,filteredDomains:r})})),Object(u.a)(at,Oo,(function(e,t){var r=t.searchTerm;return Object(d.a)(Object(d.a)({},e),{},{filteredDomains:e.domains.filter((function(e){return e.domain.toLowerCase().match(r)}))})})),Object(u.a)(at,lo,(function(e,t){var r=t.domain,n=t.redirects;return Object(d.a)(Object(d.a)({},e),{},{domains:e.domains.map(fo(r,n)),filteredDomains:e.filteredDomains.map(fo(r,n))})})),at),vo),xo=function(e){return function(){return function(){var t=Object(x.a)(m.a.mark((function t(r,n){var c,a,s;return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r({type:jo}),c=e(n),a=c.listDomains,t.prev=2,t.next=5,a();case 5:s=t.sent,r({type:ho,domains:s}),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),r({type:bo,errorData:vt(t.t0)});case 12:case"end":return t.stop()}}),t,null,[[2,9]])})));return function(e,r){return t.apply(this,arguments)}}()}},go=function(e){return{type:Oo,searchTerm:e}},po=r(606),yo=r(616),So=function(e){var t=e.listDomains,r=e.value,n=e.domainsList,c=e.onChange,s=Object(Q.d)(),i=Object(E.a)(s,4),o=i[0],l=i[2],u=i[3],d=n.domains,j=Object(S.a)(r),b=function(){return c("")};return Object(A.useEffect)((function(){t()}),[]),o?Object(a.jsxs)(po.a,{children:[Object(a.jsx)(Qr.a,{value:r,placeholder:"Domain",onChange:function(e){return c(e.target.value)}}),Object(a.jsxs)(yo.a,{addonType:"append",children:[Object(a.jsx)(Hr.a,{id:"backToDropdown",outline:!0,type:"button",className:"domains-dropdown__back-btn",onClick:Object(I.a)(b,u),children:Object(a.jsx)(V.a,{icon:L.R})}),Object(a.jsx)(xr.a,{target:"backToDropdown",placement:"left",trigger:"hover",children:"Existing domains"})]})]}):Object(a.jsxs)(K,{text:j?"Domain":"Domain: ".concat(r),className:j?"domains-dropdown__toggle-btn":"domains-dropdown__toggle-btn--active",children:[d.map((function(e){var t=e.domain,n=e.isDefault;return Object(a.jsxs)(H.a,{active:r===t||n&&j,onClick:function(){return c(t)},children:[t,n&&Object(a.jsx)("span",{className:"float-right text-muted",children:"default"})]},t)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{onClick:Object(I.a)(b,l),children:Object(a.jsx)("i",{children:"New domain"})})]})},Co=function(e){var t=e.isLast,r=Object(D.a)(e,["isLast"]);return Object(a.jsx)(yn,Object(d.a)(Object(d.a)({},r),{},{required:!1,type:"url",placeholder:"No redirect",className:t?"mb-0":""}))},No=function(e){var t,r,n,c,s,i,o=e.isOpen,l=e.toggle,u=e.domain,d=e.editDomainRedirects,j=Object(A.useState)(null!==(t=null===(r=u.redirects)||void 0===r?void 0:r.baseUrlRedirect)&&void 0!==t?t:""),b=Object(E.a)(j,2),h=b[0],O=b[1],v=Object(A.useState)(null!==(n=null===(c=u.redirects)||void 0===c?void 0:c.regular404Redirect)&&void 0!==n?n:""),f=Object(E.a)(v,2),g=f[0],p=f[1],y=Object(A.useState)(null!==(s=null===(i=u.redirects)||void 0===i?void 0:i.invalidShortUrlRedirect)&&void 0!==s?s:""),S=Object(E.a)(y,2),C=S[0],N=S[1],w=Object(Dr.b)(Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d(u.domain,{baseUrlRedirect:Object(Dr.d)(h),regular404Redirect:Object(Dr.d)(g),invalidShortUrlRedirect:Object(Dr.d)(C)}).then(l));case 1:case"end":return e.stop()}}),e)}))));return Object(a.jsx)(_r.a,{isOpen:o,toggle:l,centered:!0,children:Object(a.jsxs)("form",{onSubmit:w,children:[Object(a.jsxs)(Ur.a,{toggle:l,children:["Edit redirects for ",Object(a.jsx)("b",{children:u.domain})]}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)(Co,{value:h,onChange:O,children:[Object(a.jsxs)(nn,{className:"mr-2",placement:"bottom",children:["Visitors accessing the base url, as in ",Object(a.jsxs)("b",{children:["https://",u.domain,"/"]}),", will be redirected to this URL."]}),"Base URL"]}),Object(a.jsxs)(Co,{value:g,onChange:p,children:[Object(a.jsxs)(nn,{className:"mr-2",placement:"bottom",children:["Visitors accessing a url not matching a short URL pattern, as in ",Object(a.jsxs)("b",{children:["https://",u.domain,"/???/[...]"]}),", will be redirected to this URL."]}),"Regular 404"]}),Object(a.jsxs)(Co,{value:C,isLast:!0,onChange:N,children:[Object(a.jsx)(nn,{className:"mr-2",placement:"bottom",children:"Visitors accessing a url matching a short URL pattern, but not matching an existing short code, will be redirected to this URL."}),"Invalid short URL"]})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)(Hr.a,{color:"link",type:"button",onClick:l,children:"Cancel"}),Object(a.jsx)(Hr.a,{color:"primary",children:"Save"})]})]})})},wo=function(e){var t=e.fallback;return Object(a.jsxs)("span",{className:"text-muted",children:[!t&&Object(a.jsx)("small",{children:"No redirect"}),t&&Object(a.jsxs)(a.Fragment,{children:[t," ",Object(a.jsx)("small",{children:"(as fallback)"})]})]})},ko=function(){return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(V.a,{icon:L.h,className:"text-primary",id:"defaultDomainIcon"}),Object(a.jsx)(xr.a,{target:"defaultDomainIcon",placement:"right",children:"Default domain"})]})},_o=function(e){var t,r,n,c=e.domain,s=e.editDomainRedirects,i=e.defaultRedirects,o=Object(Q.d)(),l=Object(E.a)(o,2),u=l[0],d=l[1],j=c.domain,b=c.isDefault,h=c.redirects,O="domainEdit".concat(j.replace(/\./g,""));return Object(a.jsxs)("tr",{className:"responsive-table__row",children:[Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Is default domain",children:b?Object(a.jsx)(ko,{}):""}),Object(a.jsx)("th",{className:"responsive-table__cell","data-th":"Domain",children:j}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Base path redirect",children:null!==(t=null===h||void 0===h?void 0:h.baseUrlRedirect)&&void 0!==t?t:Object(a.jsx)(wo,{fallback:null===i||void 0===i?void 0:i.baseUrlRedirect})}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Regular 404 redirect",children:null!==(r=null===h||void 0===h?void 0:h.regular404Redirect)&&void 0!==r?r:Object(a.jsx)(wo,{fallback:null===i||void 0===i?void 0:i.regular404Redirect})}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Invalid short URL redirect",children:null!==(n=null===h||void 0===h?void 0:h.invalidShortUrlRedirect)&&void 0!==n?n:Object(a.jsx)(wo,{fallback:null===i||void 0===i?void 0:i.invalidShortUrlRedirect})}),Object(a.jsxs)("td",{className:"responsive-table__cell text-right",children:[Object(a.jsx)("span",{id:O,children:Object(a.jsx)(Hr.a,{outline:!0,size:"sm",disabled:b,onClick:b?void 0:d,children:Object(a.jsx)(V.a,{icon:b?L.b:L.m})})}),b&&Object(a.jsxs)(xr.a,{target:O,placement:"left",children:["Redirects for default domain cannot be edited here.",Object(a.jsx)("br",{}),"Use config options or env vars directly on the server."]})]}),Object(a.jsx)(No,{domain:c,isOpen:u,toggle:d,editDomainRedirects:s})]})},Uo=["","Domain","Base path redirect","Regular 404 redirect","Invalid short URL redirect",""],To=function(e){var t,r=e.listDomains,n=e.domainsList,c=e.filterDomains,s=e.editDomainRedirects,i=n.filteredDomains,o=n.loading,l=n.error,u=n.errorData,d=null===(t=i.find((function(e){return e.isDefault})))||void 0===t?void 0:t.redirects;if(Object(A.useEffect)((function(){r()}),[]),o)return Object(a.jsx)(un.a,{loading:!0});return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(P,{className:"mb-3",onChange:c}),l?Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:u,fallbackMessage:"Error loading domains :("})}):Object(a.jsx)(Vr.a,{children:Object(a.jsxs)("table",{className:"table table-hover mb-0",children:[Object(a.jsx)("thead",{className:"responsive-table__header",children:Object(a.jsx)("tr",{children:Uo.map((function(e,t){return Object(a.jsx)("th",{children:e},t)}))})}),Object(a.jsxs)("tbody",{children:[i.length<1&&Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:Uo.length,className:"text-center",children:"No results found"})}),i.map((function(e){return Object(a.jsx)(_o,{domain:e,editDomainRedirects:s,defaultRedirects:d},e.domain)}))]})]})})]})},Ro=function(e,t){e.serviceFactory("DomainSelector",(function(){return So})),e.decorator("DomainSelector",t(["domainsList"],["listDomains"])),e.serviceFactory("ManageDomains",(function(){return To})),e.decorator("ManageDomains",t(["domainsList"],["listDomains","filterDomains","editDomainRedirects"])),e.serviceFactory("listDomains",xo,"buildShlinkApiClient"),e.serviceFactory("filterDomains",(function(){return go})),e.serviceFactory("editDomainRedirects",uo,"buildShlinkApiClient")},Eo="shlink/appUpdates/APP_UPDATE_AVAILABLE",Do="shlink/appUpdates/RESET_APP_UPDATE",Lo=it((st={},Object(u.a)(st,Eo,(function(){return!0})),Object(u.a)(st,Do,(function(){return!1})),st),!1),Vo=ot(Eo),Io=ot(Do),Fo=r(153),Ao=r(607),Mo=function(e){var t=e.isOpen,r=e.toggle,n=e.forceUpdate,c=Object(Q.d)(),s=Object(E.a)(c,3),i=s[0],o=s[2];return Object(a.jsxs)(Ao.a,{className:"app-update-banner",isOpen:t,toggle:r,tag:Vr.a,color:"secondary",children:[Object(a.jsx)("h4",{className:"mb-4",children:"This app has just been updated!"}),Object(a.jsxs)("p",{className:"mb-0",children:["Restart it to enjoy the new features.",Object(a.jsxs)(Hr.a,{disabled:i,className:"ml-2",color:"secondary",size:"sm",onClick:function(){o(),n()},children:[!i&&Object(a.jsxs)(a.Fragment,{children:["Restart now ",Object(a.jsx)(V.a,{icon:L.M,className:"ml-1"})]}),i&&Object(a.jsx)(a.Fragment,{children:"Restarting..."})]})]})]})},Go=r(33),Po=function(){var e=Object(x.a)(m.a.mark((function e(){var t,r,n,c,a,s,i;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===(r=navigator.serviceWorker)||void 0===r?void 0:r.getRegistrations();case 2:if(e.t1=t=e.sent,e.t0=null!==e.t1,!e.t0){e.next=6;break}e.t0=void 0!==t;case 6:if(!e.t0){e.next=10;break}e.t2=t,e.next=11;break;case 10:e.t2=[];case 11:n=e.t2,c=Object(Go.a)(n);try{for(c.s();!(a=c.n()).done;)s=a.value,null===(i=s.waiting)||void 0===i||i.addEventListener("statechange",(function(e){var t;"activated"===(null===(t=e.target)||void 0===t?void 0:t.state)&&window.location.reload()})),null===i||void 0===i||i.postMessage({type:"SKIP_WAITING"})}catch(o){c.e(o)}finally{c.f()}case 14:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Bo=function(e,t,r,n,c,s,i,o){return function(l){var u=l.fetchServers,d=l.servers,j=l.settings,h=l.appUpdated,O=l.resetAppUpdate;return Object(A.useEffect)((function(){var e,t;0===Object.keys(d).length&&u(),Object(Yc.g)(null!==(e=null===(t=j.ui)||void 0===t?void 0:t.theme)&&void 0!==e?e:"light")}),[]),Object(a.jsxs)("div",{className:"container-fluid app-container",children:[Object(a.jsx)(e,{}),Object(a.jsxs)("div",{className:"app",children:[Object(a.jsx)("div",{className:"shlink-wrapper",children:Object(a.jsxs)(b.d,{children:[Object(a.jsx)(b.b,{exact:!0,path:"/",component:t}),Object(a.jsx)(b.b,{exact:!0,path:"/settings",component:s}),Object(a.jsx)(b.b,{exact:!0,path:"/manage-servers",component:i}),Object(a.jsx)(b.b,{exact:!0,path:"/server/create",component:n}),Object(a.jsx)(b.b,{exact:!0,path:"/server/:serverId/edit",component:c}),Object(a.jsx)(b.b,{path:"/server/:serverId",component:r}),Object(a.jsx)(b.b,{component:Fo.a})]})}),Object(a.jsx)("div",{className:"shlink-footer",children:Object(a.jsx)(o,{})})]}),Object(a.jsx)(Mo,{isOpen:h,toggle:O,forceUpdate:Po})]})}},Ho=function(e,t){e.serviceFactory("App",Bo,"MainHeader","Home","MenuLayout","CreateServer","EditServer","Settings","ManageServers","ShlinkVersionsContainer"),e.decorator("App",t(["servers","settings","appUpdated"],["fetchServers","resetAppUpdate"])),e.serviceFactory("appUpdateAvailable",(function(){return Vo})),e.serviceFactory("resetAppUpdate",(function(){return Io}))},Wo=new j.a,qo=Wo.container,zo=function(e,t){return Object(d.a)(Object(d.a)({},e),{},Object(u.a)({},t,function(e,t){return function(){return e[t].apply(e,arguments)}}(qo,t)))},Qo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object(i.b)(e?Object(h.a)(e):null,t.reduce(zo,{}))};Ho(Wo,Qo),Object(R.a)(Wo,Qo,b.h),T(Wo),mn(Wo,Qo,b.h),yc(Wo,Qo,b.h),Ai(Wo,Qo),Js(Wo,Qo),Object(Mi.a)(Wo),qi(Wo),oo(Wo,Qo),Ro(Wo,Qo);var Ko=qo,Jo=r(301),Zo=r(80),Yo=r(222),Xo=Object(Zo.c)({servers:Zn,selectedServer:Mn,shortUrlsList:Ht,shortUrlsListParams:Kt,shortUrlCreationResult:Rt,shortUrlDeletion:St,shortUrlEdition:At,shortUrlVisits:hs,tagVisits:ws,orphanVisits:As,shortUrlDetail:vn,tagsList:Ei,tagDelete:hi,tagEdit:pi,mercureInfo:Hi,settings:Yi,domainsList:mo,visitsOverview:zs,appUpdated:Lo}),$o=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Zo.d,el={states:["settings","servers"],namespace:"shlink",namespaceSeparator:".",debounce:300},tl=Object(Zo.e)(Xo,Object(Yo.load)(el),$o(Object(Zo.a)(Object(Yo.save)(el),Jo.a))),rl=r(64),nl=r.n(rl),cl=r(302),al=r(303),sl=r(304),il=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function ol(e,t){navigator.serviceWorker.register(e).then((function(e){e.onupdatefound=function(){var r=e.installing;null!=r&&(r.onstatechange=function(){"installed"===r.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://cra.link/PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))}r(532),r(533);delete nl.a.Icon.Default.prototype._getIconUrl,nl.a.Icon.Default.mergeOptions({iconRetinaUrl:cl.a,iconUrl:al.a,shadowUrl:sl.a});var ll=Ko.App,ul=Ko.ScrollToTop,dl=Ko.ErrorHandler,jl=Ko.appUpdateAvailable;Object(s.render)(Object(a.jsx)(i.a,{store:tl,children:Object(a.jsx)(o.a,{basename:l.a,children:Object(a.jsx)(dl,{children:Object(a.jsx)(ul,{children:Object(a.jsx)(ll,{})})})})}),document.getElementById("root")),function(e){if("serviceWorker"in navigator){var t;if(new URL(null!==(t="/shlink-web-client/feature/reset-page")?t:"",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",(function(){var t="".concat("/shlink-web-client/feature/reset-page","/service-worker.js");il?(!function(e,t){fetch(e,{headers:{"Service-Worker":"script"}}).then((function(r){var n=r.headers.get("content-type");404===r.status||null!=n&&-1===n.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):ol(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(t,e),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://cra.link/PWA")}))):ol(t,e)}))}}({onUpdate:function(){tl.dispatch(jl())}})},54:function(e,t,r){"use strict";var n=r(0),c=r(538),a=r(315),s=r(8),i=r.n(s),o=r(11),l=r(12),u=function(e){return{error:"border-danger",default:""}[e]},d=function(e){return{error:"text-danger",default:"text-muted"}[e]};t.a=function(e){var t=e.className,r=e.children,s=e.loading,j=void 0!==s&&s,b=e.type,h=void 0===b?"default":b,O=e.fullWidth,v=void 0!==O&&O,f=i()({"col-md-12":v,"col-md-10 offset-md-1":!v});return Object(n.jsx)(c.a,{noGutters:!0,className:t,children:Object(n.jsx)("div",{className:f,children:Object(n.jsx)(a.a,{className:u(h),body:!0,children:Object(n.jsxs)("h3",{className:i()("text-center mb-0",d(h)),children:[j&&Object(n.jsx)(l.a,{icon:o.k,spin:!0}),j&&Object(n.jsx)("span",{className:"ml-2",children:null!==r&&void 0!==r?r:"Loading..."}),!j&&r]})})})})}},60:function(e,t,r){"use strict";var n=r(0);t.a=function(e){var t=e.children;return Object(n.jsx)("div",{className:"no-menu-wrapper container-xl",children:t})}},70:function(e,t,r){"use strict";r.d(t,"a",(function(){return i})),r.d(t,"b",(function(){return l})),r.d(t,"c",(function(){return u}));var n=r(168),c=r(539),a=r(544),s=r(31),i=function(e,t){var r=t.maxVersion,c=t.minVersion;if(!Object(s.c)(e))return!1;var a=!c||Object(n.compare)(e,c,">=");return(!r||Object(n.compare)(e,r,"<="))&&a},o=Object(c.a)(a.a,(function(e){try{return Object(n.compare)(e,e,"=")}catch(t){return!1}})),l=function(e){return o(e)?"v".concat(e):e},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"latest";return function(t){return o(t)?t:e}}}},[[318,1,2]]]); -//# sourceMappingURL=main.69a07e0e.chunk.js.map \ No newline at end of file diff --git a/feature/reset-page/static/js/main.69a07e0e.chunk.js.map b/feature/reset-page/static/js/main.69a07e0e.chunk.js.map deleted file mode 100644 index 2cd3fbf3..00000000 --- a/feature/reset-page/static/js/main.69a07e0e.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["servers/helpers/withoutSelectedServer.tsx","utils/helpers/files.ts","common/img/ShlinkLogo.tsx","servers/helpers/withSelectedServer.tsx","common/NotFound.tsx","servers/ServersListGroup.tsx","utils/helpers/hooks.ts","common/services/provideServices.ts","common/ScrollToTop.tsx","common/ErrorHandler.tsx","common/services/ImageDownloader.ts","utils/services/provideServices.ts","utils/services/LocalStorage.ts","servers/data/index.ts","utils/services/ColorGenerator.ts","common/ShlinkVersions.tsx","common/ShlinkVersionsContainer.tsx","common/MainHeader.tsx","utils/utils.ts","common/Home.tsx","common/MenuLayout.tsx","common/AsideMenu.tsx","utils/SimpleCard.tsx","utils/helpers/features.ts","utils/theme/index.ts","utils/helpers/query.ts","utils/SearchField.tsx","api/services/ShlinkApiClient.ts","api/services/ShlinkApiClientBuilder.ts","api/services/provideServices.ts","tags/helpers/Tag.tsx","utils/DropdownBtn.tsx","utils/helpers/date.ts","utils/dates/types/index.ts","utils/DateInput.tsx","utils/dates/DateRangeRow.tsx","utils/dates/DateIntervalDropdownItems.tsx","utils/dates/DateRangeSelector.tsx","short-urls/helpers/hooks.ts","short-urls/SearchBar.tsx","utils/helpers/ordering.ts","utils/SortingDropdown.tsx","mercure/helpers/boundToMercureHub.tsx","mercure/helpers/index.ts","mercure/helpers/Topics.ts","utils/table/TableOrderIcon.tsx","utils/helpers/redux.ts","visits/VisitsStats.tsx","short-urls/helpers/index.ts","visits/reducers/visitCreation.ts","api/utils/index.ts","short-urls/reducers/shortUrlDeletion.ts","short-urls/reducers/shortUrlCreation.ts","short-urls/reducers/shortUrlEdition.ts","short-urls/reducers/shortUrlsList.ts","short-urls/reducers/shortUrlsListParams.ts","utils/helpers/numbers.ts","utils/helpers/pagination.ts","short-urls/Paginator.tsx","short-urls/ShortUrlsList.tsx","utils/CopyToClipboardIcon.tsx","utils/Time.tsx","short-urls/helpers/ShortUrlDetailLink.tsx","short-urls/helpers/ShortUrlVisitsCount.tsx","short-urls/helpers/ShortUrlsRow.tsx","utils/DropdownBtnMenu.tsx","short-urls/helpers/ShortUrlsRowMenu.tsx","short-urls/CreateShortUrl.tsx","utils/Result.tsx","api/ShlinkApiError.tsx","short-urls/helpers/DeleteShortUrlModal.tsx","short-urls/helpers/CreateShortUrlResult.tsx","short-urls/ShortUrlsTable.tsx","short-urls/helpers/qr-codes/QrFormatDropdown.tsx","short-urls/helpers/qr-codes/QrErrorCorrectionDropdown.tsx","short-urls/helpers/QrCodeModal.tsx","utils/helpers/qrCodes.ts","utils/BooleanControl.tsx","utils/Checkbox.tsx","short-urls/UseExistingIfFoundInfoIcon.tsx","utils/InfoTooltip.tsx","short-urls/helpers/ShortUrlFormCheckboxGroup.tsx","short-urls/ShortUrlForm.tsx","short-urls/EditShortUrl.tsx","short-urls/reducers/shortUrlDetail.ts","short-urls/services/provideServices.ts","utils/FormGroupContainer.tsx","servers/helpers/ServerForm.tsx","servers/CreateServer.tsx","servers/ServersDropdown.tsx","servers/DeleteServerModal.tsx","servers/DeleteServerButton.tsx","servers/EditServer.tsx","servers/helpers/ImportServersBtn.tsx","servers/reducers/selectedServer.ts","servers/reducers/servers.ts","servers/reducers/remoteServers.ts","servers/helpers/ForServerVersion.tsx","servers/helpers/ServerError.tsx","servers/Overview.tsx","servers/ManageServers.tsx","servers/ManageServersRow.tsx","servers/ManageServersRowDropdown.tsx","servers/services/ServersImporter.ts","servers/services/ServersExporter.ts","servers/services/provideServices.ts","visits/VisitsHeader.tsx","visits/ShortUrlVisitsHeader.tsx","utils/helpers/visits.ts","utils/ToggleSwitch.tsx","utils/helpers/charts.ts","visits/charts/LineChartCard.tsx","common/SimplePaginator.tsx","visits/VisitsTable.tsx","visits/helpers/MapModal.tsx","visits/helpers/OpenMapModalBtn.tsx","visits/types/helpers.ts","visits/services/VisitsParser.ts","visits/helpers/VisitsFilterDropdown.tsx","visits/charts/DoughnutChartLegend.tsx","visits/charts/DoughnutChart.tsx","visits/charts/ChartCard.tsx","visits/charts/DoughnutChartCard.tsx","utils/PaginationDropdown.tsx","visits/charts/HorizontalBarChart.tsx","visits/charts/SortableBarChartCard.tsx","visits/ShortUrlVisits.tsx","visits/reducers/common.ts","visits/reducers/shortUrlVisits.ts","visits/TagVisitsHeader.tsx","visits/TagVisits.tsx","visits/reducers/tagVisits.ts","visits/OrphanVisitsHeader.tsx","visits/OrphanVisits.tsx","visits/reducers/orphanVisits.ts","visits/reducers/visitsOverview.ts","visits/services/VisitsExporter.ts","visits/services/provideServices.ts","tags/helpers/TagBullet.tsx","tags/helpers/TagsSelector.tsx","tags/TagCard.tsx","tags/helpers/DeleteTagConfirmModal.tsx","tags/helpers/EditTagModal.tsx","tags/data/TagsListChildrenProps.ts","tags/TagsModeDropdown.tsx","tags/TagsList.tsx","tags/reducers/tagDelete.ts","tags/reducers/tagEdit.ts","tags/reducers/tagsList.ts","tags/TagsCards.tsx","tags/TagsTable.tsx","tags/TagsTableRow.tsx","tags/services/provideServices.ts","mercure/reducers/mercureInfo.ts","mercure/services/provideServices.ts","settings/RealTimeUpdates.tsx","settings/Settings.tsx","settings/reducers/settings.ts","settings/ShortUrlCreation.tsx","settings/UserInterface.tsx","utils/dates/DateIntervalSelector.tsx","settings/Visits.tsx","settings/services/provideServices.ts","domains/reducers/domainRedirects.ts","domains/reducers/domainsList.ts","domains/DomainSelector.tsx","domains/helpers/EditDomainRedirectsModal.tsx","domains/DomainRow.tsx","domains/ManageDomains.tsx","domains/services/provideServices.ts","app/reducers/appUpdates.ts","common/AppUpdateBanner.tsx","utils/helpers/sw.ts","app/App.tsx","app/services/provideServices.ts","container/index.ts","reducers/index.ts","container/store.ts","serviceWorkerRegistration.ts","utils/helpers/leaflet.ts","index.tsx","utils/Message.tsx","common/NoMenuLayout.tsx","utils/helpers/version.ts"],"names":["withoutSelectedServer","WrappedComponent","props","useEffect","resetSelectedServer","saveUrl","url","filename","document","link","createElement","setAttribute","style","visibility","body","appendChild","click","removeChild","saveCsv","window","csv","blob","Blob","type","URL","createObjectURL","ShlinkLogo","color","MAIN_COLOR","className","viewBox","version","xmlns","fill","d","withSelectedServer","ServerError","selectServer","selectedServer","match","params","serverId","isNotFoundServer","loading","NotFound","to","children","ServerListItem","id","name","ListGroupItem","tag","Link","icon","chevronIcon","ServersListGroup","servers","embedded","length","ListGroup","classNames","map","useStateFlagTimeout","setTimeout","clearTimeout","initialValue","delay","useState","flag","setFlag","timeout","useRef","undefined","callback","current","useToggle","useSwipeable","showSidebar","hideSidebar","swipeMenuIfNoModalExists","e","event","composedPath","some","classList","contains","querySelector","useReactSwipeable","delta","onSwipedLeft","onSwipedRight","useQueryState","paramName","initialState","value","setValue","location","history","query","parseQuery","search","pushState","pathname","stringifyQuery","provideServices","bottle","connect","withRouter","constant","global","console","axios","service","ImageDownloader","serviceFactory","ScrollToTop","decorator","MainHeader","Home","MenuLayout","AsideMenu","ShlinkVersionsContainer","ErrorHandler","scrollTo","error","state","hasError","this","outline","onClick","reload","Component","imgUrl","get","responseType","data","localStorage","LocalStorage","ColorGenerator","buildPath","path","key","item","getItem","JSON","parse","set","setItem","stringify","hasServerData","server","apiKey","isServerWithId","hasOwnProperty","isReachableServer","getServerId","floor","Math","random","letters","normalizeKey","toLowerCase","trim","storage","colors","getColorForKey","normalizedKey","setColorForKey","rangeOf","join","normalizeVersion","pipe","versionToSemVer","versionToPrintable","VersionLink","project","href","ShlinkVersions","clientVersion","normalizedClientVersion","printableVersion","classes","ServersDropdown","isOpen","toggleOpen","close","settingsPath","toggleClass","Navbar","dark","fixed","expand","NavbarBrand","NavbarToggler","arrowIcon","Collapse","navbar","Nav","NavItem","NavLink","active","cogsIcon","size","mappingFn","startAt","range","hasValue","isNil","isEmpty","handleEventPreventingDefault","handler","preventDefault","nonEmptyValueOrNull","capitalize","charAt","toUpperCase","slice","serversList","values","hasServers","autoConnectServer","find","autoConnect","push","Card","Row","noGutters","faPlus","faExternalLinkAlt","TagsList","ShortUrlsList","CreateShortUrl","ShortUrlVisits","TagVisits","OrphanVisits","Overview","EditShortUrl","ManageDomains","sidebarVisible","toggleSidebar","addOrphanVisitsRoute","supportsOrphanVisits","addManageDomainsRoute","supportsDomainRedirects","burgerClasses","swipeableProps","burgerIcon","showOnMobile","exact","from","component","render","AsideMenuItem","rest","activeClassName","DeleteServerButton","hasId","addManageDomainsLink","asideClass","suffix","fixedWidth","overviewIcon","isActive","_","listIcon","createIcon","flip","tagsIcon","domainsIcon","editIcon","textClassName","SimpleCard","title","bodyClassName","serverMatchesVersions","versions","versionMatch","supportsQrCodeSizeInQuery","minVersion","supportsShortUrlTitle","supportsQrCodeMargin","supportsTagsInPatch","supportsBotVisits","supportsCrawlableVisits","supportsQrErrorCorrection","supportsForwardQuery","MAIN_COLOR_ALPHA","HIGHLIGHTED_COLOR","HIGHLIGHTED_COLOR_ALPHA","PRIMARY_LIGHT_COLOR","PRIMARY_DARK_COLOR","changeThemeInMarkup","theme","html","getElementsByTagName","isDarkThemeEnabled","getAttribute","qs","ignoreQueryPrefix","arrayFormat","timer","buildShlinkBaseUrl","apiVersion","rejectNilProps","reject","ShlinkApiClient","baseUrl","listShortUrls","a","performRequest","then","shortUrls","createShortUrl","options","filteredOptions","resp","getShortUrlVisits","shortCode","visits","getTagVisits","getOrphanVisits","getVisitsOverview","getShortUrl","domain","deleteShortUrl","updateShortUrlTags","tags","updateShortUrl","listTags","withStats","stats","deleteTags","editTag","oldName","newName","health","mercureInfo","listDomains","domains","editDomainRedirects","domainRedirects","method","headers","paramsSerializer","response","apiClients","buildShlinkApiClient","getStateOrSelectedServer","getState","isGetState","prop","Error","clientKey","SearchField","onChange","large","noBorder","searchTerm","setSearchTerm","resetTimer","searchTermChanged","newSearchTerm","placeholder","target","searchIcon","hidden","Tag","text","clearable","colorGenerator","onClose","backgroundColor","cursor","DropdownBtn","disabled","dropdownClassName","right","minWidth","toggle","toggleClasses","Dropdown","DropdownToggle","caret","DropdownMenu","isDateObject","date","formatDateFromFormat","theFormat","format","formatISO","formatIsoDate","formatInternational","formatDate","parseISO","stdParseISO","isBetween","start","end","isBefore","isAfter","isWithinInterval","dateRangeIsEmpty","dateRange","filter","Boolean","rangeIsInterval","INTERVAL_TO_STRING_MAP","today","yesterday","last7Days","last30Days","last90Days","last180days","last365Days","all","DATE_INTERVALS","Object","keys","rangeOrIntervalToString","startDate","endDate","dateRangeToString","startOfDaysAgo","daysAgo","startOfDay","subDays","Date","endingToday","endOfDay","intervalToDateRange","dateInterval","DateInput","isClearable","selected","showCalendarIcon","ref","dateFormat","calendarIcon","input","focus","DateRangeRow","onStartDateChange","onEndDateChange","placeholderText","maxDate","minDate","DateIntervalDropdownItems","allText","DropdownItem","divider","interval","DateRangeSelector","onDatesChange","initialDateRange","defaultText","activeInterval","setActiveInterval","activeDateRange","setActiveDateRange","updateDateRange","header","useShortUrlsQuery","useMemo","extra","evolvedQuery","queryString","dateOrNull","SearchBar","shortUrlsListParams","toFirstPage","selectedTags","split","decodeURIComponent","setDates","dates","setSearch","removeTag","selectedTag","tagsList","determineOrderDir","currentField","newField","currentOrderDir","ASC","DESC","sortList","list","field","dir","sort","b","greaterThan","smallerThan","SortingDropdown","items","order","isButton","handleItemClick","fieldKey","newOrderDir","UncontrolledDropdown","toPairs","fieldValue","sortAscIcon","sortDescIcon","boundToMercureHub","getTopicsForProps","pendingUpdates","Set","createNewVisits","loadMercureInfo","closeEventSource","topics","onMessage","onTokenExpired","mercureHubUrl","token","onEventSourceMessage","onEventSourceError","status","subscriptions","topic","hubUrl","searchParams","append","es","EventSource","Authorization","onmessage","onerror","forEach","bindToMercureTopic","visit","add","setInterval","clear","clearInterval","Topics","TableOrderIcon","currentOrder","caretUpIcon","caretDownIcon","orphanVisits","shortUrlVisits","selectedBar","buildReducer","action","actionHandler","currentState","buildActionCreator","shortUrlMatches","shortUrl","CREATE_VISITS","createdVisits","parseApiError","isInvalidDeletionError","DELETE_SHORT_URL_START","DELETE_SHORT_URL_ERROR","SHORT_URL_DELETED","RESET_DELETE_SHORT_URL","errorData","dispatch","resetDeleteShortUrl","CREATE_SHORT_URL_START","CREATE_SHORT_URL_ERROR","CREATE_SHORT_URL","RESET_CREATE_SHORT_URL","result","saving","resetCreateShortUrl","EDIT_SHORT_URL_START","EDIT_SHORT_URL_ERROR","SHORT_URL_EDITED","editShortUrl","sendTagsSeparately","Promise","LIST_SHORT_URLS_START","LIST_SHORT_URLS_ERROR","LIST_SHORT_URLS","assocPath","pagination","totalItems","currentShortUrl","lastVisit","last","assoc","visitsCount","init","editedShortUrl","RESET_SHORT_URL_PARAMS","SORTABLE_FIELDS","dateCreated","longUrl","page","orderBy","resetShortUrlParams","ceil","formatter","Intl","NumberFormat","prettify","number","Number","ELLIPSIS","progressivePagination","currentPage","pageCount","pages","max","min","unshift","pageIsEllipsis","pageNumber","prettifyPageNumber","keyForPage","index","Paginator","paginator","currentQueryString","pagesCount","urlForPage","Pagination","listClassName","PaginationItem","PaginationLink","previous","next","ShortUrlsTable","shortUrlsList","head","setOrder","decodedTags","refreshList","extraParams","handleOrderBy","addTag","newTag","itemsPerPage","orderByColumn","renderOrderIcon","onTagClick","CopyToClipboardIcon","onCopy","copyIcon","Time","relative","dateObject","dateTime","getUnixTime","formatDistance","buildUrl","ShortUrlDetailLink","ShortUrlVisitsCount","maxVisits","meta","visitsLink","prettifiedMaxVisits","tooltipRef","el","infoIcon","UncontrolledTooltip","placement","ShortUrlsRow","ShortUrlsRowMenu","copiedToClipboard","setCopiedToClipboard","setActive","isFirstRun","data-th","DropdownBtnMenu","ButtonDropdown","menuIcon","DeleteShortUrlModal","QrCodeModal","isQrModalOpen","toggleQrCode","isDeleteModalOpen","toggleDelete","pieChartIcon","qrIcon","deleteIcon","ShortUrlForm","CreateShortUrlResult","shortUrlCreationResult","basicMode","shortUrlCreationSettings","settings","shortUrlCreation","customSlug","shortCodeLength","validSince","validUntil","findIfExists","validateUrl","validateUrls","forwardQuery","getInitialState","mode","onSave","canBeClosed","Result","small","ShlinkApiError","fallbackMessage","detail","invalidElements","shortUrlDeletion","inputValue","setInputValue","handleDeleteUrl","catch","identity","Modal","centered","onSubmit","ModalHeader","ModalBody","ModalFooter","showCopyTooltip","setShowCopyTooltip","closeIcon","Tooltip","actionableFieldClasses","orderableColumnsClasses","tableClasses","supportsTitle","colSpan","QrFormatDropdown","setFormat","QrErrorCorrectionDropdown","errorCorrection","setErrorCorrection","imageDownloader","ForServerVersion","setSize","margin","setMargin","capabilities","useSizeInPath","marginIsSupported","errorCorrectionIsSupported","willRenderThreeControls","qrCodeUrl","buildQrCodeUrl","totalSize","modalSize","step","src","alt","Button","block","saveImage","downloadIcon","BooleanControl","checked","inline","uuid","typeClasses","display","htmlFor","Checkbox","InfoModal","UseExistingIfFoundInfoIcon","isModalOpen","toggleModal","InfoTooltip","ShortUrlFormCheckboxGroup","infoTooltip","normalizeTag","replace","toDate","dynamicColClasses","TagsSelector","DomainSelector","shortUrlData","setShortUrlData","isEdit","hadTitleOriginally","resolveNewTitle","hasNewTitle","cond","T","matcher","submit","renderOptionalInput","Input","renderDateInput","basicComponents","bsSize","required","showCustomizeCard","limitAccessCardClasses","showCrawlableControl","showForwardQueryControl","showBehaviorCard","extraChecksCardClasses","crawlable","goBack","shortUrlDetail","getShortUrlDetail","shortUrlEdition","savingError","savingErrorData","savingSucceeded","isSuccessful","isNotSuccessful","Message","faArrowLeft","GET_SHORT_URL_DETAIL_START","GET_SHORT_URL_DETAIL_ERROR","GET_SHORT_URL_DETAIL","FormGroupContainer","labelClassName","forId","FormGroup","ServerForm","initialValues","setName","setUrl","setApiKey","handleSubmit","ImportResult","CreateServer","ImportServersBtn","createServer","serversImported","setServersImported","errorImporting","setErrorImporting","NoMenuLayout","serverData","tooltipPlacement","onImport","onImportError","nav","inNavbar","serverIcon","plusIcon","DeleteServerModal","deleteServer","redirectHome","showModal","hideModal","EditServer","editServer","importServersFromFile","createServers","fileRef","files","importIcon","accept","SELECT_SERVER","RESET_SELECTED_SERVER","toSemVer","getServerVersion","memoizeWith","_serverId","serverNotFound","serverNotReachable","EDIT_SERVER","DELETE_SERVER","CREATE_SERVERS","SET_AUTO_CONNECT","newServers","dissoc","fromPairs","evaluatedServerId","serversListToMap","reduce","acc","setAutoConnect","responseToServersList","Array","isArray","fetchServers","homepage","remoteList","maxVersion","fullWidth","loadVisitsOverview","visitsOverview","loadingTags","loadingVisits","orphanVisitsCount","useHistory","CardTitle","CardText","CardHeader","CardBody","encodeURIComponent","ManageServers","serversExporter","ManageServersRow","allServers","setServersList","hasAutoConnect","exportServers","exportIcon","width","ManageServersRowDropdown","checkIcon","isMenuOpen","toggleMenu","serverUrl","isAutoConnect","autoConnectIcon","toggleOffIcon","toggleOnIcon","connectIcon","validateServer","validateServers","every","ServersImporter","csvJson","fileReaderFactory","file","reader","resolve","addEventListener","content","toString","toObject","readAsText","ServersExporter","csvjson","toCSV","FileReader","VisitsHeader","ShortUrlVisitsHeader","shortLink","longLink","visitsStatsTitle","DEFAULT","BROWSERS_WHITELIST","extractDomain","includes","fillTheGaps","labels","zipObj","ToggleSwitch","pointerOnHover","native","firstElement","renderChartLabel","dataset","formattedValue","label","renderPieChartLabel","STEPS_MAP","monthly","weekly","daily","hourly","STEP_TO_DURATION_MAP","hours","days","weeks","months","STEP_TO_DIFF_FUNC_MAP","differenceInHours","differenceInDays","differenceInWeeks","differenceInMonths","STEP_TO_DATE_FORMAT","firstWeekDay","startOfISOWeek","lastWeekDay","endOfISOWeek","groupVisitsByStep","countBy","generateLabelsAndGroupedVisits","groupedVisitsWithGaps","skipNoElements","diffFunc","newerDate","oldestDate","duration","num","generateLabels","generateDataset","tension","borderColor","selectedLabel","chartElementAtEvent","datasetsByPoint","setSelectedVisits","chart","LineChartCard","highlightedVisits","highlightedLabel","oldestVisitDate","now","always","determineInitialStep","setStep","skipNoVisits","toggleSkipNoVisits","visitsToDatasetGroups","reverse","groupedVisits","groupedHighlighted","generateChartDatasets","mainDataset","maintainAspectRatio","plugins","legend","tooltip","intersect","axis","callbacks","scales","y","beginAtZero","ticks","precision","x","onHover","renderLineChart","datasets","getElementAtEvent","entries","menuText","SimplePaginator","setCurrentPage","searchVisits","browser","os","referer","country","city","visitedUrl","visitMatchesSearch","calculateVisits","allVisits","sortedVisits","sortVisits","total","visitsGroups","splitEvery","VisitsTable","selectedVisits","matchMedia","isOrphanVisits","headerCellsClass","matchMobile","matches","isMobileDevice","setIsMobileDevice","resultSet","isFirstLoad","setPage","supportsBots","fullSizeColSpan","listener","removeEventListener","flat","botIcon","isSelected","v","potentialBot","OpenStreetMapTile","TileLayer","attribution","calculateMapProps","locations","bounds","zoom","center","latLong","MapModal","contentClassName","MapContainer","cityName","count","Marker","position","Popup","OpenMapModalBtn","modalTitle","activeCities","mapIsOpened","openMap","closeMap","dropdownIsOpened","toggleDropdown","openDropdown","locationsToShow","setLocationsToShow","buttonRef","openMapWithLocations","filtered","mapIcon","isOrphanVisit","groupNewVisitsByType","groupBy","newVisit","regularVisits","highlightedVisitsToStats","property","toApiParams","excludeBots","visitHasProperty","propertyName","optionalNumericToNumber","numeric","parseFloat","updateLocationsStatsForVisit","updateCountriesStatsForVisit","updateCitiesStatsForVisit","processStatsFromVisits","osStats","updateOsStatsForVisit","browsersStats","updateBrowsersStatsForVisit","browsers","referrersStats","updateReferrersStatsForVisit","referrers","countries","cities","citiesForMapStats","latitude","longitude","currentCity","updateCitiesForMapForVisit","citiesForMap","visitedUrlsStats","isNormalizedOrphanVisit","updateVisitedUrlsForVisit","visitedUrls","normalizeVisits","userAgent","visitLocation","common","bowser","parseUserAgent","countryName","VisitsFilterDropdown","botsSupported","orphanVisitsType","propsForOrphanVisitsTypeItem","DoughnutChartLegend","config","defaultColor","borderWidth","DoughnutChart","memo","chartRef","setChartRef","chartData","generateChartData","height","element","ChartCard","footer","CardFooter","DoughnutChartCard","PaginationDropdown","toggleClassName","ranges","Infinity","dropLabelIfHidden","startsWith","highlightedData","HorizontalBarChart","highlightedStats","statsAreDefined","highlightedKey","stacked","indexAxis","determineHeight","renderChartComponent","customKey","toLowerIfString","toLower","pickKeyFromPair","pickValueFromPair","SortableBarChartCard","sortingItems","extraHeaderContent","withPagination","setItemsPerPage","determineCurrentPagePairs","firstPageLength","i","sortedPairs","pairs","sortBy","getSortedPairsForStats","sortedKeys","sortedHighlightedPairs","currentPageStats","currentPageHighlightedStats","highlightedPages","determineStats","sections","byTime","subPath","faCalendarAlt","byContext","faChartPie","byLocation","faMapMarkedAlt","faList","VisitsNavLink","RouterNavLink","endsWith","VisitsStats","visitsInfo","getVisits","cancelGetVisits","exportCsv","initialInterval","defaultInterval","setDateRange","setHighlightedVisits","setHighlightedLabel","visitsFilter","setVisitsFilter","buildSectionUrl","loadingLarge","progress","normalizedVisits","mapLocations","highlightVisitsForProp","newSelectedBar","propEq","faFileDownload","Progress","striped","pills","section","amount","exportVisits","cancelGetShortUrlVisits","ITEMS_PER_PAGE","isLastPage","calcProgress","getVisitsWithLoader","visitsLoader","extraFinishActionData","actionMap","shouldCancel","loadVisitsInParallel","flatten","loadPagesBlocks","pagesBlocks","concat","loadVisits","pagesRange","finish","GET_SHORT_URL_VISITS_START","GET_SHORT_URL_VISITS_ERROR","GET_SHORT_URL_VISITS","GET_SHORT_URL_VISITS_LARGE","GET_SHORT_URL_VISITS_CANCEL","GET_SHORT_URL_VISITS_PROGRESS_CHANGED","cancelLoad","newVisits","TagVisitsHeader","tagVisits","cancelGetTagVisits","GET_TAG_VISITS_START","GET_TAG_VISITS_ERROR","GET_TAG_VISITS","GET_TAG_VISITS_LARGE","GET_TAG_VISITS_CANCEL","GET_TAG_VISITS_PROGRESS_CHANGED","OrphanVisitsHeader","cancelGetOrphanVisits","GET_ORPHAN_VISITS_START","GET_ORPHAN_VISITS_ERROR","GET_ORPHAN_VISITS","GET_ORPHAN_VISITS_LARGE","GET_ORPHAN_VISITS_CANCEL","GET_ORPHAN_VISITS_PROGRESS_CHANGED","matchesType","GET_OVERVIEW_START","GET_OVERVIEW_ERROR","GET_OVERVIEW","VisitsExporter","visitsParser","TagBullet","toComponentTag","searchMode","tagFilteringMode","tagComponent","onDelete","suggestions","suggestionComponent","allowNew","addOnBlur","minQueryLength","delimiters","suggestionsTransform","removedTagIndex","tagsCopy","splice","onAddition","TagCard","DeleteTagConfirmModal","EditTagModal","displayed","isEditModalOpen","toggleEdit","hasTitle","displayTitle","titleRef","scrollWidth","clientWidth","faLink","faEye","deleteTag","tagDelete","tagDeleted","deleting","doDelete","tagEdited","tagEdit","newTagName","setNewTagName","setColor","showColorPicker","toggleColorPicker","hideColorPicker","editing","saveTag","onClosed","colorIcon","Popover","disableAlpha","hex","TagsModeDropdown","renderTitle","cardsIcon","TagsCards","TagsTable","filterTags","forceListTags","ui","tagsMode","setMode","resolveSortedTags","filteredTags","shortUrlsCount","normalizedTags","sortedTags","renderContent","DELETE_TAG_START","DELETE_TAG_ERROR","DELETE_TAG","TAG_DELETED","EDIT_TAG_START","EDIT_TAG_ERROR","EDIT_TAG","TAG_EDITED","pick","LIST_TAGS_START","LIST_TAGS_ERROR","LIST_TAGS","FILTER_TAGS","renameTag","rejectTag","tagToReject","calculateVisitsPerTag","increase","tagStats","displayedTag","setDisplayedTag","tagsCount","tagsGroups","group","TagsTableRow","pageFromQuery","showPaginator","isDropdownOpen","listTagsActionFactory","force","processedStats","factory","GET_MERCURE_INFO_START","GET_MERCURE_INFO_ERROR","GET_MERCURE_INFO","realTimeUpdates","enabled","info","RealTimeUpdates","toggleRealTimeUpdates","setRealTimeUpdatesInterval","SettingsSections","child","subChild","subIndex","Settings","ShortUrlCreation","UserInterface","Visits","SET_SETTINGS","mergeDeepRight","setShortUrlCreationSettings","setUiSettings","setVisitsSettings","tagFilteringModeText","changeTagsFilteringMode","faMoon","faSun","useDarkTheme","DateIntervalSelector","EDIT_DOMAIN_REDIRECTS","redirects","LIST_DOMAINS_START","LIST_DOMAINS_ERROR","LIST_DOMAINS","FILTER_DOMAINS","filteredDomains","replaceRedirectsOnDomain","filterDomains","domainsList","inputDisplayed","showInput","hideInput","valueIsEmpty","unselectDomain","InputGroup","InputGroupAddon","addonType","faUndo","trigger","isDefault","isLast","EditDomainRedirectsModal","baseUrlRedirect","setBaseUrlRedirect","regular404Redirect","setRegular404Redirect","invalidShortUrlRedirect","setInvalidShortUrlRedirect","Nr","fallback","DefaultDomain","defaultDomainIcon","DomainRow","defaultRedirects","authority","domainId","forbiddenIcon","column","APP_UPDATE_AVAILABLE","RESET_APP_UPDATE","appUpdateAvailable","resetAppUpdate","AppUpdateBanner","forceUpdate","isUpdating","setUpdating","Alert","reloadIcon","navigator","serviceWorker","getRegistrations","registrations","registration","waiting","postMessage","App","appUpdated","Bottle","container","mapActionService","actionName","serviceName","lazyService","propsFromState","actionServiceNames","reduxConnect","provideAppServices","provideCommonServices","provideApiServices","provideShortUrlsServices","provideServersServices","provideTagsServices","provideVisitsServices","provideUtilsServices","provideMercureServices","provideSettingsServices","provideDomainsServices","combineReducers","serversReducer","selectedServerReducer","shortUrlsListReducer","shortUrlsListParamsReducer","shortUrlCreationReducer","shortUrlDeletionReducer","shortUrlEditionReducer","shortUrlVisitsReducer","tagVisitsReducer","orphanVisitsReducer","shortUrlDetailReducer","tagsListReducer","tagDeleteReducer","tagEditReducer","mercureInfoReducer","settingsReducer","domainsListReducer","visitsOverviewReducer","appUpdatesReducer","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","localStorageConfig","states","namespace","namespaceSeparator","debounce","store","createStore","reducers","load","applyMiddleware","save","ReduxThunk","isLocalhost","hostname","registerValidSW","swUrl","register","onupdatefound","installingWorker","installing","onstatechange","controller","log","onUpdate","onSuccess","L","Icon","Default","prototype","_getIconUrl","mergeOptions","iconRetinaUrl","marker2x","iconUrl","marker","shadowUrl","markerShadow","basename","getElementById","process","origin","fetch","contentType","indexOf","ready","unregister","checkValidServiceWorker","registerServiceWorker","getClassForType","default","getTextClassForType","preloader","spin","versionToMatch","matchesMinVersion","compare","versionIsValidSemVer","defaultValue"],"mappings":"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","file":"static/js/main.69a07e0e.chunk.js","sourcesContent":["import { FC, useEffect } from 'react';\n\ninterface WithoutSelectedServerProps {\n resetSelectedServer: Function;\n}\n\nexport function withoutSelectedServer(WrappedComponent: FC) {\n return (props: WithoutSelectedServerProps & T) => {\n useEffect(() => {\n props.resetSelectedServer();\n }, []);\n\n return ;\n };\n}\n","export const saveUrl = ({ document }: Window, url: string, filename: string) => {\n const link = document.createElement('a');\n\n link.setAttribute('href', url);\n link.setAttribute('download', filename);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\nexport const saveCsv = (window: Window, csv: string, filename: string) => {\n const blob = new Blob([ csv ], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n\n saveUrl(window, url, filename);\n};\n","import { MAIN_COLOR } from '../../utils/theme';\n\nexport interface ShlinkLogoProps {\n color?: string;\n className?: string;\n}\n\nexport const ShlinkLogo = ({ color = MAIN_COLOR, className }: ShlinkLogoProps) => (\n \n \n \n \n \n \n \n \n);\n","import { FC, useEffect } from 'react';\nimport { RouteComponentProps } from 'react-router';\nimport Message from '../../utils/Message';\nimport { isNotFoundServer, SelectedServer } from '../data';\nimport NoMenuLayout from '../../common/NoMenuLayout';\n\ninterface WithSelectedServerProps extends RouteComponentProps<{ serverId: string }> {\n selectServer: (serverId: string) => void;\n selectedServer: SelectedServer;\n}\n\nexport function withSelectedServer(WrappedComponent: FC, ServerError: FC) {\n return (props: WithSelectedServerProps & T) => {\n const { selectServer, selectedServer, match } = props;\n\n useEffect(() => {\n selectServer(match.params.serverId);\n }, [ match.params.serverId ]);\n\n if (!selectedServer) {\n return (\n \n \n \n );\n }\n\n if (isNotFoundServer(selectedServer)) {\n return ;\n }\n\n return ;\n };\n}\n","import { FC } from 'react';\nimport { Link } from 'react-router-dom';\nimport { SimpleCard } from '../utils/SimpleCard';\n\ninterface NotFoundProps {\n to?: string;\n}\n\nconst NotFound: FC = ({ to = '/', children = 'Home' }) => (\n
\n \n

Oops! We could not find requested route.

\n

\n Use your browser's back button to navigate to the page you have previously come from, or just press this\n button.\n

\n
\n {children}\n
\n
\n);\n\nexport default NotFound;\n","import { FC } from 'react';\nimport { ListGroup, ListGroupItem } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronRight as chevronIcon } from '@fortawesome/free-solid-svg-icons';\nimport { ServerWithId } from './data';\nimport './ServersListGroup.scss';\n\ninterface ServersListGroupProps {\n servers: ServerWithId[];\n embedded?: boolean;\n}\n\nconst ServerListItem = ({ id, name }: { id: string; name: string }) => (\n \n {name}\n \n \n);\n\nconst ServersListGroup: FC = ({ servers, children, embedded = false }) => (\n <>\n {children &&
{children}
}\n {servers.length > 0 && (\n \n {servers.map(({ id, name }) => )}\n \n )}\n \n);\n\nexport default ServersListGroup;\n","import { useState, useRef } from 'react';\nimport { useSwipeable as useReactSwipeable } from 'react-swipeable';\nimport { parseQuery, stringifyQuery } from './query';\n\nconst DEFAULT_DELAY = 2000;\n\nexport type StateFlagTimeout = (initialValue?: boolean, delay?: number) => [ boolean, () => void ];\n\nexport const useStateFlagTimeout = (\n setTimeout: (callback: Function, timeout: number) => number,\n clearTimeout: (timer: number) => void,\n): StateFlagTimeout => (initialValue = false, delay = DEFAULT_DELAY) => {\n const [ flag, setFlag ] = useState(initialValue);\n const timeout = useRef(undefined);\n const callback = () => {\n setFlag(!initialValue);\n\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n\n timeout.current = setTimeout(() => setFlag(initialValue), delay);\n };\n\n return [ flag, callback ];\n};\n\ntype ToggleResult = [ boolean, () => void, () => void, () => void ];\n\nexport const useToggle = (initialValue = false): ToggleResult => {\n const [ flag, setFlag ] = useState(initialValue);\n\n return [ flag, () => setFlag(!flag), () => setFlag(true), () => setFlag(false) ];\n};\n\nexport const useSwipeable = (showSidebar: () => void, hideSidebar: () => void) => {\n const swipeMenuIfNoModalExists = (callback: () => void) => (e: any) => {\n const swippedOnVisitsTable = (e.event.composedPath() as HTMLElement[]).some( // eslint-disable-line @typescript-eslint/no-unsafe-call\n ({ classList }) => classList?.contains('visits-table'),\n );\n\n if (swippedOnVisitsTable || document.querySelector('.modal')) {\n return;\n }\n\n callback();\n };\n\n return useReactSwipeable({\n delta: 40,\n onSwipedLeft: swipeMenuIfNoModalExists(hideSidebar),\n onSwipedRight: swipeMenuIfNoModalExists(showSidebar),\n });\n};\n\nexport const useQueryState = (paramName: string, initialState: T): [ T, (newValue: T) => void ] => {\n const [ value, setValue ] = useState(initialState);\n const setValueWithLocation = (value: T) => {\n const { location, history } = window;\n const query = parseQuery(location.search);\n\n query[paramName] = value;\n history.pushState(null, '', `${location.pathname}?${stringifyQuery(query)}`);\n setValue(value);\n };\n\n return [ value, setValueWithLocation ];\n};\n","import axios from 'axios';\nimport Bottle, { Decorator } from 'bottlejs';\nimport ScrollToTop from '../ScrollToTop';\nimport MainHeader from '../MainHeader';\nimport Home from '../Home';\nimport MenuLayout from '../MenuLayout';\nimport AsideMenu from '../AsideMenu';\nimport ErrorHandler from '../ErrorHandler';\nimport ShlinkVersionsContainer from '../ShlinkVersionsContainer';\nimport { ConnectDecorator } from '../../container/types';\nimport { withoutSelectedServer } from '../../servers/helpers/withoutSelectedServer';\nimport { ImageDownloader } from './ImageDownloader';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator, withRouter: Decorator) => {\n // Services\n bottle.constant('window', (global as any).window);\n bottle.constant('console', global.console);\n bottle.constant('axios', axios);\n\n bottle.service('ImageDownloader', ImageDownloader, 'axios', 'window');\n\n // Components\n bottle.serviceFactory('ScrollToTop', ScrollToTop);\n bottle.decorator('ScrollToTop', withRouter);\n\n bottle.serviceFactory('MainHeader', MainHeader, 'ServersDropdown');\n bottle.decorator('MainHeader', withRouter);\n\n bottle.serviceFactory('Home', () => Home);\n bottle.decorator('Home', withoutSelectedServer);\n bottle.decorator('Home', withRouter);\n bottle.decorator('Home', connect([ 'servers' ], [ 'resetSelectedServer' ]));\n\n bottle.serviceFactory(\n 'MenuLayout',\n MenuLayout,\n 'TagsList',\n 'ShortUrlsList',\n 'AsideMenu',\n 'CreateShortUrl',\n 'ShortUrlVisits',\n 'TagVisits',\n 'OrphanVisits',\n 'ServerError',\n 'Overview',\n 'EditShortUrl',\n 'ManageDomains',\n );\n bottle.decorator('MenuLayout', connect([ 'selectedServer', 'shortUrlsListParams' ], [ 'selectServer' ]));\n bottle.decorator('MenuLayout', withRouter);\n\n bottle.serviceFactory('AsideMenu', AsideMenu, 'DeleteServerButton');\n\n bottle.serviceFactory('ShlinkVersionsContainer', () => ShlinkVersionsContainer);\n bottle.decorator('ShlinkVersionsContainer', connect([ 'selectedServer' ]));\n\n bottle.serviceFactory('ErrorHandler', ErrorHandler, 'window', 'console');\n};\n\nexport default provideServices;\n","import { PropsWithChildren, useEffect } from 'react';\nimport { RouteComponentProps } from 'react-router';\n\nconst ScrollToTop = () => ({ location, children }: PropsWithChildren) => {\n useEffect(() => {\n scrollTo(0, 0);\n }, [ location ]);\n\n return <>{children};\n};\n\nexport default ScrollToTop;\n","import { Component, ReactNode } from 'react';\nimport { Button } from 'reactstrap';\nimport { SimpleCard } from '../utils/SimpleCard';\n\ninterface ErrorHandlerState {\n hasError: boolean;\n}\n\nconst ErrorHandler = (\n { location }: Window,\n { error }: Console,\n) => class ErrorHandler extends Component {\n public constructor(props: object) {\n super(props);\n this.state = { hasError: false };\n }\n\n public static getDerivedStateFromError(): ErrorHandlerState {\n return { hasError: true };\n }\n\n public componentDidCatch(e: Error): void {\n if (process.env.NODE_ENV !== 'development') {\n error(e);\n }\n }\n\n public render(): ReactNode {\n if (this.state.hasError) {\n return (\n
\n \n

Oops! This is awkward :S

\n

It seems that something went wrong. Try refreshing the page or just click this button.

\n
\n \n
\n
\n );\n }\n\n return this.props.children;\n }\n};\n\nexport default ErrorHandler;\n","import { AxiosInstance } from 'axios';\nimport { saveUrl } from '../../utils/helpers/files';\n\nexport class ImageDownloader {\n public constructor(private readonly axios: AxiosInstance, private readonly window: Window) {}\n\n public async saveImage(imgUrl: string, filename: string): Promise {\n const { data } = await this.axios.get(imgUrl, { responseType: 'blob' });\n const url = URL.createObjectURL(data);\n\n saveUrl(this.window, url, filename);\n }\n}\n","import Bottle from 'bottlejs';\nimport { useStateFlagTimeout } from '../helpers/hooks';\nimport LocalStorage from './LocalStorage';\nimport ColorGenerator from './ColorGenerator';\n\nconst provideServices = (bottle: Bottle) => {\n bottle.constant('localStorage', (global as any).localStorage);\n bottle.service('Storage', LocalStorage, 'localStorage');\n bottle.service('ColorGenerator', ColorGenerator, 'Storage');\n\n bottle.constant('setTimeout', global.setTimeout);\n bottle.constant('clearTimeout', global.clearTimeout);\n bottle.serviceFactory('useStateFlagTimeout', useStateFlagTimeout, 'setTimeout', 'clearTimeout');\n};\n\nexport default provideServices;\n","const PREFIX = 'shlink';\nconst buildPath = (path: string) => `${PREFIX}.${path}`;\n\nexport default class LocalStorage {\n public constructor(private readonly localStorage: Storage) {}\n\n public readonly get = (key: string): T | undefined => {\n const item = this.localStorage.getItem(buildPath(key));\n\n return item ? JSON.parse(item) as T : undefined;\n };\n\n public readonly set = (key: string, value: any) => this.localStorage.setItem(buildPath(key), JSON.stringify(value));\n}\n","import { SemVer } from '../../utils/helpers/version';\n\nexport interface ServerData {\n name: string;\n url: string;\n apiKey: string;\n}\n\nexport interface ServerWithId extends ServerData {\n id: string;\n autoConnect?: boolean;\n}\n\nexport interface ReachableServer extends ServerWithId {\n version: SemVer;\n printableVersion: string;\n}\n\nexport interface NonReachableServer extends ServerWithId {\n serverNotReachable: true;\n}\n\nexport interface NotFoundServer {\n serverNotFound: true;\n}\n\nexport type RegularServer = ReachableServer | NonReachableServer;\n\nexport type SelectedServer = RegularServer | NotFoundServer | null;\n\nexport type ServersMap = Record;\n\nexport const hasServerData = (server: SelectedServer | ServerData): server is ServerData =>\n !!(server as ServerData)?.url && !!(server as ServerData)?.apiKey;\n\nexport const isServerWithId = (server: SelectedServer | ServerWithId): server is ServerWithId =>\n !!server?.hasOwnProperty('id');\n\nexport const isReachableServer = (server: SelectedServer): server is ReachableServer =>\n !!server?.hasOwnProperty('version');\n\nexport const isNotFoundServer = (server: SelectedServer): server is NotFoundServer =>\n !!server?.hasOwnProperty('serverNotFound');\n\nexport const getServerId = (server: SelectedServer) => isServerWithId(server) ? server.id : '';\n","import { rangeOf } from '../utils';\nimport LocalStorage from './LocalStorage';\n\nconst HEX_COLOR_LENGTH = 6;\nconst { floor, random } = Math;\nconst letters = '0123456789ABCDEF';\nconst buildRandomColor = () => `#${rangeOf(HEX_COLOR_LENGTH, () => letters[floor(random() * letters.length)]).join('')}`;\nconst normalizeKey = (key: string) => key.toLowerCase().trim();\n\nexport default class ColorGenerator {\n private readonly colors: Record;\n\n public constructor(private readonly storage: LocalStorage) {\n this.colors = this.storage.get>('colors') ?? {};\n }\n\n public readonly getColorForKey = (key: string) => {\n const normalizedKey = normalizeKey(key);\n const color = this.colors[normalizedKey];\n\n // If a color has not been set yet, generate a random one and save it\n if (!color) {\n return this.setColorForKey(normalizedKey, buildRandomColor());\n }\n\n return color;\n };\n\n public readonly setColorForKey = (key: string, color: string) => {\n const normalizedKey = normalizeKey(key);\n\n this.colors[normalizedKey] = color;\n this.storage.set('colors', this.colors);\n\n return color;\n };\n}\n","import { pipe } from 'ramda';\nimport { ExternalLink } from 'react-external-link';\nimport { versionToPrintable, versionToSemVer } from '../utils/helpers/version';\nimport { isReachableServer } from '../servers/data';\nimport { ShlinkVersionsContainerProps } from './ShlinkVersionsContainer';\n\nconst SHLINK_WEB_CLIENT_VERSION = '%_VERSION_%';\nconst normalizeVersion = pipe(versionToSemVer(), versionToPrintable);\n\nexport interface ShlinkVersionsProps extends ShlinkVersionsContainerProps {\n clientVersion?: string;\n}\n\nconst VersionLink = ({ project, version }: { project: 'shlink' | 'shlink-web-client'; version: string }) => (\n \n {version}\n \n);\n\nconst ShlinkVersions = ({ selectedServer, clientVersion = SHLINK_WEB_CLIENT_VERSION }: ShlinkVersionsProps) => {\n const normalizedClientVersion = normalizeVersion(clientVersion);\n\n return (\n \n {isReachableServer(selectedServer) &&\n <>Server: - \n }\n Client: \n \n );\n};\n\nexport default ShlinkVersions;\n","import classNames from 'classnames';\nimport { isReachableServer, SelectedServer } from '../servers/data';\nimport ShlinkVersions from './ShlinkVersions';\nimport './ShlinkVersionsContainer.scss';\n\nexport interface ShlinkVersionsContainerProps {\n selectedServer: SelectedServer;\n}\n\nconst ShlinkVersionsContainer = ({ selectedServer }: ShlinkVersionsContainerProps) => {\n const classes = classNames('text-center', {\n 'shlink-versions-container--with-server': isReachableServer(selectedServer),\n });\n\n return (\n
\n \n
\n );\n};\n\nexport default ShlinkVersionsContainer;\n","import { faChevronDown as arrowIcon, faCogs as cogsIcon } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FC, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Collapse, Nav, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\nimport classNames from 'classnames';\nimport { RouteComponentProps } from 'react-router';\nimport { useToggle } from '../utils/helpers/hooks';\nimport { ShlinkLogo } from './img/ShlinkLogo';\nimport './MainHeader.scss';\n\nconst MainHeader = (ServersDropdown: FC) => ({ location }: RouteComponentProps) => {\n const [ isOpen, toggleOpen, , close ] = useToggle();\n const { pathname } = location;\n\n useEffect(close, [ location ]);\n\n const settingsPath = '/settings';\n const toggleClass = classNames('main-header__toggle-icon', { 'main-header__toggle-icon--opened': isOpen });\n\n return (\n \n \n Shlink\n \n\n \n \n \n\n \n \n \n \n );\n};\n\nexport default MainHeader;\n","import { isEmpty, isNil, pipe, range } from 'ramda';\nimport { SyntheticEvent } from 'react';\n\nexport const rangeOf = (size: number, mappingFn: (value: number) => T, startAt = 1): T[] =>\n range(startAt, size + 1).map(mappingFn);\n\nexport type Empty = null | undefined | '' | never[];\n\nexport const hasValue = (value: T | Empty): value is T => !isNil(value) && !isEmpty(value);\n\nexport const handleEventPreventingDefault = (handler: () => T) => pipe(\n (e: SyntheticEvent) => e.preventDefault(),\n handler,\n);\n\nexport type Nullable = {\n [P in keyof T]: T[P] | null\n};\n\ntype Optional = T | null | undefined;\n\nexport type OptionalString = Optional;\n\nexport type RecursivePartial = {\n [P in keyof T]?: RecursivePartial;\n};\n\nexport const nonEmptyValueOrNull = (value: T): T | null => isEmpty(value) ? null : value;\n\nexport const capitalize = (value: T): string => `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n","import { useEffect } from 'react';\nimport { isEmpty, values } from 'ramda';\nimport { Link, RouteChildrenProps } from 'react-router-dom';\nimport { Card, Row } from 'reactstrap';\nimport { ExternalLink } from 'react-external-link';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExternalLinkAlt, faPlus } from '@fortawesome/free-solid-svg-icons';\nimport ServersListGroup from '../servers/ServersListGroup';\nimport { ServersMap } from '../servers/data';\nimport { ShlinkLogo } from './img/ShlinkLogo';\nimport './Home.scss';\n\nexport interface HomeProps extends RouteChildrenProps {\n servers: ServersMap;\n}\n\nconst Home = ({ servers, history }: HomeProps) => {\n const serversList = values(servers);\n const hasServers = !isEmpty(serversList);\n\n useEffect(() => {\n // Try to redirect to the first server marked as auto-connect\n const autoConnectServer = serversList.find(({ autoConnect }) => autoConnect);\n\n autoConnectServer && history.push(`/server/${autoConnectServer.id}`);\n }, []);\n\n return (\n
\n \n \n
\n
\n \n
\n
\n
\n
\n

Welcome!

\n
\n \n {!hasServers && (\n
\n

This application will help you manage your Shlink servers.

\n

\n \n Add a server\n \n

\n

\n \n \n Learn more about Shlink \n \n \n

\n
\n )}\n
\n
\n
\n
\n
\n );\n};\n\nexport default Home;\n","import { FC, useEffect } from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport { faBars as burgerIcon } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport { withSelectedServer } from '../servers/helpers/withSelectedServer';\nimport { useSwipeable, useToggle } from '../utils/helpers/hooks';\nimport { supportsDomainRedirects, supportsOrphanVisits } from '../utils/helpers/features';\nimport { isReachableServer } from '../servers/data';\nimport NotFound from './NotFound';\nimport { AsideMenuProps } from './AsideMenu';\nimport './MenuLayout.scss';\n\nconst MenuLayout = (\n TagsList: FC,\n ShortUrlsList: FC,\n AsideMenu: FC,\n CreateShortUrl: FC,\n ShortUrlVisits: FC,\n TagVisits: FC,\n OrphanVisits: FC,\n ServerError: FC,\n Overview: FC,\n EditShortUrl: FC,\n ManageDomains: FC,\n) => withSelectedServer(({ location, selectedServer }) => {\n const [ sidebarVisible, toggleSidebar, showSidebar, hideSidebar ] = useToggle();\n\n useEffect(() => hideSidebar(), [ location ]);\n\n if (!isReachableServer(selectedServer)) {\n return ;\n }\n\n const addOrphanVisitsRoute = supportsOrphanVisits(selectedServer);\n const addManageDomainsRoute = supportsDomainRedirects(selectedServer);\n const burgerClasses = classNames('menu-layout__burger-icon', { 'menu-layout__burger-icon--active': sidebarVisible });\n const swipeableProps = useSwipeable(showSidebar, hideSidebar);\n\n return (\n <>\n \n\n
\n
\n \n
hideSidebar()}>\n
\n \n \n \n \n \n \n \n \n {addOrphanVisitsRoute && }\n \n {addManageDomainsRoute && }\n List short URLs}\n />\n \n
\n
\n
\n
\n \n );\n}, ServerError);\n\nexport default MenuLayout;\n","import {\n faList as listIcon,\n faLink as createIcon,\n faTags as tagsIcon,\n faPen as editIcon,\n faHome as overviewIcon,\n faGlobe as domainsIcon,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FC } from 'react';\nimport { NavLink, NavLinkProps } from 'react-router-dom';\nimport classNames from 'classnames';\nimport { Location } from 'history';\nimport { DeleteServerButtonProps } from '../servers/DeleteServerButton';\nimport { isServerWithId, SelectedServer } from '../servers/data';\nimport { supportsDomainRedirects } from '../utils/helpers/features';\nimport './AsideMenu.scss';\n\nexport interface AsideMenuProps {\n selectedServer: SelectedServer;\n className?: string;\n showOnMobile?: boolean;\n}\n\ninterface AsideMenuItemProps extends NavLinkProps {\n to: string;\n}\n\nconst AsideMenuItem: FC = ({ children, to, className, ...rest }) => (\n \n {children}\n \n);\n\nconst AsideMenu = (DeleteServerButton: FC) => (\n { selectedServer, showOnMobile = false }: AsideMenuProps,\n) => {\n const hasId = isServerWithId(selectedServer);\n const serverId = hasId ? selectedServer.id : '';\n const addManageDomainsLink = supportsDomainRedirects(selectedServer);\n const asideClass = classNames('aside-menu', {\n 'aside-menu--hidden': !showOnMobile,\n });\n const shortUrlsIsActive = (_: null, location: Location) => location.pathname.match('/list-short-urls') !== null;\n const buildPath = (suffix: string) => `/server/${serverId}${suffix}`;\n\n return (\n \n );\n};\n\nexport default AsideMenu;\n","import { CardProps } from 'reactstrap/lib/Card';\nimport { Card, CardBody, CardHeader } from 'reactstrap';\nimport { ReactNode } from 'react';\n\ninterface SimpleCardProps extends Omit {\n title?: ReactNode;\n bodyClassName?: string;\n}\n\nexport const SimpleCard = ({ title, children, bodyClassName, ...rest }: SimpleCardProps) => (\n \n {title && {title}}\n {children}\n \n);\n","import { isReachableServer, SelectedServer } from '../../servers/data';\nimport { versionMatch, Versions } from './version';\n\nconst serverMatchesVersions = (versions: Versions) => (selectedServer: SelectedServer): boolean =>\n isReachableServer(selectedServer) && versionMatch(selectedServer.version, versions);\n\nexport const supportsQrCodeSizeInQuery = serverMatchesVersions({ minVersion: '2.5.0' });\n\nexport const supportsShortUrlTitle = serverMatchesVersions({ minVersion: '2.6.0' });\n\nexport const supportsOrphanVisits = supportsShortUrlTitle;\n\nexport const supportsQrCodeMargin = supportsShortUrlTitle;\n\nexport const supportsTagsInPatch = supportsShortUrlTitle;\n\nexport const supportsBotVisits = serverMatchesVersions({ minVersion: '2.7.0' });\n\nexport const supportsCrawlableVisits = supportsBotVisits;\n\nexport const supportsQrErrorCorrection = serverMatchesVersions({ minVersion: '2.8.0' });\n\nexport const supportsDomainRedirects = supportsQrErrorCorrection;\n\nexport const supportsForwardQuery = serverMatchesVersions({ minVersion: '2.9.0' });\n","export const MAIN_COLOR = '#4696e5';\n\nexport const MAIN_COLOR_ALPHA = 'rgba(70, 150, 229, 0.4)';\n\nexport const HIGHLIGHTED_COLOR = '#f77f28';\n\nexport const HIGHLIGHTED_COLOR_ALPHA = 'rgba(247, 127, 40, 0.4)';\n\nexport const PRIMARY_LIGHT_COLOR = 'white';\n\nexport const PRIMARY_DARK_COLOR = '#161b22';\n\nexport type Theme = 'dark' | 'light';\n\nexport const changeThemeInMarkup = (theme: Theme) => {\n const html = document.getElementsByTagName('html');\n\n html?.[0]?.setAttribute('data-theme', theme);\n};\n\nexport const isDarkThemeEnabled = (): boolean => {\n const html = document.getElementsByTagName('html');\n\n return html?.[0]?.getAttribute('data-theme') === 'dark';\n};\n","import qs from 'qs';\n\nexport const parseQuery = (search: string) => qs.parse(search, { ignoreQueryPrefix: true }) as unknown as T;\n\nexport const stringifyQuery = (query: any): string => qs.stringify(query, { arrayFormat: 'brackets' });\n","import { useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch as searchIcon } from '@fortawesome/free-solid-svg-icons';\nimport classNames from 'classnames';\nimport './SearchField.scss';\n\nconst DEFAULT_SEARCH_INTERVAL = 500;\nlet timer: NodeJS.Timeout | null;\n\ninterface SearchFieldProps {\n onChange: (value: string) => void;\n className?: string;\n large?: boolean;\n noBorder?: boolean;\n initialValue?: string;\n}\n\nconst SearchField = ({ onChange, className, large = true, noBorder = false, initialValue = '' }: SearchFieldProps) => {\n const [ searchTerm, setSearchTerm ] = useState(initialValue);\n\n const resetTimer = () => {\n timer && clearTimeout(timer);\n timer = null;\n };\n const searchTermChanged = (newSearchTerm: string, timeout = DEFAULT_SEARCH_INTERVAL) => {\n setSearchTerm(newSearchTerm);\n\n resetTimer();\n\n timer = setTimeout(() => {\n onChange(newSearchTerm);\n resetTimer();\n }, timeout);\n };\n\n return (\n
\n searchTermChanged(e.target.value)}\n />\n \n
\n \n );\n};\n\nexport default SearchField;\n","import { isEmpty, isNil, reject } from 'ramda';\nimport { AxiosInstance, AxiosResponse, Method } from 'axios';\nimport { ShortUrlsListParams } from '../../short-urls/reducers/shortUrlsListParams';\nimport { ShortUrl, ShortUrlData } from '../../short-urls/data';\nimport { OptionalString } from '../../utils/utils';\nimport {\n ShlinkHealth,\n ShlinkMercureInfo,\n ShlinkShortUrlsResponse,\n ShlinkTags,\n ShlinkTagsResponse,\n ShlinkVisits,\n ShlinkVisitsParams,\n ShlinkShortUrlData,\n ShlinkDomain,\n ShlinkDomainsResponse,\n ShlinkVisitsOverview,\n ShlinkEditDomainRedirects,\n ShlinkDomainRedirects,\n} from '../types';\nimport { stringifyQuery } from '../../utils/helpers/query';\n\nconst buildShlinkBaseUrl = (url: string, apiVersion: number) => url ? `${url}/rest/v${apiVersion}` : '';\nconst rejectNilProps = reject(isNil);\n\nexport default class ShlinkApiClient {\n private apiVersion: number;\n\n public constructor(\n private readonly axios: AxiosInstance,\n private readonly baseUrl: string,\n private readonly apiKey: string,\n ) {\n this.apiVersion = 2;\n }\n\n public readonly listShortUrls = async (params: ShortUrlsListParams = {}): Promise =>\n this.performRequest<{ shortUrls: ShlinkShortUrlsResponse }>('/short-urls', 'GET', params)\n .then(({ data }) => data.shortUrls);\n\n public readonly createShortUrl = async (options: ShortUrlData): Promise => {\n const filteredOptions = reject((value) => isEmpty(value) || isNil(value), options as any);\n\n return this.performRequest('/short-urls', 'POST', {}, filteredOptions)\n .then((resp) => resp.data);\n };\n\n public readonly getShortUrlVisits = async (shortCode: string, query?: ShlinkVisitsParams): Promise =>\n this.performRequest<{ visits: ShlinkVisits }>(`/short-urls/${shortCode}/visits`, 'GET', query)\n .then(({ data }) => data.visits);\n\n public readonly getTagVisits = async (tag: string, query?: Omit): Promise =>\n this.performRequest<{ visits: ShlinkVisits }>(`/tags/${tag}/visits`, 'GET', query)\n .then(({ data }) => data.visits);\n\n public readonly getOrphanVisits = async (query?: Omit): Promise =>\n this.performRequest<{ visits: ShlinkVisits }>('/visits/orphan', 'GET', query)\n .then(({ data }) => data.visits);\n\n public readonly getVisitsOverview = async (): Promise =>\n this.performRequest<{ visits: ShlinkVisitsOverview }>('/visits', 'GET')\n .then(({ data }) => data.visits);\n\n public readonly getShortUrl = async (shortCode: string, domain?: OptionalString): Promise =>\n this.performRequest(`/short-urls/${shortCode}`, 'GET', { domain })\n .then(({ data }) => data);\n\n public readonly deleteShortUrl = async (shortCode: string, domain?: OptionalString): Promise =>\n this.performRequest(`/short-urls/${shortCode}`, 'DELETE', { domain })\n .then(() => {});\n\n /* @deprecated. If using Shlink 2.6.0 or greater, use updateShortUrl instead */\n public readonly updateShortUrlTags = async (\n shortCode: string,\n domain: OptionalString,\n tags: string[],\n ): Promise =>\n this.performRequest<{ tags: string[] }>(`/short-urls/${shortCode}/tags`, 'PUT', { domain }, { tags })\n .then(({ data }) => data.tags);\n\n public readonly updateShortUrl = async (\n shortCode: string,\n domain: OptionalString,\n data: ShlinkShortUrlData,\n ): Promise =>\n this.performRequest(`/short-urls/${shortCode}`, 'PATCH', { domain }, data)\n .then(({ data }) => data);\n\n public readonly listTags = async (): Promise =>\n this.performRequest<{ tags: ShlinkTagsResponse }>('/tags', 'GET', { withStats: 'true' })\n .then((resp) => resp.data.tags)\n .then(({ data, stats }) => ({ tags: data, stats }));\n\n public readonly deleteTags = async (tags: string[]): Promise<{ tags: string[] }> =>\n this.performRequest('/tags', 'DELETE', { tags })\n .then(() => ({ tags }));\n\n public readonly editTag = async (oldName: string, newName: string): Promise<{ oldName: string; newName: string }> =>\n this.performRequest('/tags', 'PUT', {}, { oldName, newName })\n .then(() => ({ oldName, newName }));\n\n public readonly health = async (): Promise =>\n this.performRequest('/health', 'GET')\n .then((resp) => resp.data);\n\n public readonly mercureInfo = async (): Promise =>\n this.performRequest('/mercure-info', 'GET')\n .then((resp) => resp.data);\n\n public readonly listDomains = async (): Promise =>\n this.performRequest<{ domains: ShlinkDomainsResponse }>('/domains', 'GET').then(({ data }) => data.domains.data);\n\n public readonly editDomainRedirects = async (\n domainRedirects: ShlinkEditDomainRedirects,\n ): Promise =>\n this.performRequest('/domains/redirects', 'PATCH', {}, domainRedirects).then(({ data }) => data);\n\n private readonly performRequest = async (url: string, method: Method = 'GET', query = {}, body = {}): Promise> => {\n try {\n return await this.axios({\n method,\n url: `${buildShlinkBaseUrl(this.baseUrl, this.apiVersion)}${url}`,\n headers: { 'X-Api-Key': this.apiKey },\n params: rejectNilProps(query),\n data: body,\n paramsSerializer: stringifyQuery,\n });\n } catch (e: any) {\n const { response } = e;\n\n // Due to a bug on all previous Shlink versions, requests to non-matching URLs will always result on a CORS error\n // when performed from the browser (due to the preflight request not returning a 2xx status.\n // See https://github.com/shlinkio/shlink/issues/614), which will make the \"response\" prop not to be set here.\n // The bug will be fixed on upcoming Shlink patches, but for other versions, we can consider this situation as\n // if a request has been performed to a not supported API version.\n const apiVersionIsNotSupported = !response;\n\n // When the request is not invalid or we have already tried both API versions, throw the error and let the\n // caller handle it\n if (!apiVersionIsNotSupported || this.apiVersion === 2) {\n throw e;\n }\n\n this.apiVersion = this.apiVersion - 1;\n\n return await this.performRequest(url, method, query, body);\n }\n };\n}\n","import { AxiosInstance } from 'axios';\nimport { prop } from 'ramda';\nimport { hasServerData, SelectedServer, ServerWithId } from '../../servers/data';\nimport { GetState } from '../../container/types';\nimport ShlinkApiClient from './ShlinkApiClient';\n\nconst apiClients: Record = {};\n\nconst isGetState = (getStateOrSelectedServer: GetState | ServerWithId): getStateOrSelectedServer is GetState =>\n typeof getStateOrSelectedServer === 'function';\nconst getSelectedServerFromState = (getState: GetState): SelectedServer => prop('selectedServer', getState());\n\nexport type ShlinkApiClientBuilder = (getStateOrSelectedServer: GetState | ServerWithId) => ShlinkApiClient;\n\nconst buildShlinkApiClient = (axios: AxiosInstance): ShlinkApiClientBuilder => (\n getStateOrSelectedServer: GetState | ServerWithId,\n) => {\n const server = isGetState(getStateOrSelectedServer)\n ? getSelectedServerFromState(getStateOrSelectedServer)\n : getStateOrSelectedServer;\n\n if (!hasServerData(server)) {\n throw new Error('There\\'s no selected server or it is not found');\n }\n\n const { url, apiKey } = server;\n const clientKey = `${url}_${apiKey}`;\n\n if (!apiClients[clientKey]) {\n apiClients[clientKey] = new ShlinkApiClient(axios, url, apiKey);\n }\n\n return apiClients[clientKey];\n};\n\nexport default buildShlinkApiClient;\n","import Bottle from 'bottlejs';\nimport buildShlinkApiClient from './ShlinkApiClientBuilder';\n\nconst provideServices = (bottle: Bottle) => {\n bottle.serviceFactory('buildShlinkApiClient', buildShlinkApiClient, 'axios');\n};\n\nexport default provideServices;\n","import { FC, MouseEventHandler } from 'react';\nimport ColorGenerator from '../../utils/services/ColorGenerator';\nimport './Tag.scss';\n\ninterface TagProps {\n colorGenerator: ColorGenerator;\n text: string;\n className?: string;\n clearable?: boolean;\n onClick?: MouseEventHandler;\n onClose?: MouseEventHandler;\n}\n\nconst Tag: FC = ({ text, children, clearable, className = '', colorGenerator, onClick, onClose }) => (\n \n {children ?? text}\n {clearable && ×}\n \n);\n\nexport default Tag;\n","import { FC } from 'react';\nimport { Dropdown, DropdownMenu, DropdownToggle } from 'reactstrap';\nimport { useToggle } from './helpers/hooks';\nimport './DropdownBtn.scss';\n\nexport interface DropdownBtnProps {\n text: string;\n disabled?: boolean;\n className?: string;\n dropdownClassName?: string;\n right?: boolean;\n minWidth?: number;\n}\n\nexport const DropdownBtn: FC = (\n { text, disabled = false, className = '', children, dropdownClassName, right = false, minWidth },\n) => {\n const [ isOpen, toggle ] = useToggle();\n const toggleClasses = `dropdown-btn__toggle btn-block ${className}`;\n const style = { minWidth: minWidth && `${minWidth}px` };\n\n return (\n \n {text}\n {children}\n \n );\n};\n","import { format, formatISO, isAfter, isBefore, isWithinInterval, parse, parseISO as stdParseISO } from 'date-fns';\nimport { OptionalString } from '../utils';\n\ntype DateOrString = Date | string;\ntype NullableDate = DateOrString | null;\n\nexport const isDateObject = (date: DateOrString): date is Date => typeof date !== 'string';\n\nconst formatDateFromFormat = (date?: NullableDate, theFormat?: string): OptionalString => {\n if (!date || !isDateObject(date)) {\n return date;\n }\n\n return theFormat ? format(date, theFormat) : formatISO(date);\n};\n\nexport const formatDate = (format = 'yyyy-MM-dd') => (date?: NullableDate) => formatDateFromFormat(date, format);\n\nexport const formatIsoDate = (date?: NullableDate) => formatDateFromFormat(date, undefined);\n\nexport const formatInternational = formatDate();\n\nexport const parseDate = (date: string, format: string) => parse(date, format, new Date());\n\nconst parseISO = (date: DateOrString): Date => isDateObject(date) ? date : stdParseISO(date);\n\nexport const isBetween = (date: DateOrString, start?: DateOrString, end?: DateOrString): boolean => {\n if (!start && end) {\n return isBefore(parseISO(date), parseISO(end));\n }\n\n if (start && !end) {\n return isAfter(parseISO(date), parseISO(start));\n }\n\n if (start && end) {\n return isWithinInterval(parseISO(date), { start: parseISO(start), end: parseISO(end) });\n }\n\n return true;\n};\n","import { subDays, startOfDay, endOfDay } from 'date-fns';\nimport { filter, isEmpty } from 'ramda';\nimport { formatInternational } from '../../helpers/date';\n\nexport interface DateRange {\n startDate?: Date | null;\n endDate?: Date | null;\n}\n\nexport type DateInterval = 'all' | 'today' | 'yesterday' | 'last7Days' | 'last30Days' | 'last90Days' | 'last180days' | 'last365Days';\n\nexport const dateRangeIsEmpty = (dateRange?: DateRange): boolean => dateRange === undefined\n || isEmpty(filter(Boolean, dateRange as any));\n\nexport const rangeIsInterval = (range?: DateRange | DateInterval): range is DateInterval =>\n typeof range === 'string';\n\nconst INTERVAL_TO_STRING_MAP: Record = {\n today: 'Today',\n yesterday: 'Yesterday',\n last7Days: 'Last 7 days',\n last30Days: 'Last 30 days',\n last90Days: 'Last 90 days',\n last180days: 'Last 180 days',\n last365Days: 'Last 365 days',\n all: undefined,\n};\n\nexport const DATE_INTERVALS = Object.keys(INTERVAL_TO_STRING_MAP).filter((value) => value !== 'all') as DateInterval[];\n\nconst dateRangeToString = (range?: DateRange): string | undefined => {\n if (!range || dateRangeIsEmpty(range)) {\n return undefined;\n }\n\n if (range.startDate && !range.endDate) {\n return `Since ${formatInternational(range.startDate)}`;\n }\n\n if (!range.startDate && range.endDate) {\n return `Until ${formatInternational(range.endDate)}`;\n }\n\n return `${formatInternational(range.startDate)} - ${formatInternational(range.endDate)}`;\n};\n\nexport const rangeOrIntervalToString = (range?: DateRange | DateInterval): string | undefined => {\n if (!range || range === 'all') {\n return undefined;\n }\n\n if (!rangeIsInterval(range)) {\n return dateRangeToString(range);\n }\n\n return INTERVAL_TO_STRING_MAP[range];\n};\n\nconst startOfDaysAgo = (daysAgo: number) => startOfDay(subDays(new Date(), daysAgo));\nconst endingToday = (startDate: Date): DateRange => ({ startDate, endDate: endOfDay(new Date()) });\n\nexport const intervalToDateRange = (dateInterval?: DateInterval): DateRange => {\n if (!dateInterval || dateInterval === 'all') {\n return {};\n }\n\n switch (dateInterval) {\n case 'today':\n return endingToday(startOfDay(new Date()));\n case 'yesterday':\n return { startDate: startOfDaysAgo(1), endDate: endOfDay(subDays(new Date(), 1)) };\n case 'last7Days':\n return endingToday(startOfDaysAgo(7));\n case 'last30Days':\n return endingToday(startOfDaysAgo(30));\n case 'last90Days':\n return endingToday(startOfDaysAgo(90));\n case 'last180days':\n return endingToday(startOfDaysAgo(180));\n case 'last365Days':\n return endingToday(startOfDaysAgo(365));\n }\n\n return {};\n};\n","import { useRef } from 'react';\nimport { isNil } from 'ramda';\nimport DatePicker, { ReactDatePickerProps } from 'react-datepicker';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendarAlt as calendarIcon } from '@fortawesome/free-regular-svg-icons';\nimport classNames from 'classnames';\nimport './DateInput.scss';\n\nexport type DateInputProps = ReactDatePickerProps;\n\nconst DateInput = (props: DateInputProps) => {\n const { className, isClearable, selected } = props;\n const showCalendarIcon = !isClearable || isNil(selected);\n const ref = useRef<{ input: HTMLInputElement }>();\n\n return (\n
\n \n {showCalendarIcon && (\n ref.current?.input.focus()}\n />\n )}\n
\n );\n};\n\nexport default DateInput;\n","import DateInput from '../DateInput';\nimport { DateRange } from './types';\n\ninterface DateRangeRowProps extends DateRange {\n onStartDateChange: (date: Date | null) => void;\n onEndDateChange: (date: Date | null) => void;\n disabled?: boolean;\n}\n\nconst DateRangeRow = (\n { startDate = null, endDate = null, disabled = false, onStartDateChange, onEndDateChange }: DateRangeRowProps,\n) => (\n
\n
\n \n
\n
\n \n
\n
\n);\n\nexport default DateRangeRow;\n","import { DropdownItem } from 'reactstrap';\nimport { FC } from 'react';\nimport { DATE_INTERVALS, DateInterval, rangeOrIntervalToString } from './types';\n\nexport interface DateIntervalDropdownProps {\n active?: DateInterval;\n allText: string;\n onChange: (interval: DateInterval) => void;\n}\n\nexport const DateIntervalDropdownItems: FC = ({ active, allText, onChange }) => (\n <>\n onChange('all')}>\n {allText}\n \n \n {DATE_INTERVALS.map(\n (interval) => (\n onChange(interval)}>\n {rangeOrIntervalToString(interval)}\n \n ),\n )}\n \n);\n","import { useState } from 'react';\nimport { DropdownItem } from 'reactstrap';\nimport { DropdownBtn } from '../DropdownBtn';\nimport {\n DateInterval,\n DateRange,\n rangeOrIntervalToString,\n intervalToDateRange,\n rangeIsInterval,\n dateRangeIsEmpty,\n} from './types';\nimport DateRangeRow from './DateRangeRow';\nimport { DateIntervalDropdownItems } from './DateIntervalDropdownItems';\n\nexport interface DateRangeSelectorProps {\n initialDateRange?: DateInterval | DateRange;\n disabled?: boolean;\n onDatesChange: (dateRange: DateRange) => void;\n defaultText: string;\n}\n\nexport const DateRangeSelector = (\n { onDatesChange, initialDateRange, defaultText, disabled }: DateRangeSelectorProps,\n) => {\n const [ activeInterval, setActiveInterval ] = useState(\n rangeIsInterval(initialDateRange) ? initialDateRange : undefined,\n );\n const [ activeDateRange, setActiveDateRange ] = useState(\n !rangeIsInterval(initialDateRange) ? initialDateRange : undefined,\n );\n const updateDateRange = (dateRange: DateRange) => {\n setActiveInterval(dateRangeIsEmpty(dateRange) ? 'all' : undefined);\n setActiveDateRange(dateRange);\n onDatesChange(dateRange);\n };\n const updateInterval = (dateInterval: DateInterval) => () => {\n setActiveInterval(dateInterval);\n setActiveDateRange(undefined);\n onDatesChange(intervalToDateRange(dateInterval));\n };\n\n return (\n \n updateInterval(interval)()}\n />\n \n Custom:\n \n updateDateRange({ ...activeDateRange, startDate })}\n onEndDateChange={(endDate) => updateDateRange({ ...activeDateRange, endDate })}\n />\n \n \n );\n};\n","import { RouteChildrenProps } from 'react-router-dom';\nimport { useMemo } from 'react';\nimport { isEmpty } from 'ramda';\nimport { parseQuery, stringifyQuery } from '../../utils/helpers/query';\n\ntype ServerIdRouteProps = RouteChildrenProps<{ serverId: string }>;\ntype ToFirstPage = (extra: Partial) => void;\n\nexport interface ShortUrlListRouteParams {\n page: string;\n serverId: string;\n}\n\ninterface ShortUrlsQuery {\n tags?: string;\n search?: string;\n}\n\nexport const useShortUrlsQuery = ({ history, location, match }: ServerIdRouteProps): [ShortUrlsQuery, ToFirstPage] => {\n const query = useMemo(() => parseQuery(location.search), [ location ]);\n const toFirstPageWithExtra = (extra: Partial) => {\n const evolvedQuery = stringifyQuery({ ...query, ...extra });\n const queryString = isEmpty(evolvedQuery) ? '' : `?${evolvedQuery}`;\n\n history.push(`/server/${match?.params.serverId}/list-short-urls/1${queryString}`);\n };\n\n return [ query, toFirstPageWithExtra ];\n};\n","import { faTags as tagsIcon } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { isEmpty, pipe } from 'ramda';\nimport { parseISO } from 'date-fns';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport SearchField from '../utils/SearchField';\nimport Tag from '../tags/helpers/Tag';\nimport { DateRangeSelector } from '../utils/dates/DateRangeSelector';\nimport { formatIsoDate } from '../utils/helpers/date';\nimport ColorGenerator from '../utils/services/ColorGenerator';\nimport { DateRange } from '../utils/dates/types';\nimport { ShortUrlsListParams } from './reducers/shortUrlsListParams';\nimport { ShortUrlListRouteParams, useShortUrlsQuery } from './helpers/hooks';\nimport './SearchBar.scss';\n\nexport interface SearchBarProps extends RouteChildrenProps {\n listShortUrls: (params: ShortUrlsListParams) => void;\n shortUrlsListParams: ShortUrlsListParams;\n}\n\nconst dateOrNull = (date?: string) => date ? parseISO(date) : null;\n\nconst SearchBar = (colorGenerator: ColorGenerator) => (\n { listShortUrls, shortUrlsListParams, ...rest }: SearchBarProps,\n) => {\n const [{ search, tags }, toFirstPage ] = useShortUrlsQuery(rest);\n const selectedTags = tags?.split(',').map(decodeURIComponent) ?? [];\n const setDates = pipe(\n ({ startDate, endDate }: DateRange) => ({\n startDate: formatIsoDate(startDate) ?? undefined,\n endDate: formatIsoDate(endDate) ?? undefined,\n }),\n (dates) => listShortUrls({ ...shortUrlsListParams, ...dates }),\n );\n const setSearch = pipe(\n (searchTerm: string) => isEmpty(searchTerm) ? undefined : searchTerm,\n (search) => toFirstPage({ search }),\n );\n const removeTag = pipe(\n (tag: string) => selectedTags.filter((selectedTag) => selectedTag !== tag),\n (tagsList) => tagsList.length === 0 ? undefined : tagsList.join(','),\n (tags) => toFirstPage({ tags }),\n );\n\n return (\n
\n \n\n
\n
\n
\n \n
\n
\n
\n\n {selectedTags.length > 0 && (\n

\n \n  \n {selectedTags.map((tag) =>\n removeTag(tag)} />)}\n

\n )}\n
\n );\n};\n\nexport default SearchBar;\n","export type OrderDir = 'ASC' | 'DESC' | undefined;\n\nexport interface Order {\n field?: Fields;\n dir?: OrderDir;\n}\n\nexport const determineOrderDir = (\n currentField: T,\n newField?: T,\n currentOrderDir?: OrderDir,\n): OrderDir => {\n if (currentField !== newField) {\n return 'ASC';\n }\n\n const newOrderMap: Record<'ASC' | 'DESC', OrderDir> = {\n ASC: 'DESC',\n DESC: undefined,\n };\n\n return currentOrderDir ? newOrderMap[currentOrderDir] : 'ASC';\n};\n\nexport const sortList = (list: List[], { field, dir }: Order>) => !field || !dir\n ? list\n : list.sort((a, b) => {\n const greaterThan = dir === 'ASC' ? 1 : -1;\n const smallerThan = dir === 'ASC' ? -1 : 1;\n\n return a[field] > b[field] ? greaterThan : smallerThan;\n });\n","import { UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\nimport { toPairs } from 'ramda';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSortAmountUp as sortAscIcon, faSortAmountDown as sortDescIcon } from '@fortawesome/free-solid-svg-icons';\nimport classNames from 'classnames';\nimport { determineOrderDir, Order, OrderDir } from './helpers/ordering';\nimport './SortingDropdown.scss';\n\nexport interface SortingDropdownProps {\n items: Record;\n order: Order;\n onChange: (orderField?: T, orderDir?: OrderDir) => void;\n isButton?: boolean;\n right?: boolean;\n}\n\nexport default function SortingDropdown(\n { items, order, onChange, isButton = true, right = false }: SortingDropdownProps,\n) {\n const handleItemClick = (fieldKey: T) => () => {\n const newOrderDir = determineOrderDir(fieldKey, order.field, order.dir);\n\n onChange(newOrderDir ? fieldKey : undefined, newOrderDir);\n };\n\n return (\n \n \n {!isButton && <>Order by}\n {isButton && !order.field && <>Order by...}\n {isButton && order.field && `Order by: \"${items[order.field]}\" - \"${order.dir ?? 'DESC'}\"`}\n \n \n {toPairs(items).map(([ fieldKey, fieldValue ]) => (\n \n {fieldValue}\n {order.field === fieldKey && (\n \n )}\n \n ))}\n \n onChange()}>\n Clear selection\n \n \n \n );\n}\n","import { FC, useEffect } from 'react';\nimport { pipe } from 'ramda';\nimport { CreateVisit } from '../../visits/types';\nimport { MercureInfo } from '../reducers/mercureInfo';\nimport { bindToMercureTopic } from './index';\n\nexport interface MercureBoundProps {\n createNewVisits: (createdVisits: CreateVisit[]) => void;\n loadMercureInfo: () => void;\n mercureInfo: MercureInfo;\n}\n\nexport function boundToMercureHub(\n WrappedComponent: FC,\n getTopicsForProps: (props: T) => string[],\n) {\n const pendingUpdates = new Set();\n\n return (props: MercureBoundProps & T) => {\n const { createNewVisits, loadMercureInfo, mercureInfo } = props;\n const { interval } = mercureInfo;\n\n useEffect(() => {\n const onMessage = (visit: CreateVisit) => interval ? pendingUpdates.add(visit) : createNewVisits([ visit ]);\n const closeEventSource = bindToMercureTopic(mercureInfo, getTopicsForProps(props), onMessage, loadMercureInfo);\n\n if (!interval) {\n return closeEventSource;\n }\n\n const timer = setInterval(() => {\n createNewVisits([ ...pendingUpdates ]);\n pendingUpdates.clear();\n }, interval * 1000 * 60);\n\n return pipe(() => clearInterval(timer), () => closeEventSource?.());\n }, [ mercureInfo ]);\n\n return ;\n };\n}\n","import { EventSourcePolyfill as EventSource } from 'event-source-polyfill';\nimport { MercureInfo } from '../reducers/mercureInfo';\n\nexport const bindToMercureTopic = (mercureInfo: MercureInfo, topics: string[], onMessage: (message: T) => void, onTokenExpired: () => void) => { // eslint-disable-line max-len\n const { mercureHubUrl, token, loading, error } = mercureInfo;\n\n if (loading || error || !mercureHubUrl) {\n return undefined;\n }\n\n const onEventSourceMessage = ({ data }: { data: string }) => onMessage(JSON.parse(data) as T);\n const onEventSourceError = ({ status }: { status: number }) => status === 401 && onTokenExpired();\n\n const subscriptions = topics.map((topic) => {\n const hubUrl = new URL(mercureHubUrl);\n\n hubUrl.searchParams.append('topic', topic);\n const es = new EventSource(hubUrl, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n es.onmessage = onEventSourceMessage;\n es.onerror = onEventSourceError;\n\n return es;\n });\n\n return () => subscriptions.forEach((es) => es.close());\n};\n","export class Topics {\n public static readonly visits = 'https://shlink.io/new-visit';\n\n public static readonly orphanVisits = 'https://shlink.io/new-orphan-visit';\n\n public static readonly shortUrlVisits = (shortCode: string) => `https://shlink.io/new-visit/${shortCode}`;\n}\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCaretDown as caretDownIcon, faCaretUp as caretUpIcon } from '@fortawesome/free-solid-svg-icons';\nimport { Order } from '../helpers/ordering';\n\ninterface TableOrderIconProps {\n currentOrder: Order;\n field: T;\n className?: string;\n}\n\nexport function TableOrderIcon(\n { currentOrder, field, className = 'ml-1' }: TableOrderIconProps,\n) {\n if (!currentOrder.dir || currentOrder.field !== field) {\n return null;\n }\n\n return ;\n}\n","import { Action } from 'redux';\n\ntype ActionHandler = (currentState: State, action: AT) => State;\ntype ActionHandlerMap = Record>;\n\nexport const buildReducer = (map: ActionHandlerMap, initialState: State) => (\n state: State | undefined,\n action: AT,\n): State => {\n const { type } = action;\n const actionHandler = map[type];\n const currentState = state ?? initialState;\n\n return actionHandler ? actionHandler(currentState, action) : currentState;\n};\n\nexport const buildActionCreator = (type: T) => (): Action => ({ type });\n","import { isEmpty, propEq, values } from 'ramda';\nimport { useState, useEffect, useMemo, FC } from 'react';\nimport { Button, Card, Nav, NavLink, Progress, Row } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendarAlt, faMapMarkedAlt, faList, faChartPie, faFileDownload } from '@fortawesome/free-solid-svg-icons';\nimport { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { Route, Switch, NavLink as RouterNavLink, Redirect } from 'react-router-dom';\nimport { Location } from 'history';\nimport classNames from 'classnames';\nimport { DateRangeSelector } from '../utils/dates/DateRangeSelector';\nimport Message from '../utils/Message';\nimport { DateInterval, DateRange, intervalToDateRange } from '../utils/dates/types';\nimport { Result } from '../utils/Result';\nimport { ShlinkApiError } from '../api/ShlinkApiError';\nimport { Settings } from '../settings/reducers/settings';\nimport { SelectedServer } from '../servers/data';\nimport { supportsBotVisits } from '../utils/helpers/features';\nimport { prettify } from '../utils/helpers/numbers';\nimport LineChartCard from './charts/LineChartCard';\nimport VisitsTable from './VisitsTable';\nimport { NormalizedOrphanVisit, NormalizedVisit, VisitsFilter, VisitsInfo, VisitsParams } from './types';\nimport OpenMapModalBtn from './helpers/OpenMapModalBtn';\nimport { normalizeVisits, processStatsFromVisits } from './services/VisitsParser';\nimport { VisitsFilterDropdown } from './helpers/VisitsFilterDropdown';\nimport { HighlightableProps, highlightedVisitsToStats } from './types/helpers';\nimport { DoughnutChartCard } from './charts/DoughnutChartCard';\nimport { SortableBarChartCard } from './charts/SortableBarChartCard';\nimport './VisitsStats.scss';\n\nexport interface VisitsStatsProps {\n getVisits: (params: VisitsParams) => void;\n visitsInfo: VisitsInfo;\n settings: Settings;\n selectedServer: SelectedServer;\n cancelGetVisits: () => void;\n baseUrl: string;\n domain?: string;\n exportCsv: (visits: NormalizedVisit[]) => void;\n isOrphanVisits?: boolean;\n}\n\ninterface VisitsNavLinkProps {\n title: string;\n subPath: string;\n icon: IconDefinition;\n}\n\ntype Section = 'byTime' | 'byContext' | 'byLocation' | 'list';\n\nconst sections: Record = {\n byTime: { title: 'By time', subPath: '', icon: faCalendarAlt },\n byContext: { title: 'By context', subPath: '/by-context', icon: faChartPie },\n byLocation: { title: 'By location', subPath: '/by-location', icon: faMapMarkedAlt },\n list: { title: 'List', subPath: '/list', icon: faList },\n};\n\nlet selectedBar: string | undefined;\n\nconst VisitsNavLink: FC = ({ subPath, title, icon, to }) => (\n pathname.endsWith(`visits${subPath}`)}\n replace\n >\n \n {title}\n \n);\n\nconst VisitsStats: FC = ({\n children,\n visitsInfo,\n getVisits,\n cancelGetVisits,\n baseUrl,\n domain,\n settings,\n exportCsv,\n selectedServer,\n isOrphanVisits = false,\n}) => {\n const initialInterval: DateInterval = settings.visits?.defaultInterval ?? 'last30Days';\n const [ dateRange, setDateRange ] = useState(intervalToDateRange(initialInterval));\n const [ highlightedVisits, setHighlightedVisits ] = useState([]);\n const [ highlightedLabel, setHighlightedLabel ] = useState();\n const [ visitsFilter, setVisitsFilter ] = useState({});\n const botsSupported = supportsBotVisits(selectedServer);\n\n const buildSectionUrl = (subPath?: string) => {\n const query = domain ? `?domain=${domain}` : '';\n\n return !subPath ? `${baseUrl}${query}` : `${baseUrl}${subPath}${query}`;\n };\n const { visits, loading, loadingLarge, error, errorData, progress } = visitsInfo;\n const normalizedVisits = useMemo(() => normalizeVisits(visits), [ visits ]);\n const { os, browsers, referrers, countries, cities, citiesForMap, visitedUrls } = useMemo(\n () => processStatsFromVisits(normalizedVisits),\n [ normalizedVisits ],\n );\n const mapLocations = values(citiesForMap);\n\n const setSelectedVisits = (selectedVisits: NormalizedVisit[]) => {\n selectedBar = undefined;\n setHighlightedVisits(selectedVisits);\n };\n const highlightVisitsForProp = (prop: HighlightableProps) => (value: string) => {\n const newSelectedBar = `${prop}_${value}`;\n\n if (selectedBar === newSelectedBar) {\n setHighlightedVisits([]);\n setHighlightedLabel(undefined);\n selectedBar = undefined;\n } else {\n setHighlightedVisits((normalizedVisits as NormalizedOrphanVisit[]).filter(propEq(prop, value)));\n setHighlightedLabel(value);\n selectedBar = newSelectedBar;\n }\n };\n\n useEffect(() => cancelGetVisits, []);\n useEffect(() => {\n getVisits({ dateRange, filter: visitsFilter });\n }, [ dateRange, visitsFilter ]);\n\n const renderVisitsContent = () => {\n if (loadingLarge) {\n return (\n \n This is going to take a while... :S\n \n \n );\n }\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return (\n \n \n \n );\n }\n\n if (isEmpty(visits)) {\n return There are no visits matching current filter :(;\n }\n\n return (\n <>\n \n \n \n \n \n \n
\n \n
\n
\n\n \n
\n \n
\n
\n \n
\n
\n \n
\n {isOrphanVisits && (\n
\n \n
\n )}\n
\n\n \n
\n \n
\n
\n \n mapLocations.length > 0 &&\n \n }\n sortingItems={{\n name: 'City name',\n amount: 'Visits amount',\n }}\n onClick={highlightVisitsForProp('city')}\n />\n
\n
\n\n \n
\n \n
\n
\n\n \n
\n
\n \n );\n };\n\n return (\n <>\n {children}\n\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n {visits.length > 0 && (\n
\n
\n setSelectedVisits([])}\n >\n Clear selection {highlightedVisits.length > 0 && <>({prettify(highlightedVisits.length)})}\n \n exportCsv(normalizedVisits)}\n >\n Export ({prettify(normalizedVisits.length)})\n \n
\n
\n )}\n
\n
\n\n
\n {renderVisitsContent()}\n
\n \n );\n};\n\nexport default VisitsStats;\n","import { isNil } from 'ramda';\nimport { ShortUrl } from '../data';\nimport { OptionalString } from '../../utils/utils';\n\nexport const shortUrlMatches = (shortUrl: ShortUrl, shortCode: string, domain: OptionalString): boolean => {\n if (isNil(domain)) {\n return shortUrl.shortCode === shortCode && !shortUrl.domain;\n }\n\n return shortUrl.shortCode === shortCode && shortUrl.domain === domain;\n};\n","import { Action } from 'redux';\nimport { CreateVisit } from '../types';\n\nexport const CREATE_VISITS = 'shlink/visitCreation/CREATE_VISITS';\n\nexport interface CreateVisitsAction extends Action {\n createdVisits: CreateVisit[];\n}\n\nexport const createNewVisits = (createdVisits: CreateVisit[]): CreateVisitsAction => ({\n type: CREATE_VISITS,\n createdVisits,\n});\n","import { AxiosError } from 'axios';\nimport { InvalidArgumentError, InvalidShortUrlDeletion, ProblemDetailsError } from '../types';\n\nexport const parseApiError = (e: AxiosError) => e.response?.data;\n\nexport const isInvalidArgumentError = (error?: ProblemDetailsError): error is InvalidArgumentError =>\n error?.type === 'INVALID_ARGUMENT';\n\nexport const isInvalidDeletionError = (error?: ProblemDetailsError): error is InvalidShortUrlDeletion =>\n error?.type === 'INVALID_SHORTCODE_DELETION';\n","import { Action, Dispatch } from 'redux';\nimport { buildActionCreator, buildReducer } from '../../utils/helpers/redux';\nimport { ProblemDetailsError } from '../../api/types';\nimport { GetState } from '../../container/types';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { parseApiError } from '../../api/utils';\nimport { ApiErrorAction } from '../../api/types/actions';\n\n/* eslint-disable padding-line-between-statements */\nexport const DELETE_SHORT_URL_START = 'shlink/deleteShortUrl/DELETE_SHORT_URL_START';\nexport const DELETE_SHORT_URL_ERROR = 'shlink/deleteShortUrl/DELETE_SHORT_URL_ERROR';\nexport const SHORT_URL_DELETED = 'shlink/deleteShortUrl/SHORT_URL_DELETED';\nexport const RESET_DELETE_SHORT_URL = 'shlink/deleteShortUrl/RESET_DELETE_SHORT_URL';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlDeletion {\n shortCode: string;\n loading: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface DeleteShortUrlAction extends Action {\n shortCode: string;\n domain?: string | null;\n}\n\nconst initialState: ShortUrlDeletion = {\n shortCode: '',\n loading: false,\n error: false,\n};\n\nexport default buildReducer({\n [DELETE_SHORT_URL_START]: (state) => ({ ...state, loading: true, error: false }),\n [DELETE_SHORT_URL_ERROR]: (state, { errorData }) => ({ ...state, errorData, loading: false, error: true }),\n [SHORT_URL_DELETED]: (state, { shortCode }) => ({ ...state, shortCode, loading: false, error: false }),\n [RESET_DELETE_SHORT_URL]: () => initialState,\n}, initialState);\n\nexport const deleteShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n shortCode: string,\n domain?: string | null,\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: DELETE_SHORT_URL_START });\n const { deleteShortUrl } = buildShlinkApiClient(getState);\n\n try {\n await deleteShortUrl(shortCode, domain);\n dispatch({ type: SHORT_URL_DELETED, shortCode, domain });\n } catch (e: any) {\n dispatch({ type: DELETE_SHORT_URL_ERROR, errorData: parseApiError(e) });\n\n throw e;\n }\n};\n\nexport const resetDeleteShortUrl = buildActionCreator(RESET_DELETE_SHORT_URL);\n","import { Action, Dispatch } from 'redux';\nimport { GetState } from '../../container/types';\nimport { ShortUrl, ShortUrlData } from '../data';\nimport { buildReducer, buildActionCreator } from '../../utils/helpers/redux';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ProblemDetailsError } from '../../api/types';\nimport { parseApiError } from '../../api/utils';\nimport { ApiErrorAction } from '../../api/types/actions';\n\n/* eslint-disable padding-line-between-statements */\nexport const CREATE_SHORT_URL_START = 'shlink/createShortUrl/CREATE_SHORT_URL_START';\nexport const CREATE_SHORT_URL_ERROR = 'shlink/createShortUrl/CREATE_SHORT_URL_ERROR';\nexport const CREATE_SHORT_URL = 'shlink/createShortUrl/CREATE_SHORT_URL';\nexport const RESET_CREATE_SHORT_URL = 'shlink/createShortUrl/RESET_CREATE_SHORT_URL';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlCreation {\n result: ShortUrl | null;\n saving: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface CreateShortUrlAction extends Action {\n result: ShortUrl;\n}\n\nconst initialState: ShortUrlCreation = {\n result: null,\n saving: false,\n error: false,\n};\n\nexport default buildReducer({\n [CREATE_SHORT_URL_START]: (state) => ({ ...state, saving: true, error: false }),\n [CREATE_SHORT_URL_ERROR]: (state, { errorData }) => ({ ...state, saving: false, error: true, errorData }),\n [CREATE_SHORT_URL]: (_, { result }) => ({ result, saving: false, error: false }),\n [RESET_CREATE_SHORT_URL]: () => initialState,\n}, initialState);\n\nexport const createShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (data: ShortUrlData) => async (\n dispatch: Dispatch,\n getState: GetState,\n) => {\n dispatch({ type: CREATE_SHORT_URL_START });\n const { createShortUrl } = buildShlinkApiClient(getState);\n\n try {\n const result = await createShortUrl(data);\n\n dispatch({ type: CREATE_SHORT_URL, result });\n } catch (e: any) {\n dispatch({ type: CREATE_SHORT_URL_ERROR, errorData: parseApiError(e) });\n\n throw e;\n }\n};\n\nexport const resetCreateShortUrl = buildActionCreator(RESET_CREATE_SHORT_URL);\n","import { Action, Dispatch } from 'redux';\nimport { buildReducer } from '../../utils/helpers/redux';\nimport { GetState } from '../../container/types';\nimport { OptionalString } from '../../utils/utils';\nimport { EditShortUrlData, ShortUrl } from '../data';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ProblemDetailsError } from '../../api/types';\nimport { parseApiError } from '../../api/utils';\nimport { supportsTagsInPatch } from '../../utils/helpers/features';\nimport { ApiErrorAction } from '../../api/types/actions';\n\n/* eslint-disable padding-line-between-statements */\nexport const EDIT_SHORT_URL_START = 'shlink/shortUrlEdition/EDIT_SHORT_URL_START';\nexport const EDIT_SHORT_URL_ERROR = 'shlink/shortUrlEdition/EDIT_SHORT_URL_ERROR';\nexport const SHORT_URL_EDITED = 'shlink/shortUrlEdition/SHORT_URL_EDITED';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlEdition {\n shortUrl?: ShortUrl;\n saving: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface ShortUrlEditedAction extends Action {\n shortUrl: ShortUrl;\n}\n\nconst initialState: ShortUrlEdition = {\n saving: false,\n error: false,\n};\n\nexport default buildReducer({\n [EDIT_SHORT_URL_START]: (state) => ({ ...state, saving: true, error: false }),\n [EDIT_SHORT_URL_ERROR]: (state, { errorData }) => ({ ...state, saving: false, error: true, errorData }),\n [SHORT_URL_EDITED]: (_, { shortUrl }) => ({ shortUrl, saving: false, error: false }),\n}, initialState);\n\nexport const editShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n shortCode: string,\n domain: OptionalString,\n data: EditShortUrlData,\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: EDIT_SHORT_URL_START });\n\n const { selectedServer } = getState();\n const sendTagsSeparately = !supportsTagsInPatch(selectedServer);\n const { updateShortUrl, updateShortUrlTags } = buildShlinkApiClient(getState);\n\n try {\n const [ shortUrl ] = await Promise.all([\n updateShortUrl(shortCode, domain, data as any), // FIXME Parse dates\n sendTagsSeparately && data.tags ? updateShortUrlTags(shortCode, domain, data.tags) : undefined,\n ]);\n\n dispatch({ shortUrl, type: SHORT_URL_EDITED });\n } catch (e: any) {\n dispatch({ type: EDIT_SHORT_URL_ERROR, errorData: parseApiError(e) });\n\n throw e;\n }\n};\n","import { assoc, assocPath, init, last, pipe, reject } from 'ramda';\nimport { Action, Dispatch } from 'redux';\nimport { shortUrlMatches } from '../helpers';\nimport { CREATE_VISITS, CreateVisitsAction } from '../../visits/reducers/visitCreation';\nimport { buildReducer } from '../../utils/helpers/redux';\nimport { GetState } from '../../container/types';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ShlinkShortUrlsResponse } from '../../api/types';\nimport { DeleteShortUrlAction, SHORT_URL_DELETED } from './shortUrlDeletion';\nimport { ShortUrlsListParams } from './shortUrlsListParams';\nimport { CREATE_SHORT_URL, CreateShortUrlAction } from './shortUrlCreation';\nimport { SHORT_URL_EDITED, ShortUrlEditedAction } from './shortUrlEdition';\n\n/* eslint-disable padding-line-between-statements */\nexport const LIST_SHORT_URLS_START = 'shlink/shortUrlsList/LIST_SHORT_URLS_START';\nexport const LIST_SHORT_URLS_ERROR = 'shlink/shortUrlsList/LIST_SHORT_URLS_ERROR';\nexport const LIST_SHORT_URLS = 'shlink/shortUrlsList/LIST_SHORT_URLS';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlsList {\n shortUrls?: ShlinkShortUrlsResponse;\n loading: boolean;\n error: boolean;\n}\n\nexport interface ListShortUrlsAction extends Action {\n shortUrls: ShlinkShortUrlsResponse;\n params: ShortUrlsListParams;\n}\n\nexport type ListShortUrlsCombinedAction = (\n ListShortUrlsAction\n & CreateVisitsAction\n & CreateShortUrlAction\n & DeleteShortUrlAction\n & ShortUrlEditedAction\n);\n\nconst initialState: ShortUrlsList = {\n loading: true,\n error: false,\n};\n\nexport default buildReducer({\n [LIST_SHORT_URLS_START]: (state) => ({ ...state, loading: true, error: false }),\n [LIST_SHORT_URLS_ERROR]: () => ({ loading: false, error: true }),\n [LIST_SHORT_URLS]: (_, { shortUrls }) => ({ loading: false, error: false, shortUrls }),\n [SHORT_URL_DELETED]: pipe(\n (state: ShortUrlsList, { shortCode, domain }: DeleteShortUrlAction) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'data' ],\n reject((shortUrl) => shortUrlMatches(shortUrl, shortCode, domain), state.shortUrls.data),\n state,\n ),\n (state) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'pagination', 'totalItems' ],\n state.shortUrls.pagination.totalItems - 1,\n state,\n ),\n ),\n [CREATE_VISITS]: (state, { createdVisits }) => assocPath(\n [ 'shortUrls', 'data' ],\n state.shortUrls?.data?.map(\n (currentShortUrl) => {\n // Find the last of the new visit for this short URL, and pick the amount of visits from it\n const lastVisit = last(\n createdVisits.filter(\n ({ shortUrl }) => shortUrl && shortUrlMatches(currentShortUrl, shortUrl.shortCode, shortUrl.domain),\n ),\n );\n\n return lastVisit?.shortUrl\n ? assoc('visitsCount', lastVisit.shortUrl.visitsCount, currentShortUrl)\n : currentShortUrl;\n },\n ),\n state,\n ),\n [CREATE_SHORT_URL]: pipe(\n // The only place where the list and the creation form coexist is the overview page.\n // There we can assume we are displaying page 1, and therefore, we can safely prepend the new short URL and remove the last one.\n (state: ShortUrlsList, { result }: CreateShortUrlAction) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'data' ],\n [ result, ...init(state.shortUrls.data) ],\n state,\n ),\n (state: ShortUrlsList) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'pagination', 'totalItems' ],\n state.shortUrls.pagination.totalItems + 1,\n state,\n ),\n ),\n [SHORT_URL_EDITED]: (state, { shortUrl: editedShortUrl }) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'data' ],\n state.shortUrls.data.map((shortUrl) => {\n const { shortCode, domain } = editedShortUrl;\n\n return shortUrlMatches(shortUrl, shortCode, domain) ? editedShortUrl : shortUrl;\n }),\n state,\n ),\n}, initialState);\n\nexport const listShortUrls = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n params: ShortUrlsListParams = {},\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: LIST_SHORT_URLS_START });\n const { listShortUrls } = buildShlinkApiClient(getState);\n\n try {\n const shortUrls = await listShortUrls(params);\n\n dispatch({ type: LIST_SHORT_URLS, shortUrls, params });\n } catch (e) {\n dispatch({ type: LIST_SHORT_URLS_ERROR, params });\n }\n};\n","import { buildActionCreator, buildReducer } from '../../utils/helpers/redux';\nimport { OrderDir } from '../../utils/helpers/ordering';\nimport { LIST_SHORT_URLS, ListShortUrlsAction } from './shortUrlsList';\n\nexport const RESET_SHORT_URL_PARAMS = 'shlink/shortUrlsListParams/RESET_SHORT_URL_PARAMS';\n\nexport const SORTABLE_FIELDS = {\n dateCreated: 'Created at',\n shortCode: 'Short URL',\n longUrl: 'Long URL',\n title: 'Title',\n visits: 'Visits',\n};\n\nexport type OrderableFields = keyof typeof SORTABLE_FIELDS;\n\nexport type OrderBy = Partial>;\n\nexport interface ShortUrlsListParams {\n page?: string;\n itemsPerPage?: number;\n tags?: string[];\n searchTerm?: string;\n startDate?: string;\n endDate?: string;\n orderBy?: OrderBy;\n}\n\nconst initialState: ShortUrlsListParams = {\n page: '1',\n orderBy: { dateCreated: 'DESC' },\n};\n\nexport default buildReducer({\n [LIST_SHORT_URLS]: (state, { params }) => ({ ...state, ...params }),\n [RESET_SHORT_URL_PARAMS]: () => initialState,\n}, initialState);\n\nexport const resetShortUrlParams = buildActionCreator(RESET_SHORT_URL_PARAMS);\n","const TEN_ROUNDING_NUMBER = 10;\nconst { ceil } = Math;\nconst formatter = new Intl.NumberFormat('en-US');\n\nexport const prettify = (number: number | string) => formatter.format(Number(number));\n\nexport const roundTen = (number: number) => ceil(number / TEN_ROUNDING_NUMBER) * TEN_ROUNDING_NUMBER;\n","import { max, min, range } from 'ramda';\nimport { prettify } from './numbers';\n\nconst DELTA = 2;\n\nexport const ELLIPSIS = '...';\n\ntype Ellipsis = typeof ELLIPSIS;\n\nexport type NumberOrEllipsis = number | Ellipsis;\n\nexport const progressivePagination = (currentPage: number, pageCount: number): NumberOrEllipsis[] => {\n const pages: NumberOrEllipsis[] = range(\n max(DELTA, currentPage - DELTA),\n min(pageCount - 1, currentPage + DELTA) + 1,\n );\n\n if (currentPage - DELTA > DELTA) {\n pages.unshift(ELLIPSIS);\n }\n if (currentPage + DELTA < pageCount - 1) {\n pages.push(ELLIPSIS);\n }\n\n pages.unshift(1);\n pages.push(pageCount);\n\n return pages;\n};\n\nexport const pageIsEllipsis = (pageNumber: NumberOrEllipsis): pageNumber is Ellipsis => pageNumber === ELLIPSIS;\n\nexport const prettifyPageNumber = (pageNumber: NumberOrEllipsis): string =>\n pageIsEllipsis(pageNumber) ? pageNumber : prettify(pageNumber);\n\nexport const keyForPage = (pageNumber: NumberOrEllipsis, index: number) => !pageIsEllipsis(pageNumber) ? `${pageNumber}` : `${pageNumber}_${index}`;\n","import { Link } from 'react-router-dom';\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\nimport {\n pageIsEllipsis,\n keyForPage,\n progressivePagination,\n prettifyPageNumber,\n NumberOrEllipsis,\n} from '../utils/helpers/pagination';\nimport { ShlinkPaginator } from '../api/types';\n\ninterface PaginatorProps {\n paginator?: ShlinkPaginator;\n serverId: string;\n currentQueryString?: string;\n}\n\nconst Paginator = ({ paginator, serverId, currentQueryString = '' }: PaginatorProps) => {\n const { currentPage = 0, pagesCount = 0 } = paginator ?? {};\n const urlForPage = (pageNumber: NumberOrEllipsis) =>\n `/server/${serverId}/list-short-urls/${pageNumber}${currentQueryString}`;\n\n if (pagesCount <= 1) {\n return null;\n }\n\n const renderPages = () =>\n progressivePagination(currentPage, pagesCount).map((pageNumber, index) => (\n \n \n {prettifyPageNumber(pageNumber)}\n \n \n ));\n\n return (\n \n \n \n \n {renderPages()}\n = pagesCount}>\n \n \n \n );\n};\n\nexport default Paginator;\n","import { head, keys, pipe, values } from 'ramda';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { RouteComponentProps } from 'react-router';\nimport { Card } from 'reactstrap';\nimport SortingDropdown from '../utils/SortingDropdown';\nimport { determineOrderDir, Order, OrderDir } from '../utils/helpers/ordering';\nimport { getServerId, SelectedServer } from '../servers/data';\nimport { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';\nimport { Topics } from '../mercure/helpers/Topics';\nimport { TableOrderIcon } from '../utils/table/TableOrderIcon';\nimport { ShortUrlsList as ShortUrlsListState } from './reducers/shortUrlsList';\nimport { OrderableFields, ShortUrlsListParams, SORTABLE_FIELDS } from './reducers/shortUrlsListParams';\nimport { ShortUrlsTableProps } from './ShortUrlsTable';\nimport Paginator from './Paginator';\nimport { ShortUrlListRouteParams, useShortUrlsQuery } from './helpers/hooks';\n\ninterface ShortUrlsListProps extends RouteComponentProps {\n selectedServer: SelectedServer;\n shortUrlsList: ShortUrlsListState;\n listShortUrls: (params: ShortUrlsListParams) => void;\n shortUrlsListParams: ShortUrlsListParams;\n resetShortUrlParams: () => void;\n}\n\ntype ShortUrlsOrder = Order;\n\nconst ShortUrlsList = (ShortUrlsTable: FC, SearchBar: FC) => boundToMercureHub(({\n listShortUrls,\n resetShortUrlParams,\n shortUrlsListParams,\n match,\n location,\n history,\n shortUrlsList,\n selectedServer,\n}: ShortUrlsListProps) => {\n const serverId = getServerId(selectedServer);\n const { orderBy } = shortUrlsListParams;\n const [ order, setOrder ] = useState({\n field: orderBy && (head(keys(orderBy)) as OrderableFields),\n dir: orderBy && head(values(orderBy)),\n });\n const [{ tags, search }, toFirstPage ] = useShortUrlsQuery({ history, match, location });\n const decodedTags = useMemo(() => tags?.split(',').map(decodeURIComponent) ?? [], [ tags ]);\n const { pagination } = shortUrlsList?.shortUrls ?? {};\n\n const refreshList = (extraParams: ShortUrlsListParams) => listShortUrls({ ...shortUrlsListParams, ...extraParams });\n const handleOrderBy = (field?: OrderableFields, dir?: OrderDir) => {\n setOrder({ field, dir });\n refreshList({ orderBy: field ? { [field]: dir } : undefined });\n };\n const orderByColumn = (field: OrderableFields) => () =>\n handleOrderBy(field, determineOrderDir(field, order.field, order.dir));\n const renderOrderIcon = (field: OrderableFields) => ;\n const addTag = pipe(\n (newTag: string) => [ ...new Set([ ...decodedTags, newTag ]) ].join(','),\n (tags) => toFirstPage({ tags }),\n );\n\n useEffect(() => resetShortUrlParams, []);\n useEffect(() => {\n refreshList({ page: match.params.page, searchTerm: search, tags: decodedTags, itemsPerPage: undefined });\n }, [ match.params.page, search, decodedTags ]);\n\n return (\n <>\n
\n
\n \n
\n \n \n \n \n \n );\n}, () => [ Topics.visits ]);\n\nexport default ShortUrlsList;\n","import { FC } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCopy as copyIcon } from '@fortawesome/free-regular-svg-icons';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport './CopyToClipboardIcon.scss';\n\ninterface CopyToClipboardIconProps {\n text: string;\n onCopy?: (text: string, result: boolean) => void;\n}\n\nexport const CopyToClipboardIcon: FC = ({ text, onCopy }) => (\n \n \n \n);\n","import { parseISO, format as formatDate, getUnixTime, formatDistance } from 'date-fns';\nimport { isDateObject } from './helpers/date';\n\nexport interface DateProps {\n date: Date | string;\n format?: string;\n relative?: boolean;\n}\n\nexport const Time = ({ date, format = 'yyyy-MM-dd HH:mm', relative = false }: DateProps) => {\n const dateObject = isDateObject(date) ? date : parseISO(date);\n\n return (\n \n );\n};\n","import { FC } from 'react';\nimport { Link } from 'react-router-dom';\nimport { isServerWithId, SelectedServer, ServerWithId } from '../../servers/data';\nimport { ShortUrl } from '../data';\n\nexport type LinkSuffix = 'visits' | 'edit';\n\nexport interface ShortUrlDetailLinkProps {\n shortUrl?: ShortUrl | null;\n selectedServer?: SelectedServer;\n suffix: LinkSuffix;\n}\n\nconst buildUrl = ({ id }: ServerWithId, { shortCode, domain }: ShortUrl, suffix: LinkSuffix) => {\n const query = domain ? `?domain=${domain}` : '';\n\n return `/server/${id}/short-code/${shortCode}/${suffix}${query}`;\n};\n\nconst ShortUrlDetailLink: FC> = (\n { selectedServer, shortUrl, suffix, children, ...rest },\n) => {\n if (!selectedServer || !isServerWithId(selectedServer) || !shortUrl) {\n return {children};\n }\n\n return {children};\n};\n\nexport default ShortUrlDetailLink;\n","import { useRef } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faInfoCircle as infoIcon } from '@fortawesome/free-solid-svg-icons';\nimport { UncontrolledTooltip } from 'reactstrap';\nimport classNames from 'classnames';\nimport { prettify } from '../../utils/helpers/numbers';\nimport { ShortUrl } from '../data';\nimport { SelectedServer } from '../../servers/data';\nimport ShortUrlDetailLink from './ShortUrlDetailLink';\nimport './ShortUrlVisitsCount.scss';\n\ninterface ShortUrlVisitsCountProps {\n shortUrl?: ShortUrl | null;\n selectedServer?: SelectedServer;\n visitsCount: number;\n active?: boolean;\n}\n\nconst ShortUrlVisitsCount = ({ visitsCount, shortUrl, selectedServer, active = false }: ShortUrlVisitsCountProps) => {\n const maxVisits = shortUrl?.meta?.maxVisits;\n const visitsLink = (\n \n \n {prettify(visitsCount)}\n \n \n );\n\n if (!maxVisits) {\n return visitsLink;\n }\n\n const prettifiedMaxVisits = prettify(maxVisits);\n const tooltipRef = useRef();\n\n return (\n <>\n \n {visitsLink}\n {\n tooltipRef.current = el;\n }}\n >\n {' '}/ {prettifiedMaxVisits}{' '}\n \n \n \n \n \n tooltipRef.current) as any} placement=\"bottom\">\n This short URL will not accept more than {prettifiedMaxVisits} visits.\n \n \n );\n};\n\nexport default ShortUrlVisitsCount;\n","import { FC, useEffect, useRef } from 'react';\nimport { isEmpty } from 'ramda';\nimport { ExternalLink } from 'react-external-link';\nimport ColorGenerator from '../../utils/services/ColorGenerator';\nimport { StateFlagTimeout } from '../../utils/helpers/hooks';\nimport Tag from '../../tags/helpers/Tag';\nimport { SelectedServer } from '../../servers/data';\nimport { CopyToClipboardIcon } from '../../utils/CopyToClipboardIcon';\nimport { ShortUrl } from '../data';\nimport { Time } from '../../utils/Time';\nimport ShortUrlVisitsCount from './ShortUrlVisitsCount';\nimport { ShortUrlsRowMenuProps } from './ShortUrlsRowMenu';\nimport './ShortUrlsRow.scss';\n\nexport interface ShortUrlsRowProps {\n onTagClick?: (tag: string) => void;\n selectedServer: SelectedServer;\n shortUrl: ShortUrl;\n}\n\nconst ShortUrlsRow = (\n ShortUrlsRowMenu: FC,\n colorGenerator: ColorGenerator,\n useStateFlagTimeout: StateFlagTimeout,\n) => ({ shortUrl, selectedServer, onTagClick }: ShortUrlsRowProps) => {\n const [ copiedToClipboard, setCopiedToClipboard ] = useStateFlagTimeout();\n const [ active, setActive ] = useStateFlagTimeout(false, 500);\n const isFirstRun = useRef(true);\n\n const renderTags = (tags: string[]) => {\n if (isEmpty(tags)) {\n return No tags;\n }\n\n return tags.map((tag) => (\n onTagClick?.(tag)}\n />\n ));\n };\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n } else {\n setActive();\n }\n }, [ shortUrl.visitsCount ]);\n\n return (\n \n \n
\n \n \n {tagFilteringModeHint(shortUrlCreation.tagFilteringMode)}\n \n \n \n );\n};\n","import { FC } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSun, faMoon } from '@fortawesome/free-solid-svg-icons';\nimport { FormGroup } from 'reactstrap';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport ToggleSwitch from '../utils/ToggleSwitch';\nimport { changeThemeInMarkup, Theme } from '../utils/theme';\nimport { TagsModeDropdown } from '../tags/TagsModeDropdown';\nimport { capitalize } from '../utils/utils';\nimport { Settings, UiSettings } from './reducers/settings';\nimport './UserInterface.scss';\n\ninterface UserInterfaceProps {\n settings: Settings;\n setUiSettings: (settings: UiSettings) => void;\n}\n\nexport const UserInterface: FC = ({ settings: { ui }, setUiSettings }) => (\n \n \n \n {\n const theme: Theme = useDarkTheme ? 'dark' : 'light';\n\n setUiSettings({ ...ui, theme });\n changeThemeInMarkup(theme);\n }}\n >\n Use dark theme.\n \n \n \n \n capitalize(tagsMode)}\n onChange={(tagsMode) => setUiSettings({ ...ui ?? { theme: 'light' }, tagsMode })}\n />\n Tags will be displayed as {ui?.tagsMode ?? 'cards'}.\n \n \n);\n","import { FC } from 'react';\nimport { DropdownBtn } from '../DropdownBtn';\nimport { rangeOrIntervalToString } from './types';\nimport { DateIntervalDropdownItems, DateIntervalDropdownProps } from './DateIntervalDropdownItems';\n\nexport const DateIntervalSelector: FC = ({ onChange, active, allText }) => (\n \n \n \n);\n","import { FormGroup } from 'reactstrap';\nimport { FC } from 'react';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport { DateIntervalSelector } from '../utils/dates/DateIntervalSelector';\nimport { Settings, VisitsSettings } from './reducers/settings';\n\ninterface VisitsProps {\n settings: Settings;\n setVisitsSettings: (settings: VisitsSettings) => void;\n}\n\nexport const Visits: FC = ({ settings, setVisitsSettings }) => (\n \n \n \n setVisitsSettings({ defaultInterval })}\n />\n \n \n);\n","import Bottle from 'bottlejs';\nimport RealTimeUpdates from '../RealTimeUpdates';\nimport Settings from '../Settings';\nimport {\n setRealTimeUpdatesInterval,\n setShortUrlCreationSettings,\n setUiSettings,\n setVisitsSettings,\n toggleRealTimeUpdates,\n} from '../reducers/settings';\nimport { ConnectDecorator } from '../../container/types';\nimport { withoutSelectedServer } from '../../servers/helpers/withoutSelectedServer';\nimport { ShortUrlCreation } from '../ShortUrlCreation';\nimport { UserInterface } from '../UserInterface';\nimport { Visits } from '../Visits';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator) => {\n // Components\n bottle.serviceFactory('Settings', Settings, 'RealTimeUpdates', 'ShortUrlCreation', 'UserInterface', 'Visits');\n bottle.decorator('Settings', withoutSelectedServer);\n bottle.decorator('Settings', connect(null, [ 'resetSelectedServer' ]));\n\n bottle.serviceFactory('RealTimeUpdates', () => RealTimeUpdates);\n bottle.decorator(\n 'RealTimeUpdates',\n connect([ 'settings' ], [ 'toggleRealTimeUpdates', 'setRealTimeUpdatesInterval' ]),\n );\n\n bottle.serviceFactory('ShortUrlCreation', () => ShortUrlCreation);\n bottle.decorator('ShortUrlCreation', connect([ 'settings' ], [ 'setShortUrlCreationSettings' ]));\n\n bottle.serviceFactory('UserInterface', () => UserInterface);\n bottle.decorator('UserInterface', connect([ 'settings' ], [ 'setUiSettings' ]));\n\n bottle.serviceFactory('Visits', () => Visits);\n bottle.decorator('Visits', connect([ 'settings' ], [ 'setVisitsSettings' ]));\n\n // Actions\n bottle.serviceFactory('toggleRealTimeUpdates', () => toggleRealTimeUpdates);\n bottle.serviceFactory('setRealTimeUpdatesInterval', () => setRealTimeUpdatesInterval);\n bottle.serviceFactory('setShortUrlCreationSettings', () => setShortUrlCreationSettings);\n bottle.serviceFactory('setUiSettings', () => setUiSettings);\n bottle.serviceFactory('setVisitsSettings', () => setVisitsSettings);\n};\n\nexport default provideServices;\n","import { Action, Dispatch } from 'redux';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ShlinkDomainRedirects } from '../../api/types';\nimport { GetState } from '../../container/types';\nimport { ApiErrorAction } from '../../api/types/actions';\nimport { parseApiError } from '../../api/utils';\n\n/* eslint-disable padding-line-between-statements */\nexport const EDIT_DOMAIN_REDIRECTS_START = 'shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_START';\nexport const EDIT_DOMAIN_REDIRECTS_ERROR = 'shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_ERROR';\nexport const EDIT_DOMAIN_REDIRECTS = 'shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS';\n/* eslint-enable padding-line-between-statements */\n\nexport interface EditDomainRedirectsAction extends Action {\n domain: string;\n redirects: ShlinkDomainRedirects;\n}\n\nexport const editDomainRedirects = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n domain: string,\n domainRedirects: Partial,\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: EDIT_DOMAIN_REDIRECTS_START });\n const { editDomainRedirects } = buildShlinkApiClient(getState);\n\n try {\n const redirects = await editDomainRedirects({ domain, ...domainRedirects });\n\n dispatch({ type: EDIT_DOMAIN_REDIRECTS, domain, redirects });\n } catch (e: any) {\n dispatch({ type: EDIT_DOMAIN_REDIRECTS_ERROR, errorData: parseApiError(e) });\n }\n};\n","import { Action, Dispatch } from 'redux';\nimport { ProblemDetailsError, ShlinkDomain, ShlinkDomainRedirects } from '../../api/types';\nimport { buildReducer } from '../../utils/helpers/redux';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { GetState } from '../../container/types';\nimport { parseApiError } from '../../api/utils';\nimport { ApiErrorAction } from '../../api/types/actions';\nimport { EDIT_DOMAIN_REDIRECTS, EditDomainRedirectsAction } from './domainRedirects';\n\n/* eslint-disable padding-line-between-statements */\nexport const LIST_DOMAINS_START = 'shlink/domainsList/LIST_DOMAINS_START';\nexport const LIST_DOMAINS_ERROR = 'shlink/domainsList/LIST_DOMAINS_ERROR';\nexport const LIST_DOMAINS = 'shlink/domainsList/LIST_DOMAINS';\nexport const FILTER_DOMAINS = 'shlink/domainsList/FILTER_DOMAINS';\n/* eslint-enable padding-line-between-statements */\n\nexport interface DomainsList {\n domains: ShlinkDomain[];\n filteredDomains: ShlinkDomain[];\n loading: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface ListDomainsAction extends Action {\n domains: ShlinkDomain[];\n}\n\ninterface FilterDomainsAction extends Action {\n searchTerm: string;\n}\n\nconst initialState: DomainsList = {\n domains: [],\n filteredDomains: [],\n loading: false,\n error: false,\n};\n\nexport type DomainsCombinedAction = ListDomainsAction\n& ApiErrorAction\n& FilterDomainsAction\n& EditDomainRedirectsAction;\n\nexport const replaceRedirectsOnDomain = (domain: string, redirects: ShlinkDomainRedirects) =>\n (d: ShlinkDomain): ShlinkDomain => d.domain !== domain ? d : { ...d, redirects };\n\nexport default buildReducer({\n [LIST_DOMAINS_START]: () => ({ ...initialState, loading: true }),\n [LIST_DOMAINS_ERROR]: ({ errorData }) => ({ ...initialState, error: true, errorData }),\n [LIST_DOMAINS]: (_, { domains }) => ({ ...initialState, domains, filteredDomains: domains }),\n [FILTER_DOMAINS]: (state, { searchTerm }) => ({\n ...state,\n filteredDomains: state.domains.filter(({ domain }) => domain.toLowerCase().match(searchTerm)),\n }),\n [EDIT_DOMAIN_REDIRECTS]: (state, { domain, redirects }) => ({\n ...state,\n domains: state.domains.map(replaceRedirectsOnDomain(domain, redirects)),\n filteredDomains: state.filteredDomains.map(replaceRedirectsOnDomain(domain, redirects)),\n }),\n}, initialState);\n\nexport const listDomains = (buildShlinkApiClient: ShlinkApiClientBuilder) => () => async (\n dispatch: Dispatch,\n getState: GetState,\n) => {\n dispatch({ type: LIST_DOMAINS_START });\n const { listDomains } = buildShlinkApiClient(getState);\n\n try {\n const domains = await listDomains();\n\n dispatch({ type: LIST_DOMAINS, domains });\n } catch (e: any) {\n dispatch({ type: LIST_DOMAINS_ERROR, errorData: parseApiError(e) });\n }\n};\n\nexport const filterDomains = (searchTerm: string): FilterDomainsAction => ({ type: FILTER_DOMAINS, searchTerm });\n","import { useEffect } from 'react';\nimport { Button, DropdownItem, Input, InputGroup, InputGroupAddon, UncontrolledTooltip } from 'reactstrap';\nimport { InputProps } from 'reactstrap/lib/Input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUndo } from '@fortawesome/free-solid-svg-icons';\nimport { isEmpty, pipe } from 'ramda';\nimport { DropdownBtn } from '../utils/DropdownBtn';\nimport { useToggle } from '../utils/helpers/hooks';\nimport { DomainsList } from './reducers/domainsList';\nimport './DomainSelector.scss';\n\nexport interface DomainSelectorProps extends Omit {\n value?: string;\n onChange: (domain: string) => void;\n}\n\ninterface DomainSelectorConnectProps extends DomainSelectorProps {\n listDomains: Function;\n domainsList: DomainsList;\n}\n\nexport const DomainSelector = ({ listDomains, value, domainsList, onChange }: DomainSelectorConnectProps) => {\n const [ inputDisplayed,, showInput, hideInput ] = useToggle();\n const { domains } = domainsList;\n const valueIsEmpty = isEmpty(value);\n const unselectDomain = () => onChange('');\n\n useEffect(() => {\n listDomains();\n }, []);\n\n return inputDisplayed ? (\n \n onChange(e.target.value)}\n />\n \n \n \n \n \n Existing domains\n \n \n \n ) : (\n \n {domains.map(({ domain, isDefault }) => (\n onChange(domain)}\n >\n {domain}\n {isDefault && default}\n \n ))}\n \n \n New domain\n \n \n );\n};\n","import { FC, useState } from 'react';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';\nimport { ShlinkDomain, ShlinkDomainRedirects } from '../../api/types';\nimport { FormGroupContainer, FormGroupContainerProps } from '../../utils/FormGroupContainer';\nimport { handleEventPreventingDefault, nonEmptyValueOrNull } from '../../utils/utils';\nimport { InfoTooltip } from '../../utils/InfoTooltip';\n\ninterface EditDomainRedirectsModalProps {\n domain: ShlinkDomain;\n isOpen: boolean;\n toggle: () => void;\n editDomainRedirects: (domain: string, redirects: Partial) => Promise;\n}\n\nconst FormGroup: FC = ({ isLast, ...rest }) => (\n \n);\n\nexport const EditDomainRedirectsModal: FC = (\n { isOpen, toggle, domain, editDomainRedirects },\n) => {\n const [ baseUrlRedirect, setBaseUrlRedirect ] = useState(domain.redirects?.baseUrlRedirect ?? '');\n const [ regular404Redirect, setRegular404Redirect ] = useState(domain.redirects?.regular404Redirect ?? '');\n const [ invalidShortUrlRedirect, setInvalidShortUrlRedirect ] = useState(\n domain.redirects?.invalidShortUrlRedirect ?? '',\n );\n const handleSubmit = handleEventPreventingDefault(async () => editDomainRedirects(domain.domain, {\n baseUrlRedirect: nonEmptyValueOrNull(baseUrlRedirect),\n regular404Redirect: nonEmptyValueOrNull(regular404Redirect),\n invalidShortUrlRedirect: nonEmptyValueOrNull(invalidShortUrlRedirect),\n }).then(toggle));\n\n return (\n \n
\n Edit redirects for {domain.domain}\n \n \n \n Visitors accessing the base url, as in https://{domain.domain}/, will be redirected to this URL.\n \n Base URL\n \n \n \n Visitors accessing a url not matching a short URL pattern, as in https://{domain.domain}/???/[...],\n will be redirected to this URL.\n \n Regular 404\n \n \n \n Visitors accessing a url matching a short URL pattern, but not matching an existing short code, will be\n redirected to this URL.\n \n Invalid short URL\n \n \n \n \n \n \n
\n
\n );\n};\n","import { FC } from 'react';\nimport { Button, UncontrolledTooltip } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faBan as forbiddenIcon,\n faCheck as defaultDomainIcon,\n faEdit as editIcon,\n} from '@fortawesome/free-solid-svg-icons';\nimport { ShlinkDomain, ShlinkDomainRedirects } from '../api/types';\nimport { useToggle } from '../utils/helpers/hooks';\nimport { OptionalString } from '../utils/utils';\nimport { EditDomainRedirectsModal } from './helpers/EditDomainRedirectsModal';\n\ninterface DomainRowProps {\n domain: ShlinkDomain;\n defaultRedirects?: ShlinkDomainRedirects;\n editDomainRedirects: (domain: string, redirects: Partial) => Promise;\n}\n\nconst Nr: FC<{ fallback: OptionalString }> = ({ fallback }) => (\n \n {!fallback && No redirect}\n {fallback && <>{fallback} (as fallback)}\n \n);\nconst DefaultDomain: FC = () => (\n <>\n \n Default domain\n \n);\n\nexport const DomainRow: FC = ({ domain, editDomainRedirects, defaultRedirects }) => {\n const [ isOpen, toggle ] = useToggle();\n const { domain: authority, isDefault, redirects } = domain;\n const domainId = `domainEdit${authority.replace(/\\./g, '')}`;\n\n return (\n \n {isDefault ? : ''}\n {authority}\n \n {redirects?.baseUrlRedirect ?? }\n \n \n {redirects?.regular404Redirect ?? }\n \n \n {redirects?.invalidShortUrlRedirect ?? }\n \n \n \n \n \n {isDefault && (\n \n Redirects for default domain cannot be edited here.\n
\n Use config options or env vars directly on the server.\n
\n )}\n \n \n \n );\n};\n","import { FC, useEffect } from 'react';\nimport Message from '../utils/Message';\nimport { Result } from '../utils/Result';\nimport { ShlinkApiError } from '../api/ShlinkApiError';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport SearchField from '../utils/SearchField';\nimport { ShlinkDomainRedirects } from '../api/types';\nimport { DomainsList } from './reducers/domainsList';\nimport { DomainRow } from './DomainRow';\n\ninterface ManageDomainsProps {\n listDomains: Function;\n filterDomains: (searchTerm: string) => void;\n editDomainRedirects: (domain: string, redirects: Partial) => Promise;\n domainsList: DomainsList;\n}\n\nconst headers = [ '', 'Domain', 'Base path redirect', 'Regular 404 redirect', 'Invalid short URL redirect', '' ];\n\nexport const ManageDomains: FC = (\n { listDomains, domainsList, filterDomains, editDomainRedirects },\n) => {\n const { filteredDomains: domains, loading, error, errorData } = domainsList;\n const defaultRedirects = domains.find(({ isDefault }) => isDefault)?.redirects;\n\n useEffect(() => {\n listDomains();\n }, []);\n\n if (loading) {\n return ;\n }\n\n const renderContent = () => {\n if (error) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n {headers.map((column, index) => )}\n \n \n {domains.length < 1 && }\n {domains.map((domain) => (\n \n ))}\n \n
{column}
No results found
\n
\n );\n };\n\n return (\n <>\n \n {renderContent()}\n \n );\n};\n","import Bottle from 'bottlejs';\nimport { ConnectDecorator } from '../../container/types';\nimport { filterDomains, listDomains } from '../reducers/domainsList';\nimport { DomainSelector } from '../DomainSelector';\nimport { ManageDomains } from '../ManageDomains';\nimport { editDomainRedirects } from '../reducers/domainRedirects';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator) => {\n // Components\n bottle.serviceFactory('DomainSelector', () => DomainSelector);\n bottle.decorator('DomainSelector', connect([ 'domainsList' ], [ 'listDomains' ]));\n\n bottle.serviceFactory('ManageDomains', () => ManageDomains);\n bottle.decorator('ManageDomains', connect(\n [ 'domainsList' ],\n [ 'listDomains', 'filterDomains', 'editDomainRedirects' ],\n ));\n\n // Actions\n bottle.serviceFactory('listDomains', listDomains, 'buildShlinkApiClient');\n bottle.serviceFactory('filterDomains', () => filterDomains);\n bottle.serviceFactory('editDomainRedirects', editDomainRedirects, 'buildShlinkApiClient');\n};\n\nexport default provideServices;\n","import { Action } from 'redux';\nimport { buildActionCreator, buildReducer } from '../../utils/helpers/redux';\n\n/* eslint-disable padding-line-between-statements */\nexport const APP_UPDATE_AVAILABLE = 'shlink/appUpdates/APP_UPDATE_AVAILABLE';\nexport const RESET_APP_UPDATE = 'shlink/appUpdates/RESET_APP_UPDATE';\n/* eslint-enable padding-line-between-statements */\n\nconst initialState = false;\n\nexport default buildReducer>({\n [APP_UPDATE_AVAILABLE]: () => true,\n [RESET_APP_UPDATE]: () => false,\n}, initialState);\n\nexport const appUpdateAvailable = buildActionCreator(APP_UPDATE_AVAILABLE);\n\nexport const resetAppUpdate = buildActionCreator(RESET_APP_UPDATE);\n","import { FC, MouseEventHandler } from 'react';\nimport { Alert, Button } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSyncAlt as reloadIcon } from '@fortawesome/free-solid-svg-icons';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport { useToggle } from '../utils/helpers/hooks';\nimport './AppUpdateBanner.scss';\n\ninterface AppUpdateBannerProps {\n isOpen: boolean;\n toggle: MouseEventHandler;\n forceUpdate: Function;\n}\n\nexport const AppUpdateBanner: FC = ({ isOpen, toggle, forceUpdate }) => {\n const [ isUpdating,, setUpdating ] = useToggle();\n const update = () => {\n setUpdating();\n forceUpdate();\n };\n\n return (\n \n

This app has just been updated!

\n

\n Restart it to enjoy the new features.\n \n

\n
\n );\n};\n","export const forceUpdate = async () => {\n const registrations = await navigator.serviceWorker?.getRegistrations() ?? [];\n\n for (const registration of registrations) {\n const { waiting } = registration;\n\n waiting?.addEventListener('statechange', (event) => {\n if ((event.target as any)?.state === 'activated') {\n window.location.reload();\n }\n });\n\n // The logic that makes skipWaiting to be called when this message is posted is in service-worker.ts\n waiting?.postMessage({ type: 'SKIP_WAITING' });\n }\n};\n","import { useEffect, FC } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport NotFound from '../common/NotFound';\nimport { ServersMap } from '../servers/data';\nimport { Settings } from '../settings/reducers/settings';\nimport { changeThemeInMarkup } from '../utils/theme';\nimport { AppUpdateBanner } from '../common/AppUpdateBanner';\nimport { forceUpdate } from '../utils/helpers/sw';\nimport './App.scss';\n\ninterface AppProps {\n fetchServers: () => void;\n servers: ServersMap;\n settings: Settings;\n resetAppUpdate: () => void;\n appUpdated: boolean;\n}\n\nconst App = (\n MainHeader: FC,\n Home: FC,\n MenuLayout: FC,\n CreateServer: FC,\n EditServer: FC,\n Settings: FC,\n ManageServers: FC,\n ShlinkVersionsContainer: FC,\n) => ({ fetchServers, servers, settings, appUpdated, resetAppUpdate }: AppProps) => {\n useEffect(() => {\n // On first load, try to fetch the remote servers if the list is empty\n if (Object.keys(servers).length === 0) {\n fetchServers();\n }\n\n changeThemeInMarkup(settings.ui?.theme ?? 'light');\n }, []);\n\n return (\n
\n \n\n
\n
\n \n \n \n \n \n \n \n \n \n
\n\n
\n \n
\n
\n\n \n
\n );\n};\n\nexport default App;\n","import Bottle from 'bottlejs';\nimport { appUpdateAvailable, resetAppUpdate } from '../reducers/appUpdates';\nimport App from '../App';\nimport { ConnectDecorator } from '../../container/types';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator) => {\n // Components\n bottle.serviceFactory(\n 'App',\n App,\n 'MainHeader',\n 'Home',\n 'MenuLayout',\n 'CreateServer',\n 'EditServer',\n 'Settings',\n 'ManageServers',\n 'ShlinkVersionsContainer',\n );\n bottle.decorator('App', connect([ 'servers', 'settings', 'appUpdated' ], [ 'fetchServers', 'resetAppUpdate' ]));\n\n // Actions\n bottle.serviceFactory('appUpdateAvailable', () => appUpdateAvailable);\n bottle.serviceFactory('resetAppUpdate', () => resetAppUpdate);\n};\n\nexport default provideServices;\n","import Bottle, { IContainer } from 'bottlejs';\nimport { withRouter } from 'react-router-dom';\nimport { connect as reduxConnect } from 'react-redux';\nimport { pick } from 'ramda';\nimport provideApiServices from '../api/services/provideServices';\nimport provideCommonServices from '../common/services/provideServices';\nimport provideShortUrlsServices from '../short-urls/services/provideServices';\nimport provideServersServices from '../servers/services/provideServices';\nimport provideVisitsServices from '../visits/services/provideServices';\nimport provideTagsServices from '../tags/services/provideServices';\nimport provideUtilsServices from '../utils/services/provideServices';\nimport provideMercureServices from '../mercure/services/provideServices';\nimport provideSettingsServices from '../settings/services/provideServices';\nimport provideDomainsServices from '../domains/services/provideServices';\nimport provideAppServices from '../app/services/provideServices';\nimport { ConnectDecorator } from './types';\n\ntype LazyActionMap = Record;\n\nconst bottle = new Bottle();\nconst { container } = bottle;\n\nconst lazyService = (container: IContainer, serviceName: string) =>\n (...args: any[]) => (container[serviceName] as T)(...args) as K;\nconst mapActionService = (map: LazyActionMap, actionName: string): LazyActionMap => ({\n ...map,\n // Wrap actual action service in a function so that it is lazily created the first time it is called\n [actionName]: lazyService(container, actionName),\n});\nconst connect: ConnectDecorator = (propsFromState: string[] | null, actionServiceNames: string[] = []) =>\n reduxConnect(\n propsFromState ? pick(propsFromState) : null,\n actionServiceNames.reduce(mapActionService, {}),\n );\n\nprovideAppServices(bottle, connect);\nprovideCommonServices(bottle, connect, withRouter);\nprovideApiServices(bottle);\nprovideShortUrlsServices(bottle, connect, withRouter);\nprovideServersServices(bottle, connect, withRouter);\nprovideTagsServices(bottle, connect);\nprovideVisitsServices(bottle, connect);\nprovideUtilsServices(bottle);\nprovideMercureServices(bottle);\nprovideSettingsServices(bottle, connect);\nprovideDomainsServices(bottle, connect);\n\nexport default container;\n","import { combineReducers } from 'redux';\nimport serversReducer from '../servers/reducers/servers';\nimport selectedServerReducer from '../servers/reducers/selectedServer';\nimport shortUrlsListReducer from '../short-urls/reducers/shortUrlsList';\nimport shortUrlsListParamsReducer from '../short-urls/reducers/shortUrlsListParams';\nimport shortUrlCreationReducer from '../short-urls/reducers/shortUrlCreation';\nimport shortUrlDeletionReducer from '../short-urls/reducers/shortUrlDeletion';\nimport shortUrlEditionReducer from '../short-urls/reducers/shortUrlEdition';\nimport shortUrlVisitsReducer from '../visits/reducers/shortUrlVisits';\nimport tagVisitsReducer from '../visits/reducers/tagVisits';\nimport orphanVisitsReducer from '../visits/reducers/orphanVisits';\nimport shortUrlDetailReducer from '../short-urls/reducers/shortUrlDetail';\nimport tagsListReducer from '../tags/reducers/tagsList';\nimport tagDeleteReducer from '../tags/reducers/tagDelete';\nimport tagEditReducer from '../tags/reducers/tagEdit';\nimport mercureInfoReducer from '../mercure/reducers/mercureInfo';\nimport settingsReducer from '../settings/reducers/settings';\nimport domainsListReducer from '../domains/reducers/domainsList';\nimport visitsOverviewReducer from '../visits/reducers/visitsOverview';\nimport appUpdatesReducer from '../app/reducers/appUpdates';\nimport { ShlinkState } from '../container/types';\n\nexport default combineReducers({\n servers: serversReducer,\n selectedServer: selectedServerReducer,\n shortUrlsList: shortUrlsListReducer,\n shortUrlsListParams: shortUrlsListParamsReducer,\n shortUrlCreationResult: shortUrlCreationReducer,\n shortUrlDeletion: shortUrlDeletionReducer,\n shortUrlEdition: shortUrlEditionReducer,\n shortUrlVisits: shortUrlVisitsReducer,\n tagVisits: tagVisitsReducer,\n orphanVisits: orphanVisitsReducer,\n shortUrlDetail: shortUrlDetailReducer,\n tagsList: tagsListReducer,\n tagDelete: tagDeleteReducer,\n tagEdit: tagEditReducer,\n mercureInfo: mercureInfoReducer,\n settings: settingsReducer,\n domainsList: domainsListReducer,\n visitsOverview: visitsOverviewReducer,\n appUpdated: appUpdatesReducer,\n});\n","import ReduxThunk from 'redux-thunk';\nimport { applyMiddleware, compose, createStore } from 'redux';\nimport { save, load, RLSOptions } from 'redux-localstorage-simple';\nimport reducers from '../reducers';\n\nconst isProduction = process.env.NODE_ENV !== 'production';\nconst composeEnhancers: Function = !isProduction && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst localStorageConfig: RLSOptions = {\n states: [ 'settings', 'servers' ],\n namespace: 'shlink',\n namespaceSeparator: '.',\n debounce: 300,\n};\n\nconst store = createStore(reducers, load(localStorageConfig), composeEnhancers(\n applyMiddleware(save(localStorageConfig), ReduxThunk),\n));\n\nexport default store;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL ?? '', window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import L from 'leaflet';\nimport marker2x from 'leaflet/dist/images/marker-icon-2x.png';\nimport marker from 'leaflet/dist/images/marker-icon.png';\nimport markerShadow from 'leaflet/dist/images/marker-shadow.png';\n\nexport const fixLeafletIcons = () => {\n delete (L.Icon.Default.prototype as any)._getIconUrl;\n\n L.Icon.Default.mergeOptions({\n iconRetinaUrl: marker2x,\n iconUrl: marker,\n shadowUrl: markerShadow,\n });\n};\n","import { render } from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\nimport { homepage } from '../package.json';\nimport container from './container';\nimport store from './container/store';\nimport { fixLeafletIcons } from './utils/helpers/leaflet';\nimport { register as registerServiceWorker } from './serviceWorkerRegistration';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport 'leaflet/dist/leaflet.css';\nimport './index.scss';\n\n// This overwrites icons used for leaflet maps, fixing some issues caused by webpack while processing the CSS\nfixLeafletIcons();\n\nconst { App, ScrollToTop, ErrorHandler, appUpdateAvailable } = container;\n\nrender(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nregisterServiceWorker({\n onUpdate() {\n store.dispatch(appUpdateAvailable()); // eslint-disable-line @typescript-eslint/no-unsafe-call\n },\n});\n","import { FC } from 'react';\nimport { Card, Row } from 'reactstrap';\nimport classNames from 'classnames';\nimport { faCircleNotch as preloader } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\ntype MessageType = 'default' | 'error';\n\nconst getClassForType = (type: MessageType) => {\n const map: Record = {\n error: 'border-danger',\n default: '',\n };\n\n return map[type];\n};\nconst getTextClassForType = (type: MessageType) => {\n const map: Record = {\n error: 'text-danger',\n default: 'text-muted',\n };\n\n return map[type];\n};\n\nexport interface MessageProps {\n className?: string;\n loading?: boolean;\n fullWidth?: boolean;\n type?: MessageType;\n}\n\nconst Message: FC = ({ className, children, loading = false, type = 'default', fullWidth = false }) => {\n const classes = classNames({\n 'col-md-12': fullWidth,\n 'col-md-10 offset-md-1': !fullWidth,\n });\n\n return (\n \n
\n \n

\n {loading && }\n {loading && {children ?? 'Loading...'}}\n {!loading && children}\n

\n
\n
\n
\n );\n};\n\nexport default Message;\n","import { FC } from 'react';\nimport './NoMenuLayout.scss';\n\nconst NoMenuLayout: FC = ({ children }) =>
{children}
;\n\nexport default NoMenuLayout;\n","import { compare } from 'compare-versions';\nimport { identity, memoizeWith } from 'ramda';\nimport { Empty, hasValue } from '../utils';\n\ntype SemVerPatternFragment = `${bigint | '*'}`;\n\nexport type SemVerPattern = SemVerPatternFragment\n| `${SemVerPatternFragment}.${SemVerPatternFragment}`\n| `${SemVerPatternFragment}.${SemVerPatternFragment}.${SemVerPatternFragment}`;\n\nexport interface Versions {\n maxVersion?: SemVerPattern;\n minVersion?: SemVerPattern;\n}\n\nexport type SemVer = `${bigint}.${bigint}.${bigint}` | 'latest';\n\nexport const versionMatch = (versionToMatch: SemVer | Empty, { maxVersion, minVersion }: Versions): boolean => {\n if (!hasValue(versionToMatch)) {\n return false;\n }\n\n const matchesMinVersion = !minVersion || compare(versionToMatch, minVersion, '>=');\n const matchesMaxVersion = !maxVersion || compare(versionToMatch, maxVersion, '<=');\n\n return matchesMaxVersion && matchesMinVersion;\n};\n\nconst versionIsValidSemVer = memoizeWith(identity, (version: string): version is SemVer => {\n try {\n return compare(version, version, '=');\n } catch (e) {\n return false;\n }\n});\n\nexport const versionToPrintable = (version: string) => !versionIsValidSemVer(version) ? version : `v${version}`;\n\nexport const versionToSemVer = (defaultValue: SemVer = 'latest') =>\n (version: string): SemVer => versionIsValidSemVer(version) ? version : defaultValue;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/feature/reset-page/static/js/main.706c5543.chunk.js b/feature/reset-page/static/js/main.706c5543.chunk.js new file mode 100644 index 00000000..fed09cb5 --- /dev/null +++ b/feature/reset-page/static/js/main.706c5543.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{103:function(e,t,r){"use strict";r.d(t,"a",(function(){return s}));var n=r(3),c=r(0),a=r(1);function s(e){return function(t){return Object(a.useEffect)((function(){t.resetSelectedServer()}),[]),Object(c.jsx)(e,Object(n.a)({},t))}}},104:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"a",(function(){return c}));var n=function(e,t,r){var n=e.document,c=n.createElement("a");c.setAttribute("href",t),c.setAttribute("download",r),c.style.visibility="hidden",n.body.appendChild(c),c.click(),n.body.removeChild(c)},c=function(e,t,r){var c=new Blob([t],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(c);n(e,a,r)}},147:function(e){e.exports=JSON.parse('{"a":"/shlink-web-client/feature/reset-page"}')},150:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(0),c=r(46),a=function(e){var t=e.color,r=void 0===t?c.c:t,a=e.className;return Object(n.jsx)("svg",{className:a,viewBox:"0 0 512 512",version:"1.1",xmlns:"http://www.w3.org/2000/svg",children:Object(n.jsxs)("g",{fill:r,children:[Object(n.jsx)("path",{d:" M 23.71 85.08 C 17.22 49.81 49.44 14.86 85.08 18.12 C 118.83 19.21 145.72 53.33 139.45 86.37 C 155.64 102.30 171.32 118.83 187.87 134.36 C 198.32 111.73 208.84 89.12 219.57 66.62 C 226.05 53.84 243.47 48.74 255.73 56.27 C 263.76 62.10 270.34 69.69 277.25 76.75 C 286.28 86.61 285.72 102.89 276.31 112.31 C 223.38 165.37 170.38 218.37 117.35 271.34 C 107.72 280.99 91.01 281.25 81.11 271.86 C 74.39 264.94 66.82 258.69 61.24 250.77 C 53.72 238.52 58.85 221.07 71.64 214.62 C 94.11 203.87 116.72 193.38 139.33 182.91 C 123.81 166.36 107.30 150.68 91.37 134.49 C 60.20 140.28 27.37 116.78 23.71 85.08 Z"}),Object(n.jsx)("path",{d:" M 205.21 201.23 C 225.32 181.36 260.88 181.11 281.14 200.86 C 299.25 218.75 317.37 236.65 335.10 254.93 C 356.73 278.01 352.01 318.70 326.03 336.56 C 320.07 330.47 313.73 324.65 308.12 318.28 C 323.86 309.39 328.76 286.18 316.63 272.39 C 301.73 256.95 286.30 242.03 271.24 226.75 C 264.49 219.65 256.80 212.00 246.37 211.52 C 224.65 208.64 205.52 233.36 214.49 253.58 C 221.09 266.81 234.22 275.12 243.62 286.24 C 240.43 295.96 238.09 306.13 238.29 316.46 C 225.55 304.29 213.16 291.73 200.89 279.09 C 180.97 257.57 183.10 220.45 205.21 201.23 Z"}),Object(n.jsx)("path",{d:" M 273.90 352.07 C 252.28 328.99 256.98 288.31 282.96 270.46 C 288.93 276.54 295.26 282.36 300.88 288.72 C 285.14 297.62 280.23 320.82 292.38 334.61 C 307.27 350.05 322.70 364.96 337.75 380.25 C 344.51 387.35 352.20 395.00 362.64 395.48 C 384.35 398.37 403.49 373.64 394.51 353.42 C 387.92 340.18 374.78 331.88 365.38 320.76 C 368.56 311.04 370.91 300.86 370.71 290.54 C 383.45 302.70 395.84 315.27 408.11 327.91 C 428.03 349.43 425.90 386.55 403.78 405.77 C 383.68 425.64 348.13 425.89 327.86 406.14 C 309.75 388.25 291.60 370.37 273.90 352.07 Z"}),Object(n.jsx)("path",{d:" M 422.11 403.83 C 431.96 394.07 441.60 384.06 451.66 374.51 C 460.90 383.74 471.89 392.70 474.89 406.11 C 480.16 429.97 484.08 454.13 488.76 478.12 C 490.00 483.41 484.47 488.29 479.35 486.63 C 454.66 481.52 429.55 478.12 405.14 471.84 C 393.17 467.97 385.20 457.75 376.55 449.27 C 386.39 439.49 396.13 429.60 406.06 419.91 C 416.37 433.45 435.74 414.00 422.11 403.83 Z"})]})})}},151:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(3),c=r(0),a=r(1),s=r(54),i=r(30),o=r(60);function l(e,t){return function(r){var l=r.selectServer,u=r.selectedServer,d=r.match;return Object(a.useEffect)((function(){l(d.params.serverId)}),[d.params.serverId]),u?Object(i.c)(u)?Object(c.jsx)(t,{}):Object(c.jsx)(e,Object(n.a)({},r)):Object(c.jsx)(o.a,{children:Object(c.jsx)(s.a,{loading:!0})})}}},153:function(e,t,r){"use strict";var n=r(0),c=r(22),a=r(32);t.a=function(e){var t=e.to,r=void 0===t?"/":t,s=e.children,i=void 0===s?"Home":s;return Object(n.jsx)("div",{className:"home",children:Object(n.jsxs)(a.a,{className:"p-4",children:[Object(n.jsx)("h2",{children:"Oops! We could not find requested route."}),Object(n.jsx)("p",{children:"Use your browser's back button to navigate to the page you have previously come from, or just press this button."}),Object(n.jsx)("br",{}),Object(n.jsx)(c.b,{to:r,className:"btn btn-outline-primary btn-lg",children:i})]})})}},165:function(e,t,r){"use strict";var n=r(0),c=r(554),a=r(555),s=r(22),i=r(8),o=r.n(i),l=r(12),u=r(11),d=function(e){var t=e.id,r=e.name;return Object(n.jsxs)(c.a,{tag:s.b,to:"/server/".concat(t),className:"servers-list__server-item",children:[r,Object(n.jsx)(l.a,{icon:u.j,className:"servers-list__server-item-icon"})]})};t.a=function(e){var t=e.servers,r=e.children,c=e.embedded,s=void 0!==c&&c;return Object(n.jsxs)(n.Fragment,{children:[r&&Object(n.jsx)("h5",{className:"mb-md-3",children:r}),t.length>0&&Object(n.jsx)(a.a,{className:o()("servers-list__list-group",{"servers-list__list-group--embedded":s}),children:t.map((function(e){var t=e.id,r=e.name;return Object(n.jsx)(d,{id:t,name:r},t)}))})]})}},25:function(e,t,r){"use strict";r.d(t,"b",(function(){return i})),r.d(t,"d",(function(){return o})),r.d(t,"c",(function(){return l})),r.d(t,"a",(function(){return u}));var n=r(9),c=r(1),a=r(279),s=r(51),i=function(e,t){return function(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,s=Object(c.useState)(r),i=Object(n.a)(s,2),o=i[0],l=i[1],u=Object(c.useRef)(void 0),d=function(){l(!r),u.current&&t(u.current),u.current=e((function(){return l(r)}),a)};return[o,d]}},o=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Object(c.useState)(e),r=Object(n.a)(t,2),a=r[0],s=r[1];return[a,function(){return s(!a)},function(){return s(!0)},function(){return s(!1)}]},l=function(e,t){var r=function(e){return function(t){t.event.composedPath().some((function(e){var t=e.classList;return null===t||void 0===t?void 0:t.contains("visits-table")}))||document.querySelector(".modal")||e()}};return Object(a.useSwipeable)({delta:40,onSwipedLeft:r(t),onSwipedRight:r(e)})},u=function(e,t){var r=Object(c.useState)(t),a=Object(n.a)(r,2),i=a[0],o=a[1];return[i,function(t){var r=window,n=r.location,c=r.history,a=Object(s.a)(n.search);a[e]=t,c.pushState(null,"","".concat(n.pathname,"?").concat(Object(s.b)(a))),o(t)}]}},276:function(e,t,r){"use strict";(function(e){var n=r(277),c=r.n(n),a=r(278),s=r(309),i=r(310),o=r(311),l=r(312),u=r(280),d=r(307),j=r(103),b=r(282);t.a=function(t,r,n){t.constant("window",e.window),t.constant("console",e.console),t.constant("axios",c.a),t.service("ImageDownloader",b.a,"axios","window"),t.serviceFactory("ScrollToTop",a.a),t.decorator("ScrollToTop",n),t.serviceFactory("MainHeader",s.a,"ServersDropdown"),t.decorator("MainHeader",n),t.serviceFactory("Home",(function(){return i.a})),t.decorator("Home",j.a),t.decorator("Home",n),t.decorator("Home",r(["servers"],["resetSelectedServer"])),t.serviceFactory("MenuLayout",o.a,"TagsList","ShortUrlsList","AsideMenu","CreateShortUrl","ShortUrlVisits","TagVisits","OrphanVisits","ServerError","Overview","EditShortUrl","ManageDomains"),t.decorator("MenuLayout",r(["selectedServer","shortUrlsListParams"],["selectServer"])),t.decorator("MenuLayout",n),t.serviceFactory("AsideMenu",l.a,"DeleteServerButton"),t.serviceFactory("ShlinkVersionsContainer",(function(){return d.a})),t.decorator("ShlinkVersionsContainer",r(["selectedServer"])),t.serviceFactory("ErrorHandler",u.a,"window","console")}}).call(this,r(49))},278:function(e,t,r){"use strict";var n=r(0),c=r(1);t.a=function(){return function(e){var t=e.location,r=e.children;return Object(c.useEffect)((function(){scrollTo(0,0)}),[t]),Object(n.jsx)(n.Fragment,{children:r})}}},280:function(e,t,r){"use strict";var n=r(19),c=r(27),a=r(37),s=r(36),i=r(0),o=r(1),l=r(216),u=r(32);t.a=function(e,t){var r=e.location,d=t.error;return function(e){Object(a.a)(o,e);var t=Object(s.a)(o);function o(e){var r;return Object(n.a)(this,o),(r=t.call(this,e)).state={hasError:!1},r}return Object(c.a)(o,[{key:"componentDidCatch",value:function(e){d(e)}},{key:"render",value:function(){return this.state.hasError?Object(i.jsx)("div",{className:"home",children:Object(i.jsxs)(u.a,{className:"p-4",children:[Object(i.jsx)("h1",{children:"Oops! This is awkward :S"}),Object(i.jsx)("p",{children:"It seems that something went wrong. Try refreshing the page or just click this button."}),Object(i.jsx)("br",{}),Object(i.jsx)(l.a,{outline:!0,color:"primary",onClick:function(){return r.reload()},children:"Take me back"})]})}):this.props.children}}],[{key:"getDerivedStateFromError",value:function(){return{hasError:!0}}}]),o}(o.Component)}},282:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(6),c=r.n(n),a=r(15),s=r(19),i=r(27),o=r(104),l=function(){function e(t,r){Object(s.a)(this,e),this.axios=t,this.window=r}return Object(i.a)(e,[{key:"saveImage",value:function(){var e=Object(a.a)(c.a.mark((function e(t,r){var n,a,s;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.axios.get(t,{responseType:"blob"});case 2:n=e.sent,a=n.data,s=URL.createObjectURL(a),Object(o.b)(this.window,s,r);case 6:case"end":return e.stop()}}),e,this)})));return function(t,r){return e.apply(this,arguments)}}()}]),e}()},298:function(e,t,r){"use strict";(function(e){var n=r(25),c=r(299),a=r(300);t.a=function(t){t.constant("localStorage",e.localStorage),t.service("Storage",c.a,"localStorage"),t.service("ColorGenerator",a.a,"Storage"),t.constant("setTimeout",e.setTimeout),t.constant("clearTimeout",e.clearTimeout),t.serviceFactory("useStateFlagTimeout",n.b,"setTimeout","clearTimeout")}}).call(this,r(49))},299:function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(19),c=function(e){return"".concat("shlink",".").concat(e)},a=function e(t){var r=this;Object(n.a)(this,e),this.localStorage=t,this.get=function(e){var t=r.localStorage.getItem(c(e));return t?JSON.parse(t):void 0},this.set=function(e,t){return r.localStorage.setItem(c(e),JSON.stringify(t))}}},30:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"e",(function(){return c})),r.d(t,"d",(function(){return a})),r.d(t,"c",(function(){return s})),r.d(t,"a",(function(){return i}));var n=function(e){return!(null===e||void 0===e||!e.url)&&!(null===e||void 0===e||!e.apiKey)},c=function(e){return!(null===e||void 0===e||!e.hasOwnProperty("id"))},a=function(e){return!(null===e||void 0===e||!e.hasOwnProperty("version"))},s=function(e){return!(null===e||void 0===e||!e.hasOwnProperty("serverNotFound"))},i=function(e){return c(e)?e.id:""}},300:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(19),c=r(31),a=Math.floor,s=Math.random,i="0123456789ABCDEF",o=function(e){return e.toLowerCase().trim()},l=function e(t){var r,l=this;Object(n.a)(this,e),this.storage=t,this.colors=void 0,this.getColorForKey=function(e){var t=o(e),r=l.colors[t];return r||l.setColorForKey(t,"#".concat(Object(c.e)(6,(function(){return i[a(s()*i.length)]})).join("")))},this.setColorForKey=function(e,t){var r=o(e);return l.colors[r]=t,l.storage.set("colors",l.colors),t},this.colors=null!==(r=this.storage.get("colors"))&&void 0!==r?r:{}}},307:function(e,t,r){"use strict";var n=r(0),c=r(8),a=r.n(c),s=r(30),i=r(542),o=r(52),l=r(70),u=Object(i.a)(Object(l.c)(),l.b),d=function(e){var t=e.project,r=e.version;return Object(n.jsx)(o.a,{href:"https://github.com/shlinkio/".concat(t,"/releases/").concat(r),className:"text-muted",children:Object(n.jsx)("b",{children:r})})},j=function(e){var t=e.selectedServer,r=e.clientVersion,c=u(void 0===r?"%_VERSION_%":r);return Object(n.jsxs)("small",{className:"text-muted",children:[Object(s.d)(t)&&Object(n.jsxs)(n.Fragment,{children:["Server: ",Object(n.jsx)(d,{project:"shlink",version:t.printableVersion})," - "]}),"Client: ",Object(n.jsx)(d,{project:"shlink-web-client",version:c})]})};t.a=function(e){var t=e.selectedServer,r=a()("text-center",{"shlink-versions-container--with-server":Object(s.d)(t)});return Object(n.jsx)("div",{className:r,children:Object(n.jsx)(j,{selectedServer:t})})}},309:function(e,t,r){"use strict";var n=r(9),c=r(0),a=r(11),s=r(12),i=r(1),o=r(22),l=r(547),u=r(548),d=r(549),j=r(550),b=r(551),h=r(552),O=r(553),v=r(8),f=r.n(v),m=r(25),x=r(150);t.a=function(e){return function(t){var r=t.location,v=Object(m.d)(),g=Object(n.a)(v,4),p=g[0],y=g[1],S=g[3],C=r.pathname;Object(i.useEffect)(S,[r]);var N="/settings",w=f()("main-header__toggle-icon",{"main-header__toggle-icon--opened":p});return Object(c.jsxs)(l.a,{color:"primary",dark:!0,fixed:"top",className:"main-header",expand:"md",children:[Object(c.jsxs)(u.a,{tag:o.b,to:"/",children:[Object(c.jsx)(x.a,{className:"main-header__brand-logo",color:"white"})," Shlink"]}),Object(c.jsx)(d.a,{onClick:y,children:Object(c.jsx)(s.a,{icon:a.i,className:w})}),Object(c.jsx)(j.a,{navbar:!0,isOpen:p,children:Object(c.jsxs)(b.a,{navbar:!0,className:"ml-auto",children:[Object(c.jsx)(h.a,{children:Object(c.jsxs)(O.a,{tag:o.b,to:N,active:C===N,children:[Object(c.jsx)(s.a,{icon:a.l}),"\xa0 Settings"]})}),Object(c.jsx)(e,{})]})})]})}}},31:function(e,t,r){"use strict";r.d(t,"e",(function(){return i})),r.d(t,"c",(function(){return o})),r.d(t,"b",(function(){return l})),r.d(t,"d",(function(){return u})),r.d(t,"a",(function(){return d}));var n=r(543),c=r(212),a=r(317),s=r(542),i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Object(n.a)(r,e+1).map(t)},o=function(e){return!Object(c.a)(e)&&!Object(a.a)(e)},l=function(e){return Object(s.a)((function(e){return e.preventDefault()}),e)},u=function(e){return Object(a.a)(e)?null:e},d=function(e){return"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1))}},310:function(e,t,r){"use strict";var n=r(0),c=r(1),a=r(556),s=r(317),i=r(22),o=r(315),l=r(538),u=r(52),d=r(12),j=r(11),b=r(165),h=r(150);t.a=function(e){var t=e.servers,r=e.history,O=Object(a.a)(t),v=!Object(s.a)(O);return Object(c.useEffect)((function(){var e=O.find((function(e){return e.autoConnect}));e&&r.push("/server/".concat(e.id))}),[]),Object(n.jsx)("div",{className:"home",children:Object(n.jsx)(o.a,{className:"home__main-card",children:Object(n.jsxs)(l.a,{noGutters:!0,children:[Object(n.jsx)("div",{className:"col-md-5 d-none d-md-block",children:Object(n.jsx)("div",{className:"p-4",children:Object(n.jsx)(h.a,{})})}),Object(n.jsxs)("div",{className:"col-md-7 home__servers-container",children:[Object(n.jsx)("div",{className:"p-4",children:Object(n.jsx)("h1",{className:"home__title",children:"Welcome!"})}),Object(n.jsx)(b.a,{embedded:!0,servers:O,children:!v&&Object(n.jsxs)("div",{className:"p-4 text-center",children:[Object(n.jsx)("p",{className:"mb-5",children:"This application will help you manage your Shlink servers."}),Object(n.jsx)("p",{children:Object(n.jsxs)(i.b,{to:"/server/create",className:"btn btn-outline-primary btn-lg mr-2",children:[Object(n.jsx)(d.a,{icon:j.E})," ",Object(n.jsx)("span",{className:"ml-1",children:"Add a server"})]})}),Object(n.jsx)("p",{className:"mb-0 mt-5",children:Object(n.jsx)(u.a,{href:"https://shlink.io/documentation",children:Object(n.jsxs)("small",{children:[Object(n.jsx)("span",{className:"mr-1",children:"Learn more about Shlink"})," ",Object(n.jsx)(d.a,{icon:j.o})]})})})]})})]})]})})})}},311:function(e,t,r){"use strict";var n=r(3),c=r(9),a=r(0),s=r(1),i=r(42),o=r(11),l=r(12),u=r(8),d=r.n(u),j=r(151),b=r(25),h=r(43),O=r(30),v=r(153);t.a=function(e,t,r,u,f,m,x,g,p,y,S){return Object(j.a)((function(j){var C=j.location,N=j.selectedServer,w=Object(b.d)(),k=Object(c.a)(w,4),_=k[0],U=k[1],T=k[2],R=k[3];if(Object(s.useEffect)((function(){return R()}),[C]),!Object(O.d)(N))return Object(a.jsx)(g,{});var E=Object(h.e)(N),D=Object(h.c)(N),L=d()("menu-layout__burger-icon",{"menu-layout__burger-icon--active":_}),V=Object(b.c)(T,R);return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(l.a,{icon:o.c,className:L,onClick:U}),Object(a.jsx)("div",Object(n.a)(Object(n.a)({},V),{},{className:"menu-layout__swipeable",children:Object(a.jsxs)("div",{className:"menu-layout__swipeable-inner",children:[Object(a.jsx)(r,{selectedServer:N,showOnMobile:_}),Object(a.jsx)("div",{className:"menu-layout__container",onClick:function(){return R()},children:Object(a.jsx)("div",{className:"container-xl",children:Object(a.jsxs)(i.d,{children:[Object(a.jsx)(i.a,{exact:!0,from:"/server/:serverId",to:"/server/:serverId/overview"}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/overview",component:p}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/list-short-urls/:page",component:t}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/create-short-url",component:u}),Object(a.jsx)(i.b,{path:"/server/:serverId/short-code/:shortCode/visits",component:f}),Object(a.jsx)(i.b,{path:"/server/:serverId/short-code/:shortCode/edit",component:y}),Object(a.jsx)(i.b,{path:"/server/:serverId/tag/:tag/visits",component:m}),E&&Object(a.jsx)(i.b,{path:"/server/:serverId/orphan-visits",component:x}),Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/manage-tags",component:e}),D&&Object(a.jsx)(i.b,{exact:!0,path:"/server/:serverId/manage-domains",component:S}),Object(a.jsx)(i.b,{render:function(){return Object(a.jsx)(v.a,{to:"/server/".concat(N.id,"/list-short-urls/1"),children:"List short URLs"})}})]})})})]})}))]})}),g)}},312:function(e,t,r){"use strict";var n=r(3),c=r(39),a=r(0),s=r(11),i=r(12),o=r(22),l=r(8),u=r.n(l),d=r(30),j=r(43),b=function(e){var t=e.children,r=e.to,s=e.className,i=Object(c.a)(e,["children","to","className"]);return Object(a.jsx)(o.c,Object(n.a)(Object(n.a)({className:u()("aside-menu__item",s),activeClassName:"aside-menu__item--selected",to:r},i),{},{children:t}))};t.a=function(e){return function(t){var r=t.selectedServer,n=t.showOnMobile,c=void 0!==n&&n,o=Object(d.e)(r),l=o?r.id:"",h=Object(j.c)(r),O=u()("aside-menu",{"aside-menu--hidden":!c}),v=function(e){return"/server/".concat(l).concat(e)};return Object(a.jsx)("aside",{className:O,children:Object(a.jsxs)("nav",{className:"nav flex-column aside-menu__nav",children:[Object(a.jsxs)(b,{to:v("/overview"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.t}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Overview"})]}),Object(a.jsxs)(b,{to:v("/list-short-urls/1"),isActive:function(e,t){return null!==t.pathname.match("/list-short-urls")},children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.w}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"List short URLs"})]}),Object(a.jsxs)(b,{to:v("/create-short-url"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.v,flip:"horizontal"}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Create short URL"})]}),Object(a.jsxs)(b,{to:v("/manage-tags"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.N}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Manage tags"})]}),h&&Object(a.jsxs)(b,{to:v("/manage-domains"),children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.s}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Manage domains"})]}),Object(a.jsxs)(b,{to:v("/edit"),className:"aside-menu__item--push",children:[Object(a.jsx)(i.a,{fixedWidth:!0,icon:s.B}),Object(a.jsx)("span",{className:"aside-menu__item-text",children:"Edit this server"})]}),o&&Object(a.jsx)(e,{className:"aside-menu__item aside-menu__item--danger",textClassName:"aside-menu__item-text",server:r})]})})}}},318:function(e,t,r){e.exports=r(534)},32:function(e,t,r){"use strict";r.d(t,"a",(function(){return l}));var n=r(3),c=r(39),a=r(0),s=r(315),i=r(540),o=r(541),l=function(e){var t=e.title,r=e.children,l=e.bodyClassName,u=Object(c.a)(e,["title","children","bodyClassName"]);return Object(a.jsxs)(s.a,Object(n.a)(Object(n.a)({},u),{},{children:[t&&Object(a.jsx)(i.a,{children:t}),Object(a.jsx)(o.a,{className:l,children:r})]}))}},403:function(e,t){},405:function(e,t){},43:function(e,t,r){"use strict";r.d(t,"g",(function(){return s})),r.d(t,"i",(function(){return i})),r.d(t,"e",(function(){return o})),r.d(t,"f",(function(){return l})),r.d(t,"j",(function(){return u})),r.d(t,"a",(function(){return d})),r.d(t,"b",(function(){return j})),r.d(t,"h",(function(){return b})),r.d(t,"c",(function(){return h})),r.d(t,"d",(function(){return O}));var n=r(30),c=r(70),a=function(e){return function(t){return Object(n.d)(t)&&Object(c.a)(t.version,e)}},s=a({minVersion:"2.5.0"}),i=a({minVersion:"2.6.0"}),o=i,l=i,u=i,d=a({minVersion:"2.7.0"}),j=d,b=a({minVersion:"2.8.0"}),h=b,O=a({minVersion:"2.9.0"})},46:function(e,t,r){"use strict";r.d(t,"c",(function(){return n})),r.d(t,"d",(function(){return c})),r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return s})),r.d(t,"f",(function(){return i})),r.d(t,"e",(function(){return o})),r.d(t,"g",(function(){return l})),r.d(t,"h",(function(){return u}));var n="#4696e5",c="rgba(70, 150, 229, 0.4)",a="#f77f28",s="rgba(247, 127, 40, 0.4)",i="white",o="#161b22",l=function(e){var t,r=document.getElementsByTagName("html");null===r||void 0===r||null===(t=r[0])||void 0===t||t.setAttribute("data-theme",e)},u=function(){var e,t=document.getElementsByTagName("html");return"dark"===(null===t||void 0===t||null===(e=t[0])||void 0===e?void 0:e.getAttribute("data-theme"))}},51:function(e,t,r){"use strict";r.d(t,"a",(function(){return a})),r.d(t,"b",(function(){return s}));var n=r(211),c=r.n(n),a=function(e){return c.a.parse(e,{ignoreQueryPrefix:!0})},s=function(e){return c.a.stringify(e,{arrayFormat:"brackets"})}},534:function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"processStatsFromVisits",(function(){return Ra})),r.d(n,"normalizeVisits",(function(){return Ea}));var c,a=r(0),s=r(48),i=r(163),o=r(22),l=r(147),u=r(10),d=r(3),j=r(275),b=r(42),h=r(605),O=r(610),v=r(30),f=r(6),m=r.n(f),x=r(15),g=r(19),p=r(308),y=r(212),S=r(317),C=r(51),N=function(e,t){return e?"".concat(e,"/rest/v").concat(t):""},w=Object(p.a)(y.a),k=function e(t,r,n){var c=this;Object(g.a)(this,e),this.axios=t,this.baseUrl=r,this.apiKey=n,this.apiVersion=void 0,this.listShortUrls=Object(x.a)(m.a.mark((function e(){var t,r=arguments;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},e.abrupt("return",c.performRequest("/short-urls","GET",t).then((function(e){return e.data.shortUrls})));case 2:case"end":return e.stop()}}),e)}))),this.createShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t){var r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Object(p.a)((function(e){return Object(S.a)(e)||Object(y.a)(e)}),t),e.abrupt("return",c.performRequest("/short-urls","POST",{},r).then((function(e){return e.data})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.getShortUrlVisits=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t,"/visits"),"GET",r).then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.getTagVisits=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags/".concat(t,"/visits"),"GET",r).then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.getOrphanVisits=function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/visits/orphan","GET",t).then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.getVisitsOverview=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/visits","GET").then((function(e){return e.data.visits})));case 1:case"end":return e.stop()}}),e)}))),this.getShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t),"GET",{domain:r}).then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.deleteShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t),"DELETE",{domain:r}).then((function(){})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.updateShortUrlTags=function(){var e=Object(x.a)(m.a.mark((function e(t,r,n){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t,"/tags"),"PUT",{domain:r},{tags:n}).then((function(e){return e.data.tags})));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),this.updateShortUrl=function(){var e=Object(x.a)(m.a.mark((function e(t,r,n){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/short-urls/".concat(t),"PATCH",{domain:r},n).then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),this.listTags=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags","GET",{withStats:"true"}).then((function(e){return e.data.tags})).then((function(e){return{tags:e.data,stats:e.stats}})));case 1:case"end":return e.stop()}}),e)}))),this.deleteTags=function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags","DELETE",{tags:t}).then((function(){return{tags:t}})));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.editTag=function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/tags","PUT",{},{oldName:t,newName:r}).then((function(){return{oldName:t,newName:r}})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),this.health=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/health","GET").then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)}))),this.mercureInfo=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/mercure-info","GET").then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)}))),this.listDomains=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/domains","GET").then((function(e){return e.data.domains.data})));case 1:case"end":return e.stop()}}),e)}))),this.editDomainRedirects=function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",c.performRequest("/domains/redirects","PATCH",{},t).then((function(e){return e.data})));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),this.performRequest=function(){var e=Object(x.a)(m.a.mark((function e(t){var r,n,a,s,i=arguments;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=i.length>1&&void 0!==i[1]?i[1]:"GET",n=i.length>2&&void 0!==i[2]?i[2]:{},a=i.length>3&&void 0!==i[3]?i[3]:{},e.prev=3,e.next=6,c.axios({method:r,url:"".concat(N(c.baseUrl,c.apiVersion)).concat(t),headers:{"X-Api-Key":c.apiKey},params:w(n),data:a,paramsSerializer:C.b});case 6:return e.abrupt("return",e.sent);case 9:if(e.prev=9,e.t0=e.catch(3),s=e.t0.response,!s&&2!==c.apiVersion){e.next=15;break}throw e.t0;case 15:return c.apiVersion=c.apiVersion-1,e.next=18,c.performRequest(t,r,n,a);case 18:return e.abrupt("return",e.sent);case 19:case"end":return e.stop()}}),e,null,[[3,9]])})));return function(t){return e.apply(this,arguments)}}(),this.apiVersion=2},_={},U=function(e){return function(t){var r,n=function(e){return"function"===typeof e}(t)?(r=t,Object(O.a)("selectedServer",r())):t;if(!Object(v.b)(n))throw new Error("There's no selected server or it is not found");var c=n.url,a=n.apiKey,s="".concat(c,"_").concat(a);return _[s]||(_[s]=new k(e,c,a)),_[s]}},T=function(e){e.serviceFactory("buildShlinkApiClient",U,"axios")},R=r(276),E=r(9),D=r(39),L=r(11),V=r(12),I=r(542),F=r(359),A=r(1),M=r(8),G=r.n(M),P=function(e){var t=e.onChange,r=e.className,n=e.large,s=void 0===n||n,i=e.noBorder,o=void 0!==i&&i,l=e.initialValue,u=void 0===l?"":l,d=Object(A.useState)(u),j=Object(E.a)(d,2),b=j[0],h=j[1],O=function(){c&&clearTimeout(c),c=null},v=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500;h(e),O(),c=setTimeout((function(){t(e),O()}),r)};return Object(a.jsxs)("div",{className:G()("search-field",r),children:[Object(a.jsx)("input",{type:"text",className:G()("form-control search-field__input",{"form-control-lg":s,"search-field__input--no-border":o}),placeholder:"Search...",value:b,onChange:function(e){return v(e.target.value)}}),Object(a.jsx)(V.a,{icon:L.H,className:"search-field__icon"}),Object(a.jsx)("div",{className:"close search-field__close",hidden:""===b,id:"search-field__close",onClick:function(){return v("",0)},children:"\xd7"})]})},B=function(e){var t=e.text,r=e.children,n=e.clearable,c=e.className,s=void 0===c?"":c,i=e.colorGenerator,o=e.onClick,l=e.onClose;return Object(a.jsxs)("span",{className:"badge tag ".concat(s),style:{backgroundColor:i.getColorForKey(t),cursor:n||!o?"auto":"pointer"},onClick:o,children:[null!==r&&void 0!==r?r:t,n&&Object(a.jsx)("span",{className:"close tag__close-selected-tag",onClick:l,children:"\xd7"})]})},H=r(560),W=r(130),q=r(557),z=r(558),Q=r(25),K=function(e){var t=e.text,r=e.disabled,n=void 0!==r&&r,c=e.className,s=void 0===c?"":c,i=e.children,o=e.dropdownClassName,l=e.right,u=void 0!==l&&l,d=e.minWidth,j=Object(Q.d)(),b=Object(E.a)(j,2),h=b[0],O=b[1],v="dropdown-btn__toggle btn-block ".concat(s),f={minWidth:d&&"".concat(d,"px")};return Object(a.jsxs)(W.a,{isOpen:h,toggle:O,disabled:n,className:o,children:[Object(a.jsx)(q.a,{caret:!0,className:v,color:"primary",children:t}),Object(a.jsx)(z.a,{className:"w-100",right:u,style:f,children:i})]})},J=r(91),Z=r(363),Y=r(199),X=r(306),$=r(536),ee=r(559),te=(r(535),r(360)),re=r(361),ne=r(362),ce=function(e){return"string"!==typeof e},ae=function(e,t){return e&&ce(e)?t?Object($.default)(e,t):Object(ee.a)(e):e},se=function(e){return ae(e,void 0)},ie=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"yyyy-MM-dd";return function(t){return ae(t,e)}}(),oe=function(e){return ce(e)?e:Object(F.default)(e)},le=function(e,t,r){return!t&&r?Object(te.default)(oe(e),oe(r)):t&&!r?Object(re.default)(oe(e),oe(t)):!t||!r||Object(ne.default)(oe(e),{start:oe(t),end:oe(r)})},ue=function(e){return void 0===e||Object(S.a)(Object(X.a)(Boolean,e))},de=function(e){return"string"===typeof e},je={today:"Today",yesterday:"Yesterday",last7Days:"Last 7 days",last30Days:"Last 30 days",last90Days:"Last 90 days",last180days:"Last 180 days",last365Days:"Last 365 days",all:void 0},be=Object.keys(je).filter((function(e){return"all"!==e})),he=function(e){if(e&&"all"!==e)return de(e)?je[e]:function(e){if(e&&!ue(e))return e.startDate&&!e.endDate?"Since ".concat(ie(e.startDate)):!e.startDate&&e.endDate?"Until ".concat(ie(e.endDate)):"".concat(ie(e.startDate)," - ").concat(ie(e.endDate))}(e)},Oe=function(e){return Object(J.default)(Object(Z.default)(new Date,e))},ve=function(e){return{startDate:e,endDate:Object(Y.default)(new Date)}},fe=function(e){if(!e||"all"===e)return{};switch(e){case"today":return ve(Object(J.default)(new Date));case"yesterday":return{startDate:Oe(1),endDate:Object(Y.default)(Object(Z.default)(new Date,1))};case"last7Days":return ve(Oe(7));case"last30Days":return ve(Oe(30));case"last90Days":return ve(Oe(90));case"last180days":return ve(Oe(180));case"last365Days":return ve(Oe(365))}return{}},me=r(284),xe=r.n(me),ge=r(78),pe=function(e){var t=e.className,r=e.isClearable,n=e.selected,c=!r||Object(y.a)(n),s=Object(A.useRef)();return Object(a.jsxs)("div",{className:"date-input-container",children:[Object(a.jsx)(xe.a,Object(d.a)(Object(d.a)({},e),{},{dateFormat:"yyyy-MM-dd",className:G()("date-input-container__input form-control",t),ref:s})),c&&Object(a.jsx)(V.a,{icon:ge.a,className:"date-input-container__icon",onClick:function(){var e;return null===(e=s.current)||void 0===e?void 0:e.input.focus()}})]})},ye=function(e){var t=e.startDate,r=void 0===t?null:t,n=e.endDate,c=void 0===n?null:n,s=e.disabled,i=void 0!==s&&s,o=e.onStartDateChange,l=e.onEndDateChange;return Object(a.jsxs)("div",{className:"row",children:[Object(a.jsx)("div",{className:"col-md-6",children:Object(a.jsx)(pe,{selected:r,placeholderText:"Since...",isClearable:!0,maxDate:null!==c&&void 0!==c?c:void 0,disabled:i,onChange:o})}),Object(a.jsx)("div",{className:"col-md-6",children:Object(a.jsx)(pe,{className:"mt-2 mt-md-0",selected:c,placeholderText:"Until...",isClearable:!0,minDate:null!==r&&void 0!==r?r:void 0,disabled:i,onChange:l})})]})},Se=function(e){var t=e.active,r=e.allText,n=e.onChange;return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(H.a,{active:"all"===t,onClick:function(){return n("all")},children:r}),Object(a.jsx)(H.a,{divider:!0}),be.map((function(e){return Object(a.jsx)(H.a,{active:t===e,onClick:function(){return n(e)},children:he(e)},e)}))]})},Ce=function(e){var t,r=e.onDatesChange,n=e.initialDateRange,c=e.defaultText,s=e.disabled,i=de(n),o=Object(A.useState)(i?n:void 0),l=Object(E.a)(o,2),u=l[0],j=l[1],b=Object(A.useState)(i?void 0:n),h=Object(E.a)(b,2),O=h[0],v=h[1],f=function(e){j(ue(e)?"all":void 0),v(e),r(e)};return Object(a.jsxs)(K,{disabled:s,text:null!==(t=he(null!==u&&void 0!==u?u:O))&&void 0!==t?t:c,children:[Object(a.jsx)(Se,{allText:c,active:u,onChange:function(e){j(e),v(void 0),r(fe(e))}}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{header:!0,children:"Custom:"}),Object(a.jsx)(H.a,{text:!0,children:Object(a.jsx)(ye,Object(d.a)(Object(d.a)({},O),{},{onStartDateChange:function(e){return f(Object(d.a)(Object(d.a)({},O),{},{startDate:e}))},onEndDateChange:function(e){return f(Object(d.a)(Object(d.a)({},O),{},{endDate:e}))}}))})]})},Ne=function(e){var t=e.history,r=e.location,n=e.match,c=Object(A.useMemo)((function(){return Object(C.a)(r.search)}),[r]);return[c,function(e){var r=Object(C.b)(Object(d.a)(Object(d.a)({},c),e)),a=Object(S.a)(r)?"":"?".concat(r);t.push("/server/".concat(null===n||void 0===n?void 0:n.params.serverId,"/list-short-urls/1").concat(a))}]},we=function(e){return e?Object(F.default)(e):null},ke=function(e){return function(t){t.shortUrlsListParams;var r,n=Object(D.a)(t,["shortUrlsListParams"]),c=Ne(n),s=Object(E.a)(c,2),i=s[0],o=i.search,l=i.tags,u=i.startDate,d=i.endDate,j=s[1],b=null!==(r=null===l||void 0===l?void 0:l.split(","))&&void 0!==r?r:[],h=Object(I.a)((function(e){var t,r,n=e.startDate,c=e.endDate;return{startDate:null!==(t=se(n))&&void 0!==t?t:void 0,endDate:null!==(r=se(c))&&void 0!==r?r:void 0}}),j),O=Object(I.a)((function(e){return Object(S.a)(e)?void 0:e}),(function(e){return j({search:e})})),v=Object(I.a)((function(e){return b.filter((function(t){return t!==e}))}),(function(e){return 0===e.length?void 0:e.join(",")}),(function(e){return j({tags:e})}));return Object(a.jsxs)("div",{className:"search-bar-container",children:[Object(a.jsx)(P,{initialValue:o,onChange:O}),Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsx)("div",{className:"row",children:Object(a.jsx)("div",{className:"col-lg-8 offset-lg-4 col-xl-6 offset-xl-6",children:Object(a.jsx)(Ce,{defaultText:"All short URLs",initialDateRange:{startDate:we(u),endDate:we(d)},onDatesChange:h})})})}),b.length>0&&Object(a.jsxs)("h4",{className:"search-bar__selected-tag mt-3",children:[Object(a.jsx)(V.a,{icon:L.N,className:"search-bar__tags-icon"}),"\xa0",b.map((function(t){return Object(a.jsx)(B,{colorGenerator:e,text:t,clearable:!0,onClose:function(){return v(t)}},t)}))]})]})}},_e=r(26),Ue=r(570),Te=r(61),Re=r(556),Ee=r(315),De=r(561),Le=r(562),Ve=function(e,t,r){return e!==t?"ASC":r?{ASC:"DESC",DESC:void 0}[r]:"ASC"},Ie=function(e,t){var r=t.field,n=t.dir;return r&&n?e.sort((function(e,t){var c="ASC"===n?1:-1,a="ASC"===n?-1:1;return e[r]>t[r]?c:a})):e};function Fe(e){var t,r=e.items,n=e.order,c=e.onChange,s=e.isButton,i=void 0===s||s,o=e.right,l=void 0!==o&&o,u=function(e){return function(){var t=Ve(e,n.field,n.dir);c(t?e:void 0,t)}};return Object(a.jsxs)(De.a,{children:[Object(a.jsxs)(q.a,{caret:!0,color:i?"primary":"link",className:G()({"dropdown-btn__toggle btn-block":i,"btn-sm p-0":!i}),children:[!i&&Object(a.jsx)(a.Fragment,{children:"Order by"}),i&&!n.field&&Object(a.jsx)(a.Fragment,{children:"Order by..."}),i&&n.field&&'Order by: "'.concat(r[n.field],'" - "').concat(null!==(t=n.dir)&&void 0!==t?t:"DESC",'"')]}),Object(a.jsxs)(z.a,{right:l,className:G()("w-100",{"sorting-dropdown__menu--link":!i}),children:[Object(Le.a)(r).map((function(e){var t=Object(E.a)(e,2),r=t[0],c=t[1];return Object(a.jsxs)(H.a,{active:n.field===r,onClick:u(r),children:[c,n.field===r&&Object(a.jsx)(V.a,{icon:"ASC"===n.dir?L.K:L.J,className:"sorting-dropdown__sort-icon"})]},r)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{disabled:!n.field,onClick:function(){return c()},children:Object(a.jsx)("i",{children:"Clear selection"})})]})]})}var Ae=r(285);function Me(e,t){var r=new Set;return function(n){var c=n.createNewVisits,s=n.loadMercureInfo,i=n.mercureInfo,o=i.interval;return Object(A.useEffect)((function(){var e=function(e,t,r,n){var c=e.mercureHubUrl,a=e.token,s=e.loading,i=e.error;if(!s&&!i&&c){var o=function(e){var t=e.data;return r(JSON.parse(t))},l=function(e){return 401===e.status&&n()},u=t.map((function(e){var t=new URL(c);t.searchParams.append("topic",e);var r=new Ae.EventSourcePolyfill(t,{headers:{Authorization:"Bearer ".concat(a)}});return r.onmessage=o,r.onerror=l,r}));return function(){return u.forEach((function(e){return e.close()}))}}}(i,t(n),(function(e){return o?r.add(e):c([e])}),s);if(!o)return e;var a=setInterval((function(){c(Object(_e.a)(r)),r.clear()}),1e3*o*60);return Object(I.a)((function(){return clearInterval(a)}),(function(){return null===e||void 0===e?void 0:e()}))}),[i]),Object(a.jsx)(e,Object(d.a)({},n))}}var Ge=function e(){Object(g.a)(this,e)};function Pe(e){var t=e.currentOrder,r=e.field,n=e.className,c=void 0===n?"ml-1":n;return t.dir&&t.field===r?Object(a.jsx)(V.a,{icon:"ASC"===t.dir?L.f:L.e,className:c}):null}Ge.visits="https://shlink.io/new-visit",Ge.orphanVisits="https://shlink.io/new-orphan-visit",Ge.shortUrlVisits=function(e){return"https://shlink.io/new-visit/".concat(e)};var Be,He,We,qe,ze,Qe,Ke,Je,Ze,Ye,Xe,$e,et,tt,rt,nt,ct,at,st,it=function(e,t){return function(r,n){var c=n.type,a=e[c],s=null!==r&&void 0!==r?r:t;return a?a(s,n):s}},ot=function(e){return function(){return{type:e}}},lt=r(563),ut=r(564),dt=r(286),jt=r(565),bt=function(e,t,r){return Object(y.a)(r)?e.shortCode===t&&!e.domain:e.shortCode===t&&e.domain===r},ht="shlink/visitCreation/CREATE_VISITS",Ot=function(e){return{type:ht,createdVisits:e}},vt=function(e){var t;return null===(t=e.response)||void 0===t?void 0:t.data},ft=function(e){return"INVALID_SHORTCODE_DELETION"===(null===e||void 0===e?void 0:e.type)},mt="shlink/deleteShortUrl/DELETE_SHORT_URL_START",xt="shlink/deleteShortUrl/DELETE_SHORT_URL_ERROR",gt="shlink/deleteShortUrl/SHORT_URL_DELETED",pt="shlink/deleteShortUrl/RESET_DELETE_SHORT_URL",yt={shortCode:"",loading:!1,error:!1},St=it((Be={},Object(u.a)(Be,mt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!0,error:!1})})),Object(u.a)(Be,xt,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{errorData:r,loading:!1,error:!0})})),Object(u.a)(Be,gt,(function(e,t){var r=t.shortCode;return Object(d.a)(Object(d.a)({},e),{},{shortCode:r,loading:!1,error:!1})})),Object(u.a)(Be,pt,(function(){return yt})),Be),yt),Ct=function(e){return function(t,r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c({type:mt}),s=e(a),i=s.deleteShortUrl,n.prev=2,n.next=5,i(t,r);case 5:c({type:gt,shortCode:t,domain:r}),n.next=12;break;case 8:throw n.prev=8,n.t0=n.catch(2),c({type:xt,errorData:vt(n.t0)}),n.t0;case 12:case"end":return n.stop()}}),n,null,[[2,8]])})));return function(e,t){return n.apply(this,arguments)}}()}},Nt=ot(pt),wt="shlink/createShortUrl/CREATE_SHORT_URL_START",kt="shlink/createShortUrl/CREATE_SHORT_URL_ERROR",_t="shlink/createShortUrl/CREATE_SHORT_URL",Ut="shlink/createShortUrl/RESET_CREATE_SHORT_URL",Tt={result:null,saving:!1,error:!1},Rt=it((He={},Object(u.a)(He,wt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{saving:!0,error:!1})})),Object(u.a)(He,kt,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{saving:!1,error:!0,errorData:r})})),Object(u.a)(He,_t,(function(e,t){return{result:t.result,saving:!1,error:!1}})),Object(u.a)(He,Ut,(function(){return Tt})),He),Tt),Et=function(e){return function(t){return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s,i;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n({type:wt}),a=e(c),s=a.createShortUrl,r.prev=2,r.next=5,s(t);case 5:i=r.sent,n({type:_t,result:i}),r.next=13;break;case 9:throw r.prev=9,r.t0=r.catch(2),n({type:kt,errorData:vt(r.t0)}),r.t0;case 13:case"end":return r.stop()}}),r,null,[[2,9]])})));return function(e,t){return r.apply(this,arguments)}}()}},Dt=ot(Ut),Lt=r(43),Vt="shlink/shortUrlEdition/EDIT_SHORT_URL_START",It="shlink/shortUrlEdition/EDIT_SHORT_URL_ERROR",Ft="shlink/shortUrlEdition/SHORT_URL_EDITED",At=it((We={},Object(u.a)(We,Vt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{saving:!0,error:!1})})),Object(u.a)(We,It,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{saving:!1,error:!0,errorData:r})})),Object(u.a)(We,Ft,(function(e,t){return{shortUrl:t.shortUrl,saving:!1,error:!1}})),We),{saving:!1,error:!1}),Mt=function(e){return function(t,r,n){return function(){var c=Object(x.a)(m.a.mark((function c(a,s){var i,o,l,u,d,j,b,h,O;return m.a.wrap((function(c){for(;;)switch(c.prev=c.next){case 0:return a({type:Vt}),i=s(),o=i.selectedServer,l=!Object(Lt.j)(o),u=e(s),d=u.updateShortUrl,j=u.updateShortUrlTags,c.prev=4,c.next=7,Promise.all([d(t,r,n),l&&n.tags?j(t,r,n.tags):void 0]);case 7:b=c.sent,h=Object(E.a)(b,1),O=h[0],a({shortUrl:O,type:Ft}),c.next=17;break;case 13:throw c.prev=13,c.t0=c.catch(4),a({type:It,errorData:vt(c.t0)}),c.t0;case 17:case"end":return c.stop()}}),c,null,[[4,13]])})));return function(e,t){return c.apply(this,arguments)}}()}},Gt="shlink/shortUrlsList/LIST_SHORT_URLS_START",Pt="shlink/shortUrlsList/LIST_SHORT_URLS_ERROR",Bt="shlink/shortUrlsList/LIST_SHORT_URLS",Ht=it((qe={},Object(u.a)(qe,Gt,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!0,error:!1})})),Object(u.a)(qe,Pt,(function(){return{loading:!1,error:!0}})),Object(u.a)(qe,Bt,(function(e,t){return{loading:!1,error:!1,shortUrls:t.shortUrls}})),Object(u.a)(qe,gt,Object(I.a)((function(e,t){var r=t.shortCode,n=t.domain;return e.shortUrls?Object(lt.a)(["shortUrls","data"],Object(p.a)((function(e){return bt(e,r,n)}),e.shortUrls.data),e):e}),(function(e){return e.shortUrls?Object(lt.a)(["shortUrls","pagination","totalItems"],e.shortUrls.pagination.totalItems-1,e):e}))),Object(u.a)(qe,ht,(function(e,t){var r,n,c=t.createdVisits;return Object(lt.a)(["shortUrls","data"],null===(r=e.shortUrls)||void 0===r||null===(n=r.data)||void 0===n?void 0:n.map((function(e){var t=Object(ut.a)(c.filter((function(t){var r=t.shortUrl;return r&&bt(e,r.shortCode,r.domain)})));return null!==t&&void 0!==t&&t.shortUrl?Object(dt.a)("visitsCount",t.shortUrl.visitsCount,e):e})),e)})),Object(u.a)(qe,_t,Object(I.a)((function(e,t){var r=t.result;return e.shortUrls?Object(lt.a)(["shortUrls","data"],[r].concat(Object(_e.a)(Object(jt.a)(e.shortUrls.data))),e):e}),(function(e){return e.shortUrls?Object(lt.a)(["shortUrls","pagination","totalItems"],e.shortUrls.pagination.totalItems+1,e):e}))),Object(u.a)(qe,Ft,(function(e,t){var r=t.shortUrl;return e.shortUrls?Object(lt.a)(["shortUrls","data"],e.shortUrls.data.map((function(e){var t=r.shortCode,n=r.domain;return bt(e,t,n)?r:e})),e):e})),qe),{loading:!0,error:!1}),Wt=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s,i;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n({type:Gt}),a=e(c),s=a.listShortUrls,r.prev=2,r.next=5,s(t);case 5:i=r.sent,n({type:Bt,shortUrls:i,params:t}),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(2),n({type:Pt,params:t});case 12:case"end":return r.stop()}}),r,null,[[2,9]])})));return function(e,t){return r.apply(this,arguments)}}()}},qt="shlink/shortUrlsListParams/RESET_SHORT_URL_PARAMS",zt={dateCreated:"Created at",shortCode:"Short URL",longUrl:"Long URL",title:"Title",visits:"Visits"},Qt={page:"1",orderBy:{dateCreated:"DESC"}},Kt=it((ze={},Object(u.a)(ze,Bt,(function(e,t){var r=t.params;return Object(d.a)(Object(d.a)({},e),r)})),Object(u.a)(ze,qt,(function(){return Qt})),ze),Qt),Jt=ot(qt),Zt=r(567),Yt=r(568),Xt=r(569),$t=r(543),er=r(287),tr=r(566),rr=Math.ceil,nr=new Intl.NumberFormat("en-US"),cr=function(e){return nr.format(Number(e))},ar="...",sr=function(e,t){var r=Object($t.a)(Object(er.a)(2,e-2),Object(tr.a)(t-1,e+2)+1);return e-2>2&&r.unshift(ar),e+2=d,children:Object(a.jsx)(Yt.a,{next:!0,tag:o.b,to:j(l+1)})})]})},dr=function(e,t){return Me((function(r){var n,c=r.listShortUrls,s=r.resetShortUrlParams,i=r.shortUrlsListParams,o=r.match,l=r.location,j=r.history,b=r.shortUrlsList,h=r.selectedServer,O=Object(v.a)(h),f=i.orderBy,m=Object(A.useState)({field:f&&Object(Ue.a)(Object(Te.a)(f)),dir:f&&Object(Ue.a)(Object(Re.a)(f))}),x=Object(E.a)(m,2),g=x[0],p=x[1],y=Ne({history:j,match:o,location:l}),S=Object(E.a)(y,2),C=S[0],N=C.tags,w=C.search,k=C.startDate,_=C.endDate,U=S[1],T=Object(A.useMemo)((function(){var e;return null!==(e=null===N||void 0===N?void 0:N.split(","))&&void 0!==e?e:[]}),[N]),R=(null!==(n=null===b||void 0===b?void 0:b.shortUrls)&&void 0!==n?n:{}).pagination,D=function(e){return c(Object(d.a)(Object(d.a)({},i),e))},L=function(e,t){p({field:e,dir:t}),D({orderBy:e?Object(u.a)({},e,t):void 0})},V=Object(I.a)((function(e){return Object(_e.a)(new Set([].concat(Object(_e.a)(T),[e]))).join(",")}),(function(e){return U({tags:e})}));return Object(A.useEffect)((function(){return s}),[]),Object(A.useEffect)((function(){D({page:o.params.page,searchTerm:w,tags:T,itemsPerPage:void 0,startDate:k,endDate:_})}),[o.params.page,w,T,k,_]),Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("div",{className:"mb-3",children:Object(a.jsx)(t,{})}),Object(a.jsx)("div",{className:"d-block d-lg-none mb-3",children:Object(a.jsx)(Fe,{items:zt,order:g,onChange:L})}),Object(a.jsxs)(Ee.a,{body:!0,className:"pb-1",children:[Object(a.jsx)(e,{selectedServer:h,shortUrlsList:b,orderByColumn:function(e){return function(){return L(e,Ve(e,g.field,g.dir))}},renderOrderIcon:function(e){return Object(a.jsx)(Pe,{currentOrder:g,field:e})},onTagClick:V}),Object(a.jsx)(ur,{paginator:R,serverId:O,currentQueryString:l.search})]})]})}),(function(){return[Ge.visits]}))},jr=r(52),br=r(159),hr=r.n(br),Or=function(e){var t=e.text,r=e.onCopy;return Object(a.jsx)(hr.a,{text:t,onCopy:r,children:Object(a.jsx)(V.a,{icon:ge.c,className:"ml-2 copy-to-clipboard-icon"})})},vr=r(571),fr=r(612),mr=function(e){var t=e.date,r=e.format,n=void 0===r?"yyyy-MM-dd HH:mm":r,c=e.relative,s=void 0!==c&&c,i=ce(t)?t:Object(F.default)(t);return Object(a.jsx)("time",{dateTime:"".concat(Object(vr.a)(i),"000"),children:s?"".concat(Object(fr.a)(new Date,i)," ago"):Object($.default)(i,n)})},xr=r(572),gr=function(e,t,r){var n=e.id,c=t.shortCode,a=t.domain,s=a?"?domain=".concat(a):"";return"/server/".concat(n,"/short-code/").concat(c,"/").concat(r).concat(s)},pr=function(e){var t=e.selectedServer,r=e.shortUrl,n=e.suffix,c=e.children,s=Object(D.a)(e,["selectedServer","shortUrl","suffix","children"]);return t&&Object(v.e)(t)&&r?Object(a.jsx)(o.b,Object(d.a)(Object(d.a)({to:gr(t,r,n)},s),{},{children:c})):Object(a.jsx)("span",Object(d.a)(Object(d.a)({},s),{},{children:c}))},yr=function(e){var t,r=e.visitsCount,n=e.shortUrl,c=e.selectedServer,s=e.active,i=void 0!==s&&s,o=null===n||void 0===n||null===(t=n.meta)||void 0===t?void 0:t.maxVisits,l=Object(a.jsx)(pr,{selectedServer:c,shortUrl:n,suffix:"visits",children:Object(a.jsx)("strong",{className:G()("short-url-visits-count__amount",{"short-url-visits-count__amount--big":i}),children:cr(r)})});if(!o)return l;var u=cr(o),d=Object(A.useRef)();return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)("span",{className:"indivisible",children:[l,Object(a.jsxs)("small",{className:"short-urls-visits-count__max-visits-control",ref:function(e){d.current=e},children:[" ","/ ",u," ",Object(a.jsx)("sup",{children:Object(a.jsx)(V.a,{icon:L.u})})]})]}),Object(a.jsxs)(xr.a,{target:function(){return d.current},placement:"bottom",children:["This short URL will not accept more than ",Object(a.jsx)("b",{children:u})," visits."]})]})},Sr=function(e,t,r){return function(n){var c,s,i=n.shortUrl,o=n.selectedServer,l=n.onTagClick,u=r(),d=Object(E.a)(u,2),j=d[0],b=d[1],h=r(!1,500),O=Object(E.a)(h,2),v=O[0],f=O[1],m=Object(A.useRef)(!0);return Object(A.useEffect)((function(){m.current?m.current=!1:f()}),[i.visitsCount]),Object(a.jsxs)("tr",{className:"responsive-table__row",children:[Object(a.jsx)("td",{className:"indivisible short-urls-row__cell responsive-table__cell","data-th":"Created at",children:Object(a.jsx)(mr,{date:i.dateCreated})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell","data-th":"Short URL",children:Object(a.jsxs)("span",{className:"indivisible short-urls-row__cell--relative",children:[Object(a.jsx)(jr.a,{href:i.shortUrl}),Object(a.jsx)(Or,{text:i.shortUrl,onCopy:b}),Object(a.jsx)("span",{className:"badge badge-warning short-urls-row__copy-hint",hidden:!j,children:"Copied short URL!"})]})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell short-urls-row__cell--break","data-th":"".concat(i.title?"Title":"Long URL"),children:Object(a.jsx)(jr.a,{href:i.longUrl,children:null!==(c=i.title)&&void 0!==c?c:i.longUrl})}),i.title&&Object(a.jsx)("td",{className:"short-urls-row__cell responsive-table__cell short-urls-row__cell--break d-lg-none","data-th":"Long URL",children:Object(a.jsx)(jr.a,{href:i.longUrl})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell","data-th":"Tags",children:(s=i.tags,Object(S.a)(s)?Object(a.jsx)("i",{className:"indivisible",children:Object(a.jsx)("small",{children:"No tags"})}):s.map((function(e){return Object(a.jsx)(B,{colorGenerator:t,text:e,onClick:function(){return null===l||void 0===l?void 0:l(e)}},e)})))}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell text-lg-right","data-th":"Visits",children:Object(a.jsx)(yr,{visitsCount:i.visitsCount,shortUrl:i,selectedServer:o,active:v})}),Object(a.jsx)("td",{className:"responsive-table__cell short-urls-row__cell",children:Object(a.jsx)(e,{selectedServer:o,shortUrl:i})})]})}},Cr=r(573),Nr=function(e){var t=e.isOpen,r=e.toggle,n=e.children,c=e.right,s=void 0===c||c;return Object(a.jsxs)(Cr.a,{toggle:r,isOpen:t,children:[Object(a.jsxs)(q.a,{size:"sm",caret:!0,outline:!0,className:"dropdown-btn-menu__dropdown-toggle",children:["\xa0",Object(a.jsx)(V.a,{icon:L.n}),"\xa0"]}),Object(a.jsx)(z.a,{right:s,children:n})]})},wr=function(e,t){return function(r){var n=r.shortUrl,c=r.selectedServer,s=Object(Q.d)(),i=Object(E.a)(s,2),o=i[0],l=i[1],u=Object(Q.d)(),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(Q.d)(),O=Object(E.a)(h,2),v=O[0],f=O[1];return Object(a.jsxs)(Nr,{toggle:l,isOpen:o,children:[Object(a.jsxs)(H.a,{tag:pr,selectedServer:c,shortUrl:n,suffix:"visits",children:[Object(a.jsx)(V.a,{icon:L.g,fixedWidth:!0})," Visit stats"]}),Object(a.jsxs)(H.a,{tag:pr,selectedServer:c,shortUrl:n,suffix:"edit",children:[Object(a.jsx)(V.a,{icon:L.m,fixedWidth:!0})," Edit short URL"]}),Object(a.jsxs)(H.a,{onClick:b,children:[Object(a.jsx)(V.a,{icon:L.F,fixedWidth:!0})," QR code"]}),Object(a.jsx)(t,{shortUrl:n,isOpen:j,toggle:b}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsxs)(H.a,{className:"dropdown-item--danger",onClick:f,children:[Object(a.jsx)(V.a,{icon:L.y,fixedWidth:!0})," Delete short URL"]}),Object(a.jsx)(e,{shortUrl:n,isOpen:v,toggle:f})]})}},kr=function(e,t){return function(r){var n=r.createShortUrl,c=r.shortUrlCreationResult,s=r.resetCreateShortUrl,i=r.selectedServer,o=r.basicMode,l=void 0!==o&&o,u=r.settings.shortUrlCreation,j=Object(A.useMemo)((function(){return function(e){var t,r;return{longUrl:"",tags:[],customSlug:"",title:void 0,shortCodeLength:void 0,domain:"",validSince:void 0,validUntil:void 0,maxVisits:void 0,findIfExists:!1,validateUrl:null!==(t=null===e||void 0===e?void 0:e.validateUrls)&&void 0!==t&&t,forwardQuery:null===(r=null===e||void 0===e?void 0:e.forwardQuery)||void 0===r||r}}(u)}),[u]);return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(e,{initialState:j,saving:c.saving,selectedServer:i,mode:l?"create-basic":"create",onSave:function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s(),e.abrupt("return",n(t));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}),Object(a.jsx)(t,Object(d.a)(Object(d.a)({},c),{},{resetCreateShortUrl:s,canBeClosed:l}))]})}},_r=r(614),Ur=r(574),Tr=r(575),Rr=r(576),Er=r(544),Dr=r(31),Lr=r(538),Vr=r(32),Ir=function(e){var t=e.children,r=e.type,n=e.className,c=e.small,s=void 0!==c&&c;return Object(a.jsx)(Lr.a,{className:n,children:Object(a.jsx)("div",{className:G()({"col-md-10 offset-md-1":!s,"col-12":s}),children:Object(a.jsx)(Vr.a,{className:G()("text-center",{"bg-main":"success"===r,"bg-danger":"error"===r,"bg-warning":"warning"===r,"text-white":"warning"!==r}),bodyClassName:G()({"p-2":s}),children:t})})})},Fr=function(e){var t,r,n=e.errorData,c=e.fallbackMessage;return Object(a.jsxs)(a.Fragment,{children:[null!==(t=null===n||void 0===n?void 0:n.detail)&&void 0!==t?t:c,(r=n,"INVALID_ARGUMENT"===(null===r||void 0===r?void 0:r.type)&&Object(a.jsxs)("p",{className:"mb-0",children:["Invalid elements: [",n.invalidElements.join(", "),"]"]}))]})},Ar=function(e){var t=e.shortUrl,r=e.toggle,n=e.isOpen,c=e.shortUrlDeletion,s=e.resetDeleteShortUrl,i=e.deleteShortUrl,o=Object(A.useState)(""),l=Object(E.a)(o,2),u=l[0],d=l[1];Object(A.useEffect)((function(){return s}),[]);var j=c.error,b=c.errorData,h=Object(I.a)(s,r),O=Object(Dr.b)((function(){var e=t.shortCode,n=t.domain;i(e,n).then(r).catch(Er.a)}));return Object(a.jsx)(_r.a,{isOpen:n,toggle:h,centered:!0,children:Object(a.jsxs)("form",{onSubmit:O,children:[Object(a.jsx)(Ur.a,{toggle:h,children:Object(a.jsx)("span",{className:"text-danger",children:"Delete short URL"})}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("p",{children:[Object(a.jsx)("b",{className:"text-danger",children:"Caution!"})," You are about to delete a short URL."]}),Object(a.jsx)("p",{children:"This action cannot be undone. Once you have deleted it, all the visits stats will be lost."}),Object(a.jsxs)("p",{children:["Write ",Object(a.jsx)("b",{children:t.shortCode})," to confirm deletion."]}),Object(a.jsx)("input",{type:"text",className:"form-control",placeholder:"Insert the short code (".concat(t.shortCode,")"),value:u,onChange:function(e){return d(e.target.value)}}),j&&Object(a.jsx)(Ir,{type:ft(b)?"warning":"error",small:!0,className:"mt-2",children:Object(a.jsx)(Fr,{errorData:b,fallbackMessage:"Something went wrong while deleting the URL :("})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)("button",{type:"button",className:"btn btn-link",onClick:h,children:"Cancel"}),Object(a.jsx)("button",{type:"submit",className:"btn btn-danger",disabled:u!==t.shortCode||c.loading,children:c.loading?"Deleting...":"Delete"})]})]})})},Mr=r(219),Gr=function(e){return function(t){var r=t.error,n=t.errorData,c=t.result,s=t.resetCreateShortUrl,i=t.canBeClosed,o=void 0!==i&&i,l=e(),u=Object(E.a)(l,2),d=u[0],j=u[1];if(Object(A.useEffect)((function(){s()}),[]),r)return Object(a.jsxs)(Ir,{type:"error",className:"mt-3",children:[o&&Object(a.jsx)(V.a,{icon:L.P,className:"float-right pointer",onClick:s}),Object(a.jsx)(Fr,{errorData:n,fallbackMessage:"An error occurred while creating the URL :("})]});if(Object(y.a)(c))return null;var b=c.shortUrl;return Object(a.jsxs)(Ir,{type:"success",className:"mt-3",children:[o&&Object(a.jsx)(V.a,{icon:L.P,className:"float-right pointer",onClick:s}),Object(a.jsx)("b",{children:"Great!"})," The short URL is ",Object(a.jsx)("b",{children:b}),Object(a.jsx)(hr.a,{text:b,onCopy:j,children:Object(a.jsxs)("button",{className:"btn btn-light btn-sm create-short-url-result__copy-btn",id:"copyBtn",type:"button",children:[Object(a.jsx)(V.a,{icon:ge.c})," Copy"]})}),Object(a.jsx)(Mr.a,{placement:"left",isOpen:d,target:"copyBtn",children:"Copied!"})]})}},Pr=function(e){return function(t){var r=t.orderByColumn,n=t.renderOrderIcon,c=t.shortUrlsList,s=t.onTagClick,i=t.selectedServer,o=t.className,l=c.error,u=c.loading,d=c.shortUrls,j=G()({"short-urls-table__header-cell--with-action":!!r}),b=G()("short-urls-table__header-cell",j),h=G()("table table-hover",o),O=Object(Lt.i)(i);return Object(a.jsxs)("table",{className:h,children:[Object(a.jsx)("thead",{className:"responsive-table__header short-urls-table__header",children:Object(a.jsxs)("tr",{children:[Object(a.jsxs)("th",{className:b,onClick:null===r||void 0===r?void 0:r("dateCreated"),children:["Created at ",null===n||void 0===n?void 0:n("dateCreated")]}),Object(a.jsxs)("th",{className:b,onClick:null===r||void 0===r?void 0:r("shortCode"),children:["Short URL ",null===n||void 0===n?void 0:n("shortCode")]}),!O&&Object(a.jsxs)("th",{className:b,onClick:null===r||void 0===r?void 0:r("longUrl"),children:["Long URL ",null===n||void 0===n?void 0:n("longUrl")]})||Object(a.jsxs)("th",{className:"short-urls-table__header-cell",children:[Object(a.jsxs)("span",{className:j,onClick:null===r||void 0===r?void 0:r("title"),children:["Title ",null===n||void 0===n?void 0:n("title")]}),"\xa0\xa0/\xa0\xa0",Object(a.jsxs)("span",{className:j,onClick:null===r||void 0===r?void 0:r("longUrl"),children:[Object(a.jsx)("span",{className:"indivisible",children:"Long URL"})," ",null===n||void 0===n?void 0:n("longUrl")]})]}),Object(a.jsx)("th",{className:"short-urls-table__header-cell",children:"Tags"}),Object(a.jsx)("th",{className:b,onClick:null===r||void 0===r?void 0:r("visits"),children:Object(a.jsxs)("span",{className:"indivisible",children:["Visits ",null===n||void 0===n?void 0:n("visits")]})}),Object(a.jsx)("th",{className:"short-urls-table__header-cell",children:"\xa0"})]})}),Object(a.jsx)("tbody",{children:l?Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:6,className:"text-center table-danger text-dark",children:"Something went wrong while loading short URLs :("})}):u?Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:6,className:"text-center",children:"Loading..."})}):!u&&Object(S.a)(null===d||void 0===d?void 0:d.data)?Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:6,className:"text-center",children:"No results found"})}):null===d||void 0===d?void 0:d.data.map((function(t){return Object(a.jsx)(e,{shortUrl:t,selectedServer:i,onTagClick:s},t.shortUrl)}))})]})}},Br=r(577),Hr=r(216),Wr=function(e){var t=e.format,r=e.setFormat;return Object(a.jsxs)(K,{text:"Format (".concat(t,")"),children:[Object(a.jsx)(H.a,{active:"png"===t,onClick:function(){return r("png")},children:"PNG"}),Object(a.jsx)(H.a,{active:"svg"===t,onClick:function(){return r("svg")},children:"SVG"})]})},qr=function(e){var t=e.errorCorrection,r=e.setErrorCorrection;return Object(a.jsxs)(K,{text:"Error correction (".concat(t,")"),children:[Object(a.jsxs)(H.a,{active:"L"===t,onClick:function(){return r("L")},children:[Object(a.jsx)("b",{children:"L"}),"ow"]}),Object(a.jsxs)(H.a,{active:"M"===t,onClick:function(){return r("M")},children:[Object(a.jsx)("b",{children:"M"}),"edium"]}),Object(a.jsxs)(H.a,{active:"Q"===t,onClick:function(){return r("Q")},children:[Object(a.jsx)("b",{children:"Q"}),"uartile"]}),Object(a.jsxs)(H.a,{active:"H"===t,onClick:function(){return r("H")},children:[Object(a.jsx)("b",{children:"H"}),"igh"]})]})},zr=function(e,t){return function(r){var n=r.shortUrl,c=n.shortUrl,s=n.shortCode,i=r.toggle,o=r.isOpen,l=r.selectedServer,u=Object(A.useState)(300),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(A.useState)(0),O=Object(E.a)(h,2),v=O[0],f=O[1],g=Object(A.useState)("png"),p=Object(E.a)(g,2),y=p[0],N=p[1],w=Object(A.useState)("L"),k=Object(E.a)(w,2),_=k[0],U=k[1],T=Object(A.useMemo)((function(){return{useSizeInPath:!Object(Lt.g)(l),marginIsSupported:Object(Lt.f)(l),errorCorrectionIsSupported:Object(Lt.h)(l)}}),[l]),R=T.marginIsSupported!==T.errorCorrectionIsSupported,D=Object(A.useMemo)((function(){return function(e,t,r){var n=t.size,c=t.format,a=t.margin,s=t.errorCorrection,i=r.useSizeInPath,o=r.marginIsSupported,l=r.errorCorrectionIsSupported,u="".concat(e,"/qr-code").concat(i?"/".concat(n):""),d=Object(C.b)({size:i?void 0:n,format:c,margin:o&&a>0?a:void 0,errorCorrection:l?s:void 0});return"".concat(u).concat(Object(S.a)(d)?"":"?".concat(d))}(c,{size:j,format:y,margin:v,errorCorrection:_},T)}),[c,j,y,v,_,T]),I=Object(A.useMemo)((function(){return j+v}),[j,v]),F=Object(A.useMemo)((function(){if(!(I<500))return I<800?"lg":"xl"}),[I]);return Object(a.jsxs)(_r.a,{isOpen:o,toggle:i,centered:!0,size:F,children:[Object(a.jsxs)(Ur.a,{toggle:i,children:["QR code for ",Object(a.jsx)(jr.a,{href:c,children:c})]}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)(Lr.a,{children:[Object(a.jsxs)(Br.a,{className:G()({"col-md-4":R,"col-md-6":!R}),children:[Object(a.jsxs)("label",{className:"mb-0",children:["Size: ",j,"px"]}),Object(a.jsx)("input",{type:"range",className:"form-control-range",value:j,step:10,min:50,max:1e3,onChange:function(e){return b(Number(e.target.value))}})]}),T.marginIsSupported&&Object(a.jsxs)(Br.a,{className:R?"col-md-4":"col-md-6",children:[Object(a.jsxs)("label",{className:"mb-0",children:["Margin: ",v,"px"]}),Object(a.jsx)("input",{type:"range",className:"form-control-range",value:v,step:1,min:0,max:100,onChange:function(e){return f(Number(e.target.value))}})]}),Object(a.jsx)(Br.a,{className:R?"col-md-4":"col-md-6",children:Object(a.jsx)(Wr,{format:y,setFormat:N})}),T.errorCorrectionIsSupported&&Object(a.jsx)(Br.a,{className:"col-md-6",children:Object(a.jsx)(qr,{errorCorrection:_,setErrorCorrection:U})})]}),Object(a.jsxs)("div",{className:"text-center",children:[Object(a.jsxs)("div",{className:"mb-3",children:[Object(a.jsx)(jr.a,{href:D}),Object(a.jsx)(Or,{text:D})]}),Object(a.jsx)("img",{src:D,className:"qr-code-modal__img",alt:"QR code"}),Object(a.jsx)(t,{minVersion:"2.9.0",children:Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsxs)(Hr.a,{block:!0,color:"primary",onClick:Object(x.a)(m.a.mark((function t(){return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.saveImage(D,"".concat(s,"-qr-code.").concat(y)));case 1:case"end":return t.stop()}}),t)}))),children:["Download ",Object(a.jsx)(V.a,{icon:L.q,className:"ml-1"})]})})})]})]})]})}},Qr=r(582),Kr=r(578),Jr=r(579),Zr=r(580),Yr=r(581),Xr=r(609),$r=function(e){var t=e.checked,r=void 0!==t&&t,n=e.onChange,c=void 0===n?Er.a:n,s=e.className,i=e.children,o=e.type,l=e.inline,u=void 0!==l&&l,d=Object(A.useRef)(Object(Xr.a)()).current,j={"custom-switch":"switch"===o,"custom-checkbox":"checkbox"===o},b=u?{display:"inline-block"}:{};return Object(a.jsxs)("span",{className:G()("custom-control",j,s),style:b,children:[Object(a.jsx)("input",{type:"checkbox",className:"custom-control-input",id:d,checked:r,onChange:function(e){return c(e.target.checked,e)}}),Object(a.jsx)("label",{className:"custom-control-label",htmlFor:d,children:i})]})},en=function(e){return Object(a.jsx)($r,Object(d.a)({type:"checkbox"},e))},tn=function(e){var t=e.isOpen,r=e.toggle;return Object(a.jsxs)(_r.a,{isOpen:t,toggle:r,centered:!0,size:"lg",children:[Object(a.jsx)(Ur.a,{toggle:r,children:"Info"}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("p",{children:["When the\xa0",Object(a.jsx)("b",{children:Object(a.jsx)("i",{children:'"Use existing URL if found"'})}),"\xa0checkbox is checked, the server will return an existing short URL if it matches provided params."]}),Object(a.jsx)("p",{children:"These are the checks performed by Shlink in order to determine if an existing short URL should be returned:"}),Object(a.jsxs)("ul",{children:[Object(a.jsx)("li",{children:"When only the long URL is provided: The most recent match will be returned, or a new short URL will be created if none is found."}),Object(a.jsxs)("li",{children:["When long URL and custom slug and/or domain are provided: Same as in previous case, but it will try to match the short URL using both the long URL and the slug, the long URL and the domain, or the three of them.",Object(a.jsx)("br",{}),"If the slug is being used by another long URL, an error will be returned."]}),Object(a.jsx)("li",{children:"When other params are provided: Same as in previous cases, but it will try to match existing short URLs with all provided data. If any of them does not match, a new short URL will be created"})]})]})]})},rn=function(){var e=Object(Q.d)(),t=Object(E.a)(e,2),r=t[0],n=t[1];return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("span",{title:"What does this mean?",children:Object(a.jsx)(V.a,{icon:L.u,style:{cursor:"pointer"},onClick:n})}),Object(a.jsx)(tn,{isOpen:r,toggle:n})]})},nn=function(e){var t=e.className,r=void 0===t?"":t,n=e.placement,c=e.children,s=Object(A.useRef)();return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("span",{className:r,ref:function(e){s.current=e},children:Object(a.jsx)(V.a,{icon:L.u})}),Object(a.jsx)(xr.a,{target:function(){return s.current},placement:n,children:c})]})},cn=function(e){var t=e.children,r=e.infoTooltip,n=e.checked,c=e.onChange;return Object(a.jsxs)("p",{children:[Object(a.jsx)(en,{inline:!0,checked:n,className:r?"mr-2":"",onChange:c,children:t}),r&&Object(a.jsx)(nn,{placement:"right",children:r})]})},an=Object(I.a)(Kr.a,Object(Jr.a)(/ /g,"-")),sn=function(e){return"string"===typeof e?Object(F.default)(e):e},on=function(e){return{"col-sm-6":e,"col-sm-12":!e}},ln=function(e,t){return function(r){var n,c=r.mode,s=r.saving,i=r.onSave,o=r.initialState,l=r.selectedServer,j=Object(A.useState)(o),b=Object(E.a)(j,2),h=b[0],O=b[1],v="edit"===c,f=Object(Dr.c)(o.title),g=function(){var e=Object(Dr.c)(h.title);return Object(Zr.a)([[function(){return!e&&!f},function(){}],[function(){return!e&&f},function(){return null}],[Yr.a,function(){return h.title}]])()},p=Object(Dr.b)(Object(x.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(Object(d.a)(Object(d.a)({},h),{},{validSince:null!==(t=se(h.validSince))&&void 0!==t?t:null,validUntil:null!==(r=se(h.validUntil))&&void 0!==r?r:null,maxVisits:Object(Dr.c)(h.maxVisits)?Number(h.maxVisits):null,title:g()})).then((function(){return!v&&O(o)})).catch((function(){})));case 1:case"end":return e.stop()}}),e)}))));Object(A.useEffect)((function(){O(o)}),[o]);var y=function(e,t){var r,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"text",c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Object(a.jsx)(Br.a,{children:Object(a.jsx)(Qr.a,Object(d.a)({id:e,type:n,placeholder:t,value:null!==(r=h[e])&&void 0!==r?r:"",onChange:function(t){return O(Object(d.a)(Object(d.a)({},h),{},Object(u.a)({},e,t.target.value)))}},c))})},C=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object(a.jsx)("div",{className:"form-group",children:Object(a.jsx)(pe,Object(d.a)({selected:h[e]?sn(h[e]):null,placeholderText:t,isClearable:!0,onChange:function(t){return O(Object(d.a)(Object(d.a)({},h),{},Object(u.a)({},e,t)))}},r))})},N=Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Br.a,{children:Object(a.jsx)(Qr.a,{bsSize:"lg",type:"url",placeholder:"URL to be shortened",required:!0,value:h.longUrl,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{longUrl:e.target.value}))}})}),Object(a.jsx)(Br.a,{children:Object(a.jsx)(e,{selectedTags:null!==(n=h.tags)&&void 0!==n?n:[],onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{tags:e.map(an)}))}})})]}),w=Object(Lt.i)(l),k=w||!v,_=G()("mb-3",on(k)),U=Object(Lt.b)(l),T=Object(Lt.d)(l),R=U||T,D=G()("mb-3",on(R));return Object(a.jsxs)("form",{className:"short-url-form",onSubmit:p,children:["create-basic"===c&&N,"create-basic"!==c&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Vr.a,{title:"Basic options",className:"mb-3",children:N}),Object(a.jsxs)(Lr.a,{children:[k&&Object(a.jsx)("div",{className:"col-sm-6 mb-3",children:Object(a.jsxs)(Vr.a,{title:"Customize the short URL",children:[w&&y("title","Title"),!v&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)(Lr.a,{children:[Object(a.jsx)("div",{className:"col-lg-6",children:y("customSlug","Custom slug","text",{disabled:Object(Dr.c)(h.shortCodeLength)})}),Object(a.jsx)("div",{className:"col-lg-6",children:y("shortCodeLength","Short code length","number",{min:4,disabled:Object(Dr.c)(h.customSlug)})})]}),Object(a.jsx)(Br.a,{children:Object(a.jsx)(t,{value:h.domain,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{domain:e}))}})})]})]})}),Object(a.jsx)("div",{className:_,children:Object(a.jsxs)(Vr.a,{title:"Limit access to the short URL",children:[y("maxVisits","Maximum number of visits allowed","number",{min:1}),C("validSince","Enabled since...",{maxDate:h.validUntil?sn(h.validUntil):void 0}),C("validUntil","Enabled until...",{minDate:h.validSince?sn(h.validSince):void 0})]})})]}),Object(a.jsxs)(Lr.a,{children:[Object(a.jsx)("div",{className:D,children:Object(a.jsxs)(Vr.a,{title:"Extra checks",children:[Object(a.jsx)(cn,{infoTooltip:"If checked, Shlink will try to reach the long URL, failing in case it's not publicly accessible.",checked:h.validateUrl,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{validateUrl:e}))},children:"Validate URL"}),!v&&Object(a.jsxs)("p",{children:[Object(a.jsx)(en,{inline:!0,className:"mr-2",checked:h.findIfExists,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{findIfExists:e}))},children:"Use existing URL if found"}),Object(a.jsx)(rn,{})]})]})}),R&&Object(a.jsx)("div",{className:"col-sm-6 mb-3",children:Object(a.jsxs)(Vr.a,{title:"Configure behavior",children:[U&&Object(a.jsx)(cn,{infoTooltip:"This short URL will be included in the robots.txt for your Shlink instance, allowing web crawlers (like Google) to index it.",checked:h.crawlable,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{crawlable:e}))},children:"Make it crawlable"}),T&&Object(a.jsx)(cn,{infoTooltip:"When this short URL is visited, any query params appended to it will be forwarded to the long URL.",checked:h.forwardQuery,onChange:function(e){return O(Object(d.a)(Object(d.a)({},h),{},{forwardQuery:e}))},children:"Forward query params on redirect"})]})})]})]}),Object(a.jsx)("div",{className:"text-center",children:Object(a.jsx)(Hr.a,{outline:!0,color:"primary",disabled:s||Object(S.a)(h.longUrl),className:"btn-xs-block",children:s?"Saving...":"Save"})})]})}},un=r(54),dn=function(e){return function(t){var r,n=t.history.goBack,c=t.match.params,s=t.location.search,i=t.settings.shortUrlCreation,o=t.selectedServer,l=t.shortUrlDetail,u=t.getShortUrlDetail,d=t.shortUrlEdition,j=t.editShortUrl,b=l.loading,h=l.error,O=l.errorData,v=l.shortUrl,f=d.saving,g=d.error,p=d.errorData,y=Object(C.a)(s).domain,S=Object(A.useMemo)((function(){return function(e,t){var r,n,c,a,s,i,o=null!==(r=null===t||void 0===t?void 0:t.validateUrls)&&void 0!==r&&r;return e?{longUrl:e.longUrl,tags:e.tags,title:null!==(n=e.title)&&void 0!==n?n:void 0,domain:null!==(c=e.domain)&&void 0!==c?c:void 0,validSince:null!==(a=e.meta.validSince)&&void 0!==a?a:void 0,validUntil:null!==(s=e.meta.validUntil)&&void 0!==s?s:void 0,maxVisits:null!==(i=e.meta.maxVisits)&&void 0!==i?i:void 0,crawlable:e.crawlable,forwardQuery:e.forwardQuery,validateUrl:o}:{longUrl:"",validateUrl:o}}(v,i)}),[v,i]),N=Object(Q.d)(),w=Object(E.a)(N,4),k=w[0],_=w[2],U=w[3];return Object(A.useEffect)((function(){u(c.shortCode,y)}),[]),b?Object(a.jsx)(un.a,{loading:!0}):h?Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:O,fallbackMessage:"An error occurred while loading short URL detail :("})}):Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("header",{className:"mb-3",children:Object(a.jsx)(Ee.a,{body:!0,children:Object(a.jsxs)("h2",{className:"d-sm-flex justify-content-between align-items-center mb-0",children:[Object(a.jsx)(Hr.a,{color:"link",size:"lg",className:"p-0 mr-3",onClick:n,children:Object(a.jsx)(V.a,{icon:L.a})}),Object(a.jsx)("span",{className:"text-center",children:Object(a.jsxs)("small",{children:["Edit ",Object(a.jsx)(jr.a,{href:null!==(r=null===v||void 0===v?void 0:v.shortUrl)&&void 0!==r?r:""})]})}),Object(a.jsx)("span",{})]})})}),Object(a.jsx)(e,{initialState:S,saving:f,selectedServer:o,mode:"edit",onSave:function(){var e=Object(x.a)(m.a.mark((function e(t){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(v){e.next=2;break}return e.abrupt("return");case 2:U(),j(v.shortCode,v.domain,t).then(_).catch(U);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}),g&&Object(a.jsx)(Ir,{type:"error",className:"mt-3",children:Object(a.jsx)(Fr,{errorData:p,fallbackMessage:"An error occurred while updating short URL :("})}),k&&Object(a.jsx)(Ir,{type:"success",className:"mt-3",children:"Short URL properly edited."})]})}},jn="shlink/shortUrlDetail/GET_SHORT_URL_DETAIL_START",bn="shlink/shortUrlDetail/GET_SHORT_URL_DETAIL_ERROR",hn="shlink/shortUrlDetail/GET_SHORT_URL_DETAIL",On={loading:!1,error:!1},vn=it((Qe={},Object(u.a)(Qe,jn,(function(){return{loading:!0,error:!1}})),Object(u.a)(Qe,bn,(function(e,t){return{loading:!1,error:!0,errorData:t.errorData}})),Object(u.a)(Qe,hn,(function(e,t){var r=t.shortUrl;return Object(d.a)({shortUrl:r},On)})),Qe),On),fn=function(e){return function(t,r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(c({type:jn}),n.prev=1,o=a(),l=o.shortUrlsList,null===(s=null===l||void 0===l||null===(i=l.shortUrls)||void 0===i?void 0:i.data.find((function(e){return bt(e,t,r)})))||void 0===s){n.next=7;break}n.t0=s,n.next=10;break;case 7:return n.next=9,e(a).getShortUrl(t,r);case 9:n.t0=n.sent;case 10:u=n.t0,c({shortUrl:u,type:hn}),n.next=17;break;case 14:n.prev=14,n.t1=n.catch(1),c({type:bn,errorData:vt(n.t1)});case 17:case"end":return n.stop()}}),n,null,[[1,14]])})));return function(e,t){return n.apply(this,arguments)}}()}},mn=function(e,t,r){e.serviceFactory("ShortUrlsList",dr,"ShortUrlsTable","SearchBar"),e.decorator("ShortUrlsList",t(["selectedServer","shortUrlsListParams","mercureInfo","shortUrlsList"],["listShortUrls","resetShortUrlParams","createNewVisits","loadMercureInfo"])),e.serviceFactory("ShortUrlsTable",Pr,"ShortUrlsRow"),e.serviceFactory("ShortUrlsRow",Sr,"ShortUrlsRowMenu","ColorGenerator","useStateFlagTimeout"),e.serviceFactory("ShortUrlsRowMenu",wr,"DeleteShortUrlModal","QrCodeModal"),e.serviceFactory("CreateShortUrlResult",Gr,"useStateFlagTimeout"),e.serviceFactory("ShortUrlForm",ln,"TagsSelector","DomainSelector"),e.serviceFactory("CreateShortUrl",kr,"ShortUrlForm","CreateShortUrlResult"),e.decorator("CreateShortUrl",t(["shortUrlCreationResult","selectedServer","settings"],["createShortUrl","resetCreateShortUrl"])),e.serviceFactory("EditShortUrl",dn,"ShortUrlForm"),e.decorator("EditShortUrl",t(["shortUrlDetail","shortUrlEdition","selectedServer","settings"],["getShortUrlDetail","editShortUrl"])),e.serviceFactory("DeleteShortUrlModal",(function(){return Ar})),e.decorator("DeleteShortUrlModal",t(["shortUrlDeletion"],["deleteShortUrl","resetDeleteShortUrl"])),e.serviceFactory("QrCodeModal",zr,"ImageDownloader","ForServerVersion"),e.decorator("QrCodeModal",t(["selectedServer"])),e.serviceFactory("SearchBar",ke,"ColorGenerator"),e.decorator("SearchBar",t(["shortUrlsListParams"])),e.decorator("SearchBar",r),e.serviceFactory("listShortUrls",Wt,"buildShlinkApiClient"),e.serviceFactory("resetShortUrlParams",(function(){return Jt})),e.serviceFactory("createShortUrl",Et,"buildShlinkApiClient"),e.serviceFactory("resetCreateShortUrl",(function(){return Dt})),e.serviceFactory("deleteShortUrl",Ct,"buildShlinkApiClient"),e.serviceFactory("resetDeleteShortUrl",(function(){return Nt})),e.serviceFactory("getShortUrlDetail",fn,"buildShlinkApiClient"),e.serviceFactory("editShortUrl",Mt,"buildShlinkApiClient")},xn=r(288),gn=r.n(xn),pn=r(60),yn=function(e){var t=e.children,r=e.value,n=e.onChange,c=e.id,s=e.type,i=e.required,o=e.placeholder,l=e.className,u=e.labelClassName,d=Object(A.useRef)(null!==c&&void 0!==c?c:Object(Xr.a)());return Object(a.jsxs)(Br.a,{className:null!==l&&void 0!==l?l:"",children:[Object(a.jsxs)("label",{htmlFor:d.current,className:null!==u&&void 0!==u?u:"",children:[t,":"]}),Object(a.jsx)("input",{className:"form-control",type:null!==s&&void 0!==s?s:"text",id:d.current,value:r,required:null===i||void 0===i||i,placeholder:o,onChange:function(e){return n(e.target.value)}})]})},Sn=function(e){return Object(a.jsx)(yn,Object(d.a)(Object(d.a)({},e),{},{labelClassName:"create-server__label"}))},Cn=function(e){var t=e.onSubmit,r=e.initialValues,n=e.children,c=e.title,s=Object(A.useState)(""),i=Object(E.a)(s,2),o=i[0],l=i[1],u=Object(A.useState)(""),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(A.useState)(""),O=Object(E.a)(h,2),v=O[0],f=O[1],m=Object(Dr.b)((function(){return t({name:o,url:j,apiKey:v})}));return Object(A.useEffect)((function(){r&&l(r.name),r&&b(r.url),r&&f(r.apiKey)}),[r]),Object(a.jsxs)("form",{className:"server-form",onSubmit:m,children:[Object(a.jsxs)(Vr.a,{className:"mb-3",title:c,children:[Object(a.jsx)(Sn,{value:o,onChange:l,children:"Name"}),Object(a.jsx)(Sn,{type:"url",value:j,onChange:b,children:"URL"}),Object(a.jsx)(Sn,{value:v,onChange:f,children:"API key"})]}),Object(a.jsx)("div",{className:"text-right",children:n})]})},Nn=function(e){var t=e.type;return Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsxs)(Ir,{type:t,children:["success"===t&&"Servers properly imported. You can now select one from the list :)","error"===t&&"The servers could not be imported. Make sure the format is correct."]})})},wn=function(e,t){return function(r){var n=r.servers,c=r.createServer,s=r.history,i=s.push,o=s.goBack,l=!!Object.keys(n).length,u=t(!1,4e3),j=Object(E.a)(u,2),b=j[0],h=j[1],O=t(!1,4e3),v=Object(E.a)(O,2),f=v[0],m=v[1];return Object(a.jsxs)(pn.a,{children:[Object(a.jsxs)(Cn,{title:Object(a.jsx)("h5",{className:"mb-0",children:"Add new server"}),onSubmit:function(e){var t=Object(Xr.a)();c(Object(d.a)(Object(d.a)({},e),{},{id:t})),i("/server/".concat(t))},children:[!l&&Object(a.jsx)(e,{tooltipPlacement:"top",onImport:h,onImportError:m}),l&&Object(a.jsx)(Hr.a,{outline:!0,onClick:o,children:"Cancel"}),Object(a.jsx)(Hr.a,{outline:!0,color:"primary",className:"ml-2",children:"Create server"})]}),b&&Object(a.jsx)(Nn,{type:"success"}),f&&Object(a.jsx)(Nn,{type:"error"})]})}},kn=function(e){var t=e.servers,r=e.selectedServer,n=Object(Re.a)(t);return Object(a.jsxs)(De.a,{nav:!0,inNavbar:!0,children:[Object(a.jsxs)(q.a,{nav:!0,caret:!0,children:[Object(a.jsx)(V.a,{icon:L.I})," ",Object(a.jsx)("span",{className:"ml-1",children:"Servers"})]}),Object(a.jsx)(z.a,{right:!0,children:Object(S.a)(n)?Object(a.jsxs)(H.a,{tag:o.b,to:"/server/create",children:[Object(a.jsx)(V.a,{icon:L.E})," ",Object(a.jsx)("span",{className:"ml-1",children:"Add a server"})]}):Object(a.jsxs)(a.Fragment,{children:[n.map((function(e){var t=e.name,n=e.id;return Object(a.jsx)(H.a,{tag:o.b,to:"/server/".concat(n),active:Object(v.a)(r)===n,children:t},n)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsxs)(H.a,{tag:o.b,to:"/manage-servers",children:[Object(a.jsx)(V.a,{icon:L.I})," ",Object(a.jsx)("span",{className:"ml-1",children:"Manage servers"})]})]})})]})},_n=function(e){var t=e.server,r=e.toggle,n=e.isOpen,c=e.deleteServer,s=e.history,i=e.redirectHome,o=void 0===i||i;return Object(a.jsxs)(_r.a,{isOpen:n,toggle:r,centered:!0,children:[Object(a.jsx)(Ur.a,{toggle:r,children:Object(a.jsx)("span",{className:"text-danger",children:"Remove server"})}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("p",{children:["Are you sure you want to remove ",Object(a.jsx)("b",{children:t?t.name:""}),"?"]}),Object(a.jsx)("p",{children:Object(a.jsx)("i",{children:"No data will be deleted, only the access to this server will be removed from this device. You can create it again at any moment."})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)("button",{className:"btn btn-link",onClick:r,children:"Cancel"}),Object(a.jsx)("button",{className:"btn btn-danger",onClick:function(){return c(t),r(),void(o&&s.push("/"))},children:"Delete"})]})]})},Un=function(e){return function(t){var r=t.server,n=t.className,c=t.children,s=t.textClassName,i=Object(Q.d)(),o=Object(E.a)(i,4),l=o[0],u=o[2],d=o[3];return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)("span",{className:n,onClick:u,children:[!c&&Object(a.jsx)(V.a,{fixedWidth:!0,icon:L.y}),Object(a.jsx)("span",{className:s,children:null!==c&&void 0!==c?c:"Remove this server"})]}),Object(a.jsx)(e,{server:r,isOpen:l,toggle:d})]})}},Tn=r(151),Rn=function(e){return Object(Tn.a)((function(e){var t=e.editServer,r=e.selectedServer,n=e.history.goBack;if(!Object(v.e)(r))return null;return Object(a.jsx)(pn.a,{children:Object(a.jsxs)(Cn,{title:Object(a.jsxs)("h5",{className:"mb-0",children:['Edit "',r.name,'"']}),initialValues:r,onSubmit:function(e){t(r.id,e),n()},children:[Object(a.jsx)(Hr.a,{outline:!0,className:"mr-2",onClick:n,children:"Cancel"}),Object(a.jsx)(Hr.a,{outline:!0,color:"primary",children:"Save"})]})})}),e)},En=function(e){var t=e.importServersFromFile;return function(e){var r=e.createServers,n=e.fileRef,c=e.children,s=e.onImport,i=void 0===s?function(){}:s,o=e.onImportError,l=void 0===o?function(){}:o,u=e.tooltipPlacement,d=void 0===u?"bottom":u,j=e.className,b=void 0===j?"":j,h=null!==n&&void 0!==n?n:Object(A.useRef)(),O=function(){var e=Object(x.a)(m.a.mark((function e(n){var c,a;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.target,e.abrupt("return",t(null===(c=a.files)||void 0===c?void 0:c[0]).then(Object(I.a)(r,i)).then((function(){a.value=null})).catch(l));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)(Hr.a,{outline:!0,id:"importBtn",className:b,onClick:function(){var e;return null===(e=h.current)||void 0===e?void 0:e.click()},children:[Object(a.jsx)(V.a,{icon:L.r,fixedWidth:!0})," ",null!==c&&void 0!==c?c:"Import from file"]}),Object(a.jsxs)(xr.a,{placement:d,target:"importBtn",children:["You can create servers by importing a CSV file with columns ",Object(a.jsx)("b",{children:"name"}),", ",Object(a.jsx)("b",{children:"apiKey"})," and ",Object(a.jsx)("b",{children:"url"}),"."]}),Object(a.jsx)("input",{type:"file",accept:"text/csv",className:"import-servers-btn__csv-select",ref:h,onChange:O})]})}},Dn=r(539),Ln=r(70),Vn="shlink/selectedServer/SELECT_SERVER",In="shlink/selectedServer/RESET_SELECTED_SERVER",Fn=Object(I.a)((function(e){return"latest"===e?"999.999.999":e}),Object(Ln.c)("1.0.0")),An=Object(Dn.a)(Er.a,function(){var e=Object(x.a)(m.a.mark((function e(t,r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",r().then((function(e){var t=e.version;return{version:Fn(t),printableVersion:Object(Ln.b)(t)}})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()),Mn=it((Ke={},Object(u.a)(Ke,In,(function(){return null})),Object(u.a)(Ke,Vn,(function(e,t){return t.selectedServer})),Ke),null),Gn=ot(In),Pn=function(e,t){return function(r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j,b,h;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(c(Gn()),c(Jt()),s=a(),i=s.servers,o=i[r]){n.next=7;break}return c({type:Vn,selectedServer:{serverNotFound:!0}}),n.abrupt("return");case 7:return n.prev=7,l=e(o),u=l.health,n.next=11,An(r,u);case 11:j=n.sent,b=j.version,h=j.printableVersion,c({type:Vn,selectedServer:Object(d.a)(Object(d.a)({},o),{},{version:b,printableVersion:h})}),c(t()),n.next=21;break;case 18:n.prev=18,n.t0=n.catch(7),c({type:Vn,selectedServer:Object(d.a)(Object(d.a)({},o),{},{serverNotReachable:!0})});case 21:case"end":return n.stop()}}),n,null,[[7,18]])})));return function(e,t){return n.apply(this,arguments)}}()}},Bn=r(583),Hn=r(584),Wn=r(152),qn=r(313),zn="shlink/servers/EDIT_SERVER",Qn="shlink/servers/DELETE_SERVER",Kn="shlink/servers/CREATE_SERVERS",Jn="shlink/servers/SET_AUTO_CONNECT",Zn=it((Je={},Object(u.a)(Je,Kn,(function(e,t){var r=t.newServers;return Object(d.a)(Object(d.a)({},e),r)})),Object(u.a)(Je,Qn,(function(e,t){var r=t.serverId;return Object(Bn.a)(r,e)})),Object(u.a)(Je,zn,(function(e,t){var r=t.serverId,n=t.serverData;return e[r]?Object(dt.a)(r,Object(d.a)(Object(d.a)({},e[r]),n),e):e})),Object(u.a)(Je,Jn,(function(e,t){var r=t.serverId,n=t.autoConnect;return e[r]?n?Object(Hn.a)(Object(Le.a)(e).map((function(e){var t=Object(E.a)(e,2),n=t[0],c=t[1];return[n,Object(d.a)(Object(d.a)({},c),{},{autoConnect:n===r})]}))):Object(dt.a)(r,Object(d.a)(Object(d.a)({},e[r]),{},{autoConnect:n}),e):e})),Je),{}),Yn=Object(Wn.a)((function(e,t){return Object(dt.a)(t.id,t,e)}),{}),Xn=Object(I.a)(Object(qn.a)((function(e){return e.id?e:Object(dt.a)("id",Object(Xr.a)(),e)})),Yn,(function(e){return{type:Kn,newServers:e}})),$n=function(e){return Xn([e])},ec=function(e,t){return{type:zn,serverId:e,serverData:t}},tc=function(e){var t=e.id;return{type:Qn,serverId:t}},rc=function(e,t){var r=e.id;return{type:Jn,serverId:r,autoConnect:t}},nc=Object(I.a)(Object(O.a)("data"),(function(e){return Array.isArray(e)?e.filter(v.b):[]})),cc=function(e){var t=e.get;return function(){return function(){var e=Object(x.a)(m.a.mark((function e(r){var n,c;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t("".concat(l.a,"/servers.json"));case 2:n=e.sent,c=nc(n),r(Xn(c));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}},ac=function(e){var t=e.minVersion,r=e.maxVersion,n=e.selectedServer,c=e.children;if(!Object(v.d)(n))return null;var s=n.version;return Object(Ln.a)(s,{maxVersion:r,minVersion:t})?Object(a.jsx)(a.Fragment,{children:c}):null},sc=r(165),ic=function(e){return function(t){var r=t.servers,n=t.selectedServer;return Object(a.jsx)(pn.a,{children:Object(a.jsxs)("div",{className:"server-error__container flex-column",children:[Object(a.jsxs)(un.a,{className:"w-100 mb-3 mb-md-5",type:"error",fullWidth:!0,children:[!Object(v.e)(n)&&"Could not find this Shlink server.",Object(v.e)(n)&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("p",{children:"Oops! Could not connect to this Shlink server."}),"Make sure you have internet connection, and the server is properly configured and on-line."]})]}),Object(a.jsxs)(sc.a,{servers:Object.values(r),children:["These are the Shlink servers currently configured. Choose one of them or ",Object(a.jsx)(o.b,{to:"/server/create",children:"add a new one"}),"."]}),Object(v.e)(n)&&Object(a.jsx)("div",{className:"container mt-3 mt-md-5",children:Object(a.jsxs)("h5",{children:["Alternatively, if you think you may have miss-configured this server, you can ",Object(a.jsx)(e,{server:n,className:"server-error__delete-btn",children:"remove it"})," or\xa0",Object(a.jsx)(o.b,{to:"/server/".concat(n.id,"/edit"),children:"edit it"}),"."]})})]})})}},oc=r(103),lc=r(585),uc=r(586),dc=r(540),jc=r(541),bc=function(e,t,r){return Me((function(n){var c,s=n.shortUrlsList,i=n.listShortUrls,l=n.listTags,u=n.tagsList,d=n.selectedServer,j=n.loadVisitsOverview,h=n.visitsOverview,O=s.loading,f=s.shortUrls,m=u.loading,x=h.loading,g=h.visitsCount,p=h.orphanVisitsCount,y=Object(v.a)(d),S=Object(b.g)();return Object(A.useEffect)((function(){i({itemsPerPage:5,orderBy:{dateCreated:"DESC"}}),l(),j()}),[]),Object(a.jsxs)(a.Fragment,{children:[Object(a.jsxs)(Lr.a,{children:[Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Visits"}),Object(a.jsx)(uc.a,{tag:"h2",children:x?"Loading...":cr(g)})]})}),Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,tag:o.b,to:"/server/".concat(y,"/orphan-visits"),children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Orphan visits"}),Object(a.jsxs)(uc.a,{tag:"h2",children:[Object(a.jsx)(r,{minVersion:"2.6.0",children:x?"Loading...":cr(null!==p&&void 0!==p?p:0)}),Object(a.jsx)(r,{maxVersion:"2.5.*",children:Object(a.jsx)("small",{className:"text-muted",children:Object(a.jsx)("i",{children:"Shlink 2.6 is needed"})})})]})]})}),Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,tag:o.b,to:"/server/".concat(y,"/list-short-urls/1"),children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Short URLs"}),Object(a.jsx)(uc.a,{tag:"h2",children:O?"Loading...":cr(null!==(c=null===f||void 0===f?void 0:f.pagination.totalItems)&&void 0!==c?c:0)})]})}),Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:Object(a.jsxs)(Ee.a,{className:"overview__card mb-3",body:!0,tag:o.b,to:"/server/".concat(y,"/manage-tags"),children:[Object(a.jsx)(lc.a,{tag:"h5",className:"overview__card-title",children:"Tags"}),Object(a.jsx)(uc.a,{tag:"h2",children:m?"Loading...":cr(u.tags.length)})]})})]}),Object(a.jsxs)(Ee.a,{className:"mb-3",children:[Object(a.jsxs)(dc.a,{children:[Object(a.jsx)("span",{className:"d-sm-none",children:"Create a short URL"}),Object(a.jsx)("h5",{className:"d-none d-sm-inline",children:"Create a short URL"}),Object(a.jsx)(o.b,{className:"float-right",to:"/server/".concat(y,"/create-short-url"),children:"Advanced options \xbb"})]}),Object(a.jsx)(jc.a,{children:Object(a.jsx)(t,{basicMode:!0})})]}),Object(a.jsxs)(Ee.a,{children:[Object(a.jsxs)(dc.a,{children:[Object(a.jsx)("span",{className:"d-sm-none",children:"Recently created URLs"}),Object(a.jsx)("h5",{className:"d-none d-sm-inline",children:"Recently created URLs"}),Object(a.jsx)(o.b,{className:"float-right",to:"/server/".concat(y,"/list-short-urls/1"),children:"See all \xbb"})]}),Object(a.jsx)(jc.a,{children:Object(a.jsx)(e,{shortUrlsList:s,selectedServer:d,className:"mb-0",onTagClick:function(e){return S.push("/server/".concat(y,"/list-short-urls/1?tags=").concat(encodeURIComponent(e)))}})})]})]})}),(function(){return[Ge.visits,Ge.orphanVisits]}))},hc=function(e,t,r,n){return function(c){var s=c.servers,i=Object.values(s),l=Object(A.useState)(i),u=Object(E.a)(l,2),d=u[0],j=u[1],b=d.some((function(e){return!!e.autoConnect})),h=r(!1,4e3),O=Object(E.a)(h,2),v=O[0],f=O[1];return Object(A.useEffect)((function(){j(Object.values(s))}),[s]),Object(a.jsxs)(pn.a,{children:[Object(a.jsx)(P,{className:"mb-3",onChange:function(e){return j(i.filter((function(t){var r=t.name,n=t.url;return"".concat(r," ").concat(n).match(e)})))}}),Object(a.jsxs)(Lr.a,{className:"mb-3",children:[Object(a.jsxs)("div",{className:"col-md-6 d-flex d-md-block mb-2 mb-md-0",children:[Object(a.jsx)(t,{className:"flex-fill",onImportError:f,children:"Import servers"}),i.length>0&&Object(a.jsxs)(Hr.a,{outline:!0,className:"ml-2 flex-fill",onClick:Object(x.a)(m.a.mark((function t(){return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.exportServers());case 1:case"end":return t.stop()}}),t)}))),children:[Object(a.jsx)(V.a,{icon:L.q,fixedWidth:!0})," Export servers"]})]}),Object(a.jsx)("div",{className:"col-md-6 text-md-right d-flex d-md-block",children:Object(a.jsxs)(Hr.a,{outline:!0,color:"primary",className:"flex-fill",tag:o.b,to:"/server/create",children:[Object(a.jsx)(V.a,{icon:L.E,fixedWidth:!0})," Add a server"]})})]}),Object(a.jsx)(Vr.a,{children:Object(a.jsxs)("table",{className:"table table-hover mb-0",children:[Object(a.jsx)("thead",{className:"responsive-table__header",children:Object(a.jsxs)("tr",{children:[b&&Object(a.jsx)("th",{style:{width:"50px"}}),Object(a.jsx)("th",{children:"Name"}),Object(a.jsx)("th",{children:"Base URL"}),Object(a.jsx)("th",{})]})}),Object(a.jsxs)("tbody",{children:[!d.length&&Object(a.jsx)("tr",{className:"text-center",children:Object(a.jsx)("td",{colSpan:4,children:"No servers found."})}),d.map((function(e){return Object(a.jsx)(n,{server:e,hasAutoConnect:b},e.id)}))]})]})}),v&&Object(a.jsx)("div",{className:"mt-3",children:Object(a.jsx)(Ir,{type:"error",children:"The servers could not be imported. Make sure the format is correct."})})]})}},Oc=function(e){return function(t){var r=t.server,n=t.hasAutoConnect;return Object(a.jsxs)("tr",{className:"responsive-table__row",children:[n&&Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Auto-connect",children:r.autoConnect&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(V.a,{icon:L.h,className:"text-primary",id:"autoConnectIcon"}),Object(a.jsx)(xr.a,{target:"autoConnectIcon",placement:"right",children:"Auto-connect to this server"})]})}),Object(a.jsx)("th",{className:"responsive-table__cell","data-th":"Name",children:Object(a.jsx)(o.b,{to:"/server/".concat(r.id),children:r.name})}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Base URL",children:r.url}),Object(a.jsx)("td",{className:"responsive-table__cell text-right",children:Object(a.jsx)(e,{server:r})})]})}},vc=function(e){return function(t){var r=t.server,n=t.setAutoConnect,c=Object(Q.d)(),s=Object(E.a)(c,2),i=s[0],l=s[1],u=Object(Q.d)(),d=Object(E.a)(u,4),j=d[0],b=d[2],h=d[3],O="/server/".concat(r.id),v=r.autoConnect,f=v?L.b:ge.b;return Object(a.jsxs)(Nr,{isOpen:i,toggle:l,children:[Object(a.jsxs)(H.a,{tag:o.b,to:O,children:[Object(a.jsx)(V.a,{icon:L.D,fixedWidth:!0})," Connect"]}),Object(a.jsxs)(H.a,{tag:o.b,to:"".concat(O,"/edit"),children:[Object(a.jsx)(V.a,{icon:L.m,fixedWidth:!0})," Edit server"]}),Object(a.jsxs)(H.a,{onClick:function(){return n(r,!r.autoConnect)},children:[Object(a.jsx)(V.a,{icon:f,fixedWidth:!0})," ",v?"Do not a":"A","uto-connect"]}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsxs)(H.a,{className:"dropdown-item--danger",onClick:b,children:[Object(a.jsx)(V.a,{icon:L.y,fixedWidth:!0})," Remove server"]}),Object(a.jsx)(e,{redirectHome:!1,server:r,isOpen:j,toggle:h})]})}},fc=function(e){return"string"===typeof e.url&&"string"===typeof e.apiKey&&"string"===typeof e.name},mc=function(e){return Array.isArray(e)&&e.every(fc)},xc=function e(t,r){var n=this;Object(g.a)(this,e),this.csvJson=t,this.fileReaderFactory=r,this.importServersFromFile=function(){var e=Object(x.a)(m.a.mark((function e(t){var r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}throw new Error("No file provided");case 2:return r=n.fileReaderFactory(),e.abrupt("return",new Promise((function(e,c){r.addEventListener("loadend",(function(t){try{var r,a,s,i=null!==(r=null===(a=t.target)||void 0===a||null===(s=a.result)||void 0===s?void 0:s.toString())&&void 0!==r?r:"",o=n.csvJson.toObject(i);if(!mc(o))throw new Error("Provided file does not have the right format.");e(o)}catch(t){c(t)}})),r.readAsText(t)})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},gc=r(104),pc=function e(t,r,n){var c=this;Object(g.a)(this,e),this.storage=t,this.window=r,this.csvjson=n,this.exportServers=Object(x.a)(m.a.mark((function e(){var t,r,n;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=Object(Re.a)(null!==(t=c.storage.get("servers"))&&void 0!==t?t:{}).map(Object(Bn.a)("id"));try{n=c.csvjson.toCSV(r,{headers:"key"}),Object(gc.a)(c.window,n,"shlink-servers.csv")}catch(a){console.error(a)}case 2:case"end":return e.stop()}}),e)})))},yc=function(e,t,r){e.serviceFactory("ManageServers",hc,"ServersExporter","ImportServersBtn","useStateFlagTimeout","ManageServersRow"),e.decorator("ManageServers",t(["servers"])),e.serviceFactory("ManageServersRow",Oc,"ManageServersRowDropdown"),e.serviceFactory("ManageServersRowDropdown",vc,"DeleteServerModal"),e.decorator("ManageServersRowDropdown",t(null,["setAutoConnect"])),e.serviceFactory("CreateServer",wn,"ImportServersBtn","useStateFlagTimeout"),e.decorator("CreateServer",oc.a),e.decorator("CreateServer",t(["selectedServer","servers"],["createServer","resetSelectedServer"])),e.serviceFactory("EditServer",Rn,"ServerError"),e.decorator("EditServer",t(["selectedServer"],["editServer","selectServer"])),e.serviceFactory("ServersDropdown",(function(){return kn})),e.decorator("ServersDropdown",t(["servers","selectedServer"])),e.serviceFactory("DeleteServerModal",(function(){return _n})),e.decorator("DeleteServerModal",r),e.decorator("DeleteServerModal",t(null,["deleteServer"])),e.serviceFactory("DeleteServerButton",Un,"DeleteServerModal"),e.serviceFactory("ImportServersBtn",En,"ServersImporter"),e.decorator("ImportServersBtn",t(null,["createServers"])),e.serviceFactory("ForServerVersion",(function(){return ac})),e.decorator("ForServerVersion",t(["selectedServer"])),e.serviceFactory("ServerError",ic,"DeleteServerButton"),e.decorator("ServerError",t(["servers","selectedServer"])),e.serviceFactory("Overview",bc,"ShortUrlsTable","CreateShortUrl","ForServerVersion"),e.decorator("Overview",t(["shortUrlsList","tagsList","selectedServer","mercureInfo","visitsOverview"],["listShortUrls","listTags","createNewVisits","loadMercureInfo","loadVisitsOverview"])),e.constant("csvjson",gn.a),e.constant("fileReaderFactory",(function(){return new FileReader})),e.service("ServersImporter",xc,"csvjson","fileReaderFactory"),e.service("ServersExporter",pc,"Storage","window","csvjson"),e.serviceFactory("selectServer",Pn,"buildShlinkApiClient","loadMercureInfo"),e.serviceFactory("createServer",(function(){return $n})),e.serviceFactory("createServers",(function(){return Xn})),e.serviceFactory("deleteServer",(function(){return tc})),e.serviceFactory("editServer",(function(){return ec})),e.serviceFactory("setAutoConnect",(function(){return rc})),e.serviceFactory("fetchServers",cc,"axios"),e.serviceFactory("resetSelectedServer",(function(){return Gn}))},Sc=function(e){var t=e.visits,r=e.goBack,n=e.shortUrl,c=e.children,s=e.title;return Object(a.jsx)("header",{children:Object(a.jsxs)(Ee.a,{body:!0,children:[Object(a.jsxs)("h2",{className:"d-flex justify-content-between align-items-center mb-0",children:[Object(a.jsx)(Hr.a,{color:"link",size:"lg",className:"p-0 mr-3",onClick:r,children:Object(a.jsx)(V.a,{icon:L.a})}),Object(a.jsx)("span",{className:"text-center d-none d-sm-block",children:Object(a.jsx)("small",{children:s})}),Object(a.jsxs)("span",{className:"badge badge-main ml-3",children:["Visits:"," ",Object(a.jsx)(yr,{visitsCount:t.length,shortUrl:n})]})]}),Object(a.jsx)("h3",{className:"text-center d-block d-sm-none mb-0 mt-3",children:Object(a.jsx)("small",{children:s})}),c&&Object(a.jsx)("div",{className:"mt-md-2",children:c})]})})},Cc=function(e){var t,r,n=e.shortUrlDetail,c=e.shortUrlVisits,s=e.goBack,i=n.shortUrl,o=n.loading,l=c.visits,u=null!==(t=null===i||void 0===i?void 0:i.shortUrl)&&void 0!==t?t:"",d=null!==(r=null===i||void 0===i?void 0:i.longUrl)&&void 0!==r?r:"",j=null===i||void 0===i?void 0:i.title,b=Object(a.jsxs)(a.Fragment,{children:["Visits for ",Object(a.jsx)(jr.a,{href:u})]});return Object(a.jsxs)(Sc,{title:b,goBack:s,visits:l,shortUrl:i,children:[Object(a.jsx)("hr",{}),Object(a.jsxs)("div",{children:["Created: ",i?Object(a.jsxs)("span",{children:[Object(a.jsx)("b",{id:"created",className:"short-url-visits-header__created-at",children:Object(a.jsx)(mr,{date:i.dateCreated,relative:!0})}),Object(a.jsx)(xr.a,{placement:"bottom",target:"created",children:Object(a.jsx)(mr,{date:i.dateCreated})})]}):Object(a.jsx)("small",{children:"Loading..."})]}),Object(a.jsxs)("div",{children:["".concat(j?"Title":"Long URL",": "),o&&Object(a.jsx)("small",{children:"Loading..."}),!o&&Object(a.jsx)(jr.a,{href:d,children:null!==j&&void 0!==j?j:d})]})]})},Nc=r(602),wc=r(553),kc=r(603),_c=r(551),Uc=r(113),Tc=r(591),Rc=r(592),Ec=r(594),Dc=r(588),Lc=r(292),Vc=r(589),Ic=r(314),Fc=r(92),Ac=r(590),Mc=r(593),Gc=r(291),Pc=r.n(Gc),Bc=r(587),Hc="Others",Wc=["Android Browser","Chrome","Chromium","Firefox","Internet Explorer","Microsoft Edge","Opera","Safari","Samsung Internet for Android","Vivaldi","WeChat"],qc=function(e){var t,r;return Object(Dr.c)(e)?null!==(t=null===(r=e.split("/")[e.includes("://")?2:0])||void 0===r?void 0:r.split(":")[0])&&void 0!==t?t:"":"Direct"},zc=function(e,t){return Object.values(Object(d.a)(Object(d.a)({},Object(Bc.a)(t,t.map((function(){return 0})))),e))},Qc=function(e){return Object(a.jsx)($r,Object(d.a)({type:"switch"},e))},Kc=function(e,t){var r=e.native,n=Object(E.a)(t,1)[0];null!==r&&void 0!==r&&r.target&&(r.target.style.cursor=n?"pointer":"default")},Jc=function(e){var t=e.dataset,r=e.formattedValue;return"".concat(t.label,": ").concat(cr(r))},Zc=function(e){var t=e.label,r=e.formattedValue;return"".concat(t,": ").concat(cr(r))},Yc=r(46),Xc={monthly:"Month",weekly:"Week",daily:"Day",hourly:"Hour"},$c={hourly:function(e){return{hours:e}},daily:function(e){return{days:e}},weekly:function(e){return{weeks:e}},monthly:function(e){return{months:e}}},ea={hourly:Dc.a,daily:Lc.a,weekly:Vc.a,monthly:Ic.a},ta={hourly:function(e){return Object($.default)(e,"yyyy-MM-dd HH:00")},daily:function(e){return Object($.default)(e,"yyyy-MM-dd")},weekly:function(e){var t=Object($.default)(Object(Fc.a)(e),"yyyy-MM-dd"),r=Object($.default)(Object(Ac.a)(e),"yyyy-MM-dd");return"".concat(t," - ").concat(r)},monthly:function(e){return Object($.default)(e,"yyyy-MM")}},ra=function(e,t){return Object(Rc.a)((function(t){return ta[e](Object(F.default)(t.date))}),t)},na=function(e,t,r,n){if(n)return[Object.keys(t),Object.values(t)];var c=function(e,t){var r=ea[e],n=ta[e],c=Object(F.default)(t[0].date),a=Object(F.default)(t[t.length-1].date),s=r(c,a),i=$c[e];return[n(a)].concat(Object(_e.a)(Object(Dr.e)(s,(function(e){return n(Object(Mc.a)(a,i(e)))}))))}(r,e);return[c,zc(t,c)]},ca=function(e,t,r){return{label:t,data:e,fill:!1,tension:.2,borderColor:r,backgroundColor:r}},aa=null,sa=function(e,t,r){return function(n){var c=Object(E.a)(n,1)[0];if(r&&c){var a,s=c.index;if(aa===e[s])r([]),aa=null;else r(e[s]&&t[e[s]]||[]),aa=null!==(a=e[s])&&void 0!==a?a:null}}},ia=function(e){var t=e.title,r=e.visits,n=e.highlightedVisits,c=e.highlightedLabel,s=void 0===c?"Selected":c,i=e.setSelectedVisits,o=Object(A.useState)(r.length>0?function(e){var t,r=new Date,n=Object(F.default)(e);return null!==(t=Object(Zr.a)([[function(){return Object(Lc.a)(r,n)<=2},Object(Tc.a)("hourly")],[function(){return Object(Ic.a)(r,n)<=1},Object(Tc.a)("daily")],[function(){return Object(Ic.a)(r,n)<=6},Object(Tc.a)("weekly")]])())&&void 0!==t?t:"monthly"}(r[r.length-1].date):"monthly"),l=Object(E.a)(o,2),u=l[0],d=l[1],j=Object(Q.d)(!0),b=Object(E.a)(j,2),h=b[0],O=b[1],v=Object(A.useMemo)((function(){return function(e,t){return t.reduce((function(t,r){var n,c=ta[e](Object(F.default)(r.date));return t[c]=null!==(n=t[c])&&void 0!==n?n:[],t[c].push(r),t}),{})}(u,r)}),[u,r]),f=Object(A.useMemo)((function(){return ra(u,Object(Ec.a)(r))}),[u,r]),m=Object(A.useMemo)((function(){return na(r,f,u,h)}),[r,u,h]),x=Object(E.a)(m,2),g=x[0],p=x[1],y=Object(A.useMemo)((function(){return zc(ra(u,Object(Ec.a)(n)),g)}),[n,u,g]),S=function(){var e=ca(p,"Visits",Yc.c);return 0===n.length?[e]:[e,ca(y,s,Yc.a)]},C={maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{intersect:!1,axis:"x",callbacks:{label:Jc}}},scales:{y:{beginAtZero:!0,ticks:{precision:0,callback:cr}},x:{title:{display:!0,text:Xc[u]}}},onHover:Kc},N=function(){return Object(a.jsx)(Uc.c,{data:{labels:g,datasets:S()},options:C,getElementAtEvent:sa(g,v,i)})};return Object(a.jsxs)(Ee.a,{children:[Object(a.jsxs)(dc.a,{children:[t,Object(a.jsx)("div",{className:"float-right",children:Object(a.jsxs)(De.a,{children:[Object(a.jsx)(q.a,{caret:!0,color:"link",className:"btn-sm p-0",children:"Group by"}),Object(a.jsx)(z.a,{right:!0,children:Object.entries(Xc).map((function(e){var t=Object(E.a)(e,2),r=t[0],n=t[1];return Object(a.jsx)(H.a,{active:u===r,onClick:function(){return d(r)},children:n},r)}))})]})}),Object(a.jsx)("div",{className:"float-right mr-2",children:Object(a.jsx)(Qc,{checked:h,onChange:O,children:Object(a.jsx)("small",{children:"Skip dates with no visits"})})})]}),Object(a.jsxs)(jc.a,{className:"line-chart-card__body",children:[n.length>0&&N(),0===n.length&&N()]})]})},oa=r(595),la=function(e){var t=e.pagesCount,r=e.currentPage,n=e.setCurrentPage,c=e.centered,s=void 0===c||c;if(t<2)return null;var i=function(e){return function(){return!ir(e)&&n(e)}};return Object(a.jsxs)(Xt.a,{listClassName:G()("flex-wrap mb-0 simple-paginator",{"justify-content-center":s}),children:[Object(a.jsx)(Zt.a,{disabled:r<=1,children:Object(a.jsx)(Yt.a,{previous:!0,tag:"span",onClick:i(r-1)})}),sr(r,t).map((function(e,t){return Object(a.jsx)(Zt.a,{disabled:ir(e),active:r===e,children:Object(a.jsx)(Yt.a,{tag:"span",onClick:i(e),children:or(e)})},lr(e,t))})),Object(a.jsx)(Zt.a,{disabled:r>=t,children:Object(a.jsx)(Yt.a,{next:!0,tag:"span",onClick:i(r+1)})})]})},ua=function(e,t){return t.filter((function(t){return function(e,t){var r=e.browser,n=e.os,c=e.referer,a=e.country,s=e.city,i=Object(D.a)(e,["browser","os","referer","country","city"]);return"".concat(r," ").concat(n," ").concat(c," ").concat(a," ").concat(s," ").concat(i.visitedUrl).toLowerCase().includes(t.toLowerCase())}(t,e)}))},da=function(e,t,r){var n=function(e,t){return Ie(t,e)}(r,t?ua(t,e):Object(_e.a)(e)),c=n.length;return{visitsGroups:Object(oa.a)(20,n),total:c}},ja=function(e){var t,r,n=e.visits,c=e.selectedVisits,s=void 0===c?[]:c,i=e.setSelectedVisits,o=e.selectedServer,l=e.matchMedia,u=void 0===l?window.matchMedia:l,d=e.isOrphanVisits,j=void 0!==d&&d,b="visits-table__header-cell visits-table__sticky",h=function(){return u("(max-width: 767px)").matches},O=Object(A.useState)(h()),v=Object(E.a)(O,2),f=v[0],m=v[1],x=Object(A.useState)(void 0),g=Object(E.a)(x,2),p=g[0],y=g[1],S=Object(A.useState)({}),C=Object(E.a)(S,2),N=C[0],w=C[1],k=Object(A.useMemo)((function(){return da(n,p,N)}),[p,N]),_=Object(A.useRef)(!0),U=Object(A.useState)(1),T=Object(E.a)(U,2),R=T[0],D=T[1],I=20*R,F=I-20,M=Object(Lt.a)(o),B=7+Number(M)+Number(j),H=function(e){return function(){return w({field:e,dir:Ve(e,N.field,N.dir)})}},W=function(e){return Object(a.jsx)(Pe,{currentOrder:N,field:e,className:"visits-table__header-icon"})};return Object(A.useEffect)((function(){var e=function(){return m(h())};return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}),[]),Object(A.useEffect)((function(){D(1),!_.current&&i([]),_.current=!1}),[p]),Object(a.jsxs)("table",{className:"table table-bordered table-hover table-sm table-responsive-sm visits-table",children:[Object(a.jsxs)("thead",{className:"visits-table__header",children:[Object(a.jsxs)("tr",{children:[Object(a.jsx)("th",{className:"".concat(b," text-center"),onClick:function(){return i(s.length0})})}),M&&Object(a.jsxs)("th",{className:"".concat(b," text-center"),onClick:H("potentialBot"),children:[Object(a.jsx)(V.a,{icon:L.G}),W("potentialBot")]}),Object(a.jsxs)("th",{className:b,onClick:H("date"),children:["Date",W("date")]}),Object(a.jsxs)("th",{className:b,onClick:H("country"),children:["Country",W("country")]}),Object(a.jsxs)("th",{className:b,onClick:H("city"),children:["City",W("city")]}),Object(a.jsxs)("th",{className:b,onClick:H("browser"),children:["Browser",W("browser")]}),Object(a.jsxs)("th",{className:b,onClick:H("os"),children:["OS",W("os")]}),Object(a.jsxs)("th",{className:b,onClick:H("referer"),children:["Referrer",W("referer")]}),j&&Object(a.jsxs)("th",{className:b,onClick:H("visitedUrl"),children:["Visited URL",W("visitedUrl")]})]}),Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:B,className:"p-0",children:Object(a.jsx)(P,{noBorder:!0,large:!1,onChange:y})})})]}),Object(a.jsxs)("tbody",{children:[!(null!==(t=k.visitsGroups[R-1])&&void 0!==t&&t.length)&&Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:B,className:"text-center",children:"No visits found with current filtering"})}),null===(r=k.visitsGroups[R-1])||void 0===r?void 0:r.map((function(e,t){var r=s.includes(e);return Object(a.jsxs)("tr",{style:{cursor:"pointer"},className:G()({"table-active":r}),onClick:function(){return i(r?s.filter((function(t){return t!==e})):[].concat(Object(_e.a)(s),[e]))},children:[Object(a.jsx)("td",{className:"text-center",children:r&&Object(a.jsx)(V.a,{icon:L.h,className:"text-primary"})}),M&&Object(a.jsx)("td",{className:"text-center",children:e.potentialBot&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(V.a,{icon:L.G,id:"botIcon".concat(t)}),Object(a.jsx)(xr.a,{placement:"right",target:"botIcon".concat(t),children:"Potentially a visit from a bot or crawler"})]})}),Object(a.jsx)("td",{children:Object(a.jsx)(mr,{date:e.date})}),Object(a.jsx)("td",{children:e.country}),Object(a.jsx)("td",{children:e.city}),Object(a.jsx)("td",{children:e.browser}),Object(a.jsx)("td",{children:e.os}),Object(a.jsx)("td",{children:e.referer}),j&&Object(a.jsx)("td",{children:e.visitedUrl})]},t)}))]}),k.total>20&&Object(a.jsx)("tfoot",{children:Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:B,className:"visits-table__footer-cell visits-table__sticky",children:Object(a.jsxs)("div",{className:"row",children:[Object(a.jsx)("div",{className:"col-md-6",children:Object(a.jsx)(la,{pagesCount:Math.ceil(k.total/20),currentPage:R,setCurrentPage:D,centered:f})}),Object(a.jsx)("div",{className:G()("col-md-6",{"d-flex align-items-center flex-row-reverse":!f,"text-center mt-3":f}),children:Object(a.jsxs)("div",{children:["Visits ",Object(a.jsx)("b",{children:cr(F+1)})," to"," ",Object(a.jsx)("b",{children:cr(Object(tr.a)(I,k.total))})," of"," ",Object(a.jsx)("b",{children:cr(k.total)})]})})]})})})})]})},ba=r(615),ha=r(596),Oa=r(597),va=r(598),fa=function(){return Object(a.jsx)(ba.a,{attribution:'© OpenStreetMap contributors',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"})},ma=function(e){return 0===e.length?{}:e.length>1?{bounds:e.map(Object(O.a)("latLong"))}:{zoom:10,center:Object(E.a)(e,1)[0].latLong}},xa=function(e){var t=e.toggle,r=e.isOpen,n=e.title,c=e.locations,s=void 0===c?[]:c;return Object(a.jsx)(_r.a,{toggle:t,isOpen:r,className:"map-modal__modal",contentClassName:"map-modal__modal-content",children:Object(a.jsxs)(Tr.a,{className:"map-modal__modal-body",children:[Object(a.jsxs)("h3",{className:"map-modal__modal-title",children:[n,Object(a.jsx)("button",{type:"button",className:"close",onClick:t,children:"\xd7"})]}),Object(a.jsxs)(ha.a,Object(d.a)(Object(d.a)({},ma(s)),{},{children:[Object(a.jsx)(fa,{}),s.map((function(e,t){var r=e.cityName,n=e.latLong,c=e.count;return Object(a.jsx)(Oa.a,{position:n,children:Object(a.jsxs)(va.a,{children:[Object(a.jsx)("b",{children:c})," visit",c>1?"s":""," from ",Object(a.jsx)("b",{children:r})]})},t)}))]}))]})})},ga=function(e){var t=e.modalTitle,r=e.activeCities,n=e.locations,c=void 0===n?[]:n,s=Object(Q.d)(),i=Object(E.a)(s,4),o=i[0],l=i[2],u=i[3],d=Object(Q.d)(),j=Object(E.a)(d,3),b=j[0],h=j[1],O=j[2],v=Object(A.useState)([]),f=Object(E.a)(v,2),m=f[0],x=f[1],g=Object(A.useRef)(),p=function(e){return function(){x(e?c.filter((function(e){var t=e.cityName;return r.includes(t)})):c),l()}};return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)("button",{className:"btn btn-link open-map-modal-btn__btn",ref:g,onClick:function(){if(!r)return x(c),void l();O()},children:Object(a.jsx)(V.a,{icon:L.x})}),Object(a.jsx)(xr.a,{placement:"left",target:function(){return g.current},children:"Show in map"}),Object(a.jsx)(W.a,{isOpen:b,toggle:h,inNavbar:!0,children:Object(a.jsxs)(z.a,{right:!0,children:[Object(a.jsx)(H.a,{onClick:p(!1),children:"Show all locations"}),Object(a.jsx)(H.a,{onClick:p(!0),children:"Show locations in current page"})]})}),Object(a.jsx)(xa,{toggle:u,isOpen:o,title:t,locations:m})]})},pa=r(599),ya=function(e){return e.hasOwnProperty("visitedUrl")},Sa=Object(I.a)(Object(pa.a)((function(e){return ya(e.visit)?"orphanVisits":"regularVisits"})),(function(e){return Object(d.a)({orphanVisits:[],regularVisits:[]},e)})),Ca=function(e,t){return Object(Rc.a)(Object(O.a)(t),e)},Na=function(e){var t,r,n=e.page,c=e.itemsPerPage,a=e.filter,s=e.dateRange;return{page:n,itemsPerPage:c,startDate:null!==(t=(null===s||void 0===s?void 0:s.startDate)&&se(null===s||void 0===s?void 0:s.startDate))&&void 0!==t?t:void 0,endDate:null!==(r=(null===s||void 0===s?void 0:s.endDate)&&se(null===s||void 0===s?void 0:s.endDate))&&void 0!==r?r:void 0,excludeBots:(null===a||void 0===a?void 0:a.excludeBots)||void 0}},wa=function(e,t){return!Object(y.a)(e)&&Object(Dr.c)(e[t])},ka=function(e){return"number"===typeof e?e:e?parseFloat(e):0},_a=function(e){return function(t,r){var n=wa(r,e)?r[e]:"Unknown";t[n]=(t[n]||0)+1}},Ua=_a("country"),Ta=_a("city"),Ra=function(e){return e.reduce((function(e,t){return function(e,t){var r=t.os;e[r]=(e[r]||0)+1}(e.os,t),function(e,t){var r=t.browser;e[r]=(e[r]||0)+1}(e.browsers,t),function(e,t){var r=t.referer;e[r]=(e[r]||0)+1}(e.referrers,t),Ua(e.countries,t),Ta(e.cities,t),function(e,t){if(wa(t,"city")&&"Unknown"!==t.city){var r=t.city,n=t.latitude,c=t.longitude,a=e[r]||{cityName:r,count:0,latLong:[ka(n),ka(c)]};a.count++,e[r]=a}}(e.citiesForMap,t),function(e,t){if(function(e){return e.hasOwnProperty("visitedUrl")}(t)){var r=t.visitedUrl;e[r]=(e[r]||0)+1}}(e.visitedUrls,t),e}),{os:{},browsers:{},referrers:{},countries:{},cities:{},citiesForMap:{},visitedUrls:{}})},Ea=Object(qn.a)((function(e){var t=e.userAgent,r=e.date,n=e.referer,c=e.visitLocation,a=e.potentialBot,s=void 0!==a&&a,i=Object(d.a)(Object(d.a)({date:r,potentialBot:s},function(e){if(!Object(Dr.c)(e))return{browser:Hc,os:Hc};var t=Pc.a.parse(e),r=t.browser.name,n=t.os.name;return{os:null!==n&&void 0!==n?n:Hc,browser:r&&Wc.includes(r)?r:Hc}}(t)),{},{referer:qc(n),country:(null===c||void 0===c?void 0:c.countryName)||"Unknown",city:(null===c||void 0===c?void 0:c.cityName)||"Unknown",latitude:null===c||void 0===c?void 0:c.latitude,longitude:null===c||void 0===c?void 0:c.longitude});return ya(e)?Object(d.a)(Object(d.a)({},i),{},{type:e.type,visitedUrl:e.visitedUrl}):i})),Da=function(e){var t=e.onChange,r=e.selected,n=void 0===r?{}:r,c=e.className,s=e.isOrphanVisits,i=e.botsSupported;if(!i&&!s)return null;var o=n.orphanVisitsType,l=n.excludeBots,u=void 0!==l&&l,j=function(e){return{active:o===e,onClick:function(){return t(Object(d.a)(Object(d.a)({},n),{},{orphanVisitsType:e===(null===n||void 0===n?void 0:n.orphanVisitsType)?void 0:e}))}}};return Object(a.jsxs)(K,{text:"Filters",dropdownClassName:c,className:"mr-3",right:!0,minWidth:250,children:[i&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(H.a,{header:!0,children:"Bots:"}),Object(a.jsx)(H.a,{active:u,onClick:function(){return t(Object(d.a)(Object(d.a)({},n),{},{excludeBots:!(null!==n&&void 0!==n&&n.excludeBots)}))},children:"Exclude potential bots"})]}),i&&s&&Object(a.jsx)(H.a,{divider:!0}),s&&Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(H.a,{header:!0,children:"Orphan visits type:"}),Object(a.jsx)(H.a,Object(d.a)(Object(d.a)({},j("base_url")),{},{children:"Base URL"})),Object(a.jsx)(H.a,Object(d.a)(Object(d.a)({},j("invalid_short_url")),{},{children:"Invalid short URL"})),Object(a.jsx)(H.a,Object(d.a)(Object(d.a)({},j("regular_404")),{},{children:"Regular 404"}))]}),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{disabled:!Object(Dr.c)(n),onClick:function(){return t({})},children:Object(a.jsx)("i",{children:"Clear filters"})})]})},La=function(e){var t,r,n=e.chart.config,c=null!==(t=n.data)&&void 0!==t?t:{},s=c.labels,i=void 0===s?[]:s,o=c.datasets,l=void 0===o?[]:o,u=Object(E.a)(l,1)[0].backgroundColor,d=(null!==(r=n.options)&&void 0!==r?r:{}).defaultColor;return Object(a.jsx)("ul",{className:"doughnut-chart-legend",children:i.map((function(e,t){var r;return Object(a.jsxs)("li",{className:"doughnut-chart-legend__item d-flex",children:[Object(a.jsx)("div",{className:"doughnut-chart-legend__item-color",style:{backgroundColor:null!==(r=u[t])&&void 0!==r?r:d}}),Object(a.jsx)("small",{className:"doughnut-chart-legend__item-text flex-fill",children:e})]},e)}))})},Va=function(e){return[{data:e,backgroundColor:["#97BBCD","#F7464A","#46BFBD","#FDB45C","#949FB1","#57A773","#414066","#08B2E3","#B6C454","#DCDCDC","#463730"],borderColor:Object(Yc.h)()?Yc.e:Yc.f,borderWidth:2}]},Ia=Object(A.memo)((function(e){var t=e.stats,r=Object(A.useState)(),n=Object(E.a)(r,2),c=n[0],s=n[1],i=Object(Te.a)(t),o=Object(Re.a)(t),l={plugins:{legend:{display:!1},tooltip:{intersect:!0,callbacks:{label:Zc}}}},u=function(e,t){return{labels:e,datasets:Va(t)}}(i,o);return Object(a.jsxs)("div",{className:"row",children:[Object(a.jsx)("div",{className:"col-sm-12 col-md-7",children:Object(a.jsx)(Uc.b,{height:300,data:u,options:l,ref:function(e){s(null!==e&&void 0!==e?e:void 0)}})}),Object(a.jsx)("div",{className:"col-sm-12 col-md-5",children:c&&Object(a.jsx)(La,{chart:c})})]})})),Fa=r(600),Aa=function(e){var t=e.title,r=e.footer,n=e.children;return Object(a.jsxs)(Ee.a,{children:[Object(a.jsx)(dc.a,{className:"chart-card__header",children:"function"===typeof t?t():t}),Object(a.jsx)(jc.a,{children:n}),r&&Object(a.jsx)(Fa.a,{className:"chart-card__footer--sticky",children:r})]})},Ma=function(e){var t=e.title,r=e.stats;return Object(a.jsx)(Aa,{title:t,children:Object(a.jsx)(Ia,{stats:r})})},Ga=r(127),Pa=r(608),Ba=r(601),Ha=function(e){var t=e.toggleClassName,r=e.ranges,n=e.value,c=e.setValue;return Object(a.jsxs)(De.a,{children:[Object(a.jsx)(q.a,{caret:!0,color:"link",className:t,children:"Paginate"}),Object(a.jsxs)(z.a,{right:!0,children:[r.map((function(e){return Object(a.jsxs)(H.a,{active:e===n,onClick:function(){return c(e)},children:[Object(a.jsx)("b",{children:e})," items per page"]},e)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{disabled:n===1/0,onClick:function(){return c(1/0)},children:Object(a.jsx)("i",{children:"Clear pagination"})})]})]})},Wa=function(e){return e.startsWith("hidden")?"":e},qa=function(e,t,r){var n={data:e,label:r?"Non-selected":"Visits",backgroundColor:Yc.d,borderColor:Yc.c,borderWidth:2};return t.every((function(e){return 0===e}))?[n]:[n,{label:null!==r&&void 0!==r?r:"Selected",data:t,backgroundColor:Yc.b,borderColor:Yc.a,borderWidth:2}]},za=function(e,t){return function(r){var n=Object(E.a)(r,1)[0];t&&n&&t(e[n.index])}},Qa=function(e){var t=e.stats,r=e.highlightedStats,n=e.highlightedLabel,c=e.onClick,s=e.max,i=Object(Te.a)(t).map(Wa),o=Object(Re.a)(function(e){return!!e&&Object.keys(e).length>0}(r)?Object(Te.a)(r).reduce((function(e,t){return e[t]&&(e[t]-=r[t]),e}),Object(d.a)({},t)):t),l=zc(null!==r&&void 0!==r?r:{},i),u={plugins:{legend:{display:!1},tooltip:{mode:"y",filter:function(e){return""!==e.label},callbacks:{label:Jc}}},scales:{x:{beginAtZero:!0,stacked:!0,max:s,ticks:{precision:0,callback:cr}},y:{stacked:!0}},onHover:Kc,indexAxis:"y"},j=function(e,t,r,n){return{labels:e,datasets:qa(t,r,n)}}(i,o,l,n),b=function(e){return e.length>20?10*e.length:void 0}(i),h=function(e){return Object(a.jsx)(Uc.a,{data:j,options:u,height:b,getElementAtEvent:za(i,c)},"".concat(b,"_").concat(e))};return Object(a.jsxs)(a.Fragment,{children:[void 0!==r&&h("with_stats"),void 0===r&&h("without_stats")]})},Ka=function(e){return"String"===Object(Ga.a)(e)?Object(Pa.a)(e):e},Ja=function(e){return Object(E.a)(e,1)[0]},Za=function(e){return Object(E.a)(e,2)[1]},Ya=function(e){var t=e.stats,r=e.highlightedStats,n=e.title,c=e.sortingItems,s=e.extraHeaderContent,i=e.withPagination,o=void 0===i||i,l=Object(D.a)(e,["stats","highlightedStats","title","sortingItems","extraHeaderContent","withPagination"]),u=Object(A.useState)({}),j=Object(E.a)(u,2),b=j[0],h=j[1],O=Object(A.useState)(1),v=Object(E.a)(O,2),f=v[0],m=v[1],x=Object(A.useState)(50),g=Object(E.a)(x,2),p=g[0],y=g[1],S=function(e){var t=e[f-1];if(f0?r:void 0,c),N=C.currentPageStats,w=C.currentPageHighlightedStats,k=C.pagination,_=C.max,U=Object.keys(N);return Object(a.jsx)(Aa,{title:function(){return Object(a.jsxs)(a.Fragment,{children:[n,Object(a.jsx)("div",{className:"float-right",children:Object(a.jsx)(Fe,{isButton:!1,right:!0,items:c,order:b,onChange:function(e,t){h({field:e,dir:t}),m(1)}})}),o&&Object.keys(t).length>50&&Object(a.jsx)("div",{className:"float-right",children:Object(a.jsx)(Ha,{toggleClassName:"btn-sm p-0 mr-3",ranges:[50,100,200,500],value:p,setValue:function(e){y(e),m(1)}})}),s&&Object(a.jsx)("div",{className:"float-right",children:s(k?U:void 0)})]})},footer:k,children:Object(a.jsx)(Qa,Object(d.a)({stats:N,highlightedStats:w,max:_},l))})},Xa={byTime:{title:"By time",subPath:"",icon:L.d},byContext:{title:"By context",subPath:"/by-context",icon:L.g},byLocation:{title:"By location",subPath:"/by-location",icon:L.x},list:{title:"List",subPath:"/list",icon:L.w}},$a=function(e){var t=e.subPath,r=e.title,n=e.icon,c=e.to;return Object(a.jsxs)(wc.a,{tag:o.c,className:"visits-stats__nav-link",to:c,isActive:function(e,r){return r.pathname.endsWith("visits".concat(t))},replace:!0,children:[Object(a.jsx)(V.a,{icon:n}),Object(a.jsx)("span",{className:"ml-2 d-none d-sm-inline",children:r})]})},es=function(e){var t,r,n=e.children,c=e.visitsInfo,s=e.getVisits,i=e.cancelGetVisits,o=e.baseUrl,l=e.domain,u=e.settings,j=e.exportCsv,h=e.selectedServer,O=e.isOrphanVisits,v=void 0!==O&&O,f=null!==(t=null===(r=u.visits)||void 0===r?void 0:r.defaultInterval)&&void 0!==t?t:"last30Days",m=Object(A.useState)(fe(f)),x=Object(E.a)(m,2),g=x[0],p=x[1],y=Object(A.useState)([]),C=Object(E.a)(y,2),N=C[0],w=C[1],k=Object(A.useState)(),_=Object(E.a)(k,2),U=_[0],T=_[1],R=Object(A.useState)({}),D=Object(E.a)(R,2),I=D[0],F=D[1],M=Object(Lt.a)(h),P=function(e){var t=l?"?domain=".concat(l):"";return e?"".concat(o).concat(e).concat(t):"".concat(o).concat(t)},B=c.visits,H=c.loading,W=c.loadingLarge,q=c.error,z=c.errorData,Q=c.progress,K=Object(A.useMemo)((function(){return Ea(B)}),[B]),J=Object(A.useMemo)((function(){return Ra(K)}),[K]),Z=J.os,Y=J.browsers,X=J.referrers,$=J.countries,ee=J.cities,te=J.citiesForMap,re=J.visitedUrls,ne=Object(Re.a)(te),ce=function(e){Ze=void 0,w(e)},ae=function(e){return function(t){var r="".concat(e,"_").concat(t);Ze===r?(w([]),T(void 0),Ze=void 0):(w(K.filter(Object(Nc.a)(e,t))),T(t),Ze=r)}};Object(A.useEffect)((function(){return i}),[]),Object(A.useEffect)((function(){s({dateRange:g,filter:I})}),[g,I]);return Object(a.jsxs)(a.Fragment,{children:[n,Object(a.jsx)("section",{className:"mt-3",children:Object(a.jsxs)("div",{className:"row flex-md-row-reverse",children:[Object(a.jsx)("div",{className:"col-lg-7 col-xl-6",children:Object(a.jsxs)("div",{className:"d-md-flex",children:[Object(a.jsx)("div",{className:"flex-fill",children:Object(a.jsx)(Ce,{disabled:H,initialDateRange:f,defaultText:"All visits",onDatesChange:p})}),Object(a.jsx)(Da,{className:"ml-0 ml-md-2 mt-3 mt-md-0",isOrphanVisits:v,botsSupported:M,selected:I,onChange:F})]})}),B.length>0&&Object(a.jsx)("div",{className:"col-lg-5 col-xl-6 mt-3 mt-lg-0",children:Object(a.jsxs)("div",{className:"d-flex",children:[Object(a.jsxs)(Hr.a,{outline:!0,disabled:0===N.length,className:"btn-md-block mr-2",onClick:function(){return ce([])},children:["Clear selection ",N.length>0&&Object(a.jsxs)(a.Fragment,{children:["(",cr(N.length),")"]})]}),Object(a.jsxs)(Hr.a,{outline:!0,color:"primary",className:"btn-md-block",onClick:function(){return j(K)},children:[Object(a.jsx)(V.a,{icon:L.q})," Export (",cr(K.length),")"]})]})})]})}),Object(a.jsx)("section",{className:"mt-3",children:W?Object(a.jsxs)(un.a,{loading:!0,children:["This is going to take a while... :S",Object(a.jsx)(kc.a,{value:Q,striped:100===Q,className:"mt-3"})]}):H?Object(a.jsx)(un.a,{loading:!0}):q?Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:z,fallbackMessage:"An error occurred while loading visits :("})}):Object(S.a)(B)?Object(a.jsx)(un.a,{children:"There are no visits matching current filter :("}):Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Ee.a,{className:"visits-stats__nav p-0 overflow-hidden",body:!0,children:Object(a.jsx)(_c.a,{pills:!0,fill:!0,children:Object.entries(Xa).map((function(e){var t=Object(E.a)(e,2),r=t[0],n=t[1];return Object(a.jsx)($a,Object(d.a)(Object(d.a)({},n),{},{to:P(n.subPath)}),r)}))})}),Object(a.jsx)(Lr.a,{children:Object(a.jsxs)(b.d,{children:[Object(a.jsx)(b.b,{exact:!0,path:o,children:Object(a.jsx)("div",{className:"col-12 mt-3",children:Object(a.jsx)(ia,{title:"Visits during time",visits:K,highlightedVisits:N,highlightedLabel:U,setSelectedVisits:ce})})}),Object(a.jsxs)(b.b,{exact:!0,path:"".concat(o).concat(Xa.byContext.subPath),children:[Object(a.jsx)("div",{className:G()("mt-3 col-lg-6",{"col-xl-4":!v}),children:Object(a.jsx)(Ma,{title:"Operating systems",stats:Z})}),Object(a.jsx)("div",{className:G()("mt-3 col-lg-6",{"col-xl-4":!v}),children:Object(a.jsx)(Ma,{title:"Browsers",stats:Y})}),Object(a.jsx)("div",{className:G()("mt-3",{"col-xl-4":!v,"col-lg-6":v}),children:Object(a.jsx)(Ya,{title:"Referrers",stats:X,withPagination:!1,highlightedStats:Ca(N,"referer"),highlightedLabel:U,sortingItems:{name:"Referrer name",amount:"Visits amount"},onClick:ae("referer")})}),v&&Object(a.jsx)("div",{className:"mt-3 col-lg-6",children:Object(a.jsx)(Ya,{title:"Visited URLs",stats:re,highlightedLabel:U,highlightedStats:Ca(N,"visitedUrl"),sortingItems:{visitedUrl:"Visited URL",amount:"Visits amount"},onClick:ae("visitedUrl")})})]}),Object(a.jsxs)(b.b,{exact:!0,path:"".concat(o).concat(Xa.byLocation.subPath),children:[Object(a.jsx)("div",{className:"col-lg-6 mt-3",children:Object(a.jsx)(Ya,{title:"Countries",stats:$,highlightedStats:Ca(N,"country"),highlightedLabel:U,sortingItems:{name:"Country name",amount:"Visits amount"},onClick:ae("country")})}),Object(a.jsx)("div",{className:"col-lg-6 mt-3",children:Object(a.jsx)(Ya,{title:"Cities",stats:ee,highlightedStats:Ca(N,"city"),highlightedLabel:U,extraHeaderContent:function(e){return ne.length>0&&Object(a.jsx)(ga,{modalTitle:"Cities",locations:ne,activeCities:e})},sortingItems:{name:"City name",amount:"Visits amount"},onClick:ae("city")})})]}),Object(a.jsx)(b.b,{exact:!0,path:"".concat(o).concat(Xa.list.subPath),children:Object(a.jsx)("div",{className:"col-12",children:Object(a.jsx)(ja,{visits:K,selectedVisits:N,setSelectedVisits:ce,isOrphanVisits:v,selectedServer:h})})}),Object(a.jsx)(b.a,{to:o})]})})]})})]})},ts=function(e){var t=e.exportVisits;return Me((function(e){var r=e.history.goBack,n=e.match,c=n.params,s=n.url,i=e.location.search,o=e.shortUrlVisits,l=e.shortUrlDetail,u=e.getShortUrlVisits,j=e.getShortUrlDetail,b=e.cancelGetShortUrlVisits,h=e.settings,O=e.selectedServer,v=c.shortCode,f=Object(C.a)(i).domain;return Object(A.useEffect)((function(){j(v,f)}),[]),Object(a.jsx)(es,{getVisits:function(e){return u(v,Object(d.a)(Object(d.a)({},Na(e)),{},{domain:f}))},cancelGetVisits:b,visitsInfo:o,baseUrl:s,domain:f,settings:h,exportCsv:function(e){var r;return t("short-url_".concat(null===(r=l.shortUrl)||void 0===r?void 0:r.shortUrl.replace(/https?:\/\//g,""),"_visits.csv"),e)},selectedServer:O,children:Object(a.jsx)(Cc,{shortUrlDetail:l,shortUrlVisits:o,goBack:r})})}),(function(e){var t=e.match;return[Ge.shortUrlVisits(t.params.shortCode)]}))},rs=r(613),ns=5e3,cs=function(e){return e.currentPage>=e.pagesCount},as=function(e,t){return 100*t/e},ss=function(){var e=Object(x.a)(m.a.mark((function e(t,r,n,c,a){var s,i,o,l;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c({type:n.start}),s=function(){var e=Object(x.a)(m.a.mark((function e(r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(r.map(function(){var e=Object(x.a)(m.a.mark((function e(r){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t(r,ns).then(Object(O.a)("data")));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then(rs.a));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),i=function(){var e=Object(x.a)(m.a.mark((function e(t){var r,o,l=arguments;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=l.length>1&&void 0!==l[1]?l[1]:0,!a()){e.next=3;break}return e.abrupt("return",[]);case 3:return e.next=5,s(t[r]);case 5:if(o=e.sent,c({type:n.progress,progress:as(t.length,r+2)}),!(r0&&void 0!==d[0]?d[0]:1,e.next=3,t(r,ns);case 3:if(a=e.sent,s=a.pagination,o=a.data,s&&!cs(s)){e.next=8;break}return e.abrupt("return",o);case 8:return l=Object($t.a)(2,s.pagesCount+1),u=Object(oa.a)(4,l),s.pagesCount-1>4&&c({type:n.large}),e.t0=o,e.next=14,i(u);case 14:return e.t1=e.sent,e.abrupt("return",e.t0.concat.call(e.t0,e.t1));case 16:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),e.prev=4,e.next=7,o();case 7:l=e.sent,c(Object(d.a)(Object(d.a)({},r),{},{visits:l,type:n.finish})),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(4),c({type:n.error,errorData:vt(e.t0)});case 14:case"end":return e.stop()}}),e,null,[[4,11]])})));return function(t,r,n,c,a){return e.apply(this,arguments)}}(),is="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_START",os="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_ERROR",ls="shlink/shortUrlVisits/GET_SHORT_URL_VISITS",us="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_LARGE",ds="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_CANCEL",js="shlink/shortUrlVisits/GET_SHORT_URL_VISITS_PROGRESS_CHANGED",bs={visits:[],shortCode:"",domain:void 0,loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},hs=it((Ye={},Object(u.a)(Ye,is,(function(){return Object(d.a)(Object(d.a)({},bs),{},{loading:!0})})),Object(u.a)(Ye,os,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},bs),{},{error:!0,errorData:r})})),Object(u.a)(Ye,ls,(function(e,t){var r=t.visits,n=t.query,c=t.shortCode,a=t.domain;return Object(d.a)(Object(d.a)({},bs),{},{visits:r,shortCode:c,domain:a,query:n})})),Object(u.a)(Ye,us,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loadingLarge:!0})})),Object(u.a)(Ye,ds,(function(e){return Object(d.a)(Object(d.a)({},e),{},{cancelLoad:!0})})),Object(u.a)(Ye,js,(function(e,t){var r=t.progress;return Object(d.a)(Object(d.a)({},e),{},{progress:r})})),Object(u.a)(Ye,ht,(function(e,t){var r=t.createdVisits,n=e.shortCode,c=e.domain,a=e.visits,s=e.query,i=void 0===s?{}:s,o=i.startDate,l=i.endDate,u=r.filter((function(e){var t=e.shortUrl,r=e.visit;return t&&bt(t,n,c)&&le(r.date,o,l)})).map((function(e){return e.visit}));return 0===u.length?e:Object(d.a)(Object(d.a)({},e),{},{visits:[].concat(Object(_e.a)(u),Object(_e.a)(a))})})),Ye),bs),Os=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=e(a),i=s.getShortUrlVisits,o=function(){var e=Object(x.a)(m.a.mark((function e(n,c){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(t,Object(d.a)(Object(d.a)({},r),{},{page:n,itemsPerPage:c})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),l=function(){return a().shortUrlVisits.cancelLoad},u={shortCode:t,query:r,domain:r.domain},j={start:is,large:us,finish:ls,error:os,progress:js},n.abrupt("return",ss(o,u,j,c,l));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()}},vs=ot(ds),fs=function(e){var t=e.tagVisits,r=e.goBack,n=e.colorGenerator,c=t.visits,s=t.tag,i=Object(a.jsxs)("span",{className:"d-flex align-items-center justify-content-center",children:[Object(a.jsx)("span",{className:"mr-2",children:"Visits for"}),Object(a.jsx)(B,{text:s,colorGenerator:n})]});return Object(a.jsx)(Sc,{title:i,goBack:r,visits:c})},ms=function(e,t){var r=t.exportVisits;return Me((function(t){var n=t.history.goBack,c=t.match,s=c.params,i=c.url,o=t.getTagVisits,l=t.tagVisits,u=t.cancelGetTagVisits,d=t.settings,j=t.selectedServer,b=s.tag;return Object(a.jsx)(es,{getVisits:function(e){return o(b,Na(e))},cancelGetVisits:u,visitsInfo:l,baseUrl:i,settings:d,exportCsv:function(e){return r("tag_".concat(b,"_visits.csv"),e)},selectedServer:j,children:Object(a.jsx)(fs,{tagVisits:l,goBack:n,colorGenerator:e})})}),(function(){return[Ge.visits]}))},xs="shlink/tagVisits/GET_TAG_VISITS_START",gs="shlink/tagVisits/GET_TAG_VISITS_ERROR",ps="shlink/tagVisits/GET_TAG_VISITS",ys="shlink/tagVisits/GET_TAG_VISITS_LARGE",Ss="shlink/tagVisits/GET_TAG_VISITS_CANCEL",Cs="shlink/tagVisits/GET_TAG_VISITS_PROGRESS_CHANGED",Ns={visits:[],tag:"",loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},ws=it((Xe={},Object(u.a)(Xe,xs,(function(){return Object(d.a)(Object(d.a)({},Ns),{},{loading:!0})})),Object(u.a)(Xe,gs,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},Ns),{},{error:!0,errorData:r})})),Object(u.a)(Xe,ps,(function(e,t){var r=t.visits,n=t.tag,c=t.query;return Object(d.a)(Object(d.a)({},Ns),{},{visits:r,tag:n,query:c})})),Object(u.a)(Xe,ys,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loadingLarge:!0})})),Object(u.a)(Xe,Ss,(function(e){return Object(d.a)(Object(d.a)({},e),{},{cancelLoad:!0})})),Object(u.a)(Xe,Cs,(function(e,t){var r=t.progress;return Object(d.a)(Object(d.a)({},e),{},{progress:r})})),Object(u.a)(Xe,ht,(function(e,t){var r=t.createdVisits,n=e.tag,c=e.visits,a=e.query,s=void 0===a?{}:a,i=s.startDate,o=s.endDate,l=r.filter((function(e){var t=e.shortUrl,r=e.visit;return(null===t||void 0===t?void 0:t.tags.includes(n))&&le(r.date,i,o)})).map((function(e){return e.visit}));return Object(d.a)(Object(d.a)({},e),{},{visits:[].concat(Object(_e.a)(l),Object(_e.a)(c))})})),Xe),Ns),ks=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=e(a),i=s.getTagVisits,o=function(){var e=Object(x.a)(m.a.mark((function e(n,c){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(t,Object(d.a)(Object(d.a)({},r),{},{page:n,itemsPerPage:c})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),l=function(){return a().tagVisits.cancelLoad},u={tag:t,query:r},j={start:xs,large:ys,finish:ps,error:gs,progress:Cs},n.abrupt("return",ss(o,u,j,c,l));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()}},_s=ot(Ss),Us=function(e){var t=e.orphanVisits,r=e.goBack,n=t.visits;return Object(a.jsx)(Sc,{title:"Orphan visits",goBack:r,visits:n})},Ts=function(e){var t=e.exportVisits;return Me((function(e){var r=e.history.goBack,n=e.match.url,c=e.getOrphanVisits,s=e.orphanVisits,i=e.cancelGetOrphanVisits,o=e.settings,l=e.selectedServer;return Object(a.jsx)(es,{getVisits:function(e){var t;return c(Na(e),null===(t=e.filter)||void 0===t?void 0:t.orphanVisitsType)},cancelGetVisits:i,visitsInfo:s,baseUrl:n,settings:o,exportCsv:function(e){return t("orphan_visits.csv",e)},selectedServer:l,isOrphanVisits:!0,children:Object(a.jsx)(Us,{orphanVisits:s,goBack:r})})}),(function(){return[Ge.orphanVisits]}))},Rs="shlink/orphanVisits/GET_ORPHAN_VISITS_START",Es="shlink/orphanVisits/GET_ORPHAN_VISITS_ERROR",Ds="shlink/orphanVisits/GET_ORPHAN_VISITS",Ls="shlink/orphanVisits/GET_ORPHAN_VISITS_LARGE",Vs="shlink/orphanVisits/GET_ORPHAN_VISITS_CANCEL",Is="shlink/orphanVisits/GET_ORPHAN_VISITS_PROGRESS_CHANGED",Fs={visits:[],loading:!1,loadingLarge:!1,error:!1,cancelLoad:!1,progress:0},As=it(($e={},Object(u.a)($e,Rs,(function(){return Object(d.a)(Object(d.a)({},Fs),{},{loading:!0})})),Object(u.a)($e,Es,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},Fs),{},{error:!0,errorData:r})})),Object(u.a)($e,Ds,(function(e,t){var r=t.visits,n=t.query;return Object(d.a)(Object(d.a)({},Fs),{},{visits:r,query:n})})),Object(u.a)($e,Ls,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loadingLarge:!0})})),Object(u.a)($e,Vs,(function(e){return Object(d.a)(Object(d.a)({},e),{},{cancelLoad:!0})})),Object(u.a)($e,Is,(function(e,t){var r=t.progress;return Object(d.a)(Object(d.a)({},e),{},{progress:r})})),Object(u.a)($e,ht,(function(e,t){var r=t.createdVisits,n=e.visits,c=e.query,a=void 0===c?{}:c,s=a.startDate,i=a.endDate,o=r.filter((function(e){var t=e.visit;return le(t.date,s,i)})).map((function(e){return e.visit}));return Object(d.a)(Object(d.a)({},e),{},{visits:[].concat(Object(_e.a)(o),Object(_e.a)(n))})})),$e),Fs),Ms=function(e,t){return!t||t===e.type},Gs=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o,l,u,j;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return s=e(a),i=s.getOrphanVisits,o=function(){var e=Object(x.a)(m.a.mark((function e(n,c){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",i(Object(d.a)(Object(d.a)({},t),{},{page:n,itemsPerPage:c})).then((function(e){var t=e.data.filter((function(e){return ya(e)&&Ms(e,r)}));return Object(d.a)(Object(d.a)({},e),{},{data:t})})));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),l=function(){return a().orphanVisits.cancelLoad},u={query:t},j={start:Rs,large:Ls,finish:Ds,error:Es,progress:Is},n.abrupt("return",ss(o,u,j,c,l));case 6:case"end":return n.stop()}}),n)})));return function(e,t){return n.apply(this,arguments)}}()}},Ps=ot(Vs),Bs="shlink/visitsOverview/GET_OVERVIEW_START",Hs="shlink/visitsOverview/GET_OVERVIEW_ERROR",Ws="shlink/visitsOverview/GET_OVERVIEW",qs={visitsCount:0,orphanVisitsCount:0,loading:!1,error:!1},zs=it((et={},Object(u.a)(et,Bs,(function(){return Object(d.a)(Object(d.a)({},qs),{},{loading:!0})})),Object(u.a)(et,Hs,(function(){return Object(d.a)(Object(d.a)({},qs),{},{error:!0})})),Object(u.a)(et,Ws,(function(e,t){var r=t.visitsCount,n=t.orphanVisitsCount;return Object(d.a)(Object(d.a)({},qs),{},{visitsCount:r,orphanVisitsCount:n})})),Object(u.a)(et,ht,(function(e,t){var r=e.visitsCount,n=e.orphanVisitsCount,c=void 0===n?0:n,a=Object(D.a)(e,["visitsCount","orphanVisitsCount"]),s=t.createdVisits,i=Sa(s),o=i.regularVisits,l=i.orphanVisits;return Object(d.a)(Object(d.a)({},a),{},{visitsCount:r+o.length,orphanVisitsCount:c+l.length})})),et),qs),Qs=function(e){return function(){return function(){var t=Object(x.a)(m.a.mark((function t(r,n){var c,a,s;return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r({type:Bs}),t.prev=1,c=e(n),a=c.getVisitsOverview,t.next=5,a();case 5:s=t.sent,r(Object(d.a)({type:Ws},s)),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(1),r({type:Hs});case 12:case"end":return t.stop()}}),t,null,[[1,9]])})));return function(e,r){return t.apply(this,arguments)}}()}},Ks=function e(t,r){var n=this;Object(g.a)(this,e),this.window=t,this.csvjson=r,this.exportVisits=function(e,t){if(t.length){var r=n.csvjson.toCSV(t,{headers:"key"});Object(gc.a)(n.window,r,e)}}},Js=function(e,t){e.serviceFactory("MapModal",(function(){return xa})),e.serviceFactory("ShortUrlVisits",ts,"VisitsExporter"),e.decorator("ShortUrlVisits",t(["shortUrlVisits","shortUrlDetail","mercureInfo","settings","selectedServer"],["getShortUrlVisits","getShortUrlDetail","cancelGetShortUrlVisits","createNewVisits","loadMercureInfo"])),e.serviceFactory("TagVisits",ms,"ColorGenerator","VisitsExporter"),e.decorator("TagVisits",t(["tagVisits","mercureInfo","settings","selectedServer"],["getTagVisits","cancelGetTagVisits","createNewVisits","loadMercureInfo"])),e.serviceFactory("OrphanVisits",Ts,"VisitsExporter"),e.decorator("OrphanVisits",t(["orphanVisits","mercureInfo","settings","selectedServer"],["getOrphanVisits","cancelGetOrphanVisits","createNewVisits","loadMercureInfo"])),e.serviceFactory("VisitsParser",(function(){return n})),e.service("VisitsExporter",Ks,"window","csvjson"),e.serviceFactory("getShortUrlVisits",Os,"buildShlinkApiClient"),e.serviceFactory("cancelGetShortUrlVisits",(function(){return vs})),e.serviceFactory("getTagVisits",ks,"buildShlinkApiClient"),e.serviceFactory("cancelGetTagVisits",(function(){return _s})),e.serviceFactory("getOrphanVisits",Gs,"buildShlinkApiClient"),e.serviceFactory("cancelGetOrphanVisits",(function(){return Ps})),e.serviceFactory("createNewVisits",(function(){return Ot})),e.serviceFactory("loadVisitsOverview",Qs,"buildShlinkApiClient")},Zs=r(293),Ys=r.n(Zs),Xs=function(e){var t=e.tag,r=e.colorGenerator;return Object(a.jsx)("div",{style:{backgroundColor:r.getColorForKey(t)},className:"tag-bullet"})},$s=function(e){return{id:e,name:e}},ei=function(e){return function(t){var r,n,c=t.selectedTags,s=t.onChange,i=t.placeholder,o=t.listTags,l=t.tagsList,u=t.settings;Object(A.useEffect)((function(){o()}),[]);var d=null!==(r=null===(n=u.shortUrlCreation)||void 0===n?void 0:n.tagFilteringMode)&&void 0!==r?r:"startsWith";return Object(a.jsx)(Ys.a,{tags:c.map($s),tagComponent:function(t){var r=t.tag,n=t.onDelete;return Object(a.jsx)(B,{colorGenerator:e,text:r.name,clearable:!0,className:"react-tags__tag",onClose:n})},suggestions:l.tags.filter((function(e){return!c.includes(e)})).map($s),suggestionComponent:function(t){var r=t.item;return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(Xs,{tag:"".concat(r.name),colorGenerator:e}),r.name]})},allowNew:!0,addOnBlur:!0,placeholderText:null!==i&&void 0!==i?i:"Add tags to the URL",minQueryLength:1,delimiters:["Enter","Tab",","],suggestionsTransform:"includes"===d?function(e,t){return t.filter((function(t){return t.name.includes(e)}))}:void 0,onDelete:function(e){var t=Object(_e.a)(c);t.splice(e,1),s(t)},onAddition:function(e){var t=e.name;return s(Object(_e.a)(new Set([].concat(Object(_e.a)(c),Object(_e.a)(t.toLowerCase().split(","))))))}})}},ti=r(550),ri=function(e,t,r){return function(n){var c=n.tag,s=n.selectedServer,i=n.displayed,l=n.toggle,u=Object(Q.d)(),d=Object(E.a)(u,2),j=d[0],b=d[1],h=Object(Q.d)(),O=Object(E.a)(h,2),f=O[0],m=O[1],x=Object(Q.d)(),g=Object(E.a)(x,3),p=g[0],y=g[2],S=Object(A.useRef)(),C=Object(v.a)(s);return Object(A.useEffect)((function(){var e;(e=S.current)&&e.scrollWidth>e.clientWidth&&y()}),[S.current]),Object(a.jsxs)(Ee.a,{className:"tag-card",children:[Object(a.jsxs)(dc.a,{className:"tag-card__header",children:[Object(a.jsx)(Hr.a,{color:"link",size:"sm",className:"tag-card__btn tag-card__btn--last",onClick:b,children:Object(a.jsx)(V.a,{icon:L.Q})}),Object(a.jsx)(Hr.a,{color:"link",size:"sm",className:"tag-card__btn",onClick:m,children:Object(a.jsx)(V.a,{icon:L.C})}),Object(a.jsxs)("h5",{className:"tag-card__tag-title text-ellipsis",title:p?c.tag:void 0,ref:function(e){S.current=null!==e&&void 0!==e?e:void 0},children:[Object(a.jsx)(Xs,{tag:c.tag,colorGenerator:r}),Object(a.jsx)("span",{className:"tag-card__tag-name",onClick:l,children:c.tag})]})]}),Object(a.jsx)(ti.a,{isOpen:i,children:Object(a.jsxs)(jc.a,{className:"tag-card__body",children:[Object(a.jsxs)(o.b,{to:"/server/".concat(C,"/list-short-urls/1?tags=").concat(encodeURIComponent(c.tag)),className:"btn btn-outline-secondary btn-block d-flex justify-content-between align-items-center mb-1",children:[Object(a.jsxs)("span",{className:"text-ellipsis",children:[Object(a.jsx)(V.a,{icon:L.v,className:"mr-2"}),"Short URLs"]}),Object(a.jsx)("b",{children:cr(c.shortUrls)})]}),Object(a.jsxs)(o.b,{to:"/server/".concat(C,"/tag/").concat(c.tag,"/visits"),className:"btn btn-outline-secondary btn-block d-flex justify-content-between align-items-center",children:[Object(a.jsxs)("span",{className:"text-ellipsis",children:[Object(a.jsx)(V.a,{icon:L.p,className:"mr-2"}),"Visits"]}),Object(a.jsx)("b",{children:cr(c.visits)})]})]})}),Object(a.jsx)(e,{tag:c.tag,toggle:b,isOpen:j}),Object(a.jsx)(t,{tag:c.tag,toggle:m,isOpen:f})]})}},ni=function(e){var t=e.tag,r=e.toggle,n=e.isOpen,c=e.deleteTag,s=e.tagDelete,i=e.tagDeleted,o=s.deleting,l=s.error,u=s.errorData,d=function(){var e=Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c(t);case 2:i(t),r();case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return Object(a.jsxs)(_r.a,{toggle:r,isOpen:n,centered:!0,children:[Object(a.jsx)(Ur.a,{toggle:r,children:Object(a.jsx)("span",{className:"text-danger",children:"Delete tag"})}),Object(a.jsxs)(Tr.a,{children:["Are you sure you want to delete tag ",Object(a.jsx)("b",{children:t}),"?",l&&Object(a.jsx)(Ir,{type:"error",small:!0,className:"mt-2",children:Object(a.jsx)(Fr,{errorData:u,fallbackMessage:"Something went wrong while deleting the tag :("})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)("button",{className:"btn btn-link",onClick:r,children:"Cancel"}),Object(a.jsx)("button",{className:"btn btn-danger",disabled:o,onClick:d,children:o?"Deleting tag...":"Delete tag"})]})]})},ci=r(604),ai=r(305),si=function(e){var t=e.getColorForKey;return function(e){var r=e.tag,n=e.editTag,c=e.toggle,s=e.tagEdited,i=e.isOpen,o=e.tagEdit,l=Object(A.useState)(r),u=Object(E.a)(l,2),d=u[0],j=u[1],b=Object(A.useState)(t(r)),h=Object(E.a)(b,2),O=h[0],v=h[1],f=Object(Q.d)(),g=Object(E.a)(f,4),p=g[0],y=g[1],S=g[3],C=o.editing,N=o.error,w=o.errorData,k=Object(Dr.b)(Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n(r,d,O).then((function(){return s(r,d,O)})).then(c).catch((function(){})));case 1:case"end":return e.stop()}}),e)}))));return Object(a.jsx)(_r.a,{isOpen:i,toggle:c,centered:!0,onClosed:S,children:Object(a.jsxs)("form",{onSubmit:k,children:[Object(a.jsx)(Ur.a,{toggle:c,children:"Edit tag"}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)("div",{className:"input-group",children:[Object(a.jsx)("div",{className:"input-group-prepend",id:"colorPickerBtn",onClick:y,children:Object(a.jsx)("div",{className:"input-group-text edit-tag-modal__color-picker-toggle",style:{backgroundColor:O,borderColor:O},children:Object(a.jsx)(V.a,{icon:L.A,className:"edit-tag-modal__color-icon"})})}),Object(a.jsx)(ci.a,{isOpen:p,toggle:y,target:"colorPickerBtn",placement:"right",children:Object(a.jsx)(ai.a,{color:O,disableAlpha:!0,onChange:function(e){var t=e.hex;return v(t)}})}),Object(a.jsx)(Qr.a,{value:d,placeholder:"Tag",required:!0,onChange:function(e){var t=e.target;return j(t.value)}})]}),N&&Object(a.jsx)(Ir,{type:"error",small:!0,className:"mt-2",children:Object(a.jsx)(Fr,{errorData:w,fallbackMessage:"Something went wrong while editing the tag :("})})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)(Hr.a,{type:"button",color:"link",onClick:c,children:"Cancel"}),Object(a.jsx)(Hr.a,{color:"primary",disabled:C,children:C?"Saving...":"Save"})]})]})})}},ii={tag:"Tag",shortUrls:"Short URLs",visits:"Visits"},oi=function(e){var t,r=e.mode,n=e.onChange,c=e.renderTitle;return Object(a.jsxs)(K,{text:null!==(t=null===c||void 0===c?void 0:c(r))&&void 0!==t?t:"Display mode: ".concat(r),children:[Object(a.jsxs)(H.a,{active:"cards"===r,onClick:function(){return n("cards")},children:[Object(a.jsx)(V.a,{icon:L.O,fixedWidth:!0,className:"mr-1"})," Cards"]}),Object(a.jsxs)(H.a,{active:"list"===r,onClick:function(){return n("list")},children:[Object(a.jsx)(V.a,{icon:L.c,fixedWidth:!0,className:"mr-1"})," List"]})]})},li=function(e,t){return Me((function(r){var n,c,s=r.filterTags,i=r.forceListTags,o=r.tagsList,l=r.selectedServer,u=r.settings,d=Object(A.useState)(null!==(n=null===(c=u.ui)||void 0===c?void 0:c.tagsMode)&&void 0!==n?n:"cards"),j=Object(E.a)(d,2),b=j[0],h=j[1],O=Object(A.useState)({}),v=Object(E.a)(O,2),f=v[0],m=v[1],x=Object(I.a)((function(){return o.filteredTags.map((function(e){var t,r,n,c;return{tag:e,shortUrls:null!==(t=null===(r=o.stats[e])||void 0===r?void 0:r.shortUrlsCount)&&void 0!==t?t:0,visits:null!==(n=null===(c=o.stats[e])||void 0===c?void 0:c.visitsCount)&&void 0!==n?n:0}}))}),(function(e){return Ie(e,f)}));if(Object(A.useEffect)((function(){i()}),[]),o.loading)return Object(a.jsx)(un.a,{loading:!0});if(o.error)return Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:o.errorData,fallbackMessage:"Error loading tags :("})});var g=function(e){return function(){var t=Ve(e,f.field,f.dir);m({field:t?e:void 0,dir:t})}};return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(P,{className:"mb-3",onChange:s}),Object(a.jsxs)(Lr.a,{className:"mb-3",children:[Object(a.jsx)("div",{className:"col-lg-6",children:Object(a.jsx)(oi,{mode:b,onChange:h})}),Object(a.jsx)("div",{className:"col-lg-6 mt-3 mt-lg-0",children:Object(a.jsx)(Fe,{items:ii,order:f,onChange:function(e,t){return m({field:e,dir:t})}})})]}),function(){if(o.filteredTags.length<1)return Object(a.jsx)(un.a,{children:"No tags found"});var r=x();return"cards"===b?Object(a.jsx)(e,{sortedTags:r,selectedServer:l}):Object(a.jsx)(t,{sortedTags:r,selectedServer:l,currentOrder:f,orderByColumn:g})}()]})}),(function(){return[Ge.visits]}))},ui="shlink/deleteTag/DELETE_TAG_START",di="shlink/deleteTag/DELETE_TAG_ERROR",ji="shlink/deleteTag/DELETE_TAG",bi="shlink/deleteTag/TAG_DELETED",hi=it((tt={},Object(u.a)(tt,ui,(function(){return{deleting:!0,error:!1}})),Object(u.a)(tt,di,(function(e,t){return{deleting:!1,error:!0,errorData:t.errorData}})),Object(u.a)(tt,ji,(function(){return{deleting:!1,error:!1}})),tt),{deleting:!1,error:!1}),Oi=function(e){return function(t){return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return n({type:ui}),a=e(c),s=a.deleteTags,r.prev=2,r.next=5,s([t]);case 5:n({type:ji}),r.next=12;break;case 8:throw r.prev=8,r.t0=r.catch(2),n({type:di,errorData:vt(r.t0)}),r.t0;case 12:case"end":return r.stop()}}),r,null,[[2,8]])})));return function(e,t){return r.apply(this,arguments)}}()}},vi=function(e){return{type:bi,tag:e}},fi="shlink/editTag/EDIT_TAG_START",mi="shlink/editTag/EDIT_TAG_ERROR",xi="shlink/editTag/EDIT_TAG",gi="shlink/editTag/TAG_EDITED",pi=it((rt={},Object(u.a)(rt,fi,(function(e){return Object(d.a)(Object(d.a)({},e),{},{editing:!0,error:!1})})),Object(u.a)(rt,mi,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},e),{},{editing:!1,error:!0,errorData:r})})),Object(u.a)(rt,xi,(function(e,t){return Object(d.a)(Object(d.a)({},Object(h.a)(["oldName","newName"],t)),{},{editing:!1,error:!1})})),rt),{oldName:"",newName:"",editing:!1,error:!1}),yi=function(e,t){return function(r,n,c){return function(){var a=Object(x.a)(m.a.mark((function a(s,i){var o,l;return m.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return s({type:fi}),o=e(i),l=o.editTag,a.prev=2,a.next=5,l(r,n);case 5:t.setColorForKey(n,c),s({type:xi,oldName:r,newName:n}),a.next=13;break;case 9:throw a.prev=9,a.t0=a.catch(2),s({type:mi,errorData:vt(a.t0)}),a.t0;case 13:case"end":return a.stop()}}),a,null,[[2,9]])})));return function(e,t){return a.apply(this,arguments)}}()}},Si=function(e,t,r){return{type:gi,oldName:e,newName:t,color:r}},Ci="shlink/tagsList/LIST_TAGS_START",Ni="shlink/tagsList/LIST_TAGS_ERROR",wi="shlink/tagsList/LIST_TAGS",ki="shlink/tagsList/FILTER_TAGS",_i={tags:[],filteredTags:[],stats:{},loading:!1,error:!1},Ui=function(e,t){return function(r){return r===e?t:r}},Ti=function(e,t){return Object(p.a)((function(e){return e===t}),e)},Ri=function(e){return Object.entries(e.reduce((function(e,t){var r=t.shortUrl;return null===r||void 0===r||r.tags.forEach((function(t){e[t]=(e[t]||0)+1})),e}),{}))},Ei=it((nt={},Object(u.a)(nt,Ci,(function(){return Object(d.a)(Object(d.a)({},_i),{},{loading:!0})})),Object(u.a)(nt,Ni,(function(e,t){var r=t.errorData;return Object(d.a)(Object(d.a)({},_i),{},{error:!0,errorData:r})})),Object(u.a)(nt,wi,(function(e,t){var r=t.tags,n=t.stats;return Object(d.a)(Object(d.a)({},_i),{},{stats:n,tags:r,filteredTags:r})})),Object(u.a)(nt,bi,(function(e,t){var r=t.tag;return Object(d.a)(Object(d.a)({},e),{},{tags:Ti(e.tags,r),filteredTags:Ti(e.filteredTags,r)})})),Object(u.a)(nt,gi,(function(e,t){var r=t.oldName,n=t.newName;return Object(d.a)(Object(d.a)({},e),{},{tags:e.tags.map(Ui(r,n)).sort(),filteredTags:e.filteredTags.map(Ui(r,n)).sort()})})),Object(u.a)(nt,ki,(function(e,t){var r=t.searchTerm;return Object(d.a)(Object(d.a)({},e),{},{filteredTags:e.tags.filter((function(e){return e.toLowerCase().match(r)}))})})),Object(u.a)(nt,ht,(function(e,t){var r,n,c=t.createdVisits;return Object(d.a)(Object(d.a)({},e),{},{stats:(r=Ri(c),n=e.stats,r.reduce((function(e,t){var r=Object(E.a)(t,2),n=r[0],c=r[1];if(!e[n])return e;var a=e[n];return a.visitsCount=a.visitsCount+c,e[n]=a,e}),Object(d.a)({},n)))})})),nt),_i),Di=function(e){return{type:ki,searchTerm:e}},Li=Math.ceil,Vi=function(e){return function(t){var r=t.sortedTags,n=t.selectedServer,c=Object(A.useState)(),s=Object(E.a)(c,2),i=s[0],o=s[1],l=r.length,u=Object(oa.a)(Li(l/4),r);return Object(a.jsx)(Lr.a,{children:u.map((function(t,r){return Object(a.jsx)("div",{className:"col-md-6 col-xl-3",children:t.map((function(t){return Object(a.jsx)(e,{tag:t,selectedServer:n,displayed:i===t.tag,toggle:function(){return o(i!==t.tag?t.tag:void 0)}},t.tag)}))},r)}))})}},Ii=function(e){return function(t){var r,n=t.sortedTags,c=t.selectedServer,s=t.location,i=t.orderByColumn,o=t.currentOrder,l=Object(A.useRef)(!0),u=Object(C.a)(s.search).page,d=void 0===u?1:u,j=Object(Q.a)("page",Number(d)),b=Object(E.a)(j,2),h=b[0],O=b[1],v=Object(oa.a)(20,n),f=v.length>1,m=null!==(r=v[h-1])&&void 0!==r?r:[];return Object(A.useEffect)((function(){!l.current&&O(1),l.current=!1}),[n]),Object(A.useEffect)((function(){scrollTo(0,0)}),[h]),Object(a.jsxs)(Vr.a,{bodyClassName:f?"pb-1":"",children:[Object(a.jsxs)("table",{className:"table table-hover mb-0",children:[Object(a.jsxs)("thead",{className:"responsive-table__header",children:[Object(a.jsxs)("tr",{children:[Object(a.jsxs)("th",{className:"tags-table__header-cell",onClick:i("tag"),children:["Tag ",Object(a.jsx)(Pe,{currentOrder:o,field:"tag"})]}),Object(a.jsxs)("th",{className:"tags-table__header-cell text-lg-right",onClick:i("shortUrls"),children:["Short URLs ",Object(a.jsx)(Pe,{currentOrder:o,field:"shortUrls"})]}),Object(a.jsxs)("th",{className:"tags-table__header-cell text-lg-right",onClick:i("visits"),children:["Visits ",Object(a.jsx)(Pe,{currentOrder:o,field:"visits"})]}),Object(a.jsx)("th",{className:"tags-table__header-cell"})]}),Object(a.jsx)("tr",{children:Object(a.jsx)("th",{colSpan:4,className:"p-0 border-top-0"})})]}),Object(a.jsxs)("tbody",{children:[0===m.length&&Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:4,className:"text-center",children:"No results found"})}),m.map((function(t){return Object(a.jsx)(e,{tag:t,selectedServer:c},t.tag)}))]})]}),f&&Object(a.jsx)("div",{className:"sticky-card-paginator",children:Object(a.jsx)(la,{pagesCount:v.length,currentPage:h,setCurrentPage:O})})]},h)}},Fi=function(e,t,r){return function(n){var c=n.tag,s=n.selectedServer,i=Object(Q.d)(),l=Object(E.a)(i,2),u=l[0],d=l[1],j=Object(Q.d)(),b=Object(E.a)(j,2),h=b[0],O=b[1],f=Object(Q.d)(),m=Object(E.a)(f,2),x=m[0],g=m[1],p=Object(v.a)(s);return Object(a.jsxs)("tr",{className:"responsive-table__row",children:[Object(a.jsxs)("th",{className:"responsive-table__cell","data-th":"Tag",children:[Object(a.jsx)(Xs,{tag:c.tag,colorGenerator:r})," ",c.tag]}),Object(a.jsx)("td",{className:"responsive-table__cell text-lg-right","data-th":"Short URLs",children:Object(a.jsx)(o.b,{to:"/server/".concat(p,"/list-short-urls/1?tags=").concat(encodeURIComponent(c.tag)),children:cr(c.shortUrls)})}),Object(a.jsx)("td",{className:"responsive-table__cell text-lg-right","data-th":"Visits",children:Object(a.jsx)(o.b,{to:"/server/".concat(p,"/tag/").concat(c.tag,"/visits"),children:cr(c.visits)})}),Object(a.jsx)("td",{className:"responsive-table__cell text-lg-right",children:Object(a.jsxs)(Nr,{toggle:g,isOpen:x,children:[Object(a.jsxs)(H.a,{onClick:O,children:[Object(a.jsx)(V.a,{icon:L.C,fixedWidth:!0,className:"mr-1"})," Edit"]}),Object(a.jsxs)(H.a,{onClick:d,children:[Object(a.jsx)(V.a,{icon:L.Q,fixedWidth:!0,className:"mr-1"})," Delete"]})]})}),Object(a.jsx)(t,{tag:c.tag,toggle:O,isOpen:h}),Object(a.jsx)(e,{tag:c.tag,toggle:d,isOpen:u})]})}},Ai=function(e,t){e.serviceFactory("TagsSelector",ei,"ColorGenerator"),e.decorator("TagsSelector",t(["tagsList","settings"],["listTags"])),e.serviceFactory("TagCard",ri,"DeleteTagConfirmModal","EditTagModal","ColorGenerator"),e.serviceFactory("DeleteTagConfirmModal",(function(){return ni})),e.decorator("DeleteTagConfirmModal",t(["tagDelete"],["deleteTag","tagDeleted"])),e.serviceFactory("EditTagModal",si,"ColorGenerator"),e.decorator("EditTagModal",t(["tagEdit"],["editTag","tagEdited"])),e.serviceFactory("TagsCards",Vi,"TagCard"),e.serviceFactory("TagsTableRow",Fi,"DeleteTagConfirmModal","EditTagModal","ColorGenerator"),e.serviceFactory("TagsTable",Ii,"TagsTableRow"),e.decorator("TagsTable",b.h),e.serviceFactory("TagsList",li,"TagsCards","TagsTable"),e.decorator("TagsList",t(["tagsList","selectedServer","mercureInfo","settings"],["forceListTags","filterTags","createNewVisits","loadMercureInfo"]));var r=function(e){return function(t){return function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function(){return function(){var r=Object(x.a)(m.a.mark((function r(n,c){var a,s,i,o,l,u,d,j;return m.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(a=c(),s=a.tagsList,t||!s.loading&&Object(S.a)(s.tags)){r.next=3;break}return r.abrupt("return");case 3:return n({type:Ci}),r.prev=4,i=e(c),o=i.listTags,r.next=8,o();case 8:l=r.sent,u=l.tags,d=l.stats,j=(void 0===d?[]:d).reduce((function(e,t){var r=t.tag,n=t.shortUrlsCount,c=t.visitsCount;return e[r]={shortUrlsCount:n,visitsCount:c},e}),{}),n({tags:u,stats:j,type:wi}),r.next=19;break;case 16:r.prev=16,r.t0=r.catch(4),n({type:Ni,errorData:vt(r.t0)});case 19:case"end":return r.stop()}}),r,null,[[4,16]])})));return function(e,t){return r.apply(this,arguments)}}()}}(t.buildShlinkApiClient,e)}};e.factory("listTags",r(!1)),e.factory("forceListTags",r(!0)),e.serviceFactory("filterTags",(function(){return Di})),e.serviceFactory("tagDeleted",(function(){return vi})),e.serviceFactory("tagEdited",(function(){return Si})),e.serviceFactory("deleteTag",Oi,"buildShlinkApiClient"),e.serviceFactory("editTag",yi,"buildShlinkApiClient","ColorGenerator")},Mi=r(298),Gi="shlink/mercure/GET_MERCURE_INFO_START",Pi="shlink/mercure/GET_MERCURE_INFO_ERROR",Bi="shlink/mercure/GET_MERCURE_INFO",Hi=it((ct={},Object(u.a)(ct,Gi,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!0,error:!1})})),Object(u.a)(ct,Pi,(function(e){return Object(d.a)(Object(d.a)({},e),{},{loading:!1,error:!0})})),Object(u.a)(ct,Bi,(function(e,t){return Object(d.a)(Object(d.a)({},t),{},{loading:!1,error:!1})})),ct),{loading:!0,error:!1}),Wi=function(e){return function(){return function(){var t=Object(x.a)(m.a.mark((function t(r,n){var c,a,s,i,o;return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r({type:Gi}),c=n(),a=c.settings,s=e(n),i=s.mercureInfo,a.realTimeUpdates.enabled){t.next=6;break}return r({type:Pi}),t.abrupt("return");case 6:return t.prev=6,t.next=9,i();case 9:o=t.sent,r(Object(d.a)({type:Bi,interval:a.realTimeUpdates.interval},o)),t.next=16;break;case 13:t.prev=13,t.t0=t.catch(6),r({type:Pi});case 16:case"end":return t.stop()}}),t,null,[[6,13]])})));return function(e,r){return t.apply(this,arguments)}}()}},qi=function(e){e.serviceFactory("loadMercureInfo",Wi,"buildShlinkApiClient")},zi=function(e){var t,r=e.settings.realTimeUpdates,n=e.toggleRealTimeUpdates,c=e.setRealTimeUpdatesInterval;return Object(a.jsxs)(Vr.a,{title:"Real-time updates",className:"h-100",children:[Object(a.jsx)(Br.a,{children:Object(a.jsxs)(Qc,{checked:r.enabled,onChange:n,children:["Enable or disable real-time updates.",Object(a.jsxs)("small",{className:"form-text text-muted",children:["Real-time updates are currently being ",Object(a.jsx)("b",{children:r.enabled?"processed":"ignored"}),"."]})]})}),Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{className:G()({"text-muted":!r.enabled}),children:"Real-time updates frequency (in minutes):"}),Object(a.jsx)(Qr.a,{type:"number",min:0,placeholder:"Immediate",disabled:!r.enabled,value:(t=r.interval,t?"".concat(t):""),onChange:function(e){var t=e.target;return c(Number(t.value))}}),r.enabled&&Object(a.jsxs)("small",{className:"form-text text-muted",children:[void 0!==r.interval&&r.interval>0&&Object(a.jsxs)("span",{children:["Updates will be reflected in the UI every ",Object(a.jsx)("b",{children:r.interval})," minute",r.interval>1&&"s","."]}),!r.interval&&"Updates will be reflected in the UI as soon as they happen."]})]})]})},Qi=function(e){var t=e.items;return Object(a.jsx)(a.Fragment,{children:t.map((function(e,t){return Object(a.jsx)(Lr.a,{children:e.map((function(e,t){return Object(a.jsx)("div",{className:"col-lg-6 mb-3",children:e},t)}))},t)}))})},Ki=function(e,t,r,n){return function(){return Object(a.jsx)(pn.a,{children:Object(a.jsx)(Qi,{items:[[Object(a.jsx)(r,{}),Object(a.jsx)(n,{})],[Object(a.jsx)(t,{}),Object(a.jsx)(e,{})]]})})}},Ji=r(611),Zi="shlink/realTimeUpdates/SET_SETTINGS",Yi=it(Object(u.a)({},Zi,(function(e,t){return Object(Ji.a)(e,Object(Bn.a)("type",t))})),{realTimeUpdates:{enabled:!0},shortUrlCreation:{validateUrls:!1},ui:{theme:"light"},visits:{defaultInterval:"last30Days"}}),Xi=function(e){return{type:Zi,realTimeUpdates:{enabled:e}}},$i=function(e){return{type:Zi,realTimeUpdates:{interval:e}}},eo=function(e){return{type:Zi,shortUrlCreation:e}},to=function(e){return{type:Zi,ui:e}},ro=function(e){return{type:Zi,visits:e}},no=function(e){return"includes"===e?"Suggest tags including input":"Suggest tags starting with input"},co=function(e){var t,r,n,c,s,i=e.settings,o=e.setShortUrlCreationSettings,l=null!==(t=i.shortUrlCreation)&&void 0!==t?t:{validateUrls:!1},u=function(e){return function(){return o(Object(d.a)(Object(d.a)({},null!==l&&void 0!==l?l:{validateUrls:!1}),{},{tagFilteringMode:e}))}};return Object(a.jsxs)(Vr.a,{title:"Short URLs form",className:"h-100",children:[Object(a.jsx)(Br.a,{children:Object(a.jsxs)(Qc,{checked:null!==(r=l.validateUrls)&&void 0!==r&&r,onChange:function(e){return o(Object(d.a)(Object(d.a)({},l),{},{validateUrls:e}))},children:["Request validation on long URLs when creating new short URLs.",Object(a.jsxs)("small",{className:"form-text text-muted",children:["The initial state of the ",Object(a.jsx)("b",{children:"Validate URL"})," checkbox will be ",Object(a.jsx)("b",{children:l.validateUrls?"checked":"unchecked"}),"."]})]})}),Object(a.jsx)(Br.a,{children:Object(a.jsxs)(Qc,{checked:null===(n=l.forwardQuery)||void 0===n||n,onChange:function(e){return o(Object(d.a)(Object(d.a)({},l),{},{forwardQuery:e}))},children:["Make all new short URLs forward their query params to the long URL.",Object(a.jsxs)("small",{className:"form-text text-muted",children:["The initial state of the ",Object(a.jsx)("b",{children:"Forward query params on redirect"})," checkbox will be ",Object(a.jsx)("b",{children:null===(c=l.forwardQuery)||void 0===c||c?"checked":"unchecked"}),"."]})]})}),Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{children:"Tag suggestions search mode:"}),Object(a.jsxs)(K,{text:no(l.tagFilteringMode),children:[Object(a.jsx)(H.a,{active:!l.tagFilteringMode||"startsWith"===l.tagFilteringMode,onClick:u("startsWith"),children:no("startsWith")}),Object(a.jsx)(H.a,{active:"includes"===l.tagFilteringMode,onClick:u("includes"),children:no("includes")})]}),Object(a.jsx)("small",{className:"form-text text-muted",children:(s=l.tagFilteringMode,"includes"===s?Object(a.jsxs)(a.Fragment,{children:["The list of suggested tags will contain those ",Object(a.jsx)("b",{children:"including"})," provided input."]}):Object(a.jsxs)(a.Fragment,{children:["The list of suggested tags will contain those ",Object(a.jsx)("b",{children:"starting with"})," provided input."]}))})]})]})},ao=function(e){var t,r,n=e.settings.ui,c=e.setUiSettings;return Object(a.jsxs)(Vr.a,{title:"User interface",className:"h-100",children:[Object(a.jsxs)(Br.a,{children:[Object(a.jsx)(V.a,{icon:"dark"===(null===n||void 0===n?void 0:n.theme)?L.z:L.L,className:"user-interface__theme-icon"}),Object(a.jsx)(Qc,{checked:"dark"===(null===n||void 0===n?void 0:n.theme),onChange:function(e){var t=e?"dark":"light";c(Object(d.a)(Object(d.a)({},n),{},{theme:t})),Object(Yc.g)(t)},children:"Use dark theme."})]}),Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{children:"Default display mode when managing tags:"}),Object(a.jsx)(oi,{mode:null!==(t=null===n||void 0===n?void 0:n.tagsMode)&&void 0!==t?t:"cards",renderTitle:function(e){return Object(Dr.a)(e)},onChange:function(e){return c(Object(d.a)(Object(d.a)({},null!==n&&void 0!==n?n:{theme:"light"}),{},{tagsMode:e}))}}),Object(a.jsxs)("small",{className:"form-text text-muted",children:["Tags will be displayed as ",Object(a.jsx)("b",{children:null!==(r=null===n||void 0===n?void 0:n.tagsMode)&&void 0!==r?r:"cards"}),"."]})]})]})},so=function(e){var t,r=e.onChange,n=e.active,c=e.allText;return Object(a.jsx)(K,{text:null!==(t=he(n))&&void 0!==t?t:c,children:Object(a.jsx)(Se,{allText:c,active:n,onChange:r})})},io=function(e){var t,r,n=e.settings,c=e.setVisitsSettings;return Object(a.jsx)(Vr.a,{title:"Visits",className:"h-100",children:Object(a.jsxs)(Br.a,{className:"mb-0",children:[Object(a.jsx)("label",{children:"Default interval to load on visits sections:"}),Object(a.jsx)(so,{allText:"All visits",active:null!==(t=null===(r=n.visits)||void 0===r?void 0:r.defaultInterval)&&void 0!==t?t:"last30Days",onChange:function(e){return c({defaultInterval:e})}})]})})},oo=function(e,t){e.serviceFactory("Settings",Ki,"RealTimeUpdates","ShortUrlCreation","UserInterface","Visits"),e.decorator("Settings",oc.a),e.decorator("Settings",t(null,["resetSelectedServer"])),e.serviceFactory("RealTimeUpdates",(function(){return zi})),e.decorator("RealTimeUpdates",t(["settings"],["toggleRealTimeUpdates","setRealTimeUpdatesInterval"])),e.serviceFactory("ShortUrlCreation",(function(){return co})),e.decorator("ShortUrlCreation",t(["settings"],["setShortUrlCreationSettings"])),e.serviceFactory("UserInterface",(function(){return ao})),e.decorator("UserInterface",t(["settings"],["setUiSettings"])),e.serviceFactory("Visits",(function(){return io})),e.decorator("Visits",t(["settings"],["setVisitsSettings"])),e.serviceFactory("toggleRealTimeUpdates",(function(){return Xi})),e.serviceFactory("setRealTimeUpdatesInterval",(function(){return $i})),e.serviceFactory("setShortUrlCreationSettings",(function(){return eo})),e.serviceFactory("setUiSettings",(function(){return to})),e.serviceFactory("setVisitsSettings",(function(){return ro}))},lo="shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS",uo=function(e){return function(t,r){return function(){var n=Object(x.a)(m.a.mark((function n(c,a){var s,i,o;return m.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return c({type:"shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_START"}),s=e(a),i=s.editDomainRedirects,n.prev=2,n.next=5,i(Object(d.a)({domain:t},r));case 5:o=n.sent,c({type:lo,domain:t,redirects:o}),n.next=12;break;case 9:n.prev=9,n.t0=n.catch(2),c({type:"shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_ERROR",errorData:vt(n.t0)});case 12:case"end":return n.stop()}}),n,null,[[2,9]])})));return function(e,t){return n.apply(this,arguments)}}()}},jo="shlink/domainsList/LIST_DOMAINS_START",bo="shlink/domainsList/LIST_DOMAINS_ERROR",ho="shlink/domainsList/LIST_DOMAINS",Oo="shlink/domainsList/FILTER_DOMAINS",vo={domains:[],filteredDomains:[],loading:!1,error:!1},fo=function(e,t){return function(r){return r.domain!==e?r:Object(d.a)(Object(d.a)({},r),{},{redirects:t})}},mo=it((at={},Object(u.a)(at,jo,(function(){return Object(d.a)(Object(d.a)({},vo),{},{loading:!0})})),Object(u.a)(at,bo,(function(e){var t=e.errorData;return Object(d.a)(Object(d.a)({},vo),{},{error:!0,errorData:t})})),Object(u.a)(at,ho,(function(e,t){var r=t.domains;return Object(d.a)(Object(d.a)({},vo),{},{domains:r,filteredDomains:r})})),Object(u.a)(at,Oo,(function(e,t){var r=t.searchTerm;return Object(d.a)(Object(d.a)({},e),{},{filteredDomains:e.domains.filter((function(e){return e.domain.toLowerCase().match(r)}))})})),Object(u.a)(at,lo,(function(e,t){var r=t.domain,n=t.redirects;return Object(d.a)(Object(d.a)({},e),{},{domains:e.domains.map(fo(r,n)),filteredDomains:e.filteredDomains.map(fo(r,n))})})),at),vo),xo=function(e){return function(){return function(){var t=Object(x.a)(m.a.mark((function t(r,n){var c,a,s;return m.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r({type:jo}),c=e(n),a=c.listDomains,t.prev=2,t.next=5,a();case 5:s=t.sent,r({type:ho,domains:s}),t.next=12;break;case 9:t.prev=9,t.t0=t.catch(2),r({type:bo,errorData:vt(t.t0)});case 12:case"end":return t.stop()}}),t,null,[[2,9]])})));return function(e,r){return t.apply(this,arguments)}}()}},go=function(e){return{type:Oo,searchTerm:e}},po=r(606),yo=r(616),So=function(e){var t=e.listDomains,r=e.value,n=e.domainsList,c=e.onChange,s=Object(Q.d)(),i=Object(E.a)(s,4),o=i[0],l=i[2],u=i[3],d=n.domains,j=Object(S.a)(r),b=function(){return c("")};return Object(A.useEffect)((function(){t()}),[]),o?Object(a.jsxs)(po.a,{children:[Object(a.jsx)(Qr.a,{value:r,placeholder:"Domain",onChange:function(e){return c(e.target.value)}}),Object(a.jsxs)(yo.a,{addonType:"append",children:[Object(a.jsx)(Hr.a,{id:"backToDropdown",outline:!0,type:"button",className:"domains-dropdown__back-btn",onClick:Object(I.a)(b,u),children:Object(a.jsx)(V.a,{icon:L.R})}),Object(a.jsx)(xr.a,{target:"backToDropdown",placement:"left",trigger:"hover",children:"Existing domains"})]})]}):Object(a.jsxs)(K,{text:j?"Domain":"Domain: ".concat(r),className:j?"domains-dropdown__toggle-btn":"domains-dropdown__toggle-btn--active",children:[d.map((function(e){var t=e.domain,n=e.isDefault;return Object(a.jsxs)(H.a,{active:r===t||n&&j,onClick:function(){return c(t)},children:[t,n&&Object(a.jsx)("span",{className:"float-right text-muted",children:"default"})]},t)})),Object(a.jsx)(H.a,{divider:!0}),Object(a.jsx)(H.a,{onClick:Object(I.a)(b,l),children:Object(a.jsx)("i",{children:"New domain"})})]})},Co=function(e){var t=e.isLast,r=Object(D.a)(e,["isLast"]);return Object(a.jsx)(yn,Object(d.a)(Object(d.a)({},r),{},{required:!1,type:"url",placeholder:"No redirect",className:t?"mb-0":""}))},No=function(e){var t,r,n,c,s,i,o=e.isOpen,l=e.toggle,u=e.domain,d=e.editDomainRedirects,j=Object(A.useState)(null!==(t=null===(r=u.redirects)||void 0===r?void 0:r.baseUrlRedirect)&&void 0!==t?t:""),b=Object(E.a)(j,2),h=b[0],O=b[1],v=Object(A.useState)(null!==(n=null===(c=u.redirects)||void 0===c?void 0:c.regular404Redirect)&&void 0!==n?n:""),f=Object(E.a)(v,2),g=f[0],p=f[1],y=Object(A.useState)(null!==(s=null===(i=u.redirects)||void 0===i?void 0:i.invalidShortUrlRedirect)&&void 0!==s?s:""),S=Object(E.a)(y,2),C=S[0],N=S[1],w=Object(Dr.b)(Object(x.a)(m.a.mark((function e(){return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",d(u.domain,{baseUrlRedirect:Object(Dr.d)(h),regular404Redirect:Object(Dr.d)(g),invalidShortUrlRedirect:Object(Dr.d)(C)}).then(l));case 1:case"end":return e.stop()}}),e)}))));return Object(a.jsx)(_r.a,{isOpen:o,toggle:l,centered:!0,children:Object(a.jsxs)("form",{onSubmit:w,children:[Object(a.jsxs)(Ur.a,{toggle:l,children:["Edit redirects for ",Object(a.jsx)("b",{children:u.domain})]}),Object(a.jsxs)(Tr.a,{children:[Object(a.jsxs)(Co,{value:h,onChange:O,children:[Object(a.jsxs)(nn,{className:"mr-2",placement:"bottom",children:["Visitors accessing the base url, as in ",Object(a.jsxs)("b",{children:["https://",u.domain,"/"]}),", will be redirected to this URL."]}),"Base URL"]}),Object(a.jsxs)(Co,{value:g,onChange:p,children:[Object(a.jsxs)(nn,{className:"mr-2",placement:"bottom",children:["Visitors accessing a url not matching a short URL pattern, as in ",Object(a.jsxs)("b",{children:["https://",u.domain,"/???/[...]"]}),", will be redirected to this URL."]}),"Regular 404"]}),Object(a.jsxs)(Co,{value:C,isLast:!0,onChange:N,children:[Object(a.jsx)(nn,{className:"mr-2",placement:"bottom",children:"Visitors accessing a url matching a short URL pattern, but not matching an existing short code, will be redirected to this URL."}),"Invalid short URL"]})]}),Object(a.jsxs)(Rr.a,{children:[Object(a.jsx)(Hr.a,{color:"link",type:"button",onClick:l,children:"Cancel"}),Object(a.jsx)(Hr.a,{color:"primary",children:"Save"})]})]})})},wo=function(e){var t=e.fallback;return Object(a.jsxs)("span",{className:"text-muted",children:[!t&&Object(a.jsx)("small",{children:"No redirect"}),t&&Object(a.jsxs)(a.Fragment,{children:[t," ",Object(a.jsx)("small",{children:"(as fallback)"})]})]})},ko=function(){return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(V.a,{icon:L.h,className:"text-primary",id:"defaultDomainIcon"}),Object(a.jsx)(xr.a,{target:"defaultDomainIcon",placement:"right",children:"Default domain"})]})},_o=function(e){var t,r,n,c=e.domain,s=e.editDomainRedirects,i=e.defaultRedirects,o=Object(Q.d)(),l=Object(E.a)(o,2),u=l[0],d=l[1],j=c.domain,b=c.isDefault,h=c.redirects,O="domainEdit".concat(j.replace(/\./g,""));return Object(a.jsxs)("tr",{className:"responsive-table__row",children:[Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Is default domain",children:b?Object(a.jsx)(ko,{}):""}),Object(a.jsx)("th",{className:"responsive-table__cell","data-th":"Domain",children:j}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Base path redirect",children:null!==(t=null===h||void 0===h?void 0:h.baseUrlRedirect)&&void 0!==t?t:Object(a.jsx)(wo,{fallback:null===i||void 0===i?void 0:i.baseUrlRedirect})}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Regular 404 redirect",children:null!==(r=null===h||void 0===h?void 0:h.regular404Redirect)&&void 0!==r?r:Object(a.jsx)(wo,{fallback:null===i||void 0===i?void 0:i.regular404Redirect})}),Object(a.jsx)("td",{className:"responsive-table__cell","data-th":"Invalid short URL redirect",children:null!==(n=null===h||void 0===h?void 0:h.invalidShortUrlRedirect)&&void 0!==n?n:Object(a.jsx)(wo,{fallback:null===i||void 0===i?void 0:i.invalidShortUrlRedirect})}),Object(a.jsxs)("td",{className:"responsive-table__cell text-right",children:[Object(a.jsx)("span",{id:O,children:Object(a.jsx)(Hr.a,{outline:!0,size:"sm",disabled:b,onClick:b?void 0:d,children:Object(a.jsx)(V.a,{icon:b?L.b:L.m})})}),b&&Object(a.jsxs)(xr.a,{target:O,placement:"left",children:["Redirects for default domain cannot be edited here.",Object(a.jsx)("br",{}),"Use config options or env vars directly on the server."]})]}),Object(a.jsx)(No,{domain:c,isOpen:u,toggle:d,editDomainRedirects:s})]})},Uo=["","Domain","Base path redirect","Regular 404 redirect","Invalid short URL redirect",""],To=function(e){var t,r=e.listDomains,n=e.domainsList,c=e.filterDomains,s=e.editDomainRedirects,i=n.filteredDomains,o=n.loading,l=n.error,u=n.errorData,d=null===(t=i.find((function(e){return e.isDefault})))||void 0===t?void 0:t.redirects;if(Object(A.useEffect)((function(){r()}),[]),o)return Object(a.jsx)(un.a,{loading:!0});return Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(P,{className:"mb-3",onChange:c}),l?Object(a.jsx)(Ir,{type:"error",children:Object(a.jsx)(Fr,{errorData:u,fallbackMessage:"Error loading domains :("})}):Object(a.jsx)(Vr.a,{children:Object(a.jsxs)("table",{className:"table table-hover mb-0",children:[Object(a.jsx)("thead",{className:"responsive-table__header",children:Object(a.jsx)("tr",{children:Uo.map((function(e,t){return Object(a.jsx)("th",{children:e},t)}))})}),Object(a.jsxs)("tbody",{children:[i.length<1&&Object(a.jsx)("tr",{children:Object(a.jsx)("td",{colSpan:Uo.length,className:"text-center",children:"No results found"})}),i.map((function(e){return Object(a.jsx)(_o,{domain:e,editDomainRedirects:s,defaultRedirects:d},e.domain)}))]})]})})]})},Ro=function(e,t){e.serviceFactory("DomainSelector",(function(){return So})),e.decorator("DomainSelector",t(["domainsList"],["listDomains"])),e.serviceFactory("ManageDomains",(function(){return To})),e.decorator("ManageDomains",t(["domainsList"],["listDomains","filterDomains","editDomainRedirects"])),e.serviceFactory("listDomains",xo,"buildShlinkApiClient"),e.serviceFactory("filterDomains",(function(){return go})),e.serviceFactory("editDomainRedirects",uo,"buildShlinkApiClient")},Eo="shlink/appUpdates/APP_UPDATE_AVAILABLE",Do="shlink/appUpdates/RESET_APP_UPDATE",Lo=it((st={},Object(u.a)(st,Eo,(function(){return!0})),Object(u.a)(st,Do,(function(){return!1})),st),!1),Vo=ot(Eo),Io=ot(Do),Fo=r(153),Ao=r(607),Mo=function(e){var t=e.isOpen,r=e.toggle,n=e.forceUpdate,c=Object(Q.d)(),s=Object(E.a)(c,3),i=s[0],o=s[2];return Object(a.jsxs)(Ao.a,{className:"app-update-banner",isOpen:t,toggle:r,tag:Vr.a,color:"secondary",children:[Object(a.jsx)("h4",{className:"mb-4",children:"This app has just been updated!"}),Object(a.jsxs)("p",{className:"mb-0",children:["Restart it to enjoy the new features.",Object(a.jsxs)(Hr.a,{disabled:i,className:"ml-2",color:"secondary",size:"sm",onClick:function(){o(),n()},children:[!i&&Object(a.jsxs)(a.Fragment,{children:["Restart now ",Object(a.jsx)(V.a,{icon:L.M,className:"ml-1"})]}),i&&Object(a.jsx)(a.Fragment,{children:"Restarting..."})]})]})]})},Go=r(33),Po=function(){var e=Object(x.a)(m.a.mark((function e(){var t,r,n,c,a,s,i;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===(r=navigator.serviceWorker)||void 0===r?void 0:r.getRegistrations();case 2:if(e.t1=t=e.sent,e.t0=null!==e.t1,!e.t0){e.next=6;break}e.t0=void 0!==t;case 6:if(!e.t0){e.next=10;break}e.t2=t,e.next=11;break;case 10:e.t2=[];case 11:n=e.t2,c=Object(Go.a)(n);try{for(c.s();!(a=c.n()).done;)s=a.value,null===(i=s.waiting)||void 0===i||i.addEventListener("statechange",(function(e){var t;"activated"===(null===(t=e.target)||void 0===t?void 0:t.state)&&window.location.reload()})),null===i||void 0===i||i.postMessage({type:"SKIP_WAITING"})}catch(o){c.e(o)}finally{c.f()}case 14:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Bo=function(e,t,r,n,c,s,i,o){return function(l){var u=l.fetchServers,d=l.servers,j=l.settings,h=l.appUpdated,O=l.resetAppUpdate;return Object(A.useEffect)((function(){var e,t;0===Object.keys(d).length&&u(),Object(Yc.g)(null!==(e=null===(t=j.ui)||void 0===t?void 0:t.theme)&&void 0!==e?e:"light")}),[]),Object(a.jsxs)("div",{className:"container-fluid app-container",children:[Object(a.jsx)(e,{}),Object(a.jsxs)("div",{className:"app",children:[Object(a.jsx)("div",{className:"shlink-wrapper",children:Object(a.jsxs)(b.d,{children:[Object(a.jsx)(b.b,{exact:!0,path:"/",component:t}),Object(a.jsx)(b.b,{exact:!0,path:"/settings",component:s}),Object(a.jsx)(b.b,{exact:!0,path:"/manage-servers",component:i}),Object(a.jsx)(b.b,{exact:!0,path:"/server/create",component:n}),Object(a.jsx)(b.b,{exact:!0,path:"/server/:serverId/edit",component:c}),Object(a.jsx)(b.b,{path:"/server/:serverId",component:r}),Object(a.jsx)(b.b,{component:Fo.a})]})}),Object(a.jsx)("div",{className:"shlink-footer",children:Object(a.jsx)(o,{})})]}),Object(a.jsx)(Mo,{isOpen:h,toggle:O,forceUpdate:Po})]})}},Ho=function(e,t){e.serviceFactory("App",Bo,"MainHeader","Home","MenuLayout","CreateServer","EditServer","Settings","ManageServers","ShlinkVersionsContainer"),e.decorator("App",t(["servers","settings","appUpdated"],["fetchServers","resetAppUpdate"])),e.serviceFactory("appUpdateAvailable",(function(){return Vo})),e.serviceFactory("resetAppUpdate",(function(){return Io}))},Wo=new j.a,qo=Wo.container,zo=function(e,t){return Object(d.a)(Object(d.a)({},e),{},Object(u.a)({},t,function(e,t){return function(){return e[t].apply(e,arguments)}}(qo,t)))},Qo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object(i.b)(e?Object(h.a)(e):null,t.reduce(zo,{}))};Ho(Wo,Qo),Object(R.a)(Wo,Qo,b.h),T(Wo),mn(Wo,Qo,b.h),yc(Wo,Qo,b.h),Ai(Wo,Qo),Js(Wo,Qo),Object(Mi.a)(Wo),qi(Wo),oo(Wo,Qo),Ro(Wo,Qo);var Ko=qo,Jo=r(301),Zo=r(80),Yo=r(222),Xo=Object(Zo.c)({servers:Zn,selectedServer:Mn,shortUrlsList:Ht,shortUrlsListParams:Kt,shortUrlCreationResult:Rt,shortUrlDeletion:St,shortUrlEdition:At,shortUrlVisits:hs,tagVisits:ws,orphanVisits:As,shortUrlDetail:vn,tagsList:Ei,tagDelete:hi,tagEdit:pi,mercureInfo:Hi,settings:Yi,domainsList:mo,visitsOverview:zs,appUpdated:Lo}),$o=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||Zo.d,el={states:["settings","servers"],namespace:"shlink",namespaceSeparator:".",debounce:300},tl=Object(Zo.e)(Xo,Object(Yo.load)(el),$o(Object(Zo.a)(Object(Yo.save)(el),Jo.a))),rl=r(64),nl=r.n(rl),cl=r(302),al=r(303),sl=r(304),il=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));function ol(e,t){navigator.serviceWorker.register(e).then((function(e){e.onupdatefound=function(){var r=e.installing;null!=r&&(r.onstatechange=function(){"installed"===r.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://cra.link/PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))}r(532),r(533);delete nl.a.Icon.Default.prototype._getIconUrl,nl.a.Icon.Default.mergeOptions({iconRetinaUrl:cl.a,iconUrl:al.a,shadowUrl:sl.a});var ll=Ko.App,ul=Ko.ScrollToTop,dl=Ko.ErrorHandler,jl=Ko.appUpdateAvailable;Object(s.render)(Object(a.jsx)(i.a,{store:tl,children:Object(a.jsx)(o.a,{basename:l.a,children:Object(a.jsx)(dl,{children:Object(a.jsx)(ul,{children:Object(a.jsx)(ll,{})})})})}),document.getElementById("root")),function(e){if("serviceWorker"in navigator){var t;if(new URL(null!==(t="/shlink-web-client/feature/reset-page")?t:"",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",(function(){var t="".concat("/shlink-web-client/feature/reset-page","/service-worker.js");il?(!function(e,t){fetch(e,{headers:{"Service-Worker":"script"}}).then((function(r){var n=r.headers.get("content-type");404===r.status||null!=n&&-1===n.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):ol(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(t,e),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://cra.link/PWA")}))):ol(t,e)}))}}({onUpdate:function(){tl.dispatch(jl())}})},54:function(e,t,r){"use strict";var n=r(0),c=r(538),a=r(315),s=r(8),i=r.n(s),o=r(11),l=r(12),u=function(e){return{error:"border-danger",default:""}[e]},d=function(e){return{error:"text-danger",default:"text-muted"}[e]};t.a=function(e){var t=e.className,r=e.children,s=e.loading,j=void 0!==s&&s,b=e.type,h=void 0===b?"default":b,O=e.fullWidth,v=void 0!==O&&O,f=i()({"col-md-12":v,"col-md-10 offset-md-1":!v});return Object(n.jsx)(c.a,{noGutters:!0,className:t,children:Object(n.jsx)("div",{className:f,children:Object(n.jsx)(a.a,{className:u(h),body:!0,children:Object(n.jsxs)("h3",{className:i()("text-center mb-0",d(h)),children:[j&&Object(n.jsx)(l.a,{icon:o.k,spin:!0}),j&&Object(n.jsx)("span",{className:"ml-2",children:null!==r&&void 0!==r?r:"Loading..."}),!j&&r]})})})})}},60:function(e,t,r){"use strict";var n=r(0);t.a=function(e){var t=e.children;return Object(n.jsx)("div",{className:"no-menu-wrapper container-xl",children:t})}},70:function(e,t,r){"use strict";r.d(t,"a",(function(){return i})),r.d(t,"b",(function(){return l})),r.d(t,"c",(function(){return u}));var n=r(168),c=r(539),a=r(544),s=r(31),i=function(e,t){var r=t.maxVersion,c=t.minVersion;if(!Object(s.c)(e))return!1;var a=!c||Object(n.compare)(e,c,">=");return(!r||Object(n.compare)(e,r,"<="))&&a},o=Object(c.a)(a.a,(function(e){try{return Object(n.compare)(e,e,"=")}catch(t){return!1}})),l=function(e){return o(e)?"v".concat(e):e},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"latest";return function(t){return o(t)?t:e}}}},[[318,1,2]]]); +//# sourceMappingURL=main.706c5543.chunk.js.map \ No newline at end of file diff --git a/feature/reset-page/static/js/main.706c5543.chunk.js.map b/feature/reset-page/static/js/main.706c5543.chunk.js.map new file mode 100644 index 00000000..42470c1e --- /dev/null +++ b/feature/reset-page/static/js/main.706c5543.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["servers/helpers/withoutSelectedServer.tsx","utils/helpers/files.ts","common/img/ShlinkLogo.tsx","servers/helpers/withSelectedServer.tsx","common/NotFound.tsx","servers/ServersListGroup.tsx","utils/helpers/hooks.ts","common/services/provideServices.ts","common/ScrollToTop.tsx","common/ErrorHandler.tsx","common/services/ImageDownloader.ts","utils/services/provideServices.ts","utils/services/LocalStorage.ts","servers/data/index.ts","utils/services/ColorGenerator.ts","common/ShlinkVersions.tsx","common/ShlinkVersionsContainer.tsx","common/MainHeader.tsx","utils/utils.ts","common/Home.tsx","common/MenuLayout.tsx","common/AsideMenu.tsx","utils/SimpleCard.tsx","utils/helpers/features.ts","utils/theme/index.ts","utils/helpers/query.ts","utils/SearchField.tsx","api/services/ShlinkApiClient.ts","api/services/ShlinkApiClientBuilder.ts","api/services/provideServices.ts","tags/helpers/Tag.tsx","utils/DropdownBtn.tsx","utils/helpers/date.ts","utils/dates/types/index.ts","utils/DateInput.tsx","utils/dates/DateRangeRow.tsx","utils/dates/DateIntervalDropdownItems.tsx","utils/dates/DateRangeSelector.tsx","short-urls/helpers/hooks.ts","short-urls/SearchBar.tsx","utils/helpers/ordering.ts","utils/SortingDropdown.tsx","mercure/helpers/boundToMercureHub.tsx","mercure/helpers/index.ts","mercure/helpers/Topics.ts","utils/table/TableOrderIcon.tsx","utils/helpers/redux.ts","visits/VisitsStats.tsx","short-urls/helpers/index.ts","visits/reducers/visitCreation.ts","api/utils/index.ts","short-urls/reducers/shortUrlDeletion.ts","short-urls/reducers/shortUrlCreation.ts","short-urls/reducers/shortUrlEdition.ts","short-urls/reducers/shortUrlsList.ts","short-urls/reducers/shortUrlsListParams.ts","utils/helpers/numbers.ts","utils/helpers/pagination.ts","short-urls/Paginator.tsx","short-urls/ShortUrlsList.tsx","utils/CopyToClipboardIcon.tsx","utils/Time.tsx","short-urls/helpers/ShortUrlDetailLink.tsx","short-urls/helpers/ShortUrlVisitsCount.tsx","short-urls/helpers/ShortUrlsRow.tsx","utils/DropdownBtnMenu.tsx","short-urls/helpers/ShortUrlsRowMenu.tsx","short-urls/CreateShortUrl.tsx","utils/Result.tsx","api/ShlinkApiError.tsx","short-urls/helpers/DeleteShortUrlModal.tsx","short-urls/helpers/CreateShortUrlResult.tsx","short-urls/ShortUrlsTable.tsx","short-urls/helpers/qr-codes/QrFormatDropdown.tsx","short-urls/helpers/qr-codes/QrErrorCorrectionDropdown.tsx","short-urls/helpers/QrCodeModal.tsx","utils/helpers/qrCodes.ts","utils/BooleanControl.tsx","utils/Checkbox.tsx","short-urls/UseExistingIfFoundInfoIcon.tsx","utils/InfoTooltip.tsx","short-urls/helpers/ShortUrlFormCheckboxGroup.tsx","short-urls/ShortUrlForm.tsx","short-urls/EditShortUrl.tsx","short-urls/reducers/shortUrlDetail.ts","short-urls/services/provideServices.ts","utils/FormGroupContainer.tsx","servers/helpers/ServerForm.tsx","servers/CreateServer.tsx","servers/ServersDropdown.tsx","servers/DeleteServerModal.tsx","servers/DeleteServerButton.tsx","servers/EditServer.tsx","servers/helpers/ImportServersBtn.tsx","servers/reducers/selectedServer.ts","servers/reducers/servers.ts","servers/reducers/remoteServers.ts","servers/helpers/ForServerVersion.tsx","servers/helpers/ServerError.tsx","servers/Overview.tsx","servers/ManageServers.tsx","servers/ManageServersRow.tsx","servers/ManageServersRowDropdown.tsx","servers/services/ServersImporter.ts","servers/services/ServersExporter.ts","servers/services/provideServices.ts","visits/VisitsHeader.tsx","visits/ShortUrlVisitsHeader.tsx","utils/helpers/visits.ts","utils/ToggleSwitch.tsx","utils/helpers/charts.ts","visits/charts/LineChartCard.tsx","common/SimplePaginator.tsx","visits/VisitsTable.tsx","visits/helpers/MapModal.tsx","visits/helpers/OpenMapModalBtn.tsx","visits/types/helpers.ts","visits/services/VisitsParser.ts","visits/helpers/VisitsFilterDropdown.tsx","visits/charts/DoughnutChartLegend.tsx","visits/charts/DoughnutChart.tsx","visits/charts/ChartCard.tsx","visits/charts/DoughnutChartCard.tsx","utils/PaginationDropdown.tsx","visits/charts/HorizontalBarChart.tsx","visits/charts/SortableBarChartCard.tsx","visits/ShortUrlVisits.tsx","visits/reducers/common.ts","visits/reducers/shortUrlVisits.ts","visits/TagVisitsHeader.tsx","visits/TagVisits.tsx","visits/reducers/tagVisits.ts","visits/OrphanVisitsHeader.tsx","visits/OrphanVisits.tsx","visits/reducers/orphanVisits.ts","visits/reducers/visitsOverview.ts","visits/services/VisitsExporter.ts","visits/services/provideServices.ts","tags/helpers/TagBullet.tsx","tags/helpers/TagsSelector.tsx","tags/TagCard.tsx","tags/helpers/DeleteTagConfirmModal.tsx","tags/helpers/EditTagModal.tsx","tags/data/TagsListChildrenProps.ts","tags/TagsModeDropdown.tsx","tags/TagsList.tsx","tags/reducers/tagDelete.ts","tags/reducers/tagEdit.ts","tags/reducers/tagsList.ts","tags/TagsCards.tsx","tags/TagsTable.tsx","tags/TagsTableRow.tsx","tags/services/provideServices.ts","mercure/reducers/mercureInfo.ts","mercure/services/provideServices.ts","settings/RealTimeUpdates.tsx","settings/Settings.tsx","settings/reducers/settings.ts","settings/ShortUrlCreation.tsx","settings/UserInterface.tsx","utils/dates/DateIntervalSelector.tsx","settings/Visits.tsx","settings/services/provideServices.ts","domains/reducers/domainRedirects.ts","domains/reducers/domainsList.ts","domains/DomainSelector.tsx","domains/helpers/EditDomainRedirectsModal.tsx","domains/DomainRow.tsx","domains/ManageDomains.tsx","domains/services/provideServices.ts","app/reducers/appUpdates.ts","common/AppUpdateBanner.tsx","utils/helpers/sw.ts","app/App.tsx","app/services/provideServices.ts","container/index.ts","reducers/index.ts","container/store.ts","serviceWorkerRegistration.ts","utils/helpers/leaflet.ts","index.tsx","utils/Message.tsx","common/NoMenuLayout.tsx","utils/helpers/version.ts"],"names":["withoutSelectedServer","WrappedComponent","props","useEffect","resetSelectedServer","saveUrl","url","filename","document","link","createElement","setAttribute","style","visibility","body","appendChild","click","removeChild","saveCsv","window","csv","blob","Blob","type","URL","createObjectURL","ShlinkLogo","color","MAIN_COLOR","className","viewBox","version","xmlns","fill","d","withSelectedServer","ServerError","selectServer","selectedServer","match","params","serverId","isNotFoundServer","loading","NotFound","to","children","ServerListItem","id","name","ListGroupItem","tag","Link","icon","chevronIcon","ServersListGroup","servers","embedded","length","ListGroup","classNames","map","useStateFlagTimeout","setTimeout","clearTimeout","initialValue","delay","useState","flag","setFlag","timeout","useRef","undefined","callback","current","useToggle","useSwipeable","showSidebar","hideSidebar","swipeMenuIfNoModalExists","e","event","composedPath","some","classList","contains","querySelector","useReactSwipeable","delta","onSwipedLeft","onSwipedRight","useQueryState","paramName","initialState","value","setValue","location","history","query","parseQuery","search","pushState","pathname","stringifyQuery","provideServices","bottle","connect","withRouter","constant","global","console","axios","service","ImageDownloader","serviceFactory","ScrollToTop","decorator","MainHeader","Home","MenuLayout","AsideMenu","ShlinkVersionsContainer","ErrorHandler","scrollTo","error","state","hasError","this","outline","onClick","reload","Component","imgUrl","get","responseType","data","localStorage","LocalStorage","ColorGenerator","buildPath","path","key","item","getItem","JSON","parse","set","setItem","stringify","hasServerData","server","apiKey","isServerWithId","hasOwnProperty","isReachableServer","getServerId","floor","Math","random","letters","normalizeKey","toLowerCase","trim","storage","colors","getColorForKey","normalizedKey","setColorForKey","rangeOf","join","normalizeVersion","pipe","versionToSemVer","versionToPrintable","VersionLink","project","href","ShlinkVersions","clientVersion","normalizedClientVersion","printableVersion","classes","ServersDropdown","isOpen","toggleOpen","close","settingsPath","toggleClass","Navbar","dark","fixed","expand","NavbarBrand","NavbarToggler","arrowIcon","Collapse","navbar","Nav","NavItem","NavLink","active","cogsIcon","size","mappingFn","startAt","range","hasValue","isNil","isEmpty","handleEventPreventingDefault","handler","preventDefault","nonEmptyValueOrNull","capitalize","charAt","toUpperCase","slice","serversList","values","hasServers","autoConnectServer","find","autoConnect","push","Card","Row","noGutters","faPlus","faExternalLinkAlt","TagsList","ShortUrlsList","CreateShortUrl","ShortUrlVisits","TagVisits","OrphanVisits","Overview","EditShortUrl","ManageDomains","sidebarVisible","toggleSidebar","addOrphanVisitsRoute","supportsOrphanVisits","addManageDomainsRoute","supportsDomainRedirects","burgerClasses","swipeableProps","burgerIcon","showOnMobile","exact","from","component","render","AsideMenuItem","rest","activeClassName","DeleteServerButton","hasId","addManageDomainsLink","asideClass","suffix","fixedWidth","overviewIcon","isActive","_","listIcon","createIcon","flip","tagsIcon","domainsIcon","editIcon","textClassName","SimpleCard","title","bodyClassName","serverMatchesVersions","versions","versionMatch","supportsQrCodeSizeInQuery","minVersion","supportsShortUrlTitle","supportsQrCodeMargin","supportsTagsInPatch","supportsBotVisits","supportsCrawlableVisits","supportsQrErrorCorrection","supportsForwardQuery","MAIN_COLOR_ALPHA","HIGHLIGHTED_COLOR","HIGHLIGHTED_COLOR_ALPHA","PRIMARY_LIGHT_COLOR","PRIMARY_DARK_COLOR","changeThemeInMarkup","theme","html","getElementsByTagName","isDarkThemeEnabled","getAttribute","qs","ignoreQueryPrefix","arrayFormat","timer","buildShlinkBaseUrl","apiVersion","rejectNilProps","reject","ShlinkApiClient","baseUrl","listShortUrls","a","performRequest","then","shortUrls","createShortUrl","options","filteredOptions","resp","getShortUrlVisits","shortCode","visits","getTagVisits","getOrphanVisits","getVisitsOverview","getShortUrl","domain","deleteShortUrl","updateShortUrlTags","tags","updateShortUrl","listTags","withStats","stats","deleteTags","editTag","oldName","newName","health","mercureInfo","listDomains","domains","editDomainRedirects","domainRedirects","method","headers","paramsSerializer","response","apiClients","buildShlinkApiClient","getStateOrSelectedServer","getState","isGetState","prop","Error","clientKey","SearchField","onChange","large","noBorder","searchTerm","setSearchTerm","resetTimer","searchTermChanged","newSearchTerm","placeholder","target","searchIcon","hidden","Tag","text","clearable","colorGenerator","onClose","backgroundColor","cursor","DropdownBtn","disabled","dropdownClassName","right","minWidth","toggle","toggleClasses","Dropdown","DropdownToggle","caret","DropdownMenu","isDateObject","date","formatDateFromFormat","theFormat","format","formatISO","formatIsoDate","formatInternational","formatDate","parseISO","stdParseISO","isBetween","start","end","isBefore","isAfter","isWithinInterval","dateRangeIsEmpty","dateRange","filter","Boolean","rangeIsInterval","INTERVAL_TO_STRING_MAP","today","yesterday","last7Days","last30Days","last90Days","last180days","last365Days","all","DATE_INTERVALS","Object","keys","rangeOrIntervalToString","startDate","endDate","dateRangeToString","startOfDaysAgo","daysAgo","startOfDay","subDays","Date","endingToday","endOfDay","intervalToDateRange","dateInterval","DateInput","isClearable","selected","showCalendarIcon","ref","dateFormat","calendarIcon","input","focus","DateRangeRow","onStartDateChange","onEndDateChange","placeholderText","maxDate","minDate","DateIntervalDropdownItems","allText","DropdownItem","divider","interval","DateRangeSelector","onDatesChange","initialDateRange","defaultText","initialIntervalIsRange","activeInterval","setActiveInterval","activeDateRange","setActiveDateRange","updateDateRange","header","useShortUrlsQuery","useMemo","extra","evolvedQuery","queryString","dateOrNull","SearchBar","shortUrlsListParams","toFirstPage","selectedTags","split","setDates","setSearch","removeTag","selectedTag","tagsList","determineOrderDir","currentField","newField","currentOrderDir","ASC","DESC","sortList","list","field","dir","sort","b","greaterThan","smallerThan","SortingDropdown","items","order","isButton","handleItemClick","fieldKey","newOrderDir","UncontrolledDropdown","toPairs","fieldValue","sortAscIcon","sortDescIcon","boundToMercureHub","getTopicsForProps","pendingUpdates","Set","createNewVisits","loadMercureInfo","closeEventSource","topics","onMessage","onTokenExpired","mercureHubUrl","token","onEventSourceMessage","onEventSourceError","status","subscriptions","topic","hubUrl","searchParams","append","es","EventSource","Authorization","onmessage","onerror","forEach","bindToMercureTopic","visit","add","setInterval","clear","clearInterval","Topics","TableOrderIcon","currentOrder","caretUpIcon","caretDownIcon","orphanVisits","shortUrlVisits","selectedBar","buildReducer","action","actionHandler","currentState","buildActionCreator","shortUrlMatches","shortUrl","CREATE_VISITS","createdVisits","parseApiError","isInvalidDeletionError","DELETE_SHORT_URL_START","DELETE_SHORT_URL_ERROR","SHORT_URL_DELETED","RESET_DELETE_SHORT_URL","errorData","dispatch","resetDeleteShortUrl","CREATE_SHORT_URL_START","CREATE_SHORT_URL_ERROR","CREATE_SHORT_URL","RESET_CREATE_SHORT_URL","result","saving","resetCreateShortUrl","EDIT_SHORT_URL_START","EDIT_SHORT_URL_ERROR","SHORT_URL_EDITED","editShortUrl","sendTagsSeparately","Promise","LIST_SHORT_URLS_START","LIST_SHORT_URLS_ERROR","LIST_SHORT_URLS","assocPath","pagination","totalItems","currentShortUrl","lastVisit","last","assoc","visitsCount","init","editedShortUrl","RESET_SHORT_URL_PARAMS","SORTABLE_FIELDS","dateCreated","longUrl","page","orderBy","resetShortUrlParams","ceil","formatter","Intl","NumberFormat","prettify","number","Number","ELLIPSIS","progressivePagination","currentPage","pageCount","pages","max","min","unshift","pageIsEllipsis","pageNumber","prettifyPageNumber","keyForPage","index","Paginator","paginator","currentQueryString","pagesCount","urlForPage","Pagination","listClassName","PaginationItem","PaginationLink","previous","next","ShortUrlsTable","shortUrlsList","head","setOrder","refreshList","extraParams","handleOrderBy","addTag","newTag","itemsPerPage","orderByColumn","renderOrderIcon","onTagClick","CopyToClipboardIcon","onCopy","copyIcon","Time","relative","dateObject","dateTime","getUnixTime","formatDistance","buildUrl","ShortUrlDetailLink","ShortUrlVisitsCount","maxVisits","meta","visitsLink","prettifiedMaxVisits","tooltipRef","el","infoIcon","UncontrolledTooltip","placement","ShortUrlsRow","ShortUrlsRowMenu","copiedToClipboard","setCopiedToClipboard","setActive","isFirstRun","data-th","DropdownBtnMenu","ButtonDropdown","menuIcon","DeleteShortUrlModal","QrCodeModal","isQrModalOpen","toggleQrCode","isDeleteModalOpen","toggleDelete","pieChartIcon","qrIcon","deleteIcon","ShortUrlForm","CreateShortUrlResult","shortUrlCreationResult","basicMode","shortUrlCreationSettings","settings","shortUrlCreation","customSlug","shortCodeLength","validSince","validUntil","findIfExists","validateUrl","validateUrls","forwardQuery","getInitialState","mode","onSave","canBeClosed","Result","small","ShlinkApiError","fallbackMessage","detail","invalidElements","shortUrlDeletion","inputValue","setInputValue","handleDeleteUrl","catch","identity","Modal","centered","onSubmit","ModalHeader","ModalBody","ModalFooter","showCopyTooltip","setShowCopyTooltip","closeIcon","Tooltip","actionableFieldClasses","orderableColumnsClasses","tableClasses","supportsTitle","colSpan","QrFormatDropdown","setFormat","QrErrorCorrectionDropdown","errorCorrection","setErrorCorrection","imageDownloader","ForServerVersion","setSize","margin","setMargin","capabilities","useSizeInPath","marginIsSupported","errorCorrectionIsSupported","willRenderThreeControls","qrCodeUrl","buildQrCodeUrl","totalSize","modalSize","step","src","alt","Button","block","saveImage","downloadIcon","BooleanControl","checked","inline","uuid","typeClasses","display","htmlFor","Checkbox","InfoModal","UseExistingIfFoundInfoIcon","isModalOpen","toggleModal","InfoTooltip","ShortUrlFormCheckboxGroup","infoTooltip","normalizeTag","replace","toDate","dynamicColClasses","TagsSelector","DomainSelector","shortUrlData","setShortUrlData","isEdit","hadTitleOriginally","resolveNewTitle","hasNewTitle","cond","T","matcher","submit","renderOptionalInput","Input","renderDateInput","basicComponents","bsSize","required","showCustomizeCard","limitAccessCardClasses","showCrawlableControl","showForwardQueryControl","showBehaviorCard","extraChecksCardClasses","crawlable","goBack","shortUrlDetail","getShortUrlDetail","shortUrlEdition","savingError","savingErrorData","savingSucceeded","isSuccessful","isNotSuccessful","Message","faArrowLeft","GET_SHORT_URL_DETAIL_START","GET_SHORT_URL_DETAIL_ERROR","GET_SHORT_URL_DETAIL","FormGroupContainer","labelClassName","forId","FormGroup","ServerForm","initialValues","setName","setUrl","setApiKey","handleSubmit","ImportResult","CreateServer","ImportServersBtn","createServer","serversImported","setServersImported","errorImporting","setErrorImporting","NoMenuLayout","serverData","tooltipPlacement","onImport","onImportError","nav","inNavbar","serverIcon","plusIcon","DeleteServerModal","deleteServer","redirectHome","showModal","hideModal","EditServer","editServer","importServersFromFile","createServers","fileRef","files","importIcon","accept","SELECT_SERVER","RESET_SELECTED_SERVER","toSemVer","getServerVersion","memoizeWith","_serverId","serverNotFound","serverNotReachable","EDIT_SERVER","DELETE_SERVER","CREATE_SERVERS","SET_AUTO_CONNECT","newServers","dissoc","fromPairs","evaluatedServerId","serversListToMap","reduce","acc","setAutoConnect","responseToServersList","Array","isArray","fetchServers","homepage","remoteList","maxVersion","fullWidth","loadVisitsOverview","visitsOverview","loadingTags","loadingVisits","orphanVisitsCount","useHistory","CardTitle","CardText","CardHeader","CardBody","encodeURIComponent","ManageServers","serversExporter","ManageServersRow","allServers","setServersList","hasAutoConnect","exportServers","exportIcon","width","ManageServersRowDropdown","checkIcon","isMenuOpen","toggleMenu","serverUrl","isAutoConnect","autoConnectIcon","toggleOffIcon","toggleOnIcon","connectIcon","validateServer","validateServers","every","ServersImporter","csvJson","fileReaderFactory","file","reader","resolve","addEventListener","content","toString","toObject","readAsText","ServersExporter","csvjson","toCSV","FileReader","VisitsHeader","ShortUrlVisitsHeader","shortLink","longLink","visitsStatsTitle","DEFAULT","BROWSERS_WHITELIST","extractDomain","includes","fillTheGaps","labels","zipObj","ToggleSwitch","pointerOnHover","native","firstElement","renderChartLabel","dataset","formattedValue","label","renderPieChartLabel","STEPS_MAP","monthly","weekly","daily","hourly","STEP_TO_DURATION_MAP","hours","days","weeks","months","STEP_TO_DIFF_FUNC_MAP","differenceInHours","differenceInDays","differenceInWeeks","differenceInMonths","STEP_TO_DATE_FORMAT","firstWeekDay","startOfISOWeek","lastWeekDay","endOfISOWeek","groupVisitsByStep","countBy","generateLabelsAndGroupedVisits","groupedVisitsWithGaps","skipNoElements","diffFunc","newerDate","oldestDate","duration","num","generateLabels","generateDataset","tension","borderColor","selectedLabel","chartElementAtEvent","datasetsByPoint","setSelectedVisits","chart","LineChartCard","highlightedVisits","highlightedLabel","oldestVisitDate","now","always","determineInitialStep","setStep","skipNoVisits","toggleSkipNoVisits","visitsToDatasetGroups","reverse","groupedVisits","groupedHighlighted","generateChartDatasets","mainDataset","maintainAspectRatio","plugins","legend","tooltip","intersect","axis","callbacks","scales","y","beginAtZero","ticks","precision","x","onHover","renderLineChart","datasets","getElementAtEvent","entries","menuText","SimplePaginator","setCurrentPage","searchVisits","browser","os","referer","country","city","visitedUrl","visitMatchesSearch","calculateVisits","allVisits","sortedVisits","sortVisits","total","visitsGroups","splitEvery","VisitsTable","selectedVisits","matchMedia","isOrphanVisits","headerCellsClass","matchMobile","matches","isMobileDevice","setIsMobileDevice","resultSet","isFirstLoad","setPage","supportsBots","fullSizeColSpan","listener","removeEventListener","flat","botIcon","isSelected","v","potentialBot","OpenStreetMapTile","TileLayer","attribution","calculateMapProps","locations","bounds","zoom","center","latLong","MapModal","contentClassName","MapContainer","cityName","count","Marker","position","Popup","OpenMapModalBtn","modalTitle","activeCities","mapIsOpened","openMap","closeMap","dropdownIsOpened","toggleDropdown","openDropdown","locationsToShow","setLocationsToShow","buttonRef","openMapWithLocations","filtered","mapIcon","isOrphanVisit","groupNewVisitsByType","groupBy","newVisit","regularVisits","highlightedVisitsToStats","property","toApiParams","excludeBots","visitHasProperty","propertyName","optionalNumericToNumber","numeric","parseFloat","updateLocationsStatsForVisit","updateCountriesStatsForVisit","updateCitiesStatsForVisit","processStatsFromVisits","osStats","updateOsStatsForVisit","browsersStats","updateBrowsersStatsForVisit","browsers","referrersStats","updateReferrersStatsForVisit","referrers","countries","cities","citiesForMapStats","latitude","longitude","currentCity","updateCitiesForMapForVisit","citiesForMap","visitedUrlsStats","isNormalizedOrphanVisit","updateVisitedUrlsForVisit","visitedUrls","normalizeVisits","userAgent","visitLocation","common","bowser","parseUserAgent","countryName","VisitsFilterDropdown","botsSupported","orphanVisitsType","propsForOrphanVisitsTypeItem","DoughnutChartLegend","config","defaultColor","borderWidth","DoughnutChart","memo","chartRef","setChartRef","chartData","generateChartData","height","element","ChartCard","footer","CardFooter","DoughnutChartCard","PaginationDropdown","toggleClassName","ranges","Infinity","dropLabelIfHidden","startsWith","highlightedData","HorizontalBarChart","highlightedStats","statsAreDefined","highlightedKey","stacked","indexAxis","determineHeight","renderChartComponent","customKey","toLowerIfString","toLower","pickKeyFromPair","pickValueFromPair","SortableBarChartCard","sortingItems","extraHeaderContent","withPagination","setItemsPerPage","determineCurrentPagePairs","firstPageLength","i","sortedPairs","pairs","sortBy","getSortedPairsForStats","sortedKeys","sortedHighlightedPairs","currentPageStats","currentPageHighlightedStats","highlightedPages","determineStats","sections","byTime","subPath","faCalendarAlt","byContext","faChartPie","byLocation","faMapMarkedAlt","faList","VisitsNavLink","RouterNavLink","endsWith","VisitsStats","visitsInfo","getVisits","cancelGetVisits","exportCsv","initialInterval","defaultInterval","setDateRange","setHighlightedVisits","setHighlightedLabel","visitsFilter","setVisitsFilter","buildSectionUrl","loadingLarge","progress","normalizedVisits","mapLocations","highlightVisitsForProp","newSelectedBar","propEq","faFileDownload","Progress","striped","pills","section","amount","exportVisits","cancelGetShortUrlVisits","ITEMS_PER_PAGE","isLastPage","calcProgress","getVisitsWithLoader","visitsLoader","extraFinishActionData","actionMap","shouldCancel","loadVisitsInParallel","flatten","loadPagesBlocks","pagesBlocks","concat","loadVisits","pagesRange","finish","GET_SHORT_URL_VISITS_START","GET_SHORT_URL_VISITS_ERROR","GET_SHORT_URL_VISITS","GET_SHORT_URL_VISITS_LARGE","GET_SHORT_URL_VISITS_CANCEL","GET_SHORT_URL_VISITS_PROGRESS_CHANGED","cancelLoad","newVisits","TagVisitsHeader","tagVisits","cancelGetTagVisits","GET_TAG_VISITS_START","GET_TAG_VISITS_ERROR","GET_TAG_VISITS","GET_TAG_VISITS_LARGE","GET_TAG_VISITS_CANCEL","GET_TAG_VISITS_PROGRESS_CHANGED","OrphanVisitsHeader","cancelGetOrphanVisits","GET_ORPHAN_VISITS_START","GET_ORPHAN_VISITS_ERROR","GET_ORPHAN_VISITS","GET_ORPHAN_VISITS_LARGE","GET_ORPHAN_VISITS_CANCEL","GET_ORPHAN_VISITS_PROGRESS_CHANGED","matchesType","GET_OVERVIEW_START","GET_OVERVIEW_ERROR","GET_OVERVIEW","VisitsExporter","visitsParser","TagBullet","toComponentTag","searchMode","tagFilteringMode","tagComponent","onDelete","suggestions","suggestionComponent","allowNew","addOnBlur","minQueryLength","delimiters","suggestionsTransform","removedTagIndex","tagsCopy","splice","onAddition","TagCard","DeleteTagConfirmModal","EditTagModal","displayed","isEditModalOpen","toggleEdit","hasTitle","displayTitle","titleRef","scrollWidth","clientWidth","faLink","faEye","deleteTag","tagDelete","tagDeleted","deleting","doDelete","tagEdited","tagEdit","newTagName","setNewTagName","setColor","showColorPicker","toggleColorPicker","hideColorPicker","editing","saveTag","onClosed","colorIcon","Popover","disableAlpha","hex","TagsModeDropdown","renderTitle","cardsIcon","TagsCards","TagsTable","filterTags","forceListTags","ui","tagsMode","setMode","resolveSortedTags","filteredTags","shortUrlsCount","normalizedTags","sortedTags","renderContent","DELETE_TAG_START","DELETE_TAG_ERROR","DELETE_TAG","TAG_DELETED","EDIT_TAG_START","EDIT_TAG_ERROR","EDIT_TAG","TAG_EDITED","pick","LIST_TAGS_START","LIST_TAGS_ERROR","LIST_TAGS","FILTER_TAGS","renameTag","rejectTag","tagToReject","calculateVisitsPerTag","increase","tagStats","displayedTag","setDisplayedTag","tagsCount","tagsGroups","group","TagsTableRow","pageFromQuery","showPaginator","isDropdownOpen","listTagsActionFactory","force","processedStats","factory","GET_MERCURE_INFO_START","GET_MERCURE_INFO_ERROR","GET_MERCURE_INFO","realTimeUpdates","enabled","info","RealTimeUpdates","toggleRealTimeUpdates","setRealTimeUpdatesInterval","SettingsSections","child","subChild","subIndex","Settings","ShortUrlCreation","UserInterface","Visits","SET_SETTINGS","mergeDeepRight","setShortUrlCreationSettings","setUiSettings","setVisitsSettings","tagFilteringModeText","changeTagsFilteringMode","faMoon","faSun","useDarkTheme","DateIntervalSelector","EDIT_DOMAIN_REDIRECTS","redirects","LIST_DOMAINS_START","LIST_DOMAINS_ERROR","LIST_DOMAINS","FILTER_DOMAINS","filteredDomains","replaceRedirectsOnDomain","filterDomains","domainsList","inputDisplayed","showInput","hideInput","valueIsEmpty","unselectDomain","InputGroup","InputGroupAddon","addonType","faUndo","trigger","isDefault","isLast","EditDomainRedirectsModal","baseUrlRedirect","setBaseUrlRedirect","regular404Redirect","setRegular404Redirect","invalidShortUrlRedirect","setInvalidShortUrlRedirect","Nr","fallback","DefaultDomain","defaultDomainIcon","DomainRow","defaultRedirects","authority","domainId","forbiddenIcon","column","APP_UPDATE_AVAILABLE","RESET_APP_UPDATE","appUpdateAvailable","resetAppUpdate","AppUpdateBanner","forceUpdate","isUpdating","setUpdating","Alert","reloadIcon","navigator","serviceWorker","getRegistrations","registrations","registration","waiting","postMessage","App","appUpdated","Bottle","container","mapActionService","actionName","serviceName","lazyService","propsFromState","actionServiceNames","reduxConnect","provideAppServices","provideCommonServices","provideApiServices","provideShortUrlsServices","provideServersServices","provideTagsServices","provideVisitsServices","provideUtilsServices","provideMercureServices","provideSettingsServices","provideDomainsServices","combineReducers","serversReducer","selectedServerReducer","shortUrlsListReducer","shortUrlsListParamsReducer","shortUrlCreationReducer","shortUrlDeletionReducer","shortUrlEditionReducer","shortUrlVisitsReducer","tagVisitsReducer","orphanVisitsReducer","shortUrlDetailReducer","tagsListReducer","tagDeleteReducer","tagEditReducer","mercureInfoReducer","settingsReducer","domainsListReducer","visitsOverviewReducer","appUpdatesReducer","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","localStorageConfig","states","namespace","namespaceSeparator","debounce","store","createStore","reducers","load","applyMiddleware","save","ReduxThunk","isLocalhost","hostname","registerValidSW","swUrl","register","onupdatefound","installingWorker","installing","onstatechange","controller","log","onUpdate","onSuccess","L","Icon","Default","prototype","_getIconUrl","mergeOptions","iconRetinaUrl","marker2x","iconUrl","marker","shadowUrl","markerShadow","basename","getElementById","process","origin","fetch","contentType","indexOf","ready","unregister","checkValidServiceWorker","registerServiceWorker","getClassForType","default","getTextClassForType","preloader","spin","versionToMatch","matchesMinVersion","compare","versionIsValidSemVer","defaultValue"],"mappings":"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","file":"static/js/main.706c5543.chunk.js","sourcesContent":["import { FC, useEffect } from 'react';\n\ninterface WithoutSelectedServerProps {\n resetSelectedServer: Function;\n}\n\nexport function withoutSelectedServer(WrappedComponent: FC) {\n return (props: WithoutSelectedServerProps & T) => {\n useEffect(() => {\n props.resetSelectedServer();\n }, []);\n\n return ;\n };\n}\n","export const saveUrl = ({ document }: Window, url: string, filename: string) => {\n const link = document.createElement('a');\n\n link.setAttribute('href', url);\n link.setAttribute('download', filename);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\nexport const saveCsv = (window: Window, csv: string, filename: string) => {\n const blob = new Blob([ csv ], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n\n saveUrl(window, url, filename);\n};\n","import { MAIN_COLOR } from '../../utils/theme';\n\nexport interface ShlinkLogoProps {\n color?: string;\n className?: string;\n}\n\nexport const ShlinkLogo = ({ color = MAIN_COLOR, className }: ShlinkLogoProps) => (\n \n \n \n \n \n \n \n \n);\n","import { FC, useEffect } from 'react';\nimport { RouteComponentProps } from 'react-router';\nimport Message from '../../utils/Message';\nimport { isNotFoundServer, SelectedServer } from '../data';\nimport NoMenuLayout from '../../common/NoMenuLayout';\n\ninterface WithSelectedServerProps extends RouteComponentProps<{ serverId: string }> {\n selectServer: (serverId: string) => void;\n selectedServer: SelectedServer;\n}\n\nexport function withSelectedServer(WrappedComponent: FC, ServerError: FC) {\n return (props: WithSelectedServerProps & T) => {\n const { selectServer, selectedServer, match } = props;\n\n useEffect(() => {\n selectServer(match.params.serverId);\n }, [ match.params.serverId ]);\n\n if (!selectedServer) {\n return (\n \n \n \n );\n }\n\n if (isNotFoundServer(selectedServer)) {\n return ;\n }\n\n return ;\n };\n}\n","import { FC } from 'react';\nimport { Link } from 'react-router-dom';\nimport { SimpleCard } from '../utils/SimpleCard';\n\ninterface NotFoundProps {\n to?: string;\n}\n\nconst NotFound: FC = ({ to = '/', children = 'Home' }) => (\n
\n \n

Oops! We could not find requested route.

\n

\n Use your browser's back button to navigate to the page you have previously come from, or just press this\n button.\n

\n
\n {children}\n
\n
\n);\n\nexport default NotFound;\n","import { FC } from 'react';\nimport { ListGroup, ListGroupItem } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronRight as chevronIcon } from '@fortawesome/free-solid-svg-icons';\nimport { ServerWithId } from './data';\nimport './ServersListGroup.scss';\n\ninterface ServersListGroupProps {\n servers: ServerWithId[];\n embedded?: boolean;\n}\n\nconst ServerListItem = ({ id, name }: { id: string; name: string }) => (\n \n {name}\n \n \n);\n\nconst ServersListGroup: FC = ({ servers, children, embedded = false }) => (\n <>\n {children &&
{children}
}\n {servers.length > 0 && (\n \n {servers.map(({ id, name }) => )}\n \n )}\n \n);\n\nexport default ServersListGroup;\n","import { useState, useRef } from 'react';\nimport { useSwipeable as useReactSwipeable } from 'react-swipeable';\nimport { parseQuery, stringifyQuery } from './query';\n\nconst DEFAULT_DELAY = 2000;\n\nexport type StateFlagTimeout = (initialValue?: boolean, delay?: number) => [ boolean, () => void ];\n\nexport const useStateFlagTimeout = (\n setTimeout: (callback: Function, timeout: number) => number,\n clearTimeout: (timer: number) => void,\n): StateFlagTimeout => (initialValue = false, delay = DEFAULT_DELAY) => {\n const [ flag, setFlag ] = useState(initialValue);\n const timeout = useRef(undefined);\n const callback = () => {\n setFlag(!initialValue);\n\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n\n timeout.current = setTimeout(() => setFlag(initialValue), delay);\n };\n\n return [ flag, callback ];\n};\n\ntype ToggleResult = [ boolean, () => void, () => void, () => void ];\n\nexport const useToggle = (initialValue = false): ToggleResult => {\n const [ flag, setFlag ] = useState(initialValue);\n\n return [ flag, () => setFlag(!flag), () => setFlag(true), () => setFlag(false) ];\n};\n\nexport const useSwipeable = (showSidebar: () => void, hideSidebar: () => void) => {\n const swipeMenuIfNoModalExists = (callback: () => void) => (e: any) => {\n const swippedOnVisitsTable = (e.event.composedPath() as HTMLElement[]).some( // eslint-disable-line @typescript-eslint/no-unsafe-call\n ({ classList }) => classList?.contains('visits-table'),\n );\n\n if (swippedOnVisitsTable || document.querySelector('.modal')) {\n return;\n }\n\n callback();\n };\n\n return useReactSwipeable({\n delta: 40,\n onSwipedLeft: swipeMenuIfNoModalExists(hideSidebar),\n onSwipedRight: swipeMenuIfNoModalExists(showSidebar),\n });\n};\n\nexport const useQueryState = (paramName: string, initialState: T): [ T, (newValue: T) => void ] => {\n const [ value, setValue ] = useState(initialState);\n const setValueWithLocation = (value: T) => {\n const { location, history } = window;\n const query = parseQuery(location.search);\n\n query[paramName] = value;\n history.pushState(null, '', `${location.pathname}?${stringifyQuery(query)}`);\n setValue(value);\n };\n\n return [ value, setValueWithLocation ];\n};\n","import axios from 'axios';\nimport Bottle, { Decorator } from 'bottlejs';\nimport ScrollToTop from '../ScrollToTop';\nimport MainHeader from '../MainHeader';\nimport Home from '../Home';\nimport MenuLayout from '../MenuLayout';\nimport AsideMenu from '../AsideMenu';\nimport ErrorHandler from '../ErrorHandler';\nimport ShlinkVersionsContainer from '../ShlinkVersionsContainer';\nimport { ConnectDecorator } from '../../container/types';\nimport { withoutSelectedServer } from '../../servers/helpers/withoutSelectedServer';\nimport { ImageDownloader } from './ImageDownloader';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator, withRouter: Decorator) => {\n // Services\n bottle.constant('window', (global as any).window);\n bottle.constant('console', global.console);\n bottle.constant('axios', axios);\n\n bottle.service('ImageDownloader', ImageDownloader, 'axios', 'window');\n\n // Components\n bottle.serviceFactory('ScrollToTop', ScrollToTop);\n bottle.decorator('ScrollToTop', withRouter);\n\n bottle.serviceFactory('MainHeader', MainHeader, 'ServersDropdown');\n bottle.decorator('MainHeader', withRouter);\n\n bottle.serviceFactory('Home', () => Home);\n bottle.decorator('Home', withoutSelectedServer);\n bottle.decorator('Home', withRouter);\n bottle.decorator('Home', connect([ 'servers' ], [ 'resetSelectedServer' ]));\n\n bottle.serviceFactory(\n 'MenuLayout',\n MenuLayout,\n 'TagsList',\n 'ShortUrlsList',\n 'AsideMenu',\n 'CreateShortUrl',\n 'ShortUrlVisits',\n 'TagVisits',\n 'OrphanVisits',\n 'ServerError',\n 'Overview',\n 'EditShortUrl',\n 'ManageDomains',\n );\n bottle.decorator('MenuLayout', connect([ 'selectedServer', 'shortUrlsListParams' ], [ 'selectServer' ]));\n bottle.decorator('MenuLayout', withRouter);\n\n bottle.serviceFactory('AsideMenu', AsideMenu, 'DeleteServerButton');\n\n bottle.serviceFactory('ShlinkVersionsContainer', () => ShlinkVersionsContainer);\n bottle.decorator('ShlinkVersionsContainer', connect([ 'selectedServer' ]));\n\n bottle.serviceFactory('ErrorHandler', ErrorHandler, 'window', 'console');\n};\n\nexport default provideServices;\n","import { PropsWithChildren, useEffect } from 'react';\nimport { RouteComponentProps } from 'react-router';\n\nconst ScrollToTop = () => ({ location, children }: PropsWithChildren) => {\n useEffect(() => {\n scrollTo(0, 0);\n }, [ location ]);\n\n return <>{children};\n};\n\nexport default ScrollToTop;\n","import { Component, ReactNode } from 'react';\nimport { Button } from 'reactstrap';\nimport { SimpleCard } from '../utils/SimpleCard';\n\ninterface ErrorHandlerState {\n hasError: boolean;\n}\n\nconst ErrorHandler = (\n { location }: Window,\n { error }: Console,\n) => class ErrorHandler extends Component {\n public constructor(props: object) {\n super(props);\n this.state = { hasError: false };\n }\n\n public static getDerivedStateFromError(): ErrorHandlerState {\n return { hasError: true };\n }\n\n public componentDidCatch(e: Error): void {\n if (process.env.NODE_ENV !== 'development') {\n error(e);\n }\n }\n\n public render(): ReactNode {\n if (this.state.hasError) {\n return (\n
\n \n

Oops! This is awkward :S

\n

It seems that something went wrong. Try refreshing the page or just click this button.

\n
\n \n
\n
\n );\n }\n\n return this.props.children;\n }\n};\n\nexport default ErrorHandler;\n","import { AxiosInstance } from 'axios';\nimport { saveUrl } from '../../utils/helpers/files';\n\nexport class ImageDownloader {\n public constructor(private readonly axios: AxiosInstance, private readonly window: Window) {}\n\n public async saveImage(imgUrl: string, filename: string): Promise {\n const { data } = await this.axios.get(imgUrl, { responseType: 'blob' });\n const url = URL.createObjectURL(data);\n\n saveUrl(this.window, url, filename);\n }\n}\n","import Bottle from 'bottlejs';\nimport { useStateFlagTimeout } from '../helpers/hooks';\nimport LocalStorage from './LocalStorage';\nimport ColorGenerator from './ColorGenerator';\n\nconst provideServices = (bottle: Bottle) => {\n bottle.constant('localStorage', (global as any).localStorage);\n bottle.service('Storage', LocalStorage, 'localStorage');\n bottle.service('ColorGenerator', ColorGenerator, 'Storage');\n\n bottle.constant('setTimeout', global.setTimeout);\n bottle.constant('clearTimeout', global.clearTimeout);\n bottle.serviceFactory('useStateFlagTimeout', useStateFlagTimeout, 'setTimeout', 'clearTimeout');\n};\n\nexport default provideServices;\n","const PREFIX = 'shlink';\nconst buildPath = (path: string) => `${PREFIX}.${path}`;\n\nexport default class LocalStorage {\n public constructor(private readonly localStorage: Storage) {}\n\n public readonly get = (key: string): T | undefined => {\n const item = this.localStorage.getItem(buildPath(key));\n\n return item ? JSON.parse(item) as T : undefined;\n };\n\n public readonly set = (key: string, value: any) => this.localStorage.setItem(buildPath(key), JSON.stringify(value));\n}\n","import { SemVer } from '../../utils/helpers/version';\n\nexport interface ServerData {\n name: string;\n url: string;\n apiKey: string;\n}\n\nexport interface ServerWithId extends ServerData {\n id: string;\n autoConnect?: boolean;\n}\n\nexport interface ReachableServer extends ServerWithId {\n version: SemVer;\n printableVersion: string;\n}\n\nexport interface NonReachableServer extends ServerWithId {\n serverNotReachable: true;\n}\n\nexport interface NotFoundServer {\n serverNotFound: true;\n}\n\nexport type RegularServer = ReachableServer | NonReachableServer;\n\nexport type SelectedServer = RegularServer | NotFoundServer | null;\n\nexport type ServersMap = Record;\n\nexport const hasServerData = (server: SelectedServer | ServerData): server is ServerData =>\n !!(server as ServerData)?.url && !!(server as ServerData)?.apiKey;\n\nexport const isServerWithId = (server: SelectedServer | ServerWithId): server is ServerWithId =>\n !!server?.hasOwnProperty('id');\n\nexport const isReachableServer = (server: SelectedServer): server is ReachableServer =>\n !!server?.hasOwnProperty('version');\n\nexport const isNotFoundServer = (server: SelectedServer): server is NotFoundServer =>\n !!server?.hasOwnProperty('serverNotFound');\n\nexport const getServerId = (server: SelectedServer) => isServerWithId(server) ? server.id : '';\n","import { rangeOf } from '../utils';\nimport LocalStorage from './LocalStorage';\n\nconst HEX_COLOR_LENGTH = 6;\nconst { floor, random } = Math;\nconst letters = '0123456789ABCDEF';\nconst buildRandomColor = () => `#${rangeOf(HEX_COLOR_LENGTH, () => letters[floor(random() * letters.length)]).join('')}`;\nconst normalizeKey = (key: string) => key.toLowerCase().trim();\n\nexport default class ColorGenerator {\n private readonly colors: Record;\n\n public constructor(private readonly storage: LocalStorage) {\n this.colors = this.storage.get>('colors') ?? {};\n }\n\n public readonly getColorForKey = (key: string) => {\n const normalizedKey = normalizeKey(key);\n const color = this.colors[normalizedKey];\n\n // If a color has not been set yet, generate a random one and save it\n if (!color) {\n return this.setColorForKey(normalizedKey, buildRandomColor());\n }\n\n return color;\n };\n\n public readonly setColorForKey = (key: string, color: string) => {\n const normalizedKey = normalizeKey(key);\n\n this.colors[normalizedKey] = color;\n this.storage.set('colors', this.colors);\n\n return color;\n };\n}\n","import { pipe } from 'ramda';\nimport { ExternalLink } from 'react-external-link';\nimport { versionToPrintable, versionToSemVer } from '../utils/helpers/version';\nimport { isReachableServer } from '../servers/data';\nimport { ShlinkVersionsContainerProps } from './ShlinkVersionsContainer';\n\nconst SHLINK_WEB_CLIENT_VERSION = '%_VERSION_%';\nconst normalizeVersion = pipe(versionToSemVer(), versionToPrintable);\n\nexport interface ShlinkVersionsProps extends ShlinkVersionsContainerProps {\n clientVersion?: string;\n}\n\nconst VersionLink = ({ project, version }: { project: 'shlink' | 'shlink-web-client'; version: string }) => (\n \n {version}\n \n);\n\nconst ShlinkVersions = ({ selectedServer, clientVersion = SHLINK_WEB_CLIENT_VERSION }: ShlinkVersionsProps) => {\n const normalizedClientVersion = normalizeVersion(clientVersion);\n\n return (\n \n {isReachableServer(selectedServer) &&\n <>Server: - \n }\n Client: \n \n );\n};\n\nexport default ShlinkVersions;\n","import classNames from 'classnames';\nimport { isReachableServer, SelectedServer } from '../servers/data';\nimport ShlinkVersions from './ShlinkVersions';\nimport './ShlinkVersionsContainer.scss';\n\nexport interface ShlinkVersionsContainerProps {\n selectedServer: SelectedServer;\n}\n\nconst ShlinkVersionsContainer = ({ selectedServer }: ShlinkVersionsContainerProps) => {\n const classes = classNames('text-center', {\n 'shlink-versions-container--with-server': isReachableServer(selectedServer),\n });\n\n return (\n
\n \n
\n );\n};\n\nexport default ShlinkVersionsContainer;\n","import { faChevronDown as arrowIcon, faCogs as cogsIcon } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FC, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Collapse, Nav, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\nimport classNames from 'classnames';\nimport { RouteComponentProps } from 'react-router';\nimport { useToggle } from '../utils/helpers/hooks';\nimport { ShlinkLogo } from './img/ShlinkLogo';\nimport './MainHeader.scss';\n\nconst MainHeader = (ServersDropdown: FC) => ({ location }: RouteComponentProps) => {\n const [ isOpen, toggleOpen, , close ] = useToggle();\n const { pathname } = location;\n\n useEffect(close, [ location ]);\n\n const settingsPath = '/settings';\n const toggleClass = classNames('main-header__toggle-icon', { 'main-header__toggle-icon--opened': isOpen });\n\n return (\n \n \n Shlink\n \n\n \n \n \n\n \n \n \n \n );\n};\n\nexport default MainHeader;\n","import { isEmpty, isNil, pipe, range } from 'ramda';\nimport { SyntheticEvent } from 'react';\n\nexport const rangeOf = (size: number, mappingFn: (value: number) => T, startAt = 1): T[] =>\n range(startAt, size + 1).map(mappingFn);\n\nexport type Empty = null | undefined | '' | never[];\n\nexport const hasValue = (value: T | Empty): value is T => !isNil(value) && !isEmpty(value);\n\nexport const handleEventPreventingDefault = (handler: () => T) => pipe(\n (e: SyntheticEvent) => e.preventDefault(),\n handler,\n);\n\nexport type Nullable = {\n [P in keyof T]: T[P] | null\n};\n\ntype Optional = T | null | undefined;\n\nexport type OptionalString = Optional;\n\nexport type RecursivePartial = {\n [P in keyof T]?: RecursivePartial;\n};\n\nexport const nonEmptyValueOrNull = (value: T): T | null => isEmpty(value) ? null : value;\n\nexport const capitalize = (value: T): string => `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n","import { useEffect } from 'react';\nimport { isEmpty, values } from 'ramda';\nimport { Link, RouteChildrenProps } from 'react-router-dom';\nimport { Card, Row } from 'reactstrap';\nimport { ExternalLink } from 'react-external-link';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExternalLinkAlt, faPlus } from '@fortawesome/free-solid-svg-icons';\nimport ServersListGroup from '../servers/ServersListGroup';\nimport { ServersMap } from '../servers/data';\nimport { ShlinkLogo } from './img/ShlinkLogo';\nimport './Home.scss';\n\nexport interface HomeProps extends RouteChildrenProps {\n servers: ServersMap;\n}\n\nconst Home = ({ servers, history }: HomeProps) => {\n const serversList = values(servers);\n const hasServers = !isEmpty(serversList);\n\n useEffect(() => {\n // Try to redirect to the first server marked as auto-connect\n const autoConnectServer = serversList.find(({ autoConnect }) => autoConnect);\n\n autoConnectServer && history.push(`/server/${autoConnectServer.id}`);\n }, []);\n\n return (\n
\n \n \n
\n
\n \n
\n
\n
\n
\n

Welcome!

\n
\n \n {!hasServers && (\n
\n

This application will help you manage your Shlink servers.

\n

\n \n Add a server\n \n

\n

\n \n \n Learn more about Shlink \n \n \n

\n
\n )}\n
\n
\n
\n
\n
\n );\n};\n\nexport default Home;\n","import { FC, useEffect } from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport { faBars as burgerIcon } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport { withSelectedServer } from '../servers/helpers/withSelectedServer';\nimport { useSwipeable, useToggle } from '../utils/helpers/hooks';\nimport { supportsDomainRedirects, supportsOrphanVisits } from '../utils/helpers/features';\nimport { isReachableServer } from '../servers/data';\nimport NotFound from './NotFound';\nimport { AsideMenuProps } from './AsideMenu';\nimport './MenuLayout.scss';\n\nconst MenuLayout = (\n TagsList: FC,\n ShortUrlsList: FC,\n AsideMenu: FC,\n CreateShortUrl: FC,\n ShortUrlVisits: FC,\n TagVisits: FC,\n OrphanVisits: FC,\n ServerError: FC,\n Overview: FC,\n EditShortUrl: FC,\n ManageDomains: FC,\n) => withSelectedServer(({ location, selectedServer }) => {\n const [ sidebarVisible, toggleSidebar, showSidebar, hideSidebar ] = useToggle();\n\n useEffect(() => hideSidebar(), [ location ]);\n\n if (!isReachableServer(selectedServer)) {\n return ;\n }\n\n const addOrphanVisitsRoute = supportsOrphanVisits(selectedServer);\n const addManageDomainsRoute = supportsDomainRedirects(selectedServer);\n const burgerClasses = classNames('menu-layout__burger-icon', { 'menu-layout__burger-icon--active': sidebarVisible });\n const swipeableProps = useSwipeable(showSidebar, hideSidebar);\n\n return (\n <>\n \n\n
\n
\n \n
hideSidebar()}>\n
\n \n \n \n \n \n \n \n \n {addOrphanVisitsRoute && }\n \n {addManageDomainsRoute && }\n List short URLs}\n />\n \n
\n
\n
\n
\n \n );\n}, ServerError);\n\nexport default MenuLayout;\n","import {\n faList as listIcon,\n faLink as createIcon,\n faTags as tagsIcon,\n faPen as editIcon,\n faHome as overviewIcon,\n faGlobe as domainsIcon,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { FC } from 'react';\nimport { NavLink, NavLinkProps } from 'react-router-dom';\nimport classNames from 'classnames';\nimport { Location } from 'history';\nimport { DeleteServerButtonProps } from '../servers/DeleteServerButton';\nimport { isServerWithId, SelectedServer } from '../servers/data';\nimport { supportsDomainRedirects } from '../utils/helpers/features';\nimport './AsideMenu.scss';\n\nexport interface AsideMenuProps {\n selectedServer: SelectedServer;\n className?: string;\n showOnMobile?: boolean;\n}\n\ninterface AsideMenuItemProps extends NavLinkProps {\n to: string;\n}\n\nconst AsideMenuItem: FC = ({ children, to, className, ...rest }) => (\n \n {children}\n \n);\n\nconst AsideMenu = (DeleteServerButton: FC) => (\n { selectedServer, showOnMobile = false }: AsideMenuProps,\n) => {\n const hasId = isServerWithId(selectedServer);\n const serverId = hasId ? selectedServer.id : '';\n const addManageDomainsLink = supportsDomainRedirects(selectedServer);\n const asideClass = classNames('aside-menu', {\n 'aside-menu--hidden': !showOnMobile,\n });\n const shortUrlsIsActive = (_: null, location: Location) => location.pathname.match('/list-short-urls') !== null;\n const buildPath = (suffix: string) => `/server/${serverId}${suffix}`;\n\n return (\n \n );\n};\n\nexport default AsideMenu;\n","import { CardProps } from 'reactstrap/lib/Card';\nimport { Card, CardBody, CardHeader } from 'reactstrap';\nimport { ReactNode } from 'react';\n\ninterface SimpleCardProps extends Omit {\n title?: ReactNode;\n bodyClassName?: string;\n}\n\nexport const SimpleCard = ({ title, children, bodyClassName, ...rest }: SimpleCardProps) => (\n \n {title && {title}}\n {children}\n \n);\n","import { isReachableServer, SelectedServer } from '../../servers/data';\nimport { versionMatch, Versions } from './version';\n\nconst serverMatchesVersions = (versions: Versions) => (selectedServer: SelectedServer): boolean =>\n isReachableServer(selectedServer) && versionMatch(selectedServer.version, versions);\n\nexport const supportsQrCodeSizeInQuery = serverMatchesVersions({ minVersion: '2.5.0' });\n\nexport const supportsShortUrlTitle = serverMatchesVersions({ minVersion: '2.6.0' });\n\nexport const supportsOrphanVisits = supportsShortUrlTitle;\n\nexport const supportsQrCodeMargin = supportsShortUrlTitle;\n\nexport const supportsTagsInPatch = supportsShortUrlTitle;\n\nexport const supportsBotVisits = serverMatchesVersions({ minVersion: '2.7.0' });\n\nexport const supportsCrawlableVisits = supportsBotVisits;\n\nexport const supportsQrErrorCorrection = serverMatchesVersions({ minVersion: '2.8.0' });\n\nexport const supportsDomainRedirects = supportsQrErrorCorrection;\n\nexport const supportsForwardQuery = serverMatchesVersions({ minVersion: '2.9.0' });\n","export const MAIN_COLOR = '#4696e5';\n\nexport const MAIN_COLOR_ALPHA = 'rgba(70, 150, 229, 0.4)';\n\nexport const HIGHLIGHTED_COLOR = '#f77f28';\n\nexport const HIGHLIGHTED_COLOR_ALPHA = 'rgba(247, 127, 40, 0.4)';\n\nexport const PRIMARY_LIGHT_COLOR = 'white';\n\nexport const PRIMARY_DARK_COLOR = '#161b22';\n\nexport type Theme = 'dark' | 'light';\n\nexport const changeThemeInMarkup = (theme: Theme) => {\n const html = document.getElementsByTagName('html');\n\n html?.[0]?.setAttribute('data-theme', theme);\n};\n\nexport const isDarkThemeEnabled = (): boolean => {\n const html = document.getElementsByTagName('html');\n\n return html?.[0]?.getAttribute('data-theme') === 'dark';\n};\n","import qs from 'qs';\n\nexport const parseQuery = (search: string) => qs.parse(search, { ignoreQueryPrefix: true }) as unknown as T;\n\nexport const stringifyQuery = (query: any): string => qs.stringify(query, { arrayFormat: 'brackets' });\n","import { useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch as searchIcon } from '@fortawesome/free-solid-svg-icons';\nimport classNames from 'classnames';\nimport './SearchField.scss';\n\nconst DEFAULT_SEARCH_INTERVAL = 500;\nlet timer: NodeJS.Timeout | null;\n\ninterface SearchFieldProps {\n onChange: (value: string) => void;\n className?: string;\n large?: boolean;\n noBorder?: boolean;\n initialValue?: string;\n}\n\nconst SearchField = ({ onChange, className, large = true, noBorder = false, initialValue = '' }: SearchFieldProps) => {\n const [ searchTerm, setSearchTerm ] = useState(initialValue);\n\n const resetTimer = () => {\n timer && clearTimeout(timer);\n timer = null;\n };\n const searchTermChanged = (newSearchTerm: string, timeout = DEFAULT_SEARCH_INTERVAL) => {\n setSearchTerm(newSearchTerm);\n\n resetTimer();\n\n timer = setTimeout(() => {\n onChange(newSearchTerm);\n resetTimer();\n }, timeout);\n };\n\n return (\n
\n searchTermChanged(e.target.value)}\n />\n \n
\n \n );\n};\n\nexport default SearchField;\n","import { isEmpty, isNil, reject } from 'ramda';\nimport { AxiosInstance, AxiosResponse, Method } from 'axios';\nimport { ShortUrlsListParams } from '../../short-urls/reducers/shortUrlsListParams';\nimport { ShortUrl, ShortUrlData } from '../../short-urls/data';\nimport { OptionalString } from '../../utils/utils';\nimport {\n ShlinkHealth,\n ShlinkMercureInfo,\n ShlinkShortUrlsResponse,\n ShlinkTags,\n ShlinkTagsResponse,\n ShlinkVisits,\n ShlinkVisitsParams,\n ShlinkShortUrlData,\n ShlinkDomain,\n ShlinkDomainsResponse,\n ShlinkVisitsOverview,\n ShlinkEditDomainRedirects,\n ShlinkDomainRedirects,\n} from '../types';\nimport { stringifyQuery } from '../../utils/helpers/query';\n\nconst buildShlinkBaseUrl = (url: string, apiVersion: number) => url ? `${url}/rest/v${apiVersion}` : '';\nconst rejectNilProps = reject(isNil);\n\nexport default class ShlinkApiClient {\n private apiVersion: number;\n\n public constructor(\n private readonly axios: AxiosInstance,\n private readonly baseUrl: string,\n private readonly apiKey: string,\n ) {\n this.apiVersion = 2;\n }\n\n public readonly listShortUrls = async (params: ShortUrlsListParams = {}): Promise =>\n this.performRequest<{ shortUrls: ShlinkShortUrlsResponse }>('/short-urls', 'GET', params)\n .then(({ data }) => data.shortUrls);\n\n public readonly createShortUrl = async (options: ShortUrlData): Promise => {\n const filteredOptions = reject((value) => isEmpty(value) || isNil(value), options as any);\n\n return this.performRequest('/short-urls', 'POST', {}, filteredOptions)\n .then((resp) => resp.data);\n };\n\n public readonly getShortUrlVisits = async (shortCode: string, query?: ShlinkVisitsParams): Promise =>\n this.performRequest<{ visits: ShlinkVisits }>(`/short-urls/${shortCode}/visits`, 'GET', query)\n .then(({ data }) => data.visits);\n\n public readonly getTagVisits = async (tag: string, query?: Omit): Promise =>\n this.performRequest<{ visits: ShlinkVisits }>(`/tags/${tag}/visits`, 'GET', query)\n .then(({ data }) => data.visits);\n\n public readonly getOrphanVisits = async (query?: Omit): Promise =>\n this.performRequest<{ visits: ShlinkVisits }>('/visits/orphan', 'GET', query)\n .then(({ data }) => data.visits);\n\n public readonly getVisitsOverview = async (): Promise =>\n this.performRequest<{ visits: ShlinkVisitsOverview }>('/visits', 'GET')\n .then(({ data }) => data.visits);\n\n public readonly getShortUrl = async (shortCode: string, domain?: OptionalString): Promise =>\n this.performRequest(`/short-urls/${shortCode}`, 'GET', { domain })\n .then(({ data }) => data);\n\n public readonly deleteShortUrl = async (shortCode: string, domain?: OptionalString): Promise =>\n this.performRequest(`/short-urls/${shortCode}`, 'DELETE', { domain })\n .then(() => {});\n\n /* @deprecated. If using Shlink 2.6.0 or greater, use updateShortUrl instead */\n public readonly updateShortUrlTags = async (\n shortCode: string,\n domain: OptionalString,\n tags: string[],\n ): Promise =>\n this.performRequest<{ tags: string[] }>(`/short-urls/${shortCode}/tags`, 'PUT', { domain }, { tags })\n .then(({ data }) => data.tags);\n\n public readonly updateShortUrl = async (\n shortCode: string,\n domain: OptionalString,\n data: ShlinkShortUrlData,\n ): Promise =>\n this.performRequest(`/short-urls/${shortCode}`, 'PATCH', { domain }, data)\n .then(({ data }) => data);\n\n public readonly listTags = async (): Promise =>\n this.performRequest<{ tags: ShlinkTagsResponse }>('/tags', 'GET', { withStats: 'true' })\n .then((resp) => resp.data.tags)\n .then(({ data, stats }) => ({ tags: data, stats }));\n\n public readonly deleteTags = async (tags: string[]): Promise<{ tags: string[] }> =>\n this.performRequest('/tags', 'DELETE', { tags })\n .then(() => ({ tags }));\n\n public readonly editTag = async (oldName: string, newName: string): Promise<{ oldName: string; newName: string }> =>\n this.performRequest('/tags', 'PUT', {}, { oldName, newName })\n .then(() => ({ oldName, newName }));\n\n public readonly health = async (): Promise =>\n this.performRequest('/health', 'GET')\n .then((resp) => resp.data);\n\n public readonly mercureInfo = async (): Promise =>\n this.performRequest('/mercure-info', 'GET')\n .then((resp) => resp.data);\n\n public readonly listDomains = async (): Promise =>\n this.performRequest<{ domains: ShlinkDomainsResponse }>('/domains', 'GET').then(({ data }) => data.domains.data);\n\n public readonly editDomainRedirects = async (\n domainRedirects: ShlinkEditDomainRedirects,\n ): Promise =>\n this.performRequest('/domains/redirects', 'PATCH', {}, domainRedirects).then(({ data }) => data);\n\n private readonly performRequest = async (url: string, method: Method = 'GET', query = {}, body = {}): Promise> => {\n try {\n return await this.axios({\n method,\n url: `${buildShlinkBaseUrl(this.baseUrl, this.apiVersion)}${url}`,\n headers: { 'X-Api-Key': this.apiKey },\n params: rejectNilProps(query),\n data: body,\n paramsSerializer: stringifyQuery,\n });\n } catch (e: any) {\n const { response } = e;\n\n // Due to a bug on all previous Shlink versions, requests to non-matching URLs will always result on a CORS error\n // when performed from the browser (due to the preflight request not returning a 2xx status.\n // See https://github.com/shlinkio/shlink/issues/614), which will make the \"response\" prop not to be set here.\n // The bug will be fixed on upcoming Shlink patches, but for other versions, we can consider this situation as\n // if a request has been performed to a not supported API version.\n const apiVersionIsNotSupported = !response;\n\n // When the request is not invalid or we have already tried both API versions, throw the error and let the\n // caller handle it\n if (!apiVersionIsNotSupported || this.apiVersion === 2) {\n throw e;\n }\n\n this.apiVersion = this.apiVersion - 1;\n\n return await this.performRequest(url, method, query, body);\n }\n };\n}\n","import { AxiosInstance } from 'axios';\nimport { prop } from 'ramda';\nimport { hasServerData, SelectedServer, ServerWithId } from '../../servers/data';\nimport { GetState } from '../../container/types';\nimport ShlinkApiClient from './ShlinkApiClient';\n\nconst apiClients: Record = {};\n\nconst isGetState = (getStateOrSelectedServer: GetState | ServerWithId): getStateOrSelectedServer is GetState =>\n typeof getStateOrSelectedServer === 'function';\nconst getSelectedServerFromState = (getState: GetState): SelectedServer => prop('selectedServer', getState());\n\nexport type ShlinkApiClientBuilder = (getStateOrSelectedServer: GetState | ServerWithId) => ShlinkApiClient;\n\nconst buildShlinkApiClient = (axios: AxiosInstance): ShlinkApiClientBuilder => (\n getStateOrSelectedServer: GetState | ServerWithId,\n) => {\n const server = isGetState(getStateOrSelectedServer)\n ? getSelectedServerFromState(getStateOrSelectedServer)\n : getStateOrSelectedServer;\n\n if (!hasServerData(server)) {\n throw new Error('There\\'s no selected server or it is not found');\n }\n\n const { url, apiKey } = server;\n const clientKey = `${url}_${apiKey}`;\n\n if (!apiClients[clientKey]) {\n apiClients[clientKey] = new ShlinkApiClient(axios, url, apiKey);\n }\n\n return apiClients[clientKey];\n};\n\nexport default buildShlinkApiClient;\n","import Bottle from 'bottlejs';\nimport buildShlinkApiClient from './ShlinkApiClientBuilder';\n\nconst provideServices = (bottle: Bottle) => {\n bottle.serviceFactory('buildShlinkApiClient', buildShlinkApiClient, 'axios');\n};\n\nexport default provideServices;\n","import { FC, MouseEventHandler } from 'react';\nimport ColorGenerator from '../../utils/services/ColorGenerator';\nimport './Tag.scss';\n\ninterface TagProps {\n colorGenerator: ColorGenerator;\n text: string;\n className?: string;\n clearable?: boolean;\n onClick?: MouseEventHandler;\n onClose?: MouseEventHandler;\n}\n\nconst Tag: FC = ({ text, children, clearable, className = '', colorGenerator, onClick, onClose }) => (\n \n {children ?? text}\n {clearable && ×}\n \n);\n\nexport default Tag;\n","import { FC } from 'react';\nimport { Dropdown, DropdownMenu, DropdownToggle } from 'reactstrap';\nimport { useToggle } from './helpers/hooks';\nimport './DropdownBtn.scss';\n\nexport interface DropdownBtnProps {\n text: string;\n disabled?: boolean;\n className?: string;\n dropdownClassName?: string;\n right?: boolean;\n minWidth?: number;\n}\n\nexport const DropdownBtn: FC = (\n { text, disabled = false, className = '', children, dropdownClassName, right = false, minWidth },\n) => {\n const [ isOpen, toggle ] = useToggle();\n const toggleClasses = `dropdown-btn__toggle btn-block ${className}`;\n const style = { minWidth: minWidth && `${minWidth}px` };\n\n return (\n \n {text}\n {children}\n \n );\n};\n","import { format, formatISO, isAfter, isBefore, isWithinInterval, parse, parseISO as stdParseISO } from 'date-fns';\nimport { OptionalString } from '../utils';\n\ntype DateOrString = Date | string;\ntype NullableDate = DateOrString | null;\n\nexport const isDateObject = (date: DateOrString): date is Date => typeof date !== 'string';\n\nconst formatDateFromFormat = (date?: NullableDate, theFormat?: string): OptionalString => {\n if (!date || !isDateObject(date)) {\n return date;\n }\n\n return theFormat ? format(date, theFormat) : formatISO(date);\n};\n\nexport const formatDate = (format = 'yyyy-MM-dd') => (date?: NullableDate) => formatDateFromFormat(date, format);\n\nexport const formatIsoDate = (date?: NullableDate) => formatDateFromFormat(date, undefined);\n\nexport const formatInternational = formatDate();\n\nexport const parseDate = (date: string, format: string) => parse(date, format, new Date());\n\nconst parseISO = (date: DateOrString): Date => isDateObject(date) ? date : stdParseISO(date);\n\nexport const isBetween = (date: DateOrString, start?: DateOrString, end?: DateOrString): boolean => {\n if (!start && end) {\n return isBefore(parseISO(date), parseISO(end));\n }\n\n if (start && !end) {\n return isAfter(parseISO(date), parseISO(start));\n }\n\n if (start && end) {\n return isWithinInterval(parseISO(date), { start: parseISO(start), end: parseISO(end) });\n }\n\n return true;\n};\n","import { subDays, startOfDay, endOfDay } from 'date-fns';\nimport { filter, isEmpty } from 'ramda';\nimport { formatInternational } from '../../helpers/date';\n\nexport interface DateRange {\n startDate?: Date | null;\n endDate?: Date | null;\n}\n\nexport type DateInterval = 'all' | 'today' | 'yesterday' | 'last7Days' | 'last30Days' | 'last90Days' | 'last180days' | 'last365Days';\n\nexport const dateRangeIsEmpty = (dateRange?: DateRange): boolean => dateRange === undefined\n || isEmpty(filter(Boolean, dateRange as any));\n\nexport const rangeIsInterval = (range?: DateRange | DateInterval): range is DateInterval =>\n typeof range === 'string';\n\nconst INTERVAL_TO_STRING_MAP: Record = {\n today: 'Today',\n yesterday: 'Yesterday',\n last7Days: 'Last 7 days',\n last30Days: 'Last 30 days',\n last90Days: 'Last 90 days',\n last180days: 'Last 180 days',\n last365Days: 'Last 365 days',\n all: undefined,\n};\n\nexport const DATE_INTERVALS = Object.keys(INTERVAL_TO_STRING_MAP).filter((value) => value !== 'all') as DateInterval[];\n\nconst dateRangeToString = (range?: DateRange): string | undefined => {\n if (!range || dateRangeIsEmpty(range)) {\n return undefined;\n }\n\n if (range.startDate && !range.endDate) {\n return `Since ${formatInternational(range.startDate)}`;\n }\n\n if (!range.startDate && range.endDate) {\n return `Until ${formatInternational(range.endDate)}`;\n }\n\n return `${formatInternational(range.startDate)} - ${formatInternational(range.endDate)}`;\n};\n\nexport const rangeOrIntervalToString = (range?: DateRange | DateInterval): string | undefined => {\n if (!range || range === 'all') {\n return undefined;\n }\n\n if (!rangeIsInterval(range)) {\n return dateRangeToString(range);\n }\n\n return INTERVAL_TO_STRING_MAP[range];\n};\n\nconst startOfDaysAgo = (daysAgo: number) => startOfDay(subDays(new Date(), daysAgo));\nconst endingToday = (startDate: Date): DateRange => ({ startDate, endDate: endOfDay(new Date()) });\n\nexport const intervalToDateRange = (dateInterval?: DateInterval): DateRange => {\n if (!dateInterval || dateInterval === 'all') {\n return {};\n }\n\n switch (dateInterval) {\n case 'today':\n return endingToday(startOfDay(new Date()));\n case 'yesterday':\n return { startDate: startOfDaysAgo(1), endDate: endOfDay(subDays(new Date(), 1)) };\n case 'last7Days':\n return endingToday(startOfDaysAgo(7));\n case 'last30Days':\n return endingToday(startOfDaysAgo(30));\n case 'last90Days':\n return endingToday(startOfDaysAgo(90));\n case 'last180days':\n return endingToday(startOfDaysAgo(180));\n case 'last365Days':\n return endingToday(startOfDaysAgo(365));\n }\n\n return {};\n};\n","import { useRef } from 'react';\nimport { isNil } from 'ramda';\nimport DatePicker, { ReactDatePickerProps } from 'react-datepicker';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendarAlt as calendarIcon } from '@fortawesome/free-regular-svg-icons';\nimport classNames from 'classnames';\nimport './DateInput.scss';\n\nexport type DateInputProps = ReactDatePickerProps;\n\nconst DateInput = (props: DateInputProps) => {\n const { className, isClearable, selected } = props;\n const showCalendarIcon = !isClearable || isNil(selected);\n const ref = useRef<{ input: HTMLInputElement }>();\n\n return (\n
\n \n {showCalendarIcon && (\n ref.current?.input.focus()}\n />\n )}\n
\n );\n};\n\nexport default DateInput;\n","import DateInput from '../DateInput';\nimport { DateRange } from './types';\n\ninterface DateRangeRowProps extends DateRange {\n onStartDateChange: (date: Date | null) => void;\n onEndDateChange: (date: Date | null) => void;\n disabled?: boolean;\n}\n\nconst DateRangeRow = (\n { startDate = null, endDate = null, disabled = false, onStartDateChange, onEndDateChange }: DateRangeRowProps,\n) => (\n
\n
\n \n
\n
\n \n
\n
\n);\n\nexport default DateRangeRow;\n","import { DropdownItem } from 'reactstrap';\nimport { FC } from 'react';\nimport { DATE_INTERVALS, DateInterval, rangeOrIntervalToString } from './types';\n\nexport interface DateIntervalDropdownProps {\n active?: DateInterval;\n allText: string;\n onChange: (interval: DateInterval) => void;\n}\n\nexport const DateIntervalDropdownItems: FC = ({ active, allText, onChange }) => (\n <>\n onChange('all')}>\n {allText}\n \n \n {DATE_INTERVALS.map(\n (interval) => (\n onChange(interval)}>\n {rangeOrIntervalToString(interval)}\n \n ),\n )}\n \n);\n","import { useState } from 'react';\nimport { DropdownItem } from 'reactstrap';\nimport { DropdownBtn } from '../DropdownBtn';\nimport {\n DateInterval,\n DateRange,\n rangeOrIntervalToString,\n intervalToDateRange,\n rangeIsInterval,\n dateRangeIsEmpty,\n} from './types';\nimport DateRangeRow from './DateRangeRow';\nimport { DateIntervalDropdownItems } from './DateIntervalDropdownItems';\n\nexport interface DateRangeSelectorProps {\n initialDateRange?: DateInterval | DateRange;\n disabled?: boolean;\n onDatesChange: (dateRange: DateRange) => void;\n defaultText: string;\n}\n\nexport const DateRangeSelector = (\n { onDatesChange, initialDateRange, defaultText, disabled }: DateRangeSelectorProps,\n) => {\n const initialIntervalIsRange = rangeIsInterval(initialDateRange);\n const [ activeInterval, setActiveInterval ] = useState(initialIntervalIsRange ? initialDateRange : undefined);\n const [ activeDateRange, setActiveDateRange ] = useState(initialIntervalIsRange ? undefined : initialDateRange);\n\n const updateDateRange = (dateRange: DateRange) => {\n setActiveInterval(dateRangeIsEmpty(dateRange) ? 'all' : undefined);\n setActiveDateRange(dateRange);\n onDatesChange(dateRange);\n };\n const updateInterval = (dateInterval: DateInterval) => {\n setActiveInterval(dateInterval);\n setActiveDateRange(undefined);\n onDatesChange(intervalToDateRange(dateInterval));\n };\n\n return (\n \n \n \n Custom:\n \n updateDateRange({ ...activeDateRange, startDate })}\n onEndDateChange={(endDate) => updateDateRange({ ...activeDateRange, endDate })}\n />\n \n \n );\n};\n","import { RouteChildrenProps } from 'react-router-dom';\nimport { useMemo } from 'react';\nimport { isEmpty } from 'ramda';\nimport { parseQuery, stringifyQuery } from '../../utils/helpers/query';\n\ntype ServerIdRouteProps = RouteChildrenProps<{ serverId: string }>;\ntype ToFirstPage = (extra: Partial) => void;\n\nexport interface ShortUrlListRouteParams {\n page: string;\n serverId: string;\n}\n\ninterface ShortUrlsQuery {\n tags?: string;\n search?: string;\n startDate?: string;\n endDate?: string;\n}\n\nexport const useShortUrlsQuery = ({ history, location, match }: ServerIdRouteProps): [ShortUrlsQuery, ToFirstPage] => {\n const query = useMemo(() => parseQuery(location.search), [ location ]);\n const toFirstPageWithExtra = (extra: Partial) => {\n const evolvedQuery = stringifyQuery({ ...query, ...extra });\n const queryString = isEmpty(evolvedQuery) ? '' : `?${evolvedQuery}`;\n\n history.push(`/server/${match?.params.serverId}/list-short-urls/1${queryString}`);\n };\n\n return [ query, toFirstPageWithExtra ];\n};\n","import { faTags as tagsIcon } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { isEmpty, pipe } from 'ramda';\nimport { parseISO } from 'date-fns';\nimport { RouteChildrenProps } from 'react-router-dom';\nimport SearchField from '../utils/SearchField';\nimport Tag from '../tags/helpers/Tag';\nimport { DateRangeSelector } from '../utils/dates/DateRangeSelector';\nimport { formatIsoDate } from '../utils/helpers/date';\nimport ColorGenerator from '../utils/services/ColorGenerator';\nimport { DateRange } from '../utils/dates/types';\nimport { ShortUrlsListParams } from './reducers/shortUrlsListParams';\nimport { ShortUrlListRouteParams, useShortUrlsQuery } from './helpers/hooks';\nimport './SearchBar.scss';\n\nexport interface SearchBarProps extends RouteChildrenProps {\n shortUrlsListParams: ShortUrlsListParams;\n}\n\nconst dateOrNull = (date?: string) => date ? parseISO(date) : null;\n\nconst SearchBar = (colorGenerator: ColorGenerator) => ({ shortUrlsListParams, ...rest }: SearchBarProps) => {\n const [{ search, tags, startDate, endDate }, toFirstPage ] = useShortUrlsQuery(rest);\n const selectedTags = tags?.split(',') ?? [];\n const setDates = pipe(\n ({ startDate, endDate }: DateRange) => ({\n startDate: formatIsoDate(startDate) ?? undefined,\n endDate: formatIsoDate(endDate) ?? undefined,\n }),\n toFirstPage,\n );\n const setSearch = pipe(\n (searchTerm: string) => isEmpty(searchTerm) ? undefined : searchTerm,\n (search) => toFirstPage({ search }),\n );\n const removeTag = pipe(\n (tag: string) => selectedTags.filter((selectedTag) => selectedTag !== tag),\n (tagsList) => tagsList.length === 0 ? undefined : tagsList.join(','),\n (tags) => toFirstPage({ tags }),\n );\n\n return (\n
\n \n\n
\n
\n
\n \n
\n
\n
\n\n {selectedTags.length > 0 && (\n

\n \n  \n {selectedTags.map((tag) =>\n removeTag(tag)} />)}\n

\n )}\n
\n );\n};\n\nexport default SearchBar;\n","export type OrderDir = 'ASC' | 'DESC' | undefined;\n\nexport interface Order {\n field?: Fields;\n dir?: OrderDir;\n}\n\nexport const determineOrderDir = (\n currentField: T,\n newField?: T,\n currentOrderDir?: OrderDir,\n): OrderDir => {\n if (currentField !== newField) {\n return 'ASC';\n }\n\n const newOrderMap: Record<'ASC' | 'DESC', OrderDir> = {\n ASC: 'DESC',\n DESC: undefined,\n };\n\n return currentOrderDir ? newOrderMap[currentOrderDir] : 'ASC';\n};\n\nexport const sortList = (list: List[], { field, dir }: Order>) => !field || !dir\n ? list\n : list.sort((a, b) => {\n const greaterThan = dir === 'ASC' ? 1 : -1;\n const smallerThan = dir === 'ASC' ? -1 : 1;\n\n return a[field] > b[field] ? greaterThan : smallerThan;\n });\n","import { UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\nimport { toPairs } from 'ramda';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSortAmountUp as sortAscIcon, faSortAmountDown as sortDescIcon } from '@fortawesome/free-solid-svg-icons';\nimport classNames from 'classnames';\nimport { determineOrderDir, Order, OrderDir } from './helpers/ordering';\nimport './SortingDropdown.scss';\n\nexport interface SortingDropdownProps {\n items: Record;\n order: Order;\n onChange: (orderField?: T, orderDir?: OrderDir) => void;\n isButton?: boolean;\n right?: boolean;\n}\n\nexport default function SortingDropdown(\n { items, order, onChange, isButton = true, right = false }: SortingDropdownProps,\n) {\n const handleItemClick = (fieldKey: T) => () => {\n const newOrderDir = determineOrderDir(fieldKey, order.field, order.dir);\n\n onChange(newOrderDir ? fieldKey : undefined, newOrderDir);\n };\n\n return (\n \n \n {!isButton && <>Order by}\n {isButton && !order.field && <>Order by...}\n {isButton && order.field && `Order by: \"${items[order.field]}\" - \"${order.dir ?? 'DESC'}\"`}\n \n \n {toPairs(items).map(([ fieldKey, fieldValue ]) => (\n \n {fieldValue}\n {order.field === fieldKey && (\n \n )}\n \n ))}\n \n onChange()}>\n Clear selection\n \n \n \n );\n}\n","import { FC, useEffect } from 'react';\nimport { pipe } from 'ramda';\nimport { CreateVisit } from '../../visits/types';\nimport { MercureInfo } from '../reducers/mercureInfo';\nimport { bindToMercureTopic } from './index';\n\nexport interface MercureBoundProps {\n createNewVisits: (createdVisits: CreateVisit[]) => void;\n loadMercureInfo: () => void;\n mercureInfo: MercureInfo;\n}\n\nexport function boundToMercureHub(\n WrappedComponent: FC,\n getTopicsForProps: (props: T) => string[],\n) {\n const pendingUpdates = new Set();\n\n return (props: MercureBoundProps & T) => {\n const { createNewVisits, loadMercureInfo, mercureInfo } = props;\n const { interval } = mercureInfo;\n\n useEffect(() => {\n const onMessage = (visit: CreateVisit) => interval ? pendingUpdates.add(visit) : createNewVisits([ visit ]);\n const closeEventSource = bindToMercureTopic(mercureInfo, getTopicsForProps(props), onMessage, loadMercureInfo);\n\n if (!interval) {\n return closeEventSource;\n }\n\n const timer = setInterval(() => {\n createNewVisits([ ...pendingUpdates ]);\n pendingUpdates.clear();\n }, interval * 1000 * 60);\n\n return pipe(() => clearInterval(timer), () => closeEventSource?.());\n }, [ mercureInfo ]);\n\n return ;\n };\n}\n","import { EventSourcePolyfill as EventSource } from 'event-source-polyfill';\nimport { MercureInfo } from '../reducers/mercureInfo';\n\nexport const bindToMercureTopic = (mercureInfo: MercureInfo, topics: string[], onMessage: (message: T) => void, onTokenExpired: () => void) => { // eslint-disable-line max-len\n const { mercureHubUrl, token, loading, error } = mercureInfo;\n\n if (loading || error || !mercureHubUrl) {\n return undefined;\n }\n\n const onEventSourceMessage = ({ data }: { data: string }) => onMessage(JSON.parse(data) as T);\n const onEventSourceError = ({ status }: { status: number }) => status === 401 && onTokenExpired();\n\n const subscriptions = topics.map((topic) => {\n const hubUrl = new URL(mercureHubUrl);\n\n hubUrl.searchParams.append('topic', topic);\n const es = new EventSource(hubUrl, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n es.onmessage = onEventSourceMessage;\n es.onerror = onEventSourceError;\n\n return es;\n });\n\n return () => subscriptions.forEach((es) => es.close());\n};\n","export class Topics {\n public static readonly visits = 'https://shlink.io/new-visit';\n\n public static readonly orphanVisits = 'https://shlink.io/new-orphan-visit';\n\n public static readonly shortUrlVisits = (shortCode: string) => `https://shlink.io/new-visit/${shortCode}`;\n}\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCaretDown as caretDownIcon, faCaretUp as caretUpIcon } from '@fortawesome/free-solid-svg-icons';\nimport { Order } from '../helpers/ordering';\n\ninterface TableOrderIconProps {\n currentOrder: Order;\n field: T;\n className?: string;\n}\n\nexport function TableOrderIcon(\n { currentOrder, field, className = 'ml-1' }: TableOrderIconProps,\n) {\n if (!currentOrder.dir || currentOrder.field !== field) {\n return null;\n }\n\n return ;\n}\n","import { Action } from 'redux';\n\ntype ActionHandler = (currentState: State, action: AT) => State;\ntype ActionHandlerMap = Record>;\n\nexport const buildReducer = (map: ActionHandlerMap, initialState: State) => (\n state: State | undefined,\n action: AT,\n): State => {\n const { type } = action;\n const actionHandler = map[type];\n const currentState = state ?? initialState;\n\n return actionHandler ? actionHandler(currentState, action) : currentState;\n};\n\nexport const buildActionCreator = (type: T) => (): Action => ({ type });\n","import { isEmpty, propEq, values } from 'ramda';\nimport { useState, useEffect, useMemo, FC } from 'react';\nimport { Button, Card, Nav, NavLink, Progress, Row } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendarAlt, faMapMarkedAlt, faList, faChartPie, faFileDownload } from '@fortawesome/free-solid-svg-icons';\nimport { IconDefinition } from '@fortawesome/fontawesome-common-types';\nimport { Route, Switch, NavLink as RouterNavLink, Redirect } from 'react-router-dom';\nimport { Location } from 'history';\nimport classNames from 'classnames';\nimport { DateRangeSelector } from '../utils/dates/DateRangeSelector';\nimport Message from '../utils/Message';\nimport { DateInterval, DateRange, intervalToDateRange } from '../utils/dates/types';\nimport { Result } from '../utils/Result';\nimport { ShlinkApiError } from '../api/ShlinkApiError';\nimport { Settings } from '../settings/reducers/settings';\nimport { SelectedServer } from '../servers/data';\nimport { supportsBotVisits } from '../utils/helpers/features';\nimport { prettify } from '../utils/helpers/numbers';\nimport LineChartCard from './charts/LineChartCard';\nimport VisitsTable from './VisitsTable';\nimport { NormalizedOrphanVisit, NormalizedVisit, VisitsFilter, VisitsInfo, VisitsParams } from './types';\nimport OpenMapModalBtn from './helpers/OpenMapModalBtn';\nimport { normalizeVisits, processStatsFromVisits } from './services/VisitsParser';\nimport { VisitsFilterDropdown } from './helpers/VisitsFilterDropdown';\nimport { HighlightableProps, highlightedVisitsToStats } from './types/helpers';\nimport { DoughnutChartCard } from './charts/DoughnutChartCard';\nimport { SortableBarChartCard } from './charts/SortableBarChartCard';\nimport './VisitsStats.scss';\n\nexport interface VisitsStatsProps {\n getVisits: (params: VisitsParams) => void;\n visitsInfo: VisitsInfo;\n settings: Settings;\n selectedServer: SelectedServer;\n cancelGetVisits: () => void;\n baseUrl: string;\n domain?: string;\n exportCsv: (visits: NormalizedVisit[]) => void;\n isOrphanVisits?: boolean;\n}\n\ninterface VisitsNavLinkProps {\n title: string;\n subPath: string;\n icon: IconDefinition;\n}\n\ntype Section = 'byTime' | 'byContext' | 'byLocation' | 'list';\n\nconst sections: Record = {\n byTime: { title: 'By time', subPath: '', icon: faCalendarAlt },\n byContext: { title: 'By context', subPath: '/by-context', icon: faChartPie },\n byLocation: { title: 'By location', subPath: '/by-location', icon: faMapMarkedAlt },\n list: { title: 'List', subPath: '/list', icon: faList },\n};\n\nlet selectedBar: string | undefined;\n\nconst VisitsNavLink: FC = ({ subPath, title, icon, to }) => (\n pathname.endsWith(`visits${subPath}`)}\n replace\n >\n \n {title}\n \n);\n\nconst VisitsStats: FC = ({\n children,\n visitsInfo,\n getVisits,\n cancelGetVisits,\n baseUrl,\n domain,\n settings,\n exportCsv,\n selectedServer,\n isOrphanVisits = false,\n}) => {\n const initialInterval: DateInterval = settings.visits?.defaultInterval ?? 'last30Days';\n const [ dateRange, setDateRange ] = useState(intervalToDateRange(initialInterval));\n const [ highlightedVisits, setHighlightedVisits ] = useState([]);\n const [ highlightedLabel, setHighlightedLabel ] = useState();\n const [ visitsFilter, setVisitsFilter ] = useState({});\n const botsSupported = supportsBotVisits(selectedServer);\n\n const buildSectionUrl = (subPath?: string) => {\n const query = domain ? `?domain=${domain}` : '';\n\n return !subPath ? `${baseUrl}${query}` : `${baseUrl}${subPath}${query}`;\n };\n const { visits, loading, loadingLarge, error, errorData, progress } = visitsInfo;\n const normalizedVisits = useMemo(() => normalizeVisits(visits), [ visits ]);\n const { os, browsers, referrers, countries, cities, citiesForMap, visitedUrls } = useMemo(\n () => processStatsFromVisits(normalizedVisits),\n [ normalizedVisits ],\n );\n const mapLocations = values(citiesForMap);\n\n const setSelectedVisits = (selectedVisits: NormalizedVisit[]) => {\n selectedBar = undefined;\n setHighlightedVisits(selectedVisits);\n };\n const highlightVisitsForProp = (prop: HighlightableProps) => (value: string) => {\n const newSelectedBar = `${prop}_${value}`;\n\n if (selectedBar === newSelectedBar) {\n setHighlightedVisits([]);\n setHighlightedLabel(undefined);\n selectedBar = undefined;\n } else {\n setHighlightedVisits((normalizedVisits as NormalizedOrphanVisit[]).filter(propEq(prop, value)));\n setHighlightedLabel(value);\n selectedBar = newSelectedBar;\n }\n };\n\n useEffect(() => cancelGetVisits, []);\n useEffect(() => {\n getVisits({ dateRange, filter: visitsFilter });\n }, [ dateRange, visitsFilter ]);\n\n const renderVisitsContent = () => {\n if (loadingLarge) {\n return (\n \n This is going to take a while... :S\n \n \n );\n }\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return (\n \n \n \n );\n }\n\n if (isEmpty(visits)) {\n return There are no visits matching current filter :(;\n }\n\n return (\n <>\n \n \n \n \n \n \n
\n \n
\n
\n\n \n
\n \n
\n
\n \n
\n
\n \n
\n {isOrphanVisits && (\n
\n \n
\n )}\n
\n\n \n
\n \n
\n
\n \n mapLocations.length > 0 &&\n \n }\n sortingItems={{\n name: 'City name',\n amount: 'Visits amount',\n }}\n onClick={highlightVisitsForProp('city')}\n />\n
\n
\n\n \n
\n \n
\n
\n\n \n
\n
\n \n );\n };\n\n return (\n <>\n {children}\n\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n {visits.length > 0 && (\n
\n
\n setSelectedVisits([])}\n >\n Clear selection {highlightedVisits.length > 0 && <>({prettify(highlightedVisits.length)})}\n \n exportCsv(normalizedVisits)}\n >\n Export ({prettify(normalizedVisits.length)})\n \n
\n
\n )}\n
\n
\n\n
\n {renderVisitsContent()}\n
\n \n );\n};\n\nexport default VisitsStats;\n","import { isNil } from 'ramda';\nimport { ShortUrl } from '../data';\nimport { OptionalString } from '../../utils/utils';\n\nexport const shortUrlMatches = (shortUrl: ShortUrl, shortCode: string, domain: OptionalString): boolean => {\n if (isNil(domain)) {\n return shortUrl.shortCode === shortCode && !shortUrl.domain;\n }\n\n return shortUrl.shortCode === shortCode && shortUrl.domain === domain;\n};\n","import { Action } from 'redux';\nimport { CreateVisit } from '../types';\n\nexport const CREATE_VISITS = 'shlink/visitCreation/CREATE_VISITS';\n\nexport interface CreateVisitsAction extends Action {\n createdVisits: CreateVisit[];\n}\n\nexport const createNewVisits = (createdVisits: CreateVisit[]): CreateVisitsAction => ({\n type: CREATE_VISITS,\n createdVisits,\n});\n","import { AxiosError } from 'axios';\nimport { InvalidArgumentError, InvalidShortUrlDeletion, ProblemDetailsError } from '../types';\n\nexport const parseApiError = (e: AxiosError) => e.response?.data;\n\nexport const isInvalidArgumentError = (error?: ProblemDetailsError): error is InvalidArgumentError =>\n error?.type === 'INVALID_ARGUMENT';\n\nexport const isInvalidDeletionError = (error?: ProblemDetailsError): error is InvalidShortUrlDeletion =>\n error?.type === 'INVALID_SHORTCODE_DELETION';\n","import { Action, Dispatch } from 'redux';\nimport { buildActionCreator, buildReducer } from '../../utils/helpers/redux';\nimport { ProblemDetailsError } from '../../api/types';\nimport { GetState } from '../../container/types';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { parseApiError } from '../../api/utils';\nimport { ApiErrorAction } from '../../api/types/actions';\n\n/* eslint-disable padding-line-between-statements */\nexport const DELETE_SHORT_URL_START = 'shlink/deleteShortUrl/DELETE_SHORT_URL_START';\nexport const DELETE_SHORT_URL_ERROR = 'shlink/deleteShortUrl/DELETE_SHORT_URL_ERROR';\nexport const SHORT_URL_DELETED = 'shlink/deleteShortUrl/SHORT_URL_DELETED';\nexport const RESET_DELETE_SHORT_URL = 'shlink/deleteShortUrl/RESET_DELETE_SHORT_URL';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlDeletion {\n shortCode: string;\n loading: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface DeleteShortUrlAction extends Action {\n shortCode: string;\n domain?: string | null;\n}\n\nconst initialState: ShortUrlDeletion = {\n shortCode: '',\n loading: false,\n error: false,\n};\n\nexport default buildReducer({\n [DELETE_SHORT_URL_START]: (state) => ({ ...state, loading: true, error: false }),\n [DELETE_SHORT_URL_ERROR]: (state, { errorData }) => ({ ...state, errorData, loading: false, error: true }),\n [SHORT_URL_DELETED]: (state, { shortCode }) => ({ ...state, shortCode, loading: false, error: false }),\n [RESET_DELETE_SHORT_URL]: () => initialState,\n}, initialState);\n\nexport const deleteShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n shortCode: string,\n domain?: string | null,\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: DELETE_SHORT_URL_START });\n const { deleteShortUrl } = buildShlinkApiClient(getState);\n\n try {\n await deleteShortUrl(shortCode, domain);\n dispatch({ type: SHORT_URL_DELETED, shortCode, domain });\n } catch (e: any) {\n dispatch({ type: DELETE_SHORT_URL_ERROR, errorData: parseApiError(e) });\n\n throw e;\n }\n};\n\nexport const resetDeleteShortUrl = buildActionCreator(RESET_DELETE_SHORT_URL);\n","import { Action, Dispatch } from 'redux';\nimport { GetState } from '../../container/types';\nimport { ShortUrl, ShortUrlData } from '../data';\nimport { buildReducer, buildActionCreator } from '../../utils/helpers/redux';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ProblemDetailsError } from '../../api/types';\nimport { parseApiError } from '../../api/utils';\nimport { ApiErrorAction } from '../../api/types/actions';\n\n/* eslint-disable padding-line-between-statements */\nexport const CREATE_SHORT_URL_START = 'shlink/createShortUrl/CREATE_SHORT_URL_START';\nexport const CREATE_SHORT_URL_ERROR = 'shlink/createShortUrl/CREATE_SHORT_URL_ERROR';\nexport const CREATE_SHORT_URL = 'shlink/createShortUrl/CREATE_SHORT_URL';\nexport const RESET_CREATE_SHORT_URL = 'shlink/createShortUrl/RESET_CREATE_SHORT_URL';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlCreation {\n result: ShortUrl | null;\n saving: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface CreateShortUrlAction extends Action {\n result: ShortUrl;\n}\n\nconst initialState: ShortUrlCreation = {\n result: null,\n saving: false,\n error: false,\n};\n\nexport default buildReducer({\n [CREATE_SHORT_URL_START]: (state) => ({ ...state, saving: true, error: false }),\n [CREATE_SHORT_URL_ERROR]: (state, { errorData }) => ({ ...state, saving: false, error: true, errorData }),\n [CREATE_SHORT_URL]: (_, { result }) => ({ result, saving: false, error: false }),\n [RESET_CREATE_SHORT_URL]: () => initialState,\n}, initialState);\n\nexport const createShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (data: ShortUrlData) => async (\n dispatch: Dispatch,\n getState: GetState,\n) => {\n dispatch({ type: CREATE_SHORT_URL_START });\n const { createShortUrl } = buildShlinkApiClient(getState);\n\n try {\n const result = await createShortUrl(data);\n\n dispatch({ type: CREATE_SHORT_URL, result });\n } catch (e: any) {\n dispatch({ type: CREATE_SHORT_URL_ERROR, errorData: parseApiError(e) });\n\n throw e;\n }\n};\n\nexport const resetCreateShortUrl = buildActionCreator(RESET_CREATE_SHORT_URL);\n","import { Action, Dispatch } from 'redux';\nimport { buildReducer } from '../../utils/helpers/redux';\nimport { GetState } from '../../container/types';\nimport { OptionalString } from '../../utils/utils';\nimport { EditShortUrlData, ShortUrl } from '../data';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ProblemDetailsError } from '../../api/types';\nimport { parseApiError } from '../../api/utils';\nimport { supportsTagsInPatch } from '../../utils/helpers/features';\nimport { ApiErrorAction } from '../../api/types/actions';\n\n/* eslint-disable padding-line-between-statements */\nexport const EDIT_SHORT_URL_START = 'shlink/shortUrlEdition/EDIT_SHORT_URL_START';\nexport const EDIT_SHORT_URL_ERROR = 'shlink/shortUrlEdition/EDIT_SHORT_URL_ERROR';\nexport const SHORT_URL_EDITED = 'shlink/shortUrlEdition/SHORT_URL_EDITED';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlEdition {\n shortUrl?: ShortUrl;\n saving: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface ShortUrlEditedAction extends Action {\n shortUrl: ShortUrl;\n}\n\nconst initialState: ShortUrlEdition = {\n saving: false,\n error: false,\n};\n\nexport default buildReducer({\n [EDIT_SHORT_URL_START]: (state) => ({ ...state, saving: true, error: false }),\n [EDIT_SHORT_URL_ERROR]: (state, { errorData }) => ({ ...state, saving: false, error: true, errorData }),\n [SHORT_URL_EDITED]: (_, { shortUrl }) => ({ shortUrl, saving: false, error: false }),\n}, initialState);\n\nexport const editShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n shortCode: string,\n domain: OptionalString,\n data: EditShortUrlData,\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: EDIT_SHORT_URL_START });\n\n const { selectedServer } = getState();\n const sendTagsSeparately = !supportsTagsInPatch(selectedServer);\n const { updateShortUrl, updateShortUrlTags } = buildShlinkApiClient(getState);\n\n try {\n const [ shortUrl ] = await Promise.all([\n updateShortUrl(shortCode, domain, data as any), // FIXME Parse dates\n sendTagsSeparately && data.tags ? updateShortUrlTags(shortCode, domain, data.tags) : undefined,\n ]);\n\n dispatch({ shortUrl, type: SHORT_URL_EDITED });\n } catch (e: any) {\n dispatch({ type: EDIT_SHORT_URL_ERROR, errorData: parseApiError(e) });\n\n throw e;\n }\n};\n","import { assoc, assocPath, init, last, pipe, reject } from 'ramda';\nimport { Action, Dispatch } from 'redux';\nimport { shortUrlMatches } from '../helpers';\nimport { CREATE_VISITS, CreateVisitsAction } from '../../visits/reducers/visitCreation';\nimport { buildReducer } from '../../utils/helpers/redux';\nimport { GetState } from '../../container/types';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ShlinkShortUrlsResponse } from '../../api/types';\nimport { DeleteShortUrlAction, SHORT_URL_DELETED } from './shortUrlDeletion';\nimport { ShortUrlsListParams } from './shortUrlsListParams';\nimport { CREATE_SHORT_URL, CreateShortUrlAction } from './shortUrlCreation';\nimport { SHORT_URL_EDITED, ShortUrlEditedAction } from './shortUrlEdition';\n\n/* eslint-disable padding-line-between-statements */\nexport const LIST_SHORT_URLS_START = 'shlink/shortUrlsList/LIST_SHORT_URLS_START';\nexport const LIST_SHORT_URLS_ERROR = 'shlink/shortUrlsList/LIST_SHORT_URLS_ERROR';\nexport const LIST_SHORT_URLS = 'shlink/shortUrlsList/LIST_SHORT_URLS';\n/* eslint-enable padding-line-between-statements */\n\nexport interface ShortUrlsList {\n shortUrls?: ShlinkShortUrlsResponse;\n loading: boolean;\n error: boolean;\n}\n\nexport interface ListShortUrlsAction extends Action {\n shortUrls: ShlinkShortUrlsResponse;\n params: ShortUrlsListParams;\n}\n\nexport type ListShortUrlsCombinedAction = (\n ListShortUrlsAction\n & CreateVisitsAction\n & CreateShortUrlAction\n & DeleteShortUrlAction\n & ShortUrlEditedAction\n);\n\nconst initialState: ShortUrlsList = {\n loading: true,\n error: false,\n};\n\nexport default buildReducer({\n [LIST_SHORT_URLS_START]: (state) => ({ ...state, loading: true, error: false }),\n [LIST_SHORT_URLS_ERROR]: () => ({ loading: false, error: true }),\n [LIST_SHORT_URLS]: (_, { shortUrls }) => ({ loading: false, error: false, shortUrls }),\n [SHORT_URL_DELETED]: pipe(\n (state: ShortUrlsList, { shortCode, domain }: DeleteShortUrlAction) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'data' ],\n reject((shortUrl) => shortUrlMatches(shortUrl, shortCode, domain), state.shortUrls.data),\n state,\n ),\n (state) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'pagination', 'totalItems' ],\n state.shortUrls.pagination.totalItems - 1,\n state,\n ),\n ),\n [CREATE_VISITS]: (state, { createdVisits }) => assocPath(\n [ 'shortUrls', 'data' ],\n state.shortUrls?.data?.map(\n (currentShortUrl) => {\n // Find the last of the new visit for this short URL, and pick the amount of visits from it\n const lastVisit = last(\n createdVisits.filter(\n ({ shortUrl }) => shortUrl && shortUrlMatches(currentShortUrl, shortUrl.shortCode, shortUrl.domain),\n ),\n );\n\n return lastVisit?.shortUrl\n ? assoc('visitsCount', lastVisit.shortUrl.visitsCount, currentShortUrl)\n : currentShortUrl;\n },\n ),\n state,\n ),\n [CREATE_SHORT_URL]: pipe(\n // The only place where the list and the creation form coexist is the overview page.\n // There we can assume we are displaying page 1, and therefore, we can safely prepend the new short URL and remove the last one.\n (state: ShortUrlsList, { result }: CreateShortUrlAction) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'data' ],\n [ result, ...init(state.shortUrls.data) ],\n state,\n ),\n (state: ShortUrlsList) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'pagination', 'totalItems' ],\n state.shortUrls.pagination.totalItems + 1,\n state,\n ),\n ),\n [SHORT_URL_EDITED]: (state, { shortUrl: editedShortUrl }) => !state.shortUrls ? state : assocPath(\n [ 'shortUrls', 'data' ],\n state.shortUrls.data.map((shortUrl) => {\n const { shortCode, domain } = editedShortUrl;\n\n return shortUrlMatches(shortUrl, shortCode, domain) ? editedShortUrl : shortUrl;\n }),\n state,\n ),\n}, initialState);\n\nexport const listShortUrls = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n params: ShortUrlsListParams = {},\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: LIST_SHORT_URLS_START });\n const { listShortUrls } = buildShlinkApiClient(getState);\n\n try {\n const shortUrls = await listShortUrls(params);\n\n dispatch({ type: LIST_SHORT_URLS, shortUrls, params });\n } catch (e) {\n dispatch({ type: LIST_SHORT_URLS_ERROR, params });\n }\n};\n","import { buildActionCreator, buildReducer } from '../../utils/helpers/redux';\nimport { OrderDir } from '../../utils/helpers/ordering';\nimport { LIST_SHORT_URLS, ListShortUrlsAction } from './shortUrlsList';\n\nexport const RESET_SHORT_URL_PARAMS = 'shlink/shortUrlsListParams/RESET_SHORT_URL_PARAMS';\n\nexport const SORTABLE_FIELDS = {\n dateCreated: 'Created at',\n shortCode: 'Short URL',\n longUrl: 'Long URL',\n title: 'Title',\n visits: 'Visits',\n};\n\nexport type OrderableFields = keyof typeof SORTABLE_FIELDS;\n\nexport type OrderBy = Partial>;\n\nexport interface ShortUrlsListParams {\n page?: string;\n itemsPerPage?: number;\n tags?: string[];\n searchTerm?: string;\n startDate?: string;\n endDate?: string;\n orderBy?: OrderBy;\n}\n\nconst initialState: ShortUrlsListParams = {\n page: '1',\n orderBy: { dateCreated: 'DESC' },\n};\n\nexport default buildReducer({\n [LIST_SHORT_URLS]: (state, { params }) => ({ ...state, ...params }),\n [RESET_SHORT_URL_PARAMS]: () => initialState,\n}, initialState);\n\nexport const resetShortUrlParams = buildActionCreator(RESET_SHORT_URL_PARAMS);\n","const TEN_ROUNDING_NUMBER = 10;\nconst { ceil } = Math;\nconst formatter = new Intl.NumberFormat('en-US');\n\nexport const prettify = (number: number | string) => formatter.format(Number(number));\n\nexport const roundTen = (number: number) => ceil(number / TEN_ROUNDING_NUMBER) * TEN_ROUNDING_NUMBER;\n","import { max, min, range } from 'ramda';\nimport { prettify } from './numbers';\n\nconst DELTA = 2;\n\nexport const ELLIPSIS = '...';\n\ntype Ellipsis = typeof ELLIPSIS;\n\nexport type NumberOrEllipsis = number | Ellipsis;\n\nexport const progressivePagination = (currentPage: number, pageCount: number): NumberOrEllipsis[] => {\n const pages: NumberOrEllipsis[] = range(\n max(DELTA, currentPage - DELTA),\n min(pageCount - 1, currentPage + DELTA) + 1,\n );\n\n if (currentPage - DELTA > DELTA) {\n pages.unshift(ELLIPSIS);\n }\n if (currentPage + DELTA < pageCount - 1) {\n pages.push(ELLIPSIS);\n }\n\n pages.unshift(1);\n pages.push(pageCount);\n\n return pages;\n};\n\nexport const pageIsEllipsis = (pageNumber: NumberOrEllipsis): pageNumber is Ellipsis => pageNumber === ELLIPSIS;\n\nexport const prettifyPageNumber = (pageNumber: NumberOrEllipsis): string =>\n pageIsEllipsis(pageNumber) ? pageNumber : prettify(pageNumber);\n\nexport const keyForPage = (pageNumber: NumberOrEllipsis, index: number) => !pageIsEllipsis(pageNumber) ? `${pageNumber}` : `${pageNumber}_${index}`;\n","import { Link } from 'react-router-dom';\nimport { Pagination, PaginationItem, PaginationLink } from 'reactstrap';\nimport {\n pageIsEllipsis,\n keyForPage,\n progressivePagination,\n prettifyPageNumber,\n NumberOrEllipsis,\n} from '../utils/helpers/pagination';\nimport { ShlinkPaginator } from '../api/types';\n\ninterface PaginatorProps {\n paginator?: ShlinkPaginator;\n serverId: string;\n currentQueryString?: string;\n}\n\nconst Paginator = ({ paginator, serverId, currentQueryString = '' }: PaginatorProps) => {\n const { currentPage = 0, pagesCount = 0 } = paginator ?? {};\n const urlForPage = (pageNumber: NumberOrEllipsis) =>\n `/server/${serverId}/list-short-urls/${pageNumber}${currentQueryString}`;\n\n if (pagesCount <= 1) {\n return null;\n }\n\n const renderPages = () =>\n progressivePagination(currentPage, pagesCount).map((pageNumber, index) => (\n \n \n {prettifyPageNumber(pageNumber)}\n \n \n ));\n\n return (\n \n \n \n \n {renderPages()}\n = pagesCount}>\n \n \n \n );\n};\n\nexport default Paginator;\n","import { head, keys, pipe, values } from 'ramda';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { RouteComponentProps } from 'react-router';\nimport { Card } from 'reactstrap';\nimport SortingDropdown from '../utils/SortingDropdown';\nimport { determineOrderDir, Order, OrderDir } from '../utils/helpers/ordering';\nimport { getServerId, SelectedServer } from '../servers/data';\nimport { boundToMercureHub } from '../mercure/helpers/boundToMercureHub';\nimport { Topics } from '../mercure/helpers/Topics';\nimport { TableOrderIcon } from '../utils/table/TableOrderIcon';\nimport { ShortUrlsList as ShortUrlsListState } from './reducers/shortUrlsList';\nimport { OrderableFields, ShortUrlsListParams, SORTABLE_FIELDS } from './reducers/shortUrlsListParams';\nimport { ShortUrlsTableProps } from './ShortUrlsTable';\nimport Paginator from './Paginator';\nimport { ShortUrlListRouteParams, useShortUrlsQuery } from './helpers/hooks';\n\ninterface ShortUrlsListProps extends RouteComponentProps {\n selectedServer: SelectedServer;\n shortUrlsList: ShortUrlsListState;\n listShortUrls: (params: ShortUrlsListParams) => void;\n shortUrlsListParams: ShortUrlsListParams;\n resetShortUrlParams: () => void;\n}\n\ntype ShortUrlsOrder = Order;\n\nconst ShortUrlsList = (ShortUrlsTable: FC, SearchBar: FC) => boundToMercureHub(({\n listShortUrls,\n resetShortUrlParams,\n shortUrlsListParams,\n match,\n location,\n history,\n shortUrlsList,\n selectedServer,\n}: ShortUrlsListProps) => {\n const serverId = getServerId(selectedServer);\n const { orderBy } = shortUrlsListParams;\n const [ order, setOrder ] = useState({\n field: orderBy && (head(keys(orderBy)) as OrderableFields),\n dir: orderBy && head(values(orderBy)),\n });\n const [{ tags, search, startDate, endDate }, toFirstPage ] = useShortUrlsQuery({ history, match, location });\n const selectedTags = useMemo(() => tags?.split(',') ?? [], [ tags ]);\n const { pagination } = shortUrlsList?.shortUrls ?? {};\n\n const refreshList = (extraParams: ShortUrlsListParams) => listShortUrls({ ...shortUrlsListParams, ...extraParams });\n const handleOrderBy = (field?: OrderableFields, dir?: OrderDir) => {\n setOrder({ field, dir });\n refreshList({ orderBy: field ? { [field]: dir } : undefined });\n };\n const orderByColumn = (field: OrderableFields) => () =>\n handleOrderBy(field, determineOrderDir(field, order.field, order.dir));\n const renderOrderIcon = (field: OrderableFields) => ;\n const addTag = pipe(\n (newTag: string) => [ ...new Set([ ...selectedTags, newTag ]) ].join(','),\n (tags) => toFirstPage({ tags }),\n );\n\n useEffect(() => resetShortUrlParams, []);\n useEffect(() => {\n refreshList(\n { page: match.params.page, searchTerm: search, tags: selectedTags, itemsPerPage: undefined, startDate, endDate },\n );\n }, [ match.params.page, search, selectedTags, startDate, endDate ]);\n\n return (\n <>\n
\n
\n \n
\n \n \n \n \n \n );\n}, () => [ Topics.visits ]);\n\nexport default ShortUrlsList;\n","import { FC } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCopy as copyIcon } from '@fortawesome/free-regular-svg-icons';\nimport CopyToClipboard from 'react-copy-to-clipboard';\nimport './CopyToClipboardIcon.scss';\n\ninterface CopyToClipboardIconProps {\n text: string;\n onCopy?: (text: string, result: boolean) => void;\n}\n\nexport const CopyToClipboardIcon: FC = ({ text, onCopy }) => (\n \n \n \n);\n","import { parseISO, format as formatDate, getUnixTime, formatDistance } from 'date-fns';\nimport { isDateObject } from './helpers/date';\n\nexport interface DateProps {\n date: Date | string;\n format?: string;\n relative?: boolean;\n}\n\nexport const Time = ({ date, format = 'yyyy-MM-dd HH:mm', relative = false }: DateProps) => {\n const dateObject = isDateObject(date) ? date : parseISO(date);\n\n return (\n \n );\n};\n","import { FC } from 'react';\nimport { Link } from 'react-router-dom';\nimport { isServerWithId, SelectedServer, ServerWithId } from '../../servers/data';\nimport { ShortUrl } from '../data';\n\nexport type LinkSuffix = 'visits' | 'edit';\n\nexport interface ShortUrlDetailLinkProps {\n shortUrl?: ShortUrl | null;\n selectedServer?: SelectedServer;\n suffix: LinkSuffix;\n}\n\nconst buildUrl = ({ id }: ServerWithId, { shortCode, domain }: ShortUrl, suffix: LinkSuffix) => {\n const query = domain ? `?domain=${domain}` : '';\n\n return `/server/${id}/short-code/${shortCode}/${suffix}${query}`;\n};\n\nconst ShortUrlDetailLink: FC> = (\n { selectedServer, shortUrl, suffix, children, ...rest },\n) => {\n if (!selectedServer || !isServerWithId(selectedServer) || !shortUrl) {\n return {children};\n }\n\n return {children};\n};\n\nexport default ShortUrlDetailLink;\n","import { useRef } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faInfoCircle as infoIcon } from '@fortawesome/free-solid-svg-icons';\nimport { UncontrolledTooltip } from 'reactstrap';\nimport classNames from 'classnames';\nimport { prettify } from '../../utils/helpers/numbers';\nimport { ShortUrl } from '../data';\nimport { SelectedServer } from '../../servers/data';\nimport ShortUrlDetailLink from './ShortUrlDetailLink';\nimport './ShortUrlVisitsCount.scss';\n\ninterface ShortUrlVisitsCountProps {\n shortUrl?: ShortUrl | null;\n selectedServer?: SelectedServer;\n visitsCount: number;\n active?: boolean;\n}\n\nconst ShortUrlVisitsCount = ({ visitsCount, shortUrl, selectedServer, active = false }: ShortUrlVisitsCountProps) => {\n const maxVisits = shortUrl?.meta?.maxVisits;\n const visitsLink = (\n \n \n {prettify(visitsCount)}\n \n \n );\n\n if (!maxVisits) {\n return visitsLink;\n }\n\n const prettifiedMaxVisits = prettify(maxVisits);\n const tooltipRef = useRef();\n\n return (\n <>\n \n {visitsLink}\n {\n tooltipRef.current = el;\n }}\n >\n {' '}/ {prettifiedMaxVisits}{' '}\n \n \n \n \n \n tooltipRef.current) as any} placement=\"bottom\">\n This short URL will not accept more than {prettifiedMaxVisits} visits.\n \n \n );\n};\n\nexport default ShortUrlVisitsCount;\n","import { FC, useEffect, useRef } from 'react';\nimport { isEmpty } from 'ramda';\nimport { ExternalLink } from 'react-external-link';\nimport ColorGenerator from '../../utils/services/ColorGenerator';\nimport { StateFlagTimeout } from '../../utils/helpers/hooks';\nimport Tag from '../../tags/helpers/Tag';\nimport { SelectedServer } from '../../servers/data';\nimport { CopyToClipboardIcon } from '../../utils/CopyToClipboardIcon';\nimport { ShortUrl } from '../data';\nimport { Time } from '../../utils/Time';\nimport ShortUrlVisitsCount from './ShortUrlVisitsCount';\nimport { ShortUrlsRowMenuProps } from './ShortUrlsRowMenu';\nimport './ShortUrlsRow.scss';\n\nexport interface ShortUrlsRowProps {\n onTagClick?: (tag: string) => void;\n selectedServer: SelectedServer;\n shortUrl: ShortUrl;\n}\n\nconst ShortUrlsRow = (\n ShortUrlsRowMenu: FC,\n colorGenerator: ColorGenerator,\n useStateFlagTimeout: StateFlagTimeout,\n) => ({ shortUrl, selectedServer, onTagClick }: ShortUrlsRowProps) => {\n const [ copiedToClipboard, setCopiedToClipboard ] = useStateFlagTimeout();\n const [ active, setActive ] = useStateFlagTimeout(false, 500);\n const isFirstRun = useRef(true);\n\n const renderTags = (tags: string[]) => {\n if (isEmpty(tags)) {\n return No tags;\n }\n\n return tags.map((tag) => (\n onTagClick?.(tag)}\n />\n ));\n };\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n } else {\n setActive();\n }\n }, [ shortUrl.visitsCount ]);\n\n return (\n \n \n
\n \n \n {tagFilteringModeHint(shortUrlCreation.tagFilteringMode)}\n \n \n \n );\n};\n","import { FC } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSun, faMoon } from '@fortawesome/free-solid-svg-icons';\nimport { FormGroup } from 'reactstrap';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport ToggleSwitch from '../utils/ToggleSwitch';\nimport { changeThemeInMarkup, Theme } from '../utils/theme';\nimport { TagsModeDropdown } from '../tags/TagsModeDropdown';\nimport { capitalize } from '../utils/utils';\nimport { Settings, UiSettings } from './reducers/settings';\nimport './UserInterface.scss';\n\ninterface UserInterfaceProps {\n settings: Settings;\n setUiSettings: (settings: UiSettings) => void;\n}\n\nexport const UserInterface: FC = ({ settings: { ui }, setUiSettings }) => (\n \n \n \n {\n const theme: Theme = useDarkTheme ? 'dark' : 'light';\n\n setUiSettings({ ...ui, theme });\n changeThemeInMarkup(theme);\n }}\n >\n Use dark theme.\n \n \n \n \n capitalize(tagsMode)}\n onChange={(tagsMode) => setUiSettings({ ...ui ?? { theme: 'light' }, tagsMode })}\n />\n Tags will be displayed as {ui?.tagsMode ?? 'cards'}.\n \n \n);\n","import { FC } from 'react';\nimport { DropdownBtn } from '../DropdownBtn';\nimport { rangeOrIntervalToString } from './types';\nimport { DateIntervalDropdownItems, DateIntervalDropdownProps } from './DateIntervalDropdownItems';\n\nexport const DateIntervalSelector: FC = ({ onChange, active, allText }) => (\n \n \n \n);\n","import { FormGroup } from 'reactstrap';\nimport { FC } from 'react';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport { DateIntervalSelector } from '../utils/dates/DateIntervalSelector';\nimport { Settings, VisitsSettings } from './reducers/settings';\n\ninterface VisitsProps {\n settings: Settings;\n setVisitsSettings: (settings: VisitsSettings) => void;\n}\n\nexport const Visits: FC = ({ settings, setVisitsSettings }) => (\n \n \n \n setVisitsSettings({ defaultInterval })}\n />\n \n \n);\n","import Bottle from 'bottlejs';\nimport RealTimeUpdates from '../RealTimeUpdates';\nimport Settings from '../Settings';\nimport {\n setRealTimeUpdatesInterval,\n setShortUrlCreationSettings,\n setUiSettings,\n setVisitsSettings,\n toggleRealTimeUpdates,\n} from '../reducers/settings';\nimport { ConnectDecorator } from '../../container/types';\nimport { withoutSelectedServer } from '../../servers/helpers/withoutSelectedServer';\nimport { ShortUrlCreation } from '../ShortUrlCreation';\nimport { UserInterface } from '../UserInterface';\nimport { Visits } from '../Visits';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator) => {\n // Components\n bottle.serviceFactory('Settings', Settings, 'RealTimeUpdates', 'ShortUrlCreation', 'UserInterface', 'Visits');\n bottle.decorator('Settings', withoutSelectedServer);\n bottle.decorator('Settings', connect(null, [ 'resetSelectedServer' ]));\n\n bottle.serviceFactory('RealTimeUpdates', () => RealTimeUpdates);\n bottle.decorator(\n 'RealTimeUpdates',\n connect([ 'settings' ], [ 'toggleRealTimeUpdates', 'setRealTimeUpdatesInterval' ]),\n );\n\n bottle.serviceFactory('ShortUrlCreation', () => ShortUrlCreation);\n bottle.decorator('ShortUrlCreation', connect([ 'settings' ], [ 'setShortUrlCreationSettings' ]));\n\n bottle.serviceFactory('UserInterface', () => UserInterface);\n bottle.decorator('UserInterface', connect([ 'settings' ], [ 'setUiSettings' ]));\n\n bottle.serviceFactory('Visits', () => Visits);\n bottle.decorator('Visits', connect([ 'settings' ], [ 'setVisitsSettings' ]));\n\n // Actions\n bottle.serviceFactory('toggleRealTimeUpdates', () => toggleRealTimeUpdates);\n bottle.serviceFactory('setRealTimeUpdatesInterval', () => setRealTimeUpdatesInterval);\n bottle.serviceFactory('setShortUrlCreationSettings', () => setShortUrlCreationSettings);\n bottle.serviceFactory('setUiSettings', () => setUiSettings);\n bottle.serviceFactory('setVisitsSettings', () => setVisitsSettings);\n};\n\nexport default provideServices;\n","import { Action, Dispatch } from 'redux';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { ShlinkDomainRedirects } from '../../api/types';\nimport { GetState } from '../../container/types';\nimport { ApiErrorAction } from '../../api/types/actions';\nimport { parseApiError } from '../../api/utils';\n\n/* eslint-disable padding-line-between-statements */\nexport const EDIT_DOMAIN_REDIRECTS_START = 'shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_START';\nexport const EDIT_DOMAIN_REDIRECTS_ERROR = 'shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS_ERROR';\nexport const EDIT_DOMAIN_REDIRECTS = 'shlink/domainRedirects/EDIT_DOMAIN_REDIRECTS';\n/* eslint-enable padding-line-between-statements */\n\nexport interface EditDomainRedirectsAction extends Action {\n domain: string;\n redirects: ShlinkDomainRedirects;\n}\n\nexport const editDomainRedirects = (buildShlinkApiClient: ShlinkApiClientBuilder) => (\n domain: string,\n domainRedirects: Partial,\n) => async (dispatch: Dispatch, getState: GetState) => {\n dispatch({ type: EDIT_DOMAIN_REDIRECTS_START });\n const { editDomainRedirects } = buildShlinkApiClient(getState);\n\n try {\n const redirects = await editDomainRedirects({ domain, ...domainRedirects });\n\n dispatch({ type: EDIT_DOMAIN_REDIRECTS, domain, redirects });\n } catch (e: any) {\n dispatch({ type: EDIT_DOMAIN_REDIRECTS_ERROR, errorData: parseApiError(e) });\n }\n};\n","import { Action, Dispatch } from 'redux';\nimport { ProblemDetailsError, ShlinkDomain, ShlinkDomainRedirects } from '../../api/types';\nimport { buildReducer } from '../../utils/helpers/redux';\nimport { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';\nimport { GetState } from '../../container/types';\nimport { parseApiError } from '../../api/utils';\nimport { ApiErrorAction } from '../../api/types/actions';\nimport { EDIT_DOMAIN_REDIRECTS, EditDomainRedirectsAction } from './domainRedirects';\n\n/* eslint-disable padding-line-between-statements */\nexport const LIST_DOMAINS_START = 'shlink/domainsList/LIST_DOMAINS_START';\nexport const LIST_DOMAINS_ERROR = 'shlink/domainsList/LIST_DOMAINS_ERROR';\nexport const LIST_DOMAINS = 'shlink/domainsList/LIST_DOMAINS';\nexport const FILTER_DOMAINS = 'shlink/domainsList/FILTER_DOMAINS';\n/* eslint-enable padding-line-between-statements */\n\nexport interface DomainsList {\n domains: ShlinkDomain[];\n filteredDomains: ShlinkDomain[];\n loading: boolean;\n error: boolean;\n errorData?: ProblemDetailsError;\n}\n\nexport interface ListDomainsAction extends Action {\n domains: ShlinkDomain[];\n}\n\ninterface FilterDomainsAction extends Action {\n searchTerm: string;\n}\n\nconst initialState: DomainsList = {\n domains: [],\n filteredDomains: [],\n loading: false,\n error: false,\n};\n\nexport type DomainsCombinedAction = ListDomainsAction\n& ApiErrorAction\n& FilterDomainsAction\n& EditDomainRedirectsAction;\n\nexport const replaceRedirectsOnDomain = (domain: string, redirects: ShlinkDomainRedirects) =>\n (d: ShlinkDomain): ShlinkDomain => d.domain !== domain ? d : { ...d, redirects };\n\nexport default buildReducer({\n [LIST_DOMAINS_START]: () => ({ ...initialState, loading: true }),\n [LIST_DOMAINS_ERROR]: ({ errorData }) => ({ ...initialState, error: true, errorData }),\n [LIST_DOMAINS]: (_, { domains }) => ({ ...initialState, domains, filteredDomains: domains }),\n [FILTER_DOMAINS]: (state, { searchTerm }) => ({\n ...state,\n filteredDomains: state.domains.filter(({ domain }) => domain.toLowerCase().match(searchTerm)),\n }),\n [EDIT_DOMAIN_REDIRECTS]: (state, { domain, redirects }) => ({\n ...state,\n domains: state.domains.map(replaceRedirectsOnDomain(domain, redirects)),\n filteredDomains: state.filteredDomains.map(replaceRedirectsOnDomain(domain, redirects)),\n }),\n}, initialState);\n\nexport const listDomains = (buildShlinkApiClient: ShlinkApiClientBuilder) => () => async (\n dispatch: Dispatch,\n getState: GetState,\n) => {\n dispatch({ type: LIST_DOMAINS_START });\n const { listDomains } = buildShlinkApiClient(getState);\n\n try {\n const domains = await listDomains();\n\n dispatch({ type: LIST_DOMAINS, domains });\n } catch (e: any) {\n dispatch({ type: LIST_DOMAINS_ERROR, errorData: parseApiError(e) });\n }\n};\n\nexport const filterDomains = (searchTerm: string): FilterDomainsAction => ({ type: FILTER_DOMAINS, searchTerm });\n","import { useEffect } from 'react';\nimport { Button, DropdownItem, Input, InputGroup, InputGroupAddon, UncontrolledTooltip } from 'reactstrap';\nimport { InputProps } from 'reactstrap/lib/Input';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUndo } from '@fortawesome/free-solid-svg-icons';\nimport { isEmpty, pipe } from 'ramda';\nimport { DropdownBtn } from '../utils/DropdownBtn';\nimport { useToggle } from '../utils/helpers/hooks';\nimport { DomainsList } from './reducers/domainsList';\nimport './DomainSelector.scss';\n\nexport interface DomainSelectorProps extends Omit {\n value?: string;\n onChange: (domain: string) => void;\n}\n\ninterface DomainSelectorConnectProps extends DomainSelectorProps {\n listDomains: Function;\n domainsList: DomainsList;\n}\n\nexport const DomainSelector = ({ listDomains, value, domainsList, onChange }: DomainSelectorConnectProps) => {\n const [ inputDisplayed,, showInput, hideInput ] = useToggle();\n const { domains } = domainsList;\n const valueIsEmpty = isEmpty(value);\n const unselectDomain = () => onChange('');\n\n useEffect(() => {\n listDomains();\n }, []);\n\n return inputDisplayed ? (\n \n onChange(e.target.value)}\n />\n \n \n \n \n \n Existing domains\n \n \n \n ) : (\n \n {domains.map(({ domain, isDefault }) => (\n onChange(domain)}\n >\n {domain}\n {isDefault && default}\n
\n ))}\n \n \n New domain\n \n \n );\n};\n","import { FC, useState } from 'react';\nimport { Button, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';\nimport { ShlinkDomain, ShlinkDomainRedirects } from '../../api/types';\nimport { FormGroupContainer, FormGroupContainerProps } from '../../utils/FormGroupContainer';\nimport { handleEventPreventingDefault, nonEmptyValueOrNull } from '../../utils/utils';\nimport { InfoTooltip } from '../../utils/InfoTooltip';\n\ninterface EditDomainRedirectsModalProps {\n domain: ShlinkDomain;\n isOpen: boolean;\n toggle: () => void;\n editDomainRedirects: (domain: string, redirects: Partial) => Promise;\n}\n\nconst FormGroup: FC = ({ isLast, ...rest }) => (\n \n);\n\nexport const EditDomainRedirectsModal: FC = (\n { isOpen, toggle, domain, editDomainRedirects },\n) => {\n const [ baseUrlRedirect, setBaseUrlRedirect ] = useState(domain.redirects?.baseUrlRedirect ?? '');\n const [ regular404Redirect, setRegular404Redirect ] = useState(domain.redirects?.regular404Redirect ?? '');\n const [ invalidShortUrlRedirect, setInvalidShortUrlRedirect ] = useState(\n domain.redirects?.invalidShortUrlRedirect ?? '',\n );\n const handleSubmit = handleEventPreventingDefault(async () => editDomainRedirects(domain.domain, {\n baseUrlRedirect: nonEmptyValueOrNull(baseUrlRedirect),\n regular404Redirect: nonEmptyValueOrNull(regular404Redirect),\n invalidShortUrlRedirect: nonEmptyValueOrNull(invalidShortUrlRedirect),\n }).then(toggle));\n\n return (\n \n
\n Edit redirects for {domain.domain}\n \n \n \n Visitors accessing the base url, as in https://{domain.domain}/, will be redirected to this URL.\n \n Base URL\n \n \n \n Visitors accessing a url not matching a short URL pattern, as in https://{domain.domain}/???/[...],\n will be redirected to this URL.\n \n Regular 404\n \n \n \n Visitors accessing a url matching a short URL pattern, but not matching an existing short code, will be\n redirected to this URL.\n \n Invalid short URL\n \n \n \n \n \n \n
\n
\n );\n};\n","import { FC } from 'react';\nimport { Button, UncontrolledTooltip } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faBan as forbiddenIcon,\n faCheck as defaultDomainIcon,\n faEdit as editIcon,\n} from '@fortawesome/free-solid-svg-icons';\nimport { ShlinkDomain, ShlinkDomainRedirects } from '../api/types';\nimport { useToggle } from '../utils/helpers/hooks';\nimport { OptionalString } from '../utils/utils';\nimport { EditDomainRedirectsModal } from './helpers/EditDomainRedirectsModal';\n\ninterface DomainRowProps {\n domain: ShlinkDomain;\n defaultRedirects?: ShlinkDomainRedirects;\n editDomainRedirects: (domain: string, redirects: Partial) => Promise;\n}\n\nconst Nr: FC<{ fallback: OptionalString }> = ({ fallback }) => (\n \n {!fallback && No redirect}\n {fallback && <>{fallback} (as fallback)}\n \n);\nconst DefaultDomain: FC = () => (\n <>\n \n Default domain\n \n);\n\nexport const DomainRow: FC = ({ domain, editDomainRedirects, defaultRedirects }) => {\n const [ isOpen, toggle ] = useToggle();\n const { domain: authority, isDefault, redirects } = domain;\n const domainId = `domainEdit${authority.replace(/\\./g, '')}`;\n\n return (\n \n {isDefault ? : ''}\n {authority}\n \n {redirects?.baseUrlRedirect ?? }\n \n \n {redirects?.regular404Redirect ?? }\n \n \n {redirects?.invalidShortUrlRedirect ?? }\n \n \n \n \n \n {isDefault && (\n \n Redirects for default domain cannot be edited here.\n
\n Use config options or env vars directly on the server.\n
\n )}\n \n \n \n );\n};\n","import { FC, useEffect } from 'react';\nimport Message from '../utils/Message';\nimport { Result } from '../utils/Result';\nimport { ShlinkApiError } from '../api/ShlinkApiError';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport SearchField from '../utils/SearchField';\nimport { ShlinkDomainRedirects } from '../api/types';\nimport { DomainsList } from './reducers/domainsList';\nimport { DomainRow } from './DomainRow';\n\ninterface ManageDomainsProps {\n listDomains: Function;\n filterDomains: (searchTerm: string) => void;\n editDomainRedirects: (domain: string, redirects: Partial) => Promise;\n domainsList: DomainsList;\n}\n\nconst headers = [ '', 'Domain', 'Base path redirect', 'Regular 404 redirect', 'Invalid short URL redirect', '' ];\n\nexport const ManageDomains: FC = (\n { listDomains, domainsList, filterDomains, editDomainRedirects },\n) => {\n const { filteredDomains: domains, loading, error, errorData } = domainsList;\n const defaultRedirects = domains.find(({ isDefault }) => isDefault)?.redirects;\n\n useEffect(() => {\n listDomains();\n }, []);\n\n if (loading) {\n return ;\n }\n\n const renderContent = () => {\n if (error) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n {headers.map((column, index) => )}\n \n \n {domains.length < 1 && }\n {domains.map((domain) => (\n \n ))}\n \n
{column}
No results found
\n
\n );\n };\n\n return (\n <>\n \n {renderContent()}\n \n );\n};\n","import Bottle from 'bottlejs';\nimport { ConnectDecorator } from '../../container/types';\nimport { filterDomains, listDomains } from '../reducers/domainsList';\nimport { DomainSelector } from '../DomainSelector';\nimport { ManageDomains } from '../ManageDomains';\nimport { editDomainRedirects } from '../reducers/domainRedirects';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator) => {\n // Components\n bottle.serviceFactory('DomainSelector', () => DomainSelector);\n bottle.decorator('DomainSelector', connect([ 'domainsList' ], [ 'listDomains' ]));\n\n bottle.serviceFactory('ManageDomains', () => ManageDomains);\n bottle.decorator('ManageDomains', connect(\n [ 'domainsList' ],\n [ 'listDomains', 'filterDomains', 'editDomainRedirects' ],\n ));\n\n // Actions\n bottle.serviceFactory('listDomains', listDomains, 'buildShlinkApiClient');\n bottle.serviceFactory('filterDomains', () => filterDomains);\n bottle.serviceFactory('editDomainRedirects', editDomainRedirects, 'buildShlinkApiClient');\n};\n\nexport default provideServices;\n","import { Action } from 'redux';\nimport { buildActionCreator, buildReducer } from '../../utils/helpers/redux';\n\n/* eslint-disable padding-line-between-statements */\nexport const APP_UPDATE_AVAILABLE = 'shlink/appUpdates/APP_UPDATE_AVAILABLE';\nexport const RESET_APP_UPDATE = 'shlink/appUpdates/RESET_APP_UPDATE';\n/* eslint-enable padding-line-between-statements */\n\nconst initialState = false;\n\nexport default buildReducer>({\n [APP_UPDATE_AVAILABLE]: () => true,\n [RESET_APP_UPDATE]: () => false,\n}, initialState);\n\nexport const appUpdateAvailable = buildActionCreator(APP_UPDATE_AVAILABLE);\n\nexport const resetAppUpdate = buildActionCreator(RESET_APP_UPDATE);\n","import { FC, MouseEventHandler } from 'react';\nimport { Alert, Button } from 'reactstrap';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSyncAlt as reloadIcon } from '@fortawesome/free-solid-svg-icons';\nimport { SimpleCard } from '../utils/SimpleCard';\nimport { useToggle } from '../utils/helpers/hooks';\nimport './AppUpdateBanner.scss';\n\ninterface AppUpdateBannerProps {\n isOpen: boolean;\n toggle: MouseEventHandler;\n forceUpdate: Function;\n}\n\nexport const AppUpdateBanner: FC = ({ isOpen, toggle, forceUpdate }) => {\n const [ isUpdating,, setUpdating ] = useToggle();\n const update = () => {\n setUpdating();\n forceUpdate();\n };\n\n return (\n \n

This app has just been updated!

\n

\n Restart it to enjoy the new features.\n \n

\n
\n );\n};\n","export const forceUpdate = async () => {\n const registrations = await navigator.serviceWorker?.getRegistrations() ?? [];\n\n for (const registration of registrations) {\n const { waiting } = registration;\n\n waiting?.addEventListener('statechange', (event) => {\n if ((event.target as any)?.state === 'activated') {\n window.location.reload();\n }\n });\n\n // The logic that makes skipWaiting to be called when this message is posted is in service-worker.ts\n waiting?.postMessage({ type: 'SKIP_WAITING' });\n }\n};\n","import { useEffect, FC } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport NotFound from '../common/NotFound';\nimport { ServersMap } from '../servers/data';\nimport { Settings } from '../settings/reducers/settings';\nimport { changeThemeInMarkup } from '../utils/theme';\nimport { AppUpdateBanner } from '../common/AppUpdateBanner';\nimport { forceUpdate } from '../utils/helpers/sw';\nimport './App.scss';\n\ninterface AppProps {\n fetchServers: () => void;\n servers: ServersMap;\n settings: Settings;\n resetAppUpdate: () => void;\n appUpdated: boolean;\n}\n\nconst App = (\n MainHeader: FC,\n Home: FC,\n MenuLayout: FC,\n CreateServer: FC,\n EditServer: FC,\n Settings: FC,\n ManageServers: FC,\n ShlinkVersionsContainer: FC,\n) => ({ fetchServers, servers, settings, appUpdated, resetAppUpdate }: AppProps) => {\n useEffect(() => {\n // On first load, try to fetch the remote servers if the list is empty\n if (Object.keys(servers).length === 0) {\n fetchServers();\n }\n\n changeThemeInMarkup(settings.ui?.theme ?? 'light');\n }, []);\n\n return (\n
\n \n\n
\n
\n \n \n \n \n \n \n \n \n \n
\n\n
\n \n
\n
\n\n \n
\n );\n};\n\nexport default App;\n","import Bottle from 'bottlejs';\nimport { appUpdateAvailable, resetAppUpdate } from '../reducers/appUpdates';\nimport App from '../App';\nimport { ConnectDecorator } from '../../container/types';\n\nconst provideServices = (bottle: Bottle, connect: ConnectDecorator) => {\n // Components\n bottle.serviceFactory(\n 'App',\n App,\n 'MainHeader',\n 'Home',\n 'MenuLayout',\n 'CreateServer',\n 'EditServer',\n 'Settings',\n 'ManageServers',\n 'ShlinkVersionsContainer',\n );\n bottle.decorator('App', connect([ 'servers', 'settings', 'appUpdated' ], [ 'fetchServers', 'resetAppUpdate' ]));\n\n // Actions\n bottle.serviceFactory('appUpdateAvailable', () => appUpdateAvailable);\n bottle.serviceFactory('resetAppUpdate', () => resetAppUpdate);\n};\n\nexport default provideServices;\n","import Bottle, { IContainer } from 'bottlejs';\nimport { withRouter } from 'react-router-dom';\nimport { connect as reduxConnect } from 'react-redux';\nimport { pick } from 'ramda';\nimport provideApiServices from '../api/services/provideServices';\nimport provideCommonServices from '../common/services/provideServices';\nimport provideShortUrlsServices from '../short-urls/services/provideServices';\nimport provideServersServices from '../servers/services/provideServices';\nimport provideVisitsServices from '../visits/services/provideServices';\nimport provideTagsServices from '../tags/services/provideServices';\nimport provideUtilsServices from '../utils/services/provideServices';\nimport provideMercureServices from '../mercure/services/provideServices';\nimport provideSettingsServices from '../settings/services/provideServices';\nimport provideDomainsServices from '../domains/services/provideServices';\nimport provideAppServices from '../app/services/provideServices';\nimport { ConnectDecorator } from './types';\n\ntype LazyActionMap = Record;\n\nconst bottle = new Bottle();\nconst { container } = bottle;\n\nconst lazyService = (container: IContainer, serviceName: string) =>\n (...args: any[]) => (container[serviceName] as T)(...args) as K;\nconst mapActionService = (map: LazyActionMap, actionName: string): LazyActionMap => ({\n ...map,\n // Wrap actual action service in a function so that it is lazily created the first time it is called\n [actionName]: lazyService(container, actionName),\n});\nconst connect: ConnectDecorator = (propsFromState: string[] | null, actionServiceNames: string[] = []) =>\n reduxConnect(\n propsFromState ? pick(propsFromState) : null,\n actionServiceNames.reduce(mapActionService, {}),\n );\n\nprovideAppServices(bottle, connect);\nprovideCommonServices(bottle, connect, withRouter);\nprovideApiServices(bottle);\nprovideShortUrlsServices(bottle, connect, withRouter);\nprovideServersServices(bottle, connect, withRouter);\nprovideTagsServices(bottle, connect);\nprovideVisitsServices(bottle, connect);\nprovideUtilsServices(bottle);\nprovideMercureServices(bottle);\nprovideSettingsServices(bottle, connect);\nprovideDomainsServices(bottle, connect);\n\nexport default container;\n","import { combineReducers } from 'redux';\nimport serversReducer from '../servers/reducers/servers';\nimport selectedServerReducer from '../servers/reducers/selectedServer';\nimport shortUrlsListReducer from '../short-urls/reducers/shortUrlsList';\nimport shortUrlsListParamsReducer from '../short-urls/reducers/shortUrlsListParams';\nimport shortUrlCreationReducer from '../short-urls/reducers/shortUrlCreation';\nimport shortUrlDeletionReducer from '../short-urls/reducers/shortUrlDeletion';\nimport shortUrlEditionReducer from '../short-urls/reducers/shortUrlEdition';\nimport shortUrlVisitsReducer from '../visits/reducers/shortUrlVisits';\nimport tagVisitsReducer from '../visits/reducers/tagVisits';\nimport orphanVisitsReducer from '../visits/reducers/orphanVisits';\nimport shortUrlDetailReducer from '../short-urls/reducers/shortUrlDetail';\nimport tagsListReducer from '../tags/reducers/tagsList';\nimport tagDeleteReducer from '../tags/reducers/tagDelete';\nimport tagEditReducer from '../tags/reducers/tagEdit';\nimport mercureInfoReducer from '../mercure/reducers/mercureInfo';\nimport settingsReducer from '../settings/reducers/settings';\nimport domainsListReducer from '../domains/reducers/domainsList';\nimport visitsOverviewReducer from '../visits/reducers/visitsOverview';\nimport appUpdatesReducer from '../app/reducers/appUpdates';\nimport { ShlinkState } from '../container/types';\n\nexport default combineReducers({\n servers: serversReducer,\n selectedServer: selectedServerReducer,\n shortUrlsList: shortUrlsListReducer,\n shortUrlsListParams: shortUrlsListParamsReducer,\n shortUrlCreationResult: shortUrlCreationReducer,\n shortUrlDeletion: shortUrlDeletionReducer,\n shortUrlEdition: shortUrlEditionReducer,\n shortUrlVisits: shortUrlVisitsReducer,\n tagVisits: tagVisitsReducer,\n orphanVisits: orphanVisitsReducer,\n shortUrlDetail: shortUrlDetailReducer,\n tagsList: tagsListReducer,\n tagDelete: tagDeleteReducer,\n tagEdit: tagEditReducer,\n mercureInfo: mercureInfoReducer,\n settings: settingsReducer,\n domainsList: domainsListReducer,\n visitsOverview: visitsOverviewReducer,\n appUpdated: appUpdatesReducer,\n});\n","import ReduxThunk from 'redux-thunk';\nimport { applyMiddleware, compose, createStore } from 'redux';\nimport { save, load, RLSOptions } from 'redux-localstorage-simple';\nimport reducers from '../reducers';\n\nconst isProduction = process.env.NODE_ENV !== 'production';\nconst composeEnhancers: Function = !isProduction && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\nconst localStorageConfig: RLSOptions = {\n states: [ 'settings', 'servers' ],\n namespace: 'shlink',\n namespaceSeparator: '.',\n debounce: 300,\n};\n\nconst store = createStore(reducers, load(localStorageConfig), composeEnhancers(\n applyMiddleware(save(localStorageConfig), ReduxThunk),\n));\n\nexport default store;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL ?? '', window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import L from 'leaflet';\nimport marker2x from 'leaflet/dist/images/marker-icon-2x.png';\nimport marker from 'leaflet/dist/images/marker-icon.png';\nimport markerShadow from 'leaflet/dist/images/marker-shadow.png';\n\nexport const fixLeafletIcons = () => {\n delete (L.Icon.Default.prototype as any)._getIconUrl;\n\n L.Icon.Default.mergeOptions({\n iconRetinaUrl: marker2x,\n iconUrl: marker,\n shadowUrl: markerShadow,\n });\n};\n","import { render } from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\nimport { homepage } from '../package.json';\nimport container from './container';\nimport store from './container/store';\nimport { fixLeafletIcons } from './utils/helpers/leaflet';\nimport { register as registerServiceWorker } from './serviceWorkerRegistration';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport 'leaflet/dist/leaflet.css';\nimport './index.scss';\n\n// This overwrites icons used for leaflet maps, fixing some issues caused by webpack while processing the CSS\nfixLeafletIcons();\n\nconst { App, ScrollToTop, ErrorHandler, appUpdateAvailable } = container;\n\nrender(\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nregisterServiceWorker({\n onUpdate() {\n store.dispatch(appUpdateAvailable()); // eslint-disable-line @typescript-eslint/no-unsafe-call\n },\n});\n","import { FC } from 'react';\nimport { Card, Row } from 'reactstrap';\nimport classNames from 'classnames';\nimport { faCircleNotch as preloader } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\ntype MessageType = 'default' | 'error';\n\nconst getClassForType = (type: MessageType) => {\n const map: Record = {\n error: 'border-danger',\n default: '',\n };\n\n return map[type];\n};\nconst getTextClassForType = (type: MessageType) => {\n const map: Record = {\n error: 'text-danger',\n default: 'text-muted',\n };\n\n return map[type];\n};\n\nexport interface MessageProps {\n className?: string;\n loading?: boolean;\n fullWidth?: boolean;\n type?: MessageType;\n}\n\nconst Message: FC = ({ className, children, loading = false, type = 'default', fullWidth = false }) => {\n const classes = classNames({\n 'col-md-12': fullWidth,\n 'col-md-10 offset-md-1': !fullWidth,\n });\n\n return (\n \n
\n \n

\n {loading && }\n {loading && {children ?? 'Loading...'}}\n {!loading && children}\n

\n
\n
\n
\n );\n};\n\nexport default Message;\n","import { FC } from 'react';\nimport './NoMenuLayout.scss';\n\nconst NoMenuLayout: FC = ({ children }) =>
{children}
;\n\nexport default NoMenuLayout;\n","import { compare } from 'compare-versions';\nimport { identity, memoizeWith } from 'ramda';\nimport { Empty, hasValue } from '../utils';\n\ntype SemVerPatternFragment = `${bigint | '*'}`;\n\nexport type SemVerPattern = SemVerPatternFragment\n| `${SemVerPatternFragment}.${SemVerPatternFragment}`\n| `${SemVerPatternFragment}.${SemVerPatternFragment}.${SemVerPatternFragment}`;\n\nexport interface Versions {\n maxVersion?: SemVerPattern;\n minVersion?: SemVerPattern;\n}\n\nexport type SemVer = `${bigint}.${bigint}.${bigint}` | 'latest';\n\nexport const versionMatch = (versionToMatch: SemVer | Empty, { maxVersion, minVersion }: Versions): boolean => {\n if (!hasValue(versionToMatch)) {\n return false;\n }\n\n const matchesMinVersion = !minVersion || compare(versionToMatch, minVersion, '>=');\n const matchesMaxVersion = !maxVersion || compare(versionToMatch, maxVersion, '<=');\n\n return matchesMaxVersion && matchesMinVersion;\n};\n\nconst versionIsValidSemVer = memoizeWith(identity, (version: string): version is SemVer => {\n try {\n return compare(version, version, '=');\n } catch (e) {\n return false;\n }\n});\n\nexport const versionToPrintable = (version: string) => !versionIsValidSemVer(version) ? version : `v${version}`;\n\nexport const versionToSemVer = (defaultValue: SemVer = 'latest') =>\n (version: string): SemVer => versionIsValidSemVer(version) ? version : defaultValue;\n"],"sourceRoot":""} \ No newline at end of file